Az XML S chema deklarációs nyelv oktatási s egédlet

Hasonló dokumentumok
A szoftver és hardverfüggetlen adatbázis

XML. XML dokumentumok alapszerkezete. XML ( / ) 5

XML az Extensible Markup Language (Kiterjeszthet jelöl nyelv) szavak rövidítése. XML a World Wide Web Konzorcium (W3C) ajánlása, amely kompatíbilis

Web-fejlesztés NGM_IN002_1

XML adatkezelés. 5. témakör. Nincs explicit névtér kijelölve. <?xml version="1.0"?> <xs:schema xmlns:xs="

Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint Bevezetés a nyelvtechnológiába 2. gyakorlat szeptember 20.

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

XMLgessünk 12. rész: Az XML Schema

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

DTD Dokumentumtípus definició

XmlGessünk 13. rész - Az XML Schema II.

Általános nyomtatványok xml szerkezete. (v1.3)

XML. Document Type Definitions (DTD) XML séma

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Fejlett Adatbázis Technológiák - Jegyzet Dr. Adamkó, Attila

Az XML dokumentumok adatmodellje

XML sémanyelvek Jeszenszky, Péter

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

XML avagy az univerzális információelérés álma

Adatkezelés - XML. XML 3 XML séma

Main schema Types_uj.xsd. Simple Type HirkozlesVezetekFektetesJellegeEnum. Simple Type HirkozlesVezetekCelTipusEnum. Annotations

Az XML szabvány. Az XML rövid története. Az XML szabvány

az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális

Az XML alapjai BME VIK BSc. Intelligens Rendszerek ágazat, Kooperatív rendszerek labor

XML sémák, adatmodellezés

Programozás II. 2. Dr. Iványi Péter

1. Öröklés Rétegelés Nyilvános öröklés - isa reláció Korlátozó öröklődés - has-a reláció

1. Az XML és XHTML nyelvek. Az XML leíró nyelv Szabályok XHTML írásra. Tartalom Az XML leíró nyelv

XML dokumentumok feldolgozása Java-ban XML, DTD, XSD, XSLT, JAXP, DOM, SAX, JDOM

Az XML Bevezetés. Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Utolsó módosítás:

Orvos Bejelentő Program (OBP) rekordkép 2. verzió XML formátum

Interfészek. PPT 2007/2008 tavasz.

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Programozási nyelvek (ADA)

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

DIPLOMAMUNKA. Szűcs Béla. Debrecen PDF processed with CutePDF evaluation edition

XML és XSLT (a színfalak mögül)

ROS Remote Operations Service

Bevezetés: az SQL-be

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

ETSI ES V1.1.1 ( )

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Az XML 1.0 szabvány. tanulmány. Készítette: Mészáros Tamás. Budapest, BME Méréstechnika és Információs Rendszerek Tanszék

Térinformatikai (GIS) és CAD adatmodellek és adatformátumok Digitális térképek előállítási technológiái, metaadatok szerepe

PDF-GENERÁLÁS ADATBÁZISBAN TÁROLT XML DOKUMENTUMOKBÓL

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

Zenetár a webszerverünkön,

Constraint-ek. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

Már megismert fogalmak áttekintése

CSS3 alapismeretek. Bevezetés a CSS-be. Mi is az a CSS? Alkalmazási formái, szintaxisa

Az informatika kulcsfogalmai

Az Informatikai és Hírközlési Minisztérium ajánlása a közigazgatásban alkalmazható. elektronikus aláírás formátumok műszaki specifikációjára

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

ü ö ű ö ű ö Ö ö ú ü Á ü ü ö

A házifeladatban alkalmazandó XML struktúra

Operációs Rendszerek II. labor. 2. alkalom

Bevezetés a C++ programozási nyelvbe

Web programozás I. 4. előadás

SQL DDL-1: táblák és megszorítások

XPath. dr. Paller Gábor. XML technológiák

SZAKDOLGOZAT. Bak Dániel Krisztián

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Java-ról Kotlinra. Ekler Péter AutSoft BME AUT. AutSoft

Javadoc. Dokumentációs megjegyzés (2) Dokumentációs megjegyzés (1) Dokumentációs megjegyzés felépítése

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

SQLServer. DB Recovery modes

Bevezetés, a C++ osztályok. Pere László

FUNKCIONÁLIS PROGRAMOZÁS

34. Elsődleges kulcs megadása XMLSchema-ban Idegen kulcs megadása XMLSchema-ban Típusok kategóriái és saját típus megadásának

Az XML pénzintézeti jelentések szintaxisa és feldolgozása (XmlPj)

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

A C programozási nyelv IV. Deklaráció és definíció

Az XML pénzintézeti jelentések szintaxisa és feldolgozása (XmlPj)

Egy adott szervezet programparamétereit tartalmazza Egy nyomtatványsablon Egy nyomtatvány kitöltési útmutatója

Regionális forduló november 19.

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

Komputeralgebra Rendszerek

Informatikai Navigátor Érdekes Java Programozói könyvtárak

Attribútumok, constraint-ek

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Adatmodellezés. 1. Fogalmi modell

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. Széchenyi István Egyetem, Gy r

AWK programozás, minták, vezérlési szerkezetek

Webes űrlapok és az XForms ajánlás

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

AWK programozás Bevezetés

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Multimédiás adatbázisok

Funkcionális Nyelvek 2 (MSc)

Java II. I A Java programozási nyelv alapelemei

OOP. Alapelvek Elek Tibor

Web-technológia PHP-vel

Regionális forduló november 19.

Átírás:

Az XML S chema deklarációs nyelv oktatási s egédlet Mészáros Tamás mes zaros@ mit.bme.hu Budapesti M űszaki E gyetem M éréstechnika és Információs R ends zerek Tans zék A z XML S c h e ma d e kl a r á c ió s n ye l v 1

Az XML S chema deklarációs rendszer Az alap XML szabvány deklarációs rendszerének (DTD) problémái: nem XML szintaxisú nem támogatja az XML Névtér szabványt nincs igazi adattipizálás komplex deklarációk készítését gyengén támogatja M egoldás: XML S chema szabvány (W3C, 2001) X M L formátumú dokumentum gazdag típusválaszték új típusok létrehozási lehetősége új öröklési (egymásba ágyazhatósági) modellek X M L Névtér támogatás (kötelező használat) A z XML S c h e ma d e kl a r á c ió s n ye l v 2

XML Névterek XM L Namespaces probléma: több deklaráció összekapcsolása esetén névütközés megoldás: névterek, melyek egyértelműen azonosítják a címkék szemantikáját formai újítás: a címkék ellátása névtér előtaggal (prefix) prefix deklaráció külső erőforrás megadásával tipikus használat: X S L, S chema deklarációk Az XM L Névterek alkalmazása deklaráció: attribútum megadásával xmlns="http://www.w3.org/2001/xmlschema" xmlns:xs="http://www.w3.org/2001/xmlschema" alkalmazás: alapértelmezett névtér vagy explicit jelölt névtér <xs:schema>...</xs:schema> A z XML S c h e ma d e kl a r á c ió s n ye l v 3

A S chema és a DTD viszonya (példa) D TD deklaráció <!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> XML dokumentum <?xml version="1.0"?> <note> <to>juli</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> S chema deklaráció <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlsc hema"> <xs:element name="note"> <xs:complextype> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> A z XML S c h e ma d e kl a r á c ió s n ye l v 4

E gy összetett S chema példa <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="purchaseorder" type="purchaseordertype"/> <xsd:element name="comment" type="xsd:string"/> <xsd:complextype name="purchaseordertype"> <xsd:sequence> <xsd:element name="shipto" type="usaddress"/> <xsd:element name="billto" type="usaddress"/> <xsd:element ref="comment" minoccurs="0"/> <xsd:element name="items" type="items"/> </xsd:sequence> <xsd:attribute name="orderdate" type="xsd:date"/> </xsd:complextype> <xsd:complextype name="usaddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:nmtoken" fixed="us"/> </xsd:complextype> <xsd:complextype name="items"> <xsd:sequence> <xsd:element name="item" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="productname" type="xsd:string"/> <xsd:element name="quantity"> <xsd:simpletype> <xsd:restriction base="xsd:positiveinteger"> <xsd:maxexclusive value="100"/> </xsd:restriction> </xsd:simpletype> </xsd:element> <xsd:element name="usprice" type="xsd:decimal"/> <xsd:element ref="comment" minoccurs="0"/> <xsd:element name="shipdate" type="xsd:date" minoccurs="0"/> </xsd:sequence> <xsd:attribute name="partnum" type="sku" use="required"/> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> <!-- Stock Keeping Unit, a code for identifying products --> <xsd:simpletype name="sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> </xsd:schema> A z XML S c h e ma d e kl a r á c ió s n ye l v 5

A S chema példa XM L dokumentuma <?xml version="1.0"?> <purchaseorder orderdate="1999-10-20"> <shipto country="us"> <name>alice Smith</name> <street>123 Maple Street</street> <city>mill Valley</city> <state>ca</state> <zip>90952</zip> </shipto> <billto country="us"> <name>robert Smith</name> <street>8 Oak Avenue</street> <city>old Town</city> <state>pa</state> <zip>95819</zip> </billto> <comment>hurry, my lawn is going wild! </comment> <items> <item partnum="872-aa"> <productname>lawnmower</productname> <quantity>1</quantity> <USPrice>148.95</USPrice> <comment>confirm this is electric</comment> </item> <item partnum="926-aa"> <productname>baby Monitor</productName> <quantity>1</quantity> <USPrice>39.98</USPrice> <shipdate>1999-05-21</shipdate> </item> </items> </purchaseorder> a S chema deklaráció nem eredményez más XML dokumentumot az előny a dokumentum feldolgozásakor, ellenőrzésekor jelentkezik A z XML S c h e ma d e kl a r á c ió s n ye l v 6

A S chema deklarációs rendszer fogalmi alapjai C él névtér (target namespace) A deklarált nyelv névtere, amelynek a részei a megalkotott S chema dokumentum deklarációi (típus ok, elemek, attribútumok, stb.) M inős ített név (qualified name) Azon nevek, amelyeket névtér segítségével értelmezünk. Ilyenek pl. a minősítő előtaggal (prefix) ellátott nevek (xhtml:table). A minősítés egyértelművé teszi, hogy a nevek milyen névtérhez tartoznak. X M L dokumentum példány (instance document) a deklaráció alapján elkészített X M L dokumentum a deklarációs cél- és az X M LS chema-instance névtérre támaszkodik A z XML S c h e ma d e kl a r á c ió s n ye l v 7

XM L deklaráció B ud a pe s t i Műs za ki E g ye t e mmé r é s t e c h n ika é s In f o r má c ió s R e n d s ze r e k A S chema deklaráció felépítése <?xml version="1.0"?> S chema gyökérelem <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> opcionális dokumentáció a teljes deklarációról <xsd:annotation> <xsd:documentation>... </xsd:documentation> </xsd:annotation> deklarációk: elemek és attribútumok, típus ok, stb. A z XML S c h e ma d e kl a r á c ió s n ye l v 8

A S chema és a deklarációs névterek A S chema szabványban rögzített címkék (a deklarációs nyelv elemei) az XMLSchema névtérben vannak rögzítve <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> A S chema dokumentum deklarálja az általa leírt cél névteret: <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:po="http://www.example.com/po1" xsd:targetnamespace="http://www.example.com/po1"> S chema deklaráció alapján létrehozott XM L dokumentumok a cél névtérre és az X M LS chema-ins tance névtérre hivatkozhatnak <?xml version="1.0"?> <po:purchaseorder xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:po="http://www.example.com/po1" orderdate="1999-12-01"> A z XML S c h e ma d e kl a r á c ió s n ye l v 9

Névterek, deklaráció és dokumentum példány S chema névtér xsd: s chema, element, attribute, Alkalmazás cél névtér po: purchaseo rder, comment, S chemainstance névtér xsi: schemalocation, type használja deklarálja használja használja használja S chema deklaráció XML dokumentum példány <?xml version="1.0"?> <xsd:schema targetnamespace="http://www.example.com/po1" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:po="http://www.example.com/po1"> <xsd:element name="purchaseorder" type="po:purchaseordertype" /> <?xml version="1.0"?> <po:purchaseorder orderdate="1999-10-20" xmlns:xsi="http://www.w3.org/2001/xmlschema-i xmlns:po="http://www.example.com/po1" xsi:schemalocation="http://www.example.com/po...... A z XML S c h e ma d e kl a r á c ió s n ye l v 1 0

Hivatkozás a S chema deklarációra A S chema dokumentum a saját névterét is használhatja: <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:po="http://www.example.com/po1" xsd:targetnamespace="http://www.example.com/po1" xsd:elementformdefault="unqualified" xsd:attributeformdefault="unqualified"> A dokumentum példány megadja a névteret és a deklaráció elérés ét <?xml version="1.0"?> <po:purchaseorder xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:po="http://www.example.com/po1" xsi:schemalocation="http://www.example.com/po1 po1.xsd" orderdate="1999-12-01"> A z XML S c h e ma d e kl a r á c ió s n ye l v 1 1

S chema deklarációk A S chema egy moduláris deklarációs rends zer (sok objektum-orientált koncepciót átvett) egyszerűbb komponensekből (elemek, attribútumok) összetett komponensek építhetők a beépített típusok szűkíthetők, bővíthetők saját típusok is létrehozhatók A S chema a struktúra mellett az adattípusokat is pontosan rögzíti a tipizálást meghatározó egyszerű típusok és a lehetséges struktúrákat leíró összetett típusok deklarációja szétválik (maga a szabvány is két elkülönített részt szentel ezeknek) G lobális és lokális deklarációk közvetlenül a schema gyökérelem alatti, ún. globális deklarációk bárhol felhasználhatók, bármelyikük lehet gyökérelem az XM L példányokban a globális deklarációk gyermekei a lokális deklarációk A z XML S c h e ma d e kl a r á c ió s n ye l v 1 2

E gyszerű típus ok deklarációja és származtatása E gyszerű típusok, amelyeknek nincs belső XM L struktúrája atom lista unió A S chema nyelv számos beépített egyszerű (atom) típussal rendelkezik string, integer, float, boolean, date, time, stb. Az egys zerű típusokból továbbiakat s zármaztathatunk s zűkítés s el A lista (xsd:list) egyszerű típussal rendelkező adatokat kapcsol össze vannak beépített lista típusok az egys zerű típusok felhasználásával további típusok is deklarálhatók a listákra többféle megkötés t is tehetünk (méret, minták, stb.) Az unió (xsd:union) egyszerű típusok egy halmaza, melynek elemei közül bármelyik szerepelhet a dokumentum példányban. S peciális egyszerű típus: anys impletype (nem származtatható, s peciális es eteket kivéve kerülendő az alkalmazás a) A z XML S c h e ma d e kl a r á c ió s n ye l v 1 3

E gyszerű típusok deklarációja példák <xsd:simpletype name="myinteger"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="10000"/> <xsd:maxinclusive value="99999"/> </xsd:restriction> </xsd:simpletype> <xsd:simpletype name="listofmyinttype"> <xsd:list itemtype="myinteger"/> </xsd:simpletype> <!-- példa: <listofmyint>20003 15037 95977 95945</listOfMyInt> --> <xsd:simpletype name="sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> A z XML S c h e ma d e kl a r á c ió s n ye l v 1 4

Komplex típusok deklarációja Komplex típus az, amelynek van beágyazott gyermek eleme vagy rendelkezik attribútummal. Összetett típusok létrehozhatók egyszerű típusokból elemekhez attribútum hozzárendelésével (az elem tartalmának nem változik a típusa, de kapcsolódik hozzá egy attribútum) elemek összekapcsolásával s orozat (xsd:s equence) elemekből álló struktúra (complexc ontent) akár karakteres adatokkal vegyes en is ( mixed attribútum) üres vagy tetszőleges tartalom beágyazásával más komplex típusok szűkítésével A z XML S c h e ma d e kl a r á c ió s n ye l v 1 5

Komplex típus ok deklarációja példa <xsd:element name="ukprice"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:decimal"> <xsd:attribute name="currency" type="xsd:string"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> A z XML S c h e ma d e kl a r á c ió s n ye l v 1 6

Típusok elnevezése és anonim típusok Az általunk deklarált típusokhoz neveket rendelhetünk. Az elemek a type attribútummal hivatkozhatnak a típus nevekre. Lehetőségünk van anonim típusok alkalmazására is (tipikusan az egyszer has ználatos deklarációk es etében) ebben az esetben nincs type attribútum a típusdeklaráció a felhasználási helyén található <xsd:element name="ukprice"> <xsd:complextype> <xsd:simplecontent>... </xsd:simplecontent> </xsd:complextype> </xsd:element> A z XML S c h e ma d e kl a r á c ió s n ye l v 1 7

Típusdeklarációk módos ítói (facets) xs d:whites pace üres (tabulátor, soremelés, újsor) karakterek kezelése többszörös és záró szóközök lenyelése tipikus értékkészlet módos ítók: xsd:enumeration xsd:length xsd:minlenght xsd:maxlength xsd:minexclusive (Inclusive) xsd:maxexclusive (Inclusive) xsd:pattern a módosítók alkalmazhatósága és hatása függ a módosított típustól is A módosítók nem változtathatják meg a típust annak eredeti deklarációjával ellentétes en (pl. nullánál kis ebb pozitív s zám). A z XML S c h e ma d e kl a r á c ió s n ye l v 1 8

Típusdeklarációk módosítói (facets) példák <xsd:simpletype> <xsd:restriction base = "xsd:string"> <xsd:length value = "2" /> </xsd:restriction> </xsd:simpletype> <xsd:simpletype> <xsd:restriction base = "xsd:string"> <xsd:pattern value="[a-z]{2}" /> </xsd:restriction> </xsd:simpletype> A z XML S c h e ma d e kl a r á c ió s n ye l v 1 9

D eklaráció B ud a pe s t i Műs za ki E g ye t e mmé r é s t e c h n ika é s In f o r má c ió s R e n d s ze r e k E lemek deklarációja <xsd:element name="..." type="...">...</xsd:element> A S chema tartalom modellek a deklarált típusokra támas zkodva hozzuk létre őket a S chema nyelv a DTD-nél szabadabb módon teszi lehetővé az elemek csoportosítását, illetve ezen csoportok elnevezését az elemek összekapcsolásának operátorai (csoportosítások) choice sequence all group a tartalom modellben hivatkozhatunk máshol deklarált elemekre <xsd:element ref="comment" /> A z XML S c h e ma d e kl a r á c ió s n ye l v 2 0

Globális és lokális elemdeklarációk A globális deklarációk közvetlenül a gyökér (xsd:schema) elem alatt vannak. nem hivatkozhatnak más globális elemekre (ref attribútum) nem has ználhatják a minoccurs és maxoccurs módosítókat a lokális deklarációkban hivatkozhatunk rájuk, és további szűkítést is alkalmazhatunk (pl. minoccurs és maxoccurs) dokumentum példányok gyökér elemei lehetnek A nem globális deklarációk lokális ak. más deklarációk belsejében helyezkednek el, érvényességük is arra terjed ki A z XML S c h e ma d e kl a r á c ió s n ye l v 2 1

D eklarációjuk B ud a pe s t i Műs za ki E g ye t e mmé r é s t e c h n ika é s In f o r má c ió s R e n d s ze r e k Attribútumok deklarációja <xsd:attribute name="..." type="...">...</xsd:attribute> Különböző módosítókat (S chema attribútumokat) alkalmazhatunk default fixed use = (optional prohibited required) : optional... Az attribútumok cs oportokba s zervezhetők a dokumentumpéldányokban együtt használt attribútumok összefogása <xsd:attributegroup name="garmentgroup"> <xsd:attribute name="size" type="xsd:string"/> <xsd:attribute name="color" type="xsd:string"/> <xsd:attribute name="manufacturer" type="xsd:string"/> </xsd:attributegroup> Az elemekhez hasonlóan globálisan és lokálisan is deklarálhatjuk őket. A z XML S c h e ma d e kl a r á c ió s n ye l v 2 2

D okumentálás (annotációk) E mberek és alkalmazások számára is készíthetjük őket. A deklarációk dokumentálás a a deklaráció elején történik. <xsd:complextype> <xsd:annotation> <xsd:documentation xml:lang="en"> empty anonymous type with 2 attributes </xsd:documentation> </xsd:annotation> <xsd:complexcontent> </xsd:complexcontent> </xsd:complextype> </xsd:element> Az annotációkban célszerű rögzíteni a nyelvet (xml:lang attribútum) A jó dokumentáció nemcsak a leendő felhasználókat segíti, de a deklarációk kés őbbi módosítás át (a felidézést) is. A z XML S c h e ma d e kl a r á c ió s n ye l v 2 3

S chema dokumentumok ös szekapcs olás a Küls ő deklarációs dokumentum betöltés e ekvivalens a dokumentum tartalmának bemásolásával <xsd:include schemalocation=".xsd" /> ugyanazt a cél névteret alkalmazzuk a deklarációkban Küls ő deklarációk betöltése és újradefiniálás a a bemás olás után lehetőségünk van a deklarációk módosítására <xsd:redefine schemalocation=".xsd">...</xsd:redefine> ebben az esetben is ugyanazt a cél névteret alkalmazzuk a deklarációkban M ás névterek deklarációit is betölthetjük ekvivalens a dokumentum tartalmának bemásolásával <xsd:import namespace="..." schemalocation=".xsd"> az új névtér deklarációit felhasználhatjuk a dokumentumunkban alapvetően típusok újrahasznosítására használjuk az import mechanizmust A z XML S c h e ma d e kl a r á c ió s n ye l v 2 4

A S chema deklaráció előnyei (összefoglalás) A programozási nyelvekben megszokott típusválasztékot kínálja (többet is) számok, dátumok, UR I, boolean, időintervallumok értékkészlet minta s zerinti rögzítése Komplex, felhasználói típusok is létrehozhatók elemeket s trukturálhatunk, tipizálhatunk csoportosíthatjuk is őket az egyszerűbb felhasználás érdekében speciális szövegstruktúrákat (listákat) is használhatunk Nyitott, finomítható dokumentum s truktúrák objektum-orientált dokumentum deklarációnak is nevezik az egys zerű típusok esetében is (értékkészlet meghatározás a) szűkítés: a meglevő struktúra elemeinek elhagyása kiterjesztés: új elemek hozzáfűzése egy meglevő struktúrához A z XML S c h e ma d e kl a r á c ió s n ye l v 2 5

Ajánlott irodalom A z XML S c h e ma d e kl a r á c ió s n ye l v 2 6

X M L dokumentumok minősítése Jól formázott dokumentum (kötelező követelmény) betartja a szabvány szintaktikai előírásait eredménye, hogy könnyebb nyelvi elemzőt írni É rvényesség a dokumentum megfelel a deklarációjának enélkül is elemezni tudjuk a dokumentumot hozzájárul a dokumentum tartalmi megértéséhez a tárolt információ kinyeréséhez elengedhetetlen S chema érvényesség a dokumentumnak van S chema deklarációja tipizált deklaráció és tartalom lehetővé válik a pontosabb deklaráció és feldolgozás a programozási nyelvek típuskészletét felhasználva A z XML S c h e ma d e kl a r á c ió s n ye l v 2 7