xml sch éma
DESCRIPTION
XML sch éma. Tvorba XML sch émy (1) - elementy. Najprv si zadefinujeme namespace pre XML sch ému v koreňovom elemente schéma. < xsd:schema xmlns:xsd ="http://www.w3.org/2001/XMLSchema"> . Tvorba XML sch émy (2) - elementy. - PowerPoint PPT PresentationTRANSCRIPT
Technológie XMLXML schéma
Prezenčka z poslednej prednášky
Účasť = +2bNeúčasť = -2b
Príklad 1Popíšte nasledujúci XML dokument pomocou XML schémy:
<?xml version=“1.0” encoding=“UTF-8”?><firma>
<zamestnanec id=“162”><meno>Jozef Kruty</meno><pozicia>XML specialista</pozicia><pracovna_napln>
<hlavna_zodpovednost>vytvaranie XML</hlavna_zodpovednost><ine>sprava vykazov, kontrola kvality</ine>
</pracovna_napln><plat mena=“eur”>1498</plat>
</zamestnanec></firma>
Tvorba XML schémy (1)elementy
•Alternatíva k DTD•Výhoda – píše sa ako well-formed XML
• Tvorba XML schémy• 1. V XML je koreňový element je vždy schema• 2. v koreňovom elemente deklarujeme namespace• http://www.w3.org/2001/XMLSchema
<?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
• XML schéma obsahuje elementy:• <xsd:complexType> - označuje, že element obsahuje ďalšie podelementy• <xsd:all> - musia byť použité všetky podelementy daného elementu, ale
na ich poradí nezáleží• <xsd:sequence> - musia byť použité všetky podelementy daného
elementu, ale na ich poradí záleží• <xsd:choice> - výber jedného z možných podelementov• Ak element neobsahuje žiadne podelementy, tak sa píše iba typ
elementu a nepoužíva sa element complexType
<xsd:element name=“meno” type=“xsd:string”>
Tvorba XML schémy (3)elementy
•Každý element musí byť pomenovaný t.j. obsahuje atribút name• Elementy, ktoré obsahujú ďalšie elementy sa
nazývajú komplexným typom
<xsd:element name=“root”><xsd:complexType></xsd:complexType>
</xsd:element>
Tvorba XML schémy (4)•Atribúty elementu vždy definujeme za definíciou
elementov
<xsd:attribute name=“krajina_povodu” type=“xsd:string”>
•Pri každom elemente je možné počit min. a max. počet jeho opakovaní• Atribút minOccurs – min. počet opakovaní elementu• Atribút maxOccurs – max. počet opakovaní elementu
<xsd:element name="nazov" type="xsd:string" minOccurs="1" maxOccurs="unbounded“/>
Príklad 2<?xml version="1.0"?><zoznam>
<spisovatel krajina_povodu="Nemecko"><meno>Erich Maria Remarque</meno><dielo>
<nazov>Na zapade nic nove</nazov><zaner>roman</zaner>
</dielo></spisovatel><spisovatel krajina_povodu="USA">
<meno>Ernest Hemingway</meno><dielo>
<nazov>Zbohom zbraniam</nazov><zaner>roman</zaner>
</dielo></spisovatel>
</zoznam>
Pripojenie schémy ku dokumentu
XML dokument:</xml version=“1.0” encoding=“UTF-8”>
<meno xmlns=“http://www.priklad.sk/nieco”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://www.priklad.sk/nieco file:subor.xsd”></meno>
XML schéma:
<xsd:schemaxmlns:xsd=http://www.w3.org/2001/XMLSchemaelementFromDefault=“qualified”targetNamespace=“http://nieco.org/nieco”>
Dátové typy elementov a atribútov
• String• Boolean• Integer• Decimal• Float• Double• Byte• ...• (mnohé iné ako napr. gYear, Date, time, gYearMonthYear, anyUR, token,
language...)
Obmedzené typy
• Príklad obmedzeného dátového typu – derivácia typu string s obmedzením na reťazec maximálnej dĺžky 20 znakov
<xsd:simpleType name="novy_typ"><xsd:restriction base="xsd:string"><xsd:maxLength value=“20”/></xsd:restriction>
</xsd:simpleType>
• Nový typ sa používa nasledovne:<xsd:element name="meno" type="novy_typ">
Dostupné obmedzenia• enumeration – zoznam akceptovateľných hodnôt• fractionDigits – maximálny počet desatinných miest• length – presný počet znakov alebo prvkov zoznamu• maxExclusive – horná hranica (<)• maxInclusive – horná hranica (<=)• maxlength – maximálny počet znakov alebo prvkov zoznamu• minExclusive – dolná hranica (>)• minInclusive – dolná hranica (>=)• minLength – minimálny počet znakov alebo prvkov zoznamu• pattern – presná sekvencia akceptovateľných znakov• totalDigits – presný počet povolených číslic• whiteSpace – spracovanie bielych znakov
Zmiešané hodnoty (1)
• Ak element obsahuje atribút a zároveň neobsahuje ďalší podelement<cena mena=“EUR”>254</cena>
• Ak element obsahuje aj jednoduchý dátový typ a zároveň obsahuje aj ďalšie podelementy
<meno>Martin Lesný<pohlavie>muž</pohlavie>
</meno>
Zmiešané hodnoty (2)obsahuje atribút a žiaden podelement
<xsd:element name="meno"><xsd:complexType>
<xsd:simpleContent><xsd:extension base="xsd:string"><xsd:attribute name="cislo" type=„novy_typ"/></xsd:extension>
</xsd:simpleContent></xsd:complexType>
</xsd:element>
• Pozn.: novy_typ je obmedzený typ definovaný skôr• simpleContent – element môže obsahovať jednoduché hodnoty a nie element
Zmiešané hodnoty (2)obsahuje jednoduchý dátový typ alebo podelementy
<xsd:element name="meno"><xsd:complexType mixed="true">
<xsd:all><xsd:element name="narodnost" type="xsd:string"/>
</xsd:all><xsd:attribute name="cislo" type="patciferne_cislo"/>
</xsd:complexType></xsd:element>
Príklad 3• Vytvorte XML schému popisujúcu daný obrázok. Použite aj vhodné
obmedzenia.
Príklad 4• Vytvorte XML schému popisujúcu daný obrázok. Použite aj vhodné
obmedzenia.