<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:h="http://feed.elasticstats.com/schema/nfl/hierarchy-v1.0.xsd"
  targetNamespace="http://feed.elasticstats.com/schema/nfl/hierarchy-v1.0.xsd" 
  elementFormDefault="qualified">
  
  <xs:element name="league">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="conference" maxOccurs="unbounded" type="h:conferenceType"/>
      </xs:sequence>
      <xs:attribute name="id" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  
  <xs:complexType name="conferenceType">
    <xs:sequence>
      <xs:element name="division" minOccurs="0" maxOccurs="unbounded" type="h:divisionType"/>
    </xs:sequence>
    <xs:attributeGroup ref="h:organizationBase"/>
  </xs:complexType>

  <xs:complexType name="divisionType">
    <xs:sequence>
      <xs:element name="team" maxOccurs="unbounded" type="h:teamType"/>
    </xs:sequence>
    <xs:attributeGroup ref="h:organizationBase" />
  </xs:complexType>

  <xs:complexType name="teamType">
    <xs:sequence>
      <xs:element name="venue" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:attribute name="address" use="optional" type="xs:string"/>
          <xs:attribute name="capacity" use="required" type="xs:integer"/>
          <xs:attribute name="city" use="required" type="xs:string"/>
          <xs:attribute name="country" use="required" type="xs:string"/>
          <xs:attribute name="id" use="required" type="xs:string"/>
          <xs:attribute name="name" use="required" type="xs:string"/>
          <xs:attribute name="state" use="required" type="xs:string"/>
          <xs:attribute name="surface" use="optional" type="xs:string"/>
          <xs:attribute name="type" use="optional" type="xs:string"/>
          <xs:attribute name="zip" use="optional" type="xs:string"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attributeGroup ref="h:organizationBase" />
    <xs:attribute name="market" use="required" type="xs:string"/>
  </xs:complexType>
  
  <xs:attributeGroup name="organizationBase">
    <xs:attribute name="id" use="required" type="xs:string"/>
    <xs:attribute name="name" use="required"/>    
  </xs:attributeGroup>
</xs:schema>
