Adatkezelés - XML XML – 3 – XML séma
XML séma é (XSD)
XML dokumentumok tartalmát és szerkezetét. { { { {
Elemeket, jellemzőket Adat típusokat Elemek számára adhatunk előírást Elrendezést
~ DTD, de több annál { {
XML alapú Lehetőséget rejt magában 2
XSD példa éld <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="konyv"> <xs:complexType> <xs:sequence> <xs:element name="szerzo" type="xs:string"/> <xs:element name="cim" type="xs:string"/> < <xs:element l t name="ar" " " t type="xs:integer"/> " i t "/> Az XML dokumentumban így kell megadni: UTF 8 ?>
<szerzo>XY XML tananyag <ar>1000
3
XSD é és DTD XML:
John Punin <email>[email protected] Harrison Ford <email>[email protected] Julia Roberts <email>[email protected] DTD:
XML Schema: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="record"> <xsd:sequence> <xsd:element name="cname" type="xsd:string"/> <xsd:element name="email" type="xsd:string/> <xsd:element name="addressBook"> <xsd:complexType> <xsd:sequence> <xsd:element name="owner" type="record"/> <xsd:element name="person" type="record" minOccurs="0" maxOccurs="unbounded"/> / 4
XML schema h elemek l k Element Simple Type UserDerived
Complex Type
Built-in
Empty
Simple Content
Complex Content
atomic
primitive
Sequence
nonnon atomic
derived
All
Mixed Content
Choice 5
El Elemek k megadása dá <xs:element name="cim" type="xs:string"/>
6
E Egyszerű ű típusok tí k 1. 2. 3. 4 4. 5. 6. 7. 8. 9. 10. 11 11. 12. 13. 14. 15. 16. 17. 18 18. 19.
string boolean decimal float double duration dateTime time date gYearMonth gYear gMonthDay gDay gMonth hexBinary base64Binary anyURI QName NOTATION
7
E Egyszerű ű XSD tí típusok k – I. I
xs:string - karakterlánc xs:boolean - true, false, 1, 0 xs:decimal i - tizedesjegyet ti d j t iis ttartalmazó t l ó szám. á Pl Pl.: -5 5 -3.7 2.88 xs:int - egész szám szám, előjeles 32 bites xs:integer - egész szám (végtelen nagy lehet) xs:positiveInteger s:pos t e tege - p pozitív egész g szám ((0 nem)) xs:negativeInteger - negatív egész szám (0 nem) xs:date - Dátum. Formátuma: ÉÉÉÉ-HH-NN xs:time - Idő. Formátuma:óó-pp:mm.mm xs:dateTime - Dátum és idő. F Formátuma: át ÉÉÉÉ-HH-NNTóó-pp:mm.mm ÉÉÉÉ HH NNTóó 2007-03-05T08:26:00.00 8
E Egyszerű ű XSD tí típusok k – II. II
xsd:gMonth – Naptári hónap (HH) xsd:gYear – Naptári év (ÉÉÉÉ) xsd:gDay – Naptári N tá i nap (NN) xsd:gYearMonth – Naptári év és hónap (ÉÉÉÉ-HH) xsd:anyURI – Hivatkozás. Hivatkozás Pl Pl.:: http://ade.web.elte.hu http://ade web elte hu xsd:language – Nyelv megadás. Pl. en-GB, fr, hu
9
Megszorított típusok 1.normalizedString 1 li dSt i 2.token 3.language 4 NMTOKEN 4.NMTOKEN 5.NMTOKENS 6.Name 7 NCName 7.NCName 8.ID 9.IDREF 10 IDREFS 10.IDREFS 11.ENTITY 12.ENTITIES 13.integer 14.nonPositiveInteger 15.negativeInteger g 16.long 17.int
18.short 18 h t 19.byte 20.nonNegativeInteger 21 unsignedLong 21.unsignedLong 22.unsignedInt 23.unsignedShort 24 unsignedByte 24.unsignedByte 25.positiveInteger
10
Si l T Simple Type megszorítások ítá k
length minLength maxLength L th pattern enumeration minInclusive minExclusive maxInclusive maxExclusive t t lDi it totalDigits fractionDigits
- hossz - min. hossz - max. hossz h - mintaillesztés reguláris kifejezéssel - felsorolás - >= -> - <= -< - számjegyek á j k száma á - tizedesek száma 11
El Element t paraméterek ét k
minOccurs maxOccurs default fixed id ref
12
El Elem előfordulás lőf d lá
minOccurs – minimális előfordulás maxOccurs – maximális előfordulás
Alapértelmezett értékük: 1.
<xsd:element name="ar" type="xs:integer" yp g minOccurs="0" maxOccurs="unbounded"/> y , akár el is unbounded: akárhányszor, hagyható.
13
Al é t l Alapértelmezés, é köt kötelezőség l ő é
Alapértelmezett érték: <xs:element name="nev" type="xs:string" type= xs:string default= default="alma"/> alma /> Fix érték: <xs:element name name="nev" nev type="xs:string" fixed="alma"/> Kötelező megadás: g <xs:element name="nev" type="xs:string" use="required"/> O i áli megadás: Opcionális dá <xs:element name="nev" type="xs:string" type xs:string use use="optional"/> optional / 14
Saját típusok - megszorítások – I. Értékhalmaz megadás: <xs:element name="mennyi"> y <xs:simpleType> <xs:restriction base="xs:integer"> g <xs:minInclusive value="0"/> / <xs:maxInclusive value="10000"/> /xs:simpleType 15
Tí Típusmegadás dá xs:schema elem megadásakor kell definiálni definiálni. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> p g <xs:simpleType name="ArTipus"> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="10000"/>
Deklarálása <xs:element name="AR" type="ArTipus"/>
16
M Megszorítások ítá k – II. II
Felsorolás:
<xs:element xs:element name name="szerzo"> szerzo <xs:simpleType> <xs:restriction base="xs:string"> g <xs:enumeration value="XY"/> <xs:enumeration value="ZV"/> / p yp 17
Megszorítások – III. mintaillesztés <xs:element name="tartalom"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/>
Kisbetűket, akármilyen hosszan.
18
Mintaillesztés – reguláris kifejezések használata
Legalább 1 kis- vagy nagybetű: <xs:pattern value="([a-z][A-Z])+"/> <xs:pattern value="([a-zA-Z])+"/> value= ([a-zA-Z])+ />
Felsorolás: <xs:pattern p value="Alma|Körte"/>
Betű, szám 8 hosszan:
<xs:pattern value="[a-zA-Z0-9]{8}"/> <xs:pattern value="\d{1}-\d{4}-\d{4}-\d{1}"/>
0-7891-4343-1
\d - decimális karakter \s - nem megjelenő karakter: space, enter, tab... \D – nem decimális karakter 19
R Reguláris lá i kif kifejezés j é - példák éldák
a*x x, ax, aax, aaax .... a?x ax, x a+x ax, aax, aaax .... (a|b)+x ax, bx, aax, abx, bax, bbx, aaax, aabx, b abax, b abbx, bb b baax, b babx b [abcde]x ax, bx, cx, dx, ex [ ] [a-e]x ax, bx, b cx, d dx, ex [^0-9]x Nem számjegy, majd egy x .x Bá il Bármilyen kkarakter, kt majd jd egy x .*abc.* 1x2abc, abc1x2, z3456abchoor 20
Mé t megszorítás Méret ítá Fix hossz megadás: <xs:element name="jelszo"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> t i ti >
Szám esetén: totalDigits Minimális és maximális hossz:
<xs:minLength value="5"/> <xs:maxLength value="8"/> 21
K Komplex l tí típusokk - I <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="konyv"> <xs:complexType> <xs:sequence> q <xs:element name="szerzo" type="xs:string"/> <xs:element name="cim" type="xs:string"/> <xs:element name="ar" type="xs:integer"/> xs:sequence Æ kötött sorrend
22
K Komplex l tí típusokk - II <xs:element name="konyv" type="konyvtipus" /> <xs:complexType p yp name="konyvtipus" y p > <xs:sequence> <xs:element name="szerzo" type="xs:string"/> <xs:element name="cim" name cim type type="xs:string"/> xs:string /> <xs:element name="ar" type="xs:integer"/>
23
K Komplex l tí típusokk – III. III <xs:element < l t name="employee" " l " t type="fullpersoninfo"/> "f ll i f "/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element l t name="firstname" "fi t " t type="xs:string"/> " t i "/ <xs:element name="lastname" type="xs:string"/> / <xs:complexType name="fullpersoninfo"> <xs:complexContent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element l name="city" " i " type="xs:string"/> " i "/ <xs:element name="country" type="xs:string"/> s e tension> 24
E Egyszerű ű tartalom t t l <xs:element name="cipomeret"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:integer"> <xs:attribute name="orszag" type="xs:string"/> / / i l l t>
25
V Vegyes tartalmú t t l ú elemek l k Szöveges tartalommal és gyermek elemmel egyaránt rendelkező elem deklarálása: <xs:element name="CIM"> name CIM > <xs:complexType mixed="true"> <xs:sequence> <xs:element name="ALCIM"/> l T > Ennek megfelelő elem:
Prison breakA szökés csak a kezdet /
26
K Komplex l tí típusokk – IV. IV xs:choice - Az alábbi FILM elem tartalmazhat egy RENDEZO vagy egy SZEREPLO elemet
<xs:element name="FILM"> <xs:complexType> <xs:choice> <xs:element xs:element name="RENDEZO" name RENDEZO type type="xs:string"/> xs:string / <xs:element name="SZEREPLO" type="xs:string"/>
xs:all – tetszőleges sorrendben szerepelhetnek a gyermek elemek de mindnek kell legalább egyszer elemek, xs:sequence és xs:choice elemek egymásba ágyazhatóak. Ezekben is használható a minOccurs és a maxOccurs jellemző.
27
Attribútumok – jellemzők: xs:attribute
~ elem megadáshoz <xs:attribute name="alcim" type="xs:string" use="optional"/>
Jellemzők: { { { { {
name type default fixed use: - optional, required, prohibited (tiltott) optional: alapértelmezett. default jellemző esetén ezt kell használni vagy a use-t elhagyni. 28
Példa – 1: Tartalom és attribútum <xs:element name="cim"> <xs:complexType> < <xs:simpleContent> i l C t t> <xs:extension base="xs:string"> <xs:attribute xs:attribute name="alcim" name alcim type type="xs:string" xs:string use="optional"/>
29
S ö Szöveg é és gyermek k elemek l k <xs:element name name="level"> "level"> <xs:complexType mixed="true"> <xs:sequence> <xs:element name="nev" type="xs:string"/> <xs:element name="rendeles_azon" type="xs:positiveInteger"/> yp <xs:element name="szallitas" type="xs:date"/> l t>
TiszteltCitad Ella Ella. Az Ön 1032 számú rendelését várhatóan <szallitas>2001-07-13-n szállítjuk. 30
XSD ké készítés íté - 1. 1
31
XSD ké készítés íté - 2. 2
> Fűszálak <SZERZO>Walt Whitman keménykötés 462 775 Ft Az Álmos völgy legendája <SZERZO>Washington Irving olcsó kiadás papírkötés 98 295 Ft 32