Bob's Burgers
From ICO wiki test
Meeskond
- Aleksei Kopõlov
- Sander Perens
Idee
XML/XSD/XSLT
XML
<?xml version="1.0" encoding="utf-8"?>
<Menu>
<Item Category="Dish" MenuCategorie="Main course">
<ItemName><![CDATA[Chicken & mushroom risotto]]></ItemName>
<ItemType>
<Type>Spicy</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">10.95</PortionPrice>
<PortionSize>
<Size Units="g">300</Size>
<Size Units="Person">1</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">19.95</PortionPrice>
<PortionSize>
<Size Units="g">600</Size>
<Size Units="Person">2</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Looks good</Description>
<Ingredients>
<Ingredient Units="g" Quantity="50">Butter</Ingredient>
<Ingredient Units="g" Quantity="100">Bacon</Ingredient>
<Ingredient Units="g" Quantity="100">Rice</Ingredient>
<Ingredient Units="ml" Quantity="50">White wine</Ingredient>
</Ingredients>
<IntoleranceFreeFood>
<IntoleranceFree>Lactose Free</IntoleranceFree>
<IntoleranceFree>Gluten free</IntoleranceFree>
</IntoleranceFreeFood>
</Item>
<Item Category="Dish" MenuCategorie="Main course">
<ItemName><![CDATA[Pilaff]]></ItemName>
<ItemType>
<Type>Spicy</Type>
<Type>mediterranean</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">5</PortionPrice>
<PortionSize>
<Size Units="g">300</Size>
<Size Units="Person">1</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">6</PortionPrice>
<PortionSize>
<Size Units="g">600</Size>
<Size Units="Person">2</Size>
</PortionSize>
</Portion>
<Portion PortionType="Large">
<PortionPrice Currency="€">7</PortionPrice>
<PortionSize>
<Size Units="g">900</Size>
<Size Units="Person">3</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Looks good</Description>
<Ingredients>
<Ingredient Units="g" Quantity="50">Butter</Ingredient>
<Ingredient Units="g" Quantity="100">Bacon</Ingredient>
<Ingredient Units="g" Quantity="100">Rice</Ingredient>
</Ingredients>
<IntoleranceFreeFood>
<IntoleranceFree>Lactose Free</IntoleranceFree>
<IntoleranceFree>Gluten free</IntoleranceFree>
</IntoleranceFreeFood>
</Item>
<Item Category="Dish" MenuCategorie="Dessert">
<ItemName><![CDATA[Classic Tiramisu]]></ItemName>
<ItemType>
<Type>Spicy</Type>
<Type>Sour</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">10.95</PortionPrice>
<PortionSize>
<Size Units="g">300</Size>
<Size Units="Person">1</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">19.95</PortionPrice>
<PortionSize>
<Size Units="g">600</Size>
<Size Units="Person">2</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Looks good, tastes okay</Description>
<Ingredients>
<Ingredient Units="g" Quantity="50">Butter</Ingredient>
<Ingredient Units="g" Quantity="100">Bacon</Ingredient>
<Ingredient Units="g" Quantity="100">Rice</Ingredient>
<Ingredient Units="g" Quantity="50">White wine</Ingredient>
</Ingredients>
</Item>
<Item Category="Dish" MenuCategorie="Dessert">
<ItemName><![CDATA[Pavlova]]></ItemName>
<ItemType>
<Type>Sweet</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">13.13</PortionPrice>
<PortionSize>
<Size Units="g">300</Size>
<Size Units="Person">2</Size>
</PortionSize>
</Portion>
<Portion PortionType="Large">
<PortionPrice Currency="€">27.99</PortionPrice>
<PortionSize>
<Size Units="g">600</Size>
<Size Units="Person">4</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Pavlova typically garnished with strawberries, passionfruit, kiwifruit and cream. Pavlova is a meringue-based dessert named after the Russian ballerina Anna Pavlova. It is a meringue dessert with a crisp crust and soft, light inside, usually topped with fruit and whipped cream.</Description>
<Ingredients>
<Ingredient Units="g" Quantity="50">strawberries</Ingredient>
<Ingredient Units="g" Quantity="100">passionfruit</Ingredient>
<Ingredient Units="g" Quantity="100">kiwifruit</Ingredient>
<Ingredient Units="ml" Quantity="100">cream</Ingredient>
</Ingredients>
</Item>
<Item Category="Drink" MenuCategorie="Alcohol">
<ItemName><![CDATA[Jem Beam]]></ItemName>
<ItemType>
<Type>Whisky</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">2.95</PortionPrice>
<PortionSize>
<Size Units="ml">30</Size>
<Size Units="Shots">1</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">14.95</PortionPrice>
<PortionSize>
<Size Units="ml">300</Size>
<Size Units="Shots">10</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Whisky</Description>
</Item>
<Item Category="Drink" MenuCategorie="Juice">
<ItemName><![CDATA[Apple juice]]></ItemName>
<ItemType>
<Type>Juice</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">1.05</PortionPrice>
<PortionSize>
<Size Units="ml">200</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">1.55</PortionPrice>
<PortionSize>
<Size Units="ml">300</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Freshly pressed from green apples</Description>
</Item>
<Item Category="Drink" MenuCategorie="Water">
<ItemName><![CDATA[Still water]]></ItemName>
<ItemType>
<Type>Water</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">1</PortionPrice>
<PortionSize>
<Size Units="ml">200</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">1.50</PortionPrice>
<PortionSize>
<Size Units="ml">300</Size>
</PortionSize>
</Portion>
<Portion PortionType="Large">
<PortionPrice Currency="€">2</PortionPrice>
<PortionSize>
<Size Units="ml">500</Size>
</PortionSize>
</Portion>
</Portions>
<Description>From tap</Description>
</Item>
<Item Category="Drink" MenuCategorie="Alcohol">
<ItemName><![CDATA[Saku Kuld]]></ItemName>
<ItemType>
<Type>Beer</Type>
</ItemType>
<Portions>
<Portion PortionType="Small">
<PortionPrice Currency="€">3.50</PortionPrice>
<PortionSize>
<Size Units="ml">300</Size>
</PortionSize>
</Portion>
<Portion PortionType="Medium">
<PortionPrice Currency="€">5</PortionPrice>
<PortionSize>
<Size Units="ml">500</Size>
</PortionSize>
</Portion>
</Portions>
<Description>Saku Kuld is the finest beer of Estonia’s oldest brewery. It is the cream of the crop when it comes to beers. Saku Kuld is a masterpiece that entwines two centuries of brewing traditions with the latest technology.</Description>
</Item>
</Menu>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Menu">
<xs:complexType>
<xs:sequence>
<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ItemName" type="xs:string" maxOccurs="1" minOccurs="1"/>
<xs:element name="ItemType" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Type" type ="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Portions" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Portion" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="PortionPrice" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="Currency" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="PortionSize" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Size" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="Units" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="PortionType" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Description" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="Ingredients" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Ingredient" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Units" type="xs:string"/>
<xs:attribute name="Quantity" type="xs:decimal"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="IntoleranceFreeFood" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="IntoleranceFree" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Category" type="xs:string"/>
<xs:attribute name="MenuCategorie" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>