# XML - Managing Data Exchange/ Recursive relationships (Answers)
## realy.xsd (XML schema for exercise 1)

* <?xml version="1.0" encoding="UTF-8"?>
* <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
* attributeFormDefault="unqualified">
* <xsd:element name="relay">
* <xsd:complexType>
* <xsd:sequence>
* <xsd:element name="runner" type="runnerType"
* maxOccurs="unbounded"/>
* </xsd:sequence>
* </xsd:complexType>
* </xsd:element>
* <xsd:complexType name="runnerType">
* <xsd:sequence>
* <xsd:element name="runnerID" type="xsd:ID"/>
* <xsd:element name="runnerName" type="xsd:string"/>
* <xsd:element name="previousRunner" type="xsd:IDREF" minOccurs="0" maxOccurs="1"/>
* </xsd:sequence>
* </xsd:complexType>
* </xsd:schema>

## relay.xml(XML document for exercise 1)

* <?xml version="1.0" encoding="UTF-8"?>
* <relay xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
* xsi:noNamespaceSchemaLocation='relay.xsd'>
* <runner>
* <runnerID>c1</runnerID>
* <runnerName>Tom</runnerName>
* </runner>
* <runner>
* <runnerID>c2</runnerID>
* <runnerName>Jim</runnerName>
* <previousRunner>c1</previousRunner >
* </runner>
* <runner>
* <runnerID>c3</runnerID>
* <runnerName>Scott</runnerName>
* <previousRunner>c2</previousRunner >
* </runner>
* <runner>
* <runnerID>c4</runnerID>
* <runnerName>George</runnerName>
* <previousRunner>c3</previousRunner >
* </runner>
* </relay>

## sales.xsd(XML schema for exercise 2)

* <?xml version="1.0" encoding="UTF-8"?>
* <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
* <xsd:element name="sales">
* <xsd:complexType>
* <xsd:sequence>
* <xsd:element name="salesPerson" type="salesType" maxOccurs="unbounded"/>
* </xsd:sequence>
* </xsd:complexType>
* </xsd:element>
* <xsd:complexType name="salesType">
* <xsd:sequence>
* <xsd:element name="sPersonID" type="xsd:ID"/>
* <xsd:element name="sPersonName" type="xsd:string"/>
* <xsd:element name="sPersonState" type="xsd:string"/>
* <xsd:element name="sPersonRegion" type="xsd:string"/>
* <xsd:element name="sPersonBoss" type="sPtype" minOccurs="0" maxOccurs="1"/>
* </xsd:sequence>
* </xsd:complexType>
* <xsd:complexType name="sPtype">
* <xsd:sequence>
* <xsd:element name="Boss" type="xsd:IDREF"/>
* </xsd:sequence>
* </xsd:complexType>
* </xsd:schema>

## sales.xml(XML document for exercise 2)

* <?xml version="1.0" encoding="UTF-8"?>
* <sales xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
* xsi:noNamespaceSchemaLocation='sales.xsd'>
* <salesPerson>
* <sPersonID>c1</sPersonID>
* <sPersonName>Tommy Jones</sPersonName>
* <sPersonState>GA</sPersonState>
* <sPersonState>North</sPersonState>
* <sPersonBoss>
* <Boss>c3</Boss>
* </sPersonBoss>
* </salesPerson>
* <salesPerson>
* <sPersonID>c2</sPersonID>
* <sPersonName>Tim Jack</sPersonName>
* <sPersonState>GA</sPersonState>
* <sPersonState>North</sPersonState>
* <sPersonBoss>
* <Boss>c3</Boss>
* </sPersonBoss>
* </salesPerson>
* <salesPerson>
* <sPersonID>c3</sPersonID>
* <sPersonName>Fred Vick</sPersonName>
* <sPersonState>GA</sPersonState>
* <sPersonState>North</sPersonState>
* </salesPerson>
* <salesPerson>
* <sPersonID>c4</sPersonID>
* <sPersonName>Rob Looker</sPersonName>
* <sPersonState>SC</sPersonState>
* <sPersonState>East</sPersonState>
* <sPersonBoss>
* <Boss>c6</Boss>
* </sPersonBoss>
* </salesPerson>
* <salesPerson>
* <sPersonID>c5</sPersonID>
* <sPersonName>Scott Nook</sPersonName>
* <sPersonState>SC</sPersonState>
* <sPersonState>East</sPersonState>
* <sPersonBoss>
* <Boss>c6</Boss>
* </sPersonBoss>
* </salesPerson>
* <salesPerson>
* <sPersonID>c6</sPersonID>
* <sPersonName>Andrew Ingle</sPersonName>
* <sPersonState>SC</sPersonState>
* <sPersonState>East</sPersonState>
* </salesPerson>
* </sales>

## food.xsd(XML schema for exercise 3)

* <?xml version="1.0" encoding="UTF-8"?>
* <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
* <xsd:element name="food">
* <xsd:complexType>
* <xsd:sequence>
* <xsd:element name="appetizer" type="aType" maxOccurs="unbounded"/>
* </xsd:sequence>
* </xsd:complexType>
* </xsd:element>
* <xsd:complexType name="aType">
* <xsd:sequence>
* <xsd:element name="aID" type="xsd:ID"/>
* <xsd:element name="aName" type="xsd:string"/>
* <xsd:element name="aPrice" type="xsd:decimal" minOccurs="0"/>
* <xsd:element name="includes" type="includedType" minOccurs="0" maxOccurs="unbounded"/>
* </xsd:sequence>
* </xsd:complexType>
* <xsd:complexType name="includedType">
* <xsd:sequence>
* <xsd:element name="included" type="xsd:IDREF"/>
* </xsd:sequence>
* </xsd:complexType>
* </xsd:schema>

## food.xml(XML document for exercise 3)

* <?xml version="1.0" encoding="UTF-8"?>
* <food xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
* xsi:noNamespaceSchemaLocation= food.xsd'>
* <appetizer>
* <aID>a1</acID>
* <aName>Chips and dip</acName>
* <aPrice>2.99</acPrice>
* </appetizer>
* <appetizer>
* <acID>a2</acID>
* <acName>Salad</acName>
* <acPrice>3.99</acPrice>
* </appetizer>
* <appetizer>
* <acID>a3</acID>
* <acName>Wings</acName>
* <acPrice>6.99</acPrice>
* </appetizer>
* <appetizer>
* <acID>a4</acID>
* <acName>Bread</acName>
* <acPrice>4.99</acPrice>
* </appetizer>
* <appetizer>
* <acID>a5</acID>
* <acName>Big Plate</acName>
* <acPrice>6.99</acPrice>
* <acTime>24</acTime>
* <includes>
* <included>a2</included>
* </includes>
* <includes>
* <included>a4</included>
* </includes>
* </appetizer>
* <appetizer>
* <acID>a6</acID>
* <acName>Party Plate</acName>
* <acPrice>10.99</acPrice>
* <includes>
* <included>a3</included>
* </includes>
* <includes>
* <included>a1</included>
* </includes>
* </appetizer>
* </food>