150 likes | 350 Views
XML sch éma. Tvorba XML sch émy (1) - elementy. Najprv si zadefinujeme namespace pre XML sch ému v koreňovom elemente schéma. <? xml version ="1.0" encoding ="utf-8" ?> < xsd:schema xmlns:xsd ="http://www.w3.org/2001/XMLSchema"> </ xsd:schema >. Tvorba XML sch émy (2) - elementy.
E N D
Tvorba XML schémy(1) - elementy • Najprvsizadefinujeme namespace pre XML schému v koreňovom elemente schéma. <?xmlversion="1.0" encoding="utf-8" ?> <xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"> </xsd:schema>
Tvorba XML schémy(2) - elementy • Nech root je element obsahujúci iný element – to značí že je komplexným typom – zápis je nasledovný. <xsd:element name=“root"> <xsd:complexType> ...... </xsd:complexType> </xsd:element>
Tvorba XML schémy(3) - elementy • Element all – musia byť použité všetky elementy, na ich poradí však nezáleží. • Element sequence – musia byť použité všetky elementy, na ich poradí nezáleží • Element choice – výber jednej z možností • Ak element neobsahuje žiadne podelementy, tak sa píše iba typ elementu a nepoužíva sa element complexType. • Príklad: <xsd:elementname="meno" type="xsd:string"/>
Tvorba XML schémy(4)- atribúty • Atribúty vždy nasledujú za elementmi • Zápis: <xsd:attributename="krajina_povodu" type="xsd:string"/>
Tvorba XML schémy - dokončenie • Pri každom elemente je možné určiť počet opakovaní • Atribút minOccurs min počet použitia elementu • Atribút maxOccurs max počet použitia elementu • Príklad: <xsd:elementname="nazov"type="xsd:string" minOccurs="1" maxOccurs="unbounded“/> Rovnako sa to dá urobiť pre elementy (dámeminOccurs rovné jednej ak chceme aby bol atribút povinný).
Príklad 1 <?xml version="1.0"?> <zoznam> <spisovatelkrajina_povodu="Nemecko"> <meno>Erich Maria Remarque</meno> <dielo> <nazov>Na zapadenicnove</nazov> <zaner>roman</zaner> </dielo> </spisovatel> <spisovatelkrajina_povodu="USA"> <meno>Ernest Hemingway</meno> <dielo> <nazov>Zbohomzbraniam</nazov> <zaner>roman</zaner> </dielo> </spisovatel> </zoznam>
Pripojenie schémy ku dokumentu <zoznamxmlns="http://nieco.org/a" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nieco.org/a subor.xsd"> <xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://nieco.org/a">
Dátové typy • string • boolean • integer • decimal • float • double • Byte • ….
Tvorbaobmedzených typov - ukážka <xsd:simpleType name="novy_typ"> <xsd:restriction base="xsd:string"> <xsd:maxLengthvalue=“20”/> </xsd:restriction> </xsd:simpleType> • Nový typ sa používa nasledovne: <xsd:element name="meno" type="novy_typ">
Dostupné obmedzenia • enumeration – zoznamakceptovateľnýchhodnôt • fractionDigits – maximálnypočetdesatinnýchmiest • length – presnýpočetznakovaleboprvkovzoznamu • maxExclusive – hornáhranica (<) • maxInclusive – hornáhranica (<=) • maxlength – maximálnypočetznakovaleboprvkovzoznamu • minExclusive – dolnáhranica (>) • minInclusive – dolnáhranica (>=) • minLength – minimálnypočetznakovaleboprvkovzoznamu • pattern – presnásekvenciaakceptovateľnýchznakov • totalDigits – presnýpočetpovolenýchčíslic • whiteSpace – spracovaniebielychznakov
Príklad 2 • Vytvorte XML schému popisujúcu daný obrázok. Použite aj vhodné obmedzenia.
Zmiešané hodnoty (1) <xsd:element name="meno"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="cislo" type="patciferne_cislo"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> simpleContent – element môže obsahovať jednoduché hodnoty a nie element
Zmiešané hodnoty (2) <xsd:element name="meno"> <xsd:complexTypemixed="true"> <xsd:all> <xsd:element name="narodnost" type="xsd:string"/> </xsd:all> <xsd:attribute name="cislo" type="patciferne_cislo"/> </xsd:complexType> </xsd:element>