140 likes | 274 Views
Technol ógie XML Prednáška č. 5. XML Sch éma (pravidlá návrhu). Z minula. Formáty pre zápis schém potrebujeme pretože: Definuje elementy a atribúty použiteľné v dokumente. Prípustné možnosti kombinovania. Dátový typ pre obmedzenie obsahu element / atribútu.
E N D
Technológie XMLPrednáška č.5 XML Schéma (pravidlá návrhu)
Z minula • Formáty pre zápis schém potrebujeme pretože: • Definuje elementy a atribúty použiteľné v dokumente. • Prípustné možnosti kombinovania. • Dátový typ pre obmedzenie obsahu element/atribútu. • Schéma je formálna definícia jazyka a z toho vyplývajúca možnosť validácie. • Ľahšia programová manipulácia.
Jazyky pre zápis schémy • DTD • Vychádza zo SGML • XML Schema • Komplexný avšak špecifikácia je pomerne zložitá. • Relax NG • Nový a elegantný jazyk pre popis schém. • Schematron • Jazyk postavený na XPath
XML Schéma • XML smeruje do oblasti databáz kde DTD nedokáže vyhovieť požiadavkám. • Poskytuje množstvo dátových typov a tým dovoľuje pokročilejšiu typovú kontrolu. • XML Schéma • Dátové typy: • Jednoduché = reťazec, číslo, ... • Komplexné – obsahujú ďalšie elementy a a atribúty. • od existujúcich typov je možné odvodzovať vlastné aplikovaním obmedzenia na jeden zo zabudovaných typov.
Pokročilejšie rysy XML Schémy • XML Schema ako samodokumentujúci formát: • Rovnako ako API dokuemtácia je generovaná zo zdrojového kódu, tak aj dokumentácia k schéme môže byť tvorená aplikáciou XSLT štílu. <xs:elementname="zamestnanec"> <xs:annotation> <xs:documentation>Element je dôležitý! </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> ...
Modelovanie obsahu • sekvenia zasebou idúcich elementov– <xs:sequence> • výběrjednoho z elementů – <xs:choice> • nezáleží na pořadí elementů – <xs:all> • smíšený obsah (mezi elementy se může objevit text) – <xs:complexType mixed="true">
Validacia • Pred validáciou musíme špecifikovať, kde je možné schému nájsť. <dokument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dokument.xsd"> ... </dokument>
Validacia Príklad XML schéma – dokument.xsd <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:elementname="dokument"> ...
Validacia • Xerces • knižnice pre preparsrovanie, validaciu, serializaciu a manipuláciu s XML. • knižnica implementuje množstvo štandardných API pre XML. • Implementacia je dostupna pre jazyky Java, C++, Perl.
Databiding • pre dáta s dopredu známou štruktúrou je čítanie pomocou klasických API ako SAX alebo DOM nepohodlné • zo schémy je možné vygenerovať hierarchie tried, ktoré sú schopné reprezentovať dáta uložené v XML • triedy obsahujú kód pre serializáciu/deserializáciu • dátové typy XML schém sa namapujú na dátové typy daného jazyka • implementácia – Castor (Java), xsd (.NET)
Trang • V prípade potreby konverzie medzi rôznymi jazykmi. • Podporované sú: • Relax NG (XML syntax) • Relax NG (kompaktná syntax) • DTD • XML Shema* • Celá konštrukcia je postavená na Relax NG modely.
Pravidlá pre návrh schém • Potrebujeme vôbec atribúty?: • Kompaktnejší zápis. • Atomická premenná, ktorá je kľúčom. • Namespaces: • Každý nový XML súbor by mal obsahovať atribúty z vlastného namespace. • Elementy nepatriace nikam nedokážeme jednoducho a jednoznačne kombinovať. • Do namespace zaraďujeme len elementy nie ich atribúty • Názov namespace by mal byť ľahko zapametateľný.
Pravidlá pre návrh schém • Názvy elementov a atribútov: • Vyhnuť sa extremom typu: • V10; ECaleboSPZaleboVIN; ... • Defaultné (implicitné) hodnoty • Nie odporúčané – schéma upravuje obsah dokumentu. • Versioning • Verzia sa uvádza v koreňovom elemente ako atribút.
Domáca úloha • http://www.kosek.cz/xml/schema/index.html • Materiály o XML Scheme. • Spracovať príklad z písomky pomocou XML Schemy.