﻿<ManagementPack SchemaVersion="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Manifest>
    <Identity>
      <ID>NFL</ID>
      <Version>1.0.0.0</Version>
    </Identity>
    <Name>National Football League</Name>
    <References>
      <Reference Alias="System">
        <ID>System.Library</ID>
        <Version>1.0.0.0</Version>
        <PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
      </Reference>
    </References>
  </Manifest>
  <TypeDefinitions>
    <EntityTypes>
      <ClassTypes>
        <ClassType ID="NFL.Conference" Base="System!System.ConfigItem" Accessibility="Public" Hosted="false" Abstract="false">
          <Property ID="Name" Type="string" Key="true" />
        </ClassType>
        <ClassType ID="NFL.Division" Base="System!System.ConfigItem" Accessibility="Public" Hosted="true" Abstract="false">
          <Property ID="Name" Type="string" Key="true" />
        </ClassType>
        <ClassType ID="NFL.Team" Base="System!System.ConfigItem" Accessibility="Public" Hosted="false" Abstract="true">
          <Property ID="Name" Type="string" Key="true" />
        </ClassType>
        <ClassType ID="AFC.Team" Base="NFL.Team" Accessibility="Public" Hosted="false" Abstract="false" />
        <ClassType ID="NFC.Team" Base="NFL.Team" Accessibility="Public" Hosted="false" Abstract="false" />
        <ClassType ID="NFL.Coach" Base="System!System.ConfigItem" Accessibility="Public" Hosted="false" Abstract="false">
          <Property ID="Name" Type="string" Key="true" />
        </ClassType>
      </ClassTypes>
      <RelationshipTypes>
        <RelationshipType ID="NFL.ConferenceHostsDivision" Base="System!System.Hosting" Abstract="false" Accessibility="Public">
          <Source ID="Conference" Type="NFL.Conference"/>
          <Target ID="Division" Type="NFL.Division"/>
        </RelationshipType>
        <RelationshipType ID="NFL.DivisionContainsTeam" Base="System!System.Containment" Abstract="false" Accessibility="Public">
          <Source ID="Division" Type="NFL.Division"/>
          <Target ID="Team" Type="NFL.Team"/>
        </RelationshipType>
        <RelationshipType ID="NFL.CoachCoachesTeam" Base="System!System.Reference" Abstract="false" Accessibility="Public">
          <Source ID="Coach" Type="NFL.Coach"/>
          <Target ID="Team" Type="NFL.Team"/>
        </RelationshipType>
      </RelationshipTypes>
      <TypeProjections>
        <TypeProjection ID="NFL.Conference.All" Accessibility="Public" Type="NFL.Conference">
          <Component Alias="Division" Path="$Target/Path[Relationship='NFL.ConferenceHostsDivision']$">
            <Component Alias="AFCTeam" Path="$Target/Path[Relationship='NFL.DivisionContainsTeam' SeedRole='Source' TypeConstraint='AFC.Team']$"/>
            <Component Alias="NFCTeam" Path="$Target/Path[Relationship='NFL.DivisionContainsTeam' SeedRole='Source' TypeConstraint='NFC.Team']$">
              <Component Alias="Coach" Path="$Target/Path[Relationship='NFL.CoachCoachesTeam' SeedRole='Target']$" />
            </Component>
          </Component>
        </TypeProjection>
      </TypeProjections>
    </EntityTypes>
  </TypeDefinitions>
</ManagementPack>