Mějme toto zadání. Ukáži jak jsem se s tím vypořádal po svém. Je možné, že ne vše bude nejoptimalnější či správně řešeno.
Uvažujte televizní program pro různé televizní stanice. Program se skládá z vysílaných pořadů. Pro každý vysílaný pořad máme den a čas vysílání, jeho název a popis a délku v minutách. Pokud se jedná o film nebo seriál, tak máme i režiséra a herce v hlavních rolích.
<?xml version="1.0" encoding="UTF-8"?>
<program>
<stanice id="Nova">
<porad typ="film">
<nazev>Smrtonostná zbraň</nazev>
<datum>12.11.2007</datum>
<cas>12:20</cas>
<popis>Seržant Roger Murtaugh (Danny Glover), který má pár týdnů do důchodu,
dostane za parťáka seržanta Martina Rigse,
jenž chtěl po smrti manželky spáchat sebevraždu.
Z počátku si nepadnou do oka, společně však budou
muset vyřešit případ nebezpečného gangu pašeráků drog.</popis>
<delka>119</delka>
<reziser>
<jmeno>Richard</jmeno>
<prijmeni>Donner</prijmeni>
</reziser>
<hlavni_role>
<herec>
<jmeno>Mel</jmeno>
<prijmeni>Gibson</prijmeni>
</herec>
<herec>
<jmeno>Danny</jmeno>
<prijmeni>Glover</prijmeni>
</herec>
<herec>
<jmeno>Gary</jmeno>
<prijmeni>Busey</prijmeni>
</herec>
</hlavni_role>
</porad>
<porad typ="film">
<nazev> Tři oříšky pro Popelku</nazev>
<datum>12.11.2007</datum>
<cas>15:50</cas>
<popis>Popelka je milé hodné děvče bez matky a posléze i bez otce,
který ji nechá napospas své druhé ženě a její dceři.
Obě nemají Popelku rády a mimo jiné se jí snaží všemožně
zabránit v tom, aby se zúčastnila plesu, na kterém si má tamní
princ konečně najít nevěstu. Osud však Popelce přeje více,
než-li obě zlé ženy.</popis>
<delka>75</delka>
<reziser>
<jmeno>Václav</jmeno>
<prijmeni>Vorlíček</prijmeni>
</reziser>
<hlavni_role>
<herec>
<jmeno>Libuše</jmeno>
<prijmeni>Šafránková</prijmeni>
</herec>
<herec>
<jmeno>Pavel</jmeno>
<prijmeni>Trávníček</prijmeni>
</herec>
</hlavni_role>
</porad>
<porad typ="reportaz">
<nazev>Slavnostní koncert v ZUŠ</nazev>
<datum>12.11.2007</datum>
<cas>21:30</cas>
<popis>jak probíhali oslavy aneb tak mladí a už zlití</popis>
<delka>4</delka>
</porad>
</stanice>
</program>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="program">
<xs:complexType>
<xs:sequence>
<xs:element name="stanice" >
<xs:complexType >
<xs:sequence>
<xs:element name="porad" >
<xs:complexType>
<xs:all>
<xs:element name="nazev" type="minStringType" />
<xs:element name="datum" type="xs:date" />
<xs:element name="cas" type="xs:time"/>
<xs:element name="popis" type="minStringType"/>
<xs:element name="delka" type="xs:unsignedInt"/>
<xs:element name="hlavni_role" type="hlavni_roleTyp" minOccurs="0" />
</xs:all>
<xs:attribute name="typ" type="minStringType" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="minStringType" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="hlavni_roleTyp">
<xs:sequence>
<xs:element name="herec">
<xs:complexType>
<xs:sequence>
<xs:element name="jmeno" type="minStringType" />
<xs:element name="prijmeni" type="minStringType" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:simpleType>
<xs:simpleType name="minStringType">
<xs:restriction base="xs:string">
<xs:minLength value="1">
</xs:restriction>
</xs:simpleType>
</xs:schema>