XML Schémata – skládání schémat

Úvodní rozcvička

  • stáhněte si příklady z download/xml-schema-4.zip

  • schéma zamestnanci.xsd převeďte na schéma využívající přístup „slepý benátčan“ a rozšiřte o rozlišení interních a externích zaměstnanců (viz ukázkový soubor zamestnanci.xml)

  • do ukázkového dokumentu zamestnanci.xml přidejte výchozí jmenný prostor http://example.com/zamestnanci

  • schéma upravte tak, aby podle něj byl dokument zamestnanci.xml stále validní

Úkol

  • Upravte zamestnanci.xsd tak, aby byly zvlášť uvedeny elementy pro externí zaměstnance a zvlášť pro interní zaměstnance.

  • Pro využití v jiných schematech v zamestnanci.xsd vytvořte nový komplexní typ zamestnanec-basicInfoType, který bude obsahovat jen jméno, příjmení a email.

  • Datový typ zamestnanecType nadefinujte tak, aby byl extenzí typu zamestnanec-basicInfoType.

  • Typ externi-zamestnanecType a interni-zamestnanecType vytvořte restrikcí nad abstraktním typem zamestnanecType.

    • Interní zaměstnanec má plat a atribut id

    • Externí zaměstnanec má místo platu element fakturovana_castka

  • Příslušně upravte XML dokument zamestnanci.xml.

Skládání schémat

  • vložení schématu definujícího elementy a typy v jiném jmenném prostoru

    <xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="xhtml1-strict.xsd"/>
  • po importu se lze odkazovat na konkrétní elementy pomocí ref="prefix:element" nebo typy pomocí type="prefix:typ"

  • prohlédněte si dokument faktura.xml, zejména poslední element komentář, který může obsahovat vnořený HTML kód (totéž co element body v HTML)

  • upravte schéma faktura.xsd tak, aby umělo zvalidovat element komentář. Element komentář zadefinuje pomocí datového typu pro blokové elementy z XHTML.

  • pokud jen chceme velké schéma „rozbít“ na menší části, které definují elementy ve stejném jmenném prostoru, použijeme:

    <xs:include schemaLocation="modul.xsd"/>

Dokumentace a anotace

  • uvnitř elementu xs:annotation je možné používat elementy xs:documentation a xs:appInfo pro vkládání dokumentace a pomocných metainformací

  • podívejte se na dokumentaci uvnitř schématu isdoc-invoice.xsd

  • vygenerujte si pro schéma isdoc-invoice.xsd přehlednou dokumentaci pomocí zabudované funkce editoru oXygen

Domácí úkol

Skládání schémat

  • do elementu Note v souboru faktura.isdoc doplňte několik elementů ve jmenném prostoru jazyka XHTML

  • k dokumentu připojte schéma isdoc-invoice.xsd pomocí instrukce <?xml-model (viz http://www.w3.org/TR/xml-model/)

  • upravte schéma isdoc-invoice.xsd tak, aby byl dokument s fakturou validní a jako poznámku u řádky faktury šlo používat elementy XHTML

  • pro upravené schéma vygenerujte dokumentaci

  • odevzdejte všechny potřebné soubory