XML. XML dokumentumok alapszerkezete. XML ( / ) 5

Hasonló dokumentumok
XML sémanyelvek Jeszenszky, Péter

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

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

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

DTD Dokumentumtípus definició

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

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

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

Java II. I A Java programozási nyelv alapelemei

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

Bevezetés: az SQL-be

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

XML / CSV specifikáció

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

Web-fejlesztés NGM_IN002_1

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

KML Keyhole Markup Language

XML / CSV specifikáció

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

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

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

Az XML dokumentumok adatmodellje

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

XML sémák, adatmodellezés

Java II. I A Java programozási nyelv alapelemei

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Készítette: Nagy Tibor István

Programozás alapjai. 5. előadás

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

Az annotáció elvei. Oravecz Csaba MTA Nyelvtudományi Intézet MANYE vitaülés február 20.

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

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

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Az XML alapnyelv. dr. Paller Gábor. XML technológiá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

Algoritmizálás és adatmodellezés tanítása 1. előadás

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

PARTNER EXTRA. Leírás. Magyar Posta Zrt. Verzió:

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

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

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

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Programozás I gyakorlat

A PiFast program használata. Nagy Lajos

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Adatexport útmutató Könyvvizsgálói program számára átadott adatok XML formátumban

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

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Az XML kidolgozásakor a fejlesztés szempontjait tíz pontban foglalták össze:

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

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

ADATBÁZIS-KEZELÉS. Relációs modell

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

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

importxml_ xls Oldal 1/

Bevezetés a programozásba I.

PC Adatcsere program postafelügyeleti információk. Árinformációkat tartalmazó XML leírás. v.1.11.rev.1

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Komputeralgebra rendszerek

4. Javítás és jegyzetek

GS Pláza API dokumentáció

Komputeralgebra rendszerek

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

w w w. h a n s a g i i s k. h u 1

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Occam 1. Készítette: Szabó Éva

Programozás I gyakorlat

Formális nyelvek és automaták

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Lekérdezések az SQL SELECT utasítással

Fülöp Csaba, Kovács László, Micsik András

AWK programozás Bevezetés

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

C# gyorstalpaló. Készítette: Major Péter

Informatikai Rendszerek Alapjai

Regionális forduló november 19.

Regionális forduló november 19.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Metadata specifikáció

A C# programozási nyelv alapjai

Elektronikus levelek. Az informatikai biztonság alapjai II.

Egyéni számformátum létrehozása és törlése - Excel

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

Webszolgáltatások (WS)

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Webes alkalmazások fejlesztése 4. előadás. Megjelenítés és tartalomkezelés (ASP.NET Core) Cserép Máté

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

A C# PROGRAMOZÁSI NYELV

Bevezetés az SPSS program használatába

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Adatbázisok gyakorlat

Átírás:

XML ( www.logos2000.hu / cs.veg@xsys.hu ) 5 XML Egy általános leíró (Generalized Markup) formátum elve már a '60-as évek elején megjelent, azonban csak az SGML[2] nevű változat vált széleskörűen ismertté, melyet 1986-ban ISO szabványként fogadtak el. Az elterjedést elsősorban a World Wide Web dokumentumnyelve, a HTML[3] kidolgozása gyorsította meg, amely maga is egy SGML forma. Az SGML teljes eszközkészlete rendkívül összetett, ami nagyon megnehezítette az értelmező programok készítését, így hamarosan megjelent az igény egy egyszerűsített változat összeállítására. Maga a HTML is egy egyszerűsítés, azonban azt kezdetben elsősorban a kézzel (azaz nem programmal) történő dokumentumkészítésre tervezték, így ennek érdekében jelentős rövidítéseket tartalmaz. Másrészt, a HTML forma szövegek, dokumentumok összeállítására szolgál, így legtöbb eszköze többnyire felesleges, pl. adatok megadásánál. A W3 konzorcium 1996-ban 10 tervezési célt határozott meg egy egyszerűsített SGML nyelv megalkotására. Az Extensible Markup Language (XML) első, 1.0-ás változata 1998. február 10-én jelent meg. A célok között (az XML legyen könnyen használható az Interneten, támogassa az alkalmazások széles körét, stb.) szerepel az SGML-lel való kompatibilitás megőrzése, valamint, hogy programokkal egyszerűen elemezhető és feldolgozható legyen. XML dokumentumok alapszerkezete Minden XML dokumentum egy egyszerű szöveges forma, amit mind programmal, mind a legegyszerűbb szövegszerkesztőkkel is létrehozhatunk. A dokumentum egy XML-prológgal kezdődik, hasonlóan a következőhöz: <?XML version="1.0" encoding="utf-8"?> Láthatjuk, hogy a prológ tartalmazza az alkalmazott XML verziót, valamint tartalmazhatja a további szöveg kódolását. A továbbiakban (megjegyzésektől és egyéb kiegészítőktől eltekintve) pontosan egy elem állhat.

6 ( www.logos2000.hu / cs.veg@xsys.hu ) XML <?XML version="1.0" encoding="utf-8"?> <catalog> <book id="1091"> <title>xml everywhere</title> <author>john Smith, Joe Johnson</author> <price>27.95</price> </book> <book id="1341"> <title>besides</title> <author>george Black</author> <price>29.95</price> </book> </catalog> Az elem elnevezését "<" jelet követően kell megadnunk. A ">" előtt szerepelhetnek ún. attribútumok, mégpedig név és az "=" jelet követő, idézőjelek vagy aposztrófok közötti érték formában. XML-ben egy név (pl. elem vagy attribútum neve) kis vagy nagybetűvel, illetve aláhúzással kezdődhet, a további karakterek ezeken kívül pedig számjegyek, "." és "-" jelek lehetnek. A ">" jelet követően egyrészt szövegrészleteket, valamint további elemeket adhatunk meg. Az elemet le kell zárnunk, a "</" és ">" közötti elemnévvel (pl. </catalog>). Ha az elem nem tartalmaz további alelemeket és szöveges elemeket, hanem legfeljebb csak attribútumokat, akkor lehetőségünk van egy összevont, rövidített leírásra (pl. <book id="9999"/>), melyben a zárást jelölő "/" jel a ">" előtt szerepel. Az XML dokumentumban szerepelhetnek még megjegyzések a "<!--" és "- ->" jelek között, valamint ún. feldolgozó utasítások "<?név" és ">" között (ennek a formátumát követi az XML prológ is). Ha a szövegekben vezérlő jeleket is szeretnénk használni, akkor azok helyett a megfelelő entitásokat kell alkalmaznunk (pl. "<" helyett "<", "&" helyett "&"). Hosszabb, vezérlő jeleket is tartalmazó szövegek megadását egyszerűsítik az ún. CDATA szekciók; a "<![CDATA[" és "]]>" közötti szövegek esetén nem kell a vezérlőjeleket entitásokkal helyettesítenünk.

XML ( www.logos2000.hu / cs.veg@xsys.hu ) 7 XML névterek XML dokumentumokban gyakran előfordul, hogy többféle adatot szeretnénk egyszerre szerepeltetni. Például egy dátum-jellegű érték megjelenési formáját, vagy egy titkosított szöveg kódolását. Ugyancsak előfordulhat, hogy többféle adat esetén ugyanazok az elemnevek vagy attribútum-nevek fordulnak elő. A problémára az XML-névterek technikája nyújt megoldást. Minden névtér egy szótárként jelenik meg, így minden nevet egyértelműen azonosítani tudunk az alapján, hogy melyik szótárba tartozik. A megadás eszköze az ún. minősített név, mely esetén a névtér elnevezését követő ":" után adjuk meg a névtéren (mint szótáron) belüli elnevezést. A névterek deklarálása egy speciális, xmlns (az XML namespace alapján) elnevezésű névtérrel, attribútumként történik, ahol az attribútum értéke egy URI (WWW erőforrás azonosítója). <h:text xmlns:h="http://www.w3.org/tr/rec-html40> <h:b>félkövér</h:b> </h:text> Példánkban h elnevezéssel a HTML 4.0 névtérre hivatkozunk, így a szövegben előforduló h:b elemet egyértelműen html-formázásként azonosíthatjuk. A névtér elnevezését rövidítésként használjuk, s az URI fogja egyedi módon azonosítani a névteret, ezért két névtér elnevezés ugyanarra a szótárra, elnevezés-gyűjteményre is vonatkozhat, amennyiben a deklarációjukban az URI megegyezik. Az xmlns elnevezésű attribútummal egy alapértelmezett névteret határozunk meg, amely az összes nem minősített névre érvényes lesz. <html xmlns="http://www.w3.org/tr/rec-html40> <b>félkövér</b> </html> Dokumentum- és adatorientált XML Az XML tervezésekor szempont volt, hogy az a HTML-hez hasonló formázott dokumentumok készítésére is alkalmas legyen. Az ilyen dokumentumok a

8 ( www.logos2000.hu / cs.veg@xsys.hu ) XML HTML-nél szigorúbb szabályoknak felelnek meg, ugyanakkor tetszőleges, mind informatív, mind formázó-elemeket is tartalmazhatnak. Ezt a formát dokumentumorientált XML-nek nevezik. Dokumentumorientált XML-ben egy elemen belül vegyesen fordulhatnak elő mind a szövegek, mind az alelemek. A következő példánkban a title elemen belül két szöveges elem között egy "i" elem is szerepel. <note> <author>joe</author> <title>writing <i>document oriented</i> XML</title> </note> Az XML használatával egyre inkább előtérbe kerültek az adatorientált XML dokumentumok, amelyeket elsősorban programok állítanak elő, vagy programok számára készítenek, illetve (mindkettő esetén) programok közötti kommunikációra használnak. Adatorientált XML a korábbi példánk: <catalog> <book id="1091"> <title>xml everywhere</title> <author>john Smith, Joe Johnson</author> <price>27.95</price> </book> <book id="1341"> <title>besides</title> <author>george Black</author> <price>29.95</price> </book> </catalog> Az adatorientált XML jóval egyszerűbb, szerkezetében sokkal szorosabb szabályokat teljesít: Az egymás utáni szöveges elemeket (beleértve az entitásokat és a szövegek közvetlen megadására szolgáló CDATA szekciókat is) egyetlen szöveges elemnek tekintjük. Az elem-jelöléseket követő újsor utáni töltőkarakterek (whitespace-ek) figyelmen kívül hagyhatók, Egy elemnek vagy csak legfeljebb egy (nem üres) szöveges eleme lehet, vagy csak alelemei lehetnek. Az értelmezés során figyelmen kívül hagyhatók a megjegyzések és a feldolgozó utasítások.

XML sémák ( www.logos2000.hu / cs.veg@xsys.hu ) 9 XML sémák Az XML dokumentumok önmagukban sajnos gyakorlatilag alkalmatlanok az önleírásra. A W3C ajánlások eszköztárában az XML-sémáknak[11] a célja az XML dokumentumok külső szerkezeti leírása. Egy XML séma maga is egy XML dokumentum, amely adott névterű adott elemekhez konkrét szemantikát rendel. A következőkben sorra vesszük az XML sémában definiált elemi típusokat és az alapvető kombinációs eszközöket. A XML séma ismertetésekor az ajánlás szövegét és példáit követjük. A példákban az xsd névtér-prefix az XML séma névterére vonatkozik, melyet a http://www.w3.org/2001/xmlschema URI definiál. Az XML sémák elemi értéktípusai Az XML sémák elemi típusai a következők: Szöveges típusok: string (pl.: egy szöveg): tetszőleges szöveg normalizedstring (pl.: egy szöveg): a szövegből a többszörös töltő- (whitespace) karakterek egyetlen szóközre vannak cserélve token: mint a normalizedstring, de a vezető és záró szóközök elhagyásával A normalizedstring és a token szabályai részben az XML szövegmegadásainak a sajátosságai miatt szükségesek, részben pedig valamely szövegként ábrázolt elnevezés vagy összetett érték elemzésének megkönnyítésére. Bináris adattípusok: base64binary (pl.: GpM7) hexbinary (pl.: 0FB7) A bináris típusok segítségével tetszőleges bináris adatot (pl. képeket, hangokat, stb.) szöveges módon adhatunk meg. Az előfeldolgozó a dekódolással előállíthatja a bináris adatterületet, készen a további feldolgozásra.

10 ( www.logos2000.hu / cs.veg@xsys.hu ) XML sémák Szám típusok: byte (pl.: -1, 126) unsignedbyte (pl.: 0, 126) integer (pl.: -126789, -1, 0, 1, 126789) positiveinteger (pl.: 1, 126789) negativeinteger (pl.: -126789, -1) nonnegativeinteger (pl.: 0, 1, 126789) nonpositiveinteger (pl.: -126789, -1, 0) int (pl.: -1, 126789675) unsignedint (pl.: 0, 1267896754) long (pl.: -1, 12678967543233) unsignedlong (pl.: 0, 12678967543233) short (pl.: -1, 12678) unsignedshort (pl.: 0, 12678) decimal (pl.: -1.23, 0, 123.4, 1000.00) float (pl.: -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN): egyszeres pontosságú lebegőpontos érték double (pl.: -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN): duplapontosságú lebegőpontos érték Ahogy az ajánlás leírása külön is felhívja a figyelmet: azonos értéknek több megadása is lehetséges (10, 10.0, 1E1, stb.), melyek az érték szöveges formája vagy tárolása esetén természetesen eltérhetnek. Az XML séma szám-típusai között találunk gépfüggő típusokat (pl. byte, int, stb.), valamint alap típusokat (integer, decimal). Valójában csak az egész (integer) valamint az általános szám (decimal) jelent ténylegesen különböző típusokat, a többi az értéktartományra vonatkozó korlátozással megadható vagy csak a tárolási módra vonatkozó utalást tartalmaz (nem decimálisan, hanem binárisan van tárolva), ami egy technikai megoldás. Logikai típus: boolean (pl.: true, false, 1, 0) Logikai típusok értékének megadásakor a true és false szövegek mellett engedélyezettek az 1 és 0 karakterek is. Dátum, idő, időtartam: date (pl.: 1999-05-31) time (pl.: 13:20:00.000, 13:20:00.000-05:00)

XML sémák ( www.logos2000.hu / cs.veg@xsys.hu ) 11 datetime (pl.: 1999-05-31T13:20:00.000-05:00, azaz 1999 május 31, délután 1:20 a -5 órás (Eastern Standard Time) időzónában) duration (pl.: P1Y2M3DT10H30M12.3S, azaz 1 év, 2 hónap, 3 nap, 10 óra, 30 perc, és 12.3 másodperc) gmonth (pl.: --05--, azaz május hónap) gyear (pl.: 1999, azaz az 1999. év) gyearmonth (pl.: 1999-02, azaz 1999. február hónapja) gday (pl.: ---31, azaz bármely hónap 31-ik napja) gmonthday (pl.: --05-31, azaz bármely év május 31.) Megfigyelhetjük, hogy a dátum és időtartam értékei különböző pontossággal is megadhatók, illetve lehetőség van a dátum elemeinek a leírására is. A "g" prefixek a Gregorián naptárra utalnak. Név, nyelv és URI: Name (pl.: shipto) XML 1.0 név (pl. elem vagy attribútumnév) QName (pl.: po:usaddress) : XML névtér minősített neve NCName (pl.: USAddress): XML névtér lokális neve, azaz egy minősített név a prefix és a kettőspont nélkül anyuri: URI (pl.: http://www.example.com/doc.html#id5, http://www.example.com/ ) language (pl.: en-gb, en-us, fr): az XML 1.0-ban definiált xml:lang attribútumban megadható nyelvkódok Ezen típusok az XML dokumentum leírásával kapcsolatosak, annak technikáira, jelöléseire vonatkoznak. XML 1.0 attribútum-típusok: ID IDREF IDREFS ENTITY ENTITIES NOTATION NMTOKEN NMTOKENS Ezen típusok is az XML dokumentum leírásával kapcsolatosak, annak technikáira, jelöléseire vonatkoznak.

12 ( www.logos2000.hu / cs.veg@xsys.hu ) XML sémák Az XML séma elemi típusaiból további származtatott típusok képezhetők bizonyos korlátozók megadásával. A lehetséges korlátozók a következők: length, minlength, maxlength: a szöveges megadás pontos, minimális vagy maximális hosszának a megadása pattern: megadhatjuk (reguláris kifejezésként) a szöveges megadás formátumát enumeration: felsorolhatjuk elemenként a felvehető értékeket whitespace: megadhatjuk a szóközök előfeldolgozását, ami lehet o preserve: feldolgozatlanul hagyás o replace: a töltőkarakterek (beleértve az újsort is) átcserélése szóközökre o collapse: a replace után az ismétlődő, valamint a kezdő és záró szóközök cseréje egyetlen szóközre. maxinclusive, maxexclusive, minexclusive, mininclusive: megadhatjuk a felvehető értékek tartományának alsó vagy felső határát, a határt beleértve vagy kihagyva (nyílt és zárt intervallumok) totaldigits, fractiondigits: kiköthetjük a számjegyek teljes, illetve a tizedesjegyek maximális számát Az enumeration megadásával gyakorlatilag felsorolásos értéket definiálhatunk. A pattern megadásával a formátumot rögzíthetjük. A whitespace használata elsősorban valamely szövegként megfogalmazott összetett értékre vagy elnevezések sorozatára utal. Tekintsünk egy rövid példát, amely egy raktári tételt olyan szövegként definiál, amely három számjegyből, majd egy kötőjelet követően két (nagy)betűből áll: <xsd:simpletype name="sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> A második példa az USA államok listáját határozza meg: <xsd:simpletype name="usstate"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ak"/> <xsd:enumeration value="al"/> <xsd:enumeration value="ar"/> <!-- and so on... --> </xsd:restriction> </xsd:simpletype>

XML sémák ( www.logos2000.hu / cs.veg@xsys.hu ) 13 Az XML sémák alap és másodlagos típusai Megfigyelhető, hogy az XML sémák által definiált elemi típusok közül kiválasztható néhány alapvető típus, míg a többi az vagy előállítható valamely alapvető típus korlátozásával, vagy valamely informatikai technológiára utal, pl. meghatározza a tárolási vagy kódolási módot, vagy éppen az XML formátummal kapcsolatos. Mindezek alapján az XML sémák elemi típusai a következő három csoportba sorolhatók: alap típusok (pl. decimal, integer, date), másodlagos típusok, amelyek valamely alaptípus (pl. értéktartomány-) korlátozásával definiáltak (pl. positiveinteger), vagy valamely tárolási, ábrázolási technológiával kapcsolatosak (pl. normalizedstring, double, hexbinary), az XML-lel és Web-es technológiákkal kapcsolatos típusok (pl. QNAME, anyuri). Az XML sémák alap típusaiként a következőket határozhatjuk meg: string (szöveg) decimal (tetszőleges szám) integer (egész érték) boolean (logikai) date és datetime (dátum) időtartam és az idővel kapcsolatos további típusok XML sémák lista és unió Az XML sémák lehetőséget adnak a listaként történő megadásra is: <xsd:simpletype name="listofmyinttype"> <xsd:list itemtype="xsd:integer"/> </xsd:simpletype> A listofmyint típusú értékek az egészek töltőkarakterekkel elválasztott sorozatát tartalmazhatja, pl.: <listofmyint>20003 15037 95977 95945</listOfMyInt>

14 ( www.logos2000.hu / cs.veg@xsys.hu ) XML sémák Mivel a lista elemeinél a szóköz az elválasztójel, ezért ahogy arra az XML séma ajánlása is felhívja a figyelmet sajnos nem adhatunk meg több szóból álló, azaz szóközöket tartalmazó elemeket. Az ajánlás példája szerint az Asie Europe Amérique Latine lista négy elemet tartalmaz, pedig a Latin Amerika egyetlen fogalmat jelöl. A másik alap-kombinációs eszköz az unió, mellyel a lehetséges értékek külön megadott halmazait egyesíthetjük: <xsd:simpletype name="zipunion"> <xsd:union membertypes="usstate listofmyinttype"/> </xsd:simpletype> A példa szerint a zipunion típusú elem vagy egyetlen USA állam kódja lehet, vagy az egészek listája. XML sémák összetett elemek XML sémák segítségével természetesen összetett elemeket is leírhatunk. Az elemek képzéséhez az alapvető eszközök a következők: xsd:sequence: az elemek a megadott sorrendben (felsorolás) xsd:choice: a felsoroltak közül valamelyik elem (alternatíva) xsd:all: az elemek tetszőleges sorrendben xsd:group: hivatkozás egy máshol definiált elemre xsd:element: XML elem xsd:attribute: XML attribútum A következő példa egy címet tartalmaz, amelyben az irányítószám számként (decimal) van megadva: <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>

XML sémák ( www.logos2000.hu / cs.veg@xsys.hu ) 15 Az összetett elemek képzésekor az elemek számosságát az xsd:element elem minoccurs, ill. maxoccurs attribútumában adhatjuk meg egy egész értékként vagy az unbounded, a tetszőlegességet jelző kulcsszóval. A számosság attribútumainak alapértelmezett értéke "1".