Documente Academic
Documente Profesional
Documente Cultură
XML Well-Formed
Documentul ncepe cu o declaraie, delimitat de <?xml ?> . Exemplu de declaraie: <?xml version = 1.0 standalone = yes ?>
standalone = fr DTD
Tag-uri
Tag-urile sunt perechi de etichete: <FOO> </FOO> Sunt permise tag-uri singulare: <FOO/> Tag-urile pot fi imbricate n mod arbitrar. Tag-urile XML sunt case-sensitive.
4
Un subelement BEER
Structura DTD
<!DOCTYPE <tag root> [ <!ELEMENT <nume>(<componente>)> . . . alte elemente . . . ]>
Elemente DTD
Descrierea unui element const din nume (tag) i o descriere ntre paranteze a tag-urilor imbricate.
Include succesiunea subtag-urilor i multiplicitatea lor.
Frunzele (elemente text) au #PCDATA (Parsed Character DATA ) n loc de taguri imbricate.
7
Exemplu: DTD
<!DOCTYPE BARS [ <!ELEMENT BARS (BAR*)> <!ELEMENT BAR (NAME, BEER+)> Un BAR are un NAME i unul <!ELEMENT NAME (#PCDATA)> sau mai multe <!ELEMENT BEER (NAME, PRICE)> subobiecte BEER. <!ELEMENT PRICE (#PCDATA)> BEER are ]> NAME i NAME i PRICE
sunt text. PRICE.
8
Descrieri Element
Subtag-urile trebuie s apar n ordinea prezentat. Un tag poate fi urmat de un simbol ce indic multiplicitatea.
* = zero sau mai multe. + = unu sau mai multe. ? = zero sau unu.
Folosirea DTD-uri
1. Se specific standalone = no. 2. i fie:
a) Se include DTD ca prefa a documentului XML, sau b) n continuarea DOCTYPE i a <tag-ului root> se specific SYSTEM i calea (path) ctre fiierul ce conine DTD.
11
Exemplu: (a)
<?xml version = 1.0 standalone = no ?> <!DOCTYPE BARS [ <!ELEMENT BARS (BAR*)> DTD <!ELEMENT BAR (NAME, BEER+)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT BEER (NAME, PRICE)> Documentul XML <!ELEMENT PRICE (#PCDATA)> ]> <BARS> <BAR><NAME>Joes Bar</NAME> <BEER><NAME>Bud</NAME> <PRICE>2.50</PRICE></BEER> <BEER><NAME>Miller</NAME> <PRICE>3.00</PRICE></BEER> </BAR> <BAR> </BARS>
12
Exemplu: (b)
Presupunem c DTD pentru BARS se gsete n fiierul bar.dtd.
<?xml version = 1.0 standalone = no ?> <!DOCTYPE BARS SYSTEM bar.dtd> <BARS> <BAR><NAME>Joes Bar</NAME> <BEER><NAME>Bud</NAME> <PRICE>2.50</PRICE></BEER> <BEER><NAME>Miller</NAME> <PRICE>3.00</PRICE></BEER> </BAR> <BAR> </BARS>
13
Atribute
Tag-urile XML pot avea atribute. ntr-un DTD, <!ATTLIST E . . . > declar atributele elementului E, mpreun cu tipurile de date.
14
Exemplu: Atribute
Bar-urile pot avea un atribut kind, un ir de caractere ce descrie barul. <!ELEMENT BAR (NAME BEER*)> <!ATTLIST BAR kind CDATA #IMPLIED>
Atributul este opional opus: #REQUIRED tipul ir de caractere; fr tag-uri
15
ID-uri i IDREF-uri
Atributele pot fi pointeri de la un obiect la altul.
Comparabil cu HTML: NAME = foo i HREF = #foo.
Crearea ID-urilor
Presupunem un element E cu un atribut A de tip ID. Atunci cnd se folosete tag-ul <E > ntr-un document XML, atributul A primete o valoare unic. Exemplu: <E A = xyz>
18
Crearea IDREF-urilor
Pentru a permite elementelor de tip F s fac referire la un alt element cu un atribut ID, F primete un atribut de tip IDREF. Sau, atributul are tipul IDREFS, astfel nct elementul F poate face referire la oricte alte elemente.
19
DTD
<!DOCTYPE BARS [ <!ELEMENT BARS (BAR*, BEER*)> Elementele SELLS <!ELEMENT BAR (SELLS+)> au un numr (preul) i <!ATTLIST BAR name ID #REQUIRED> o referin <!ELEMENT SELLS (#PCDATA)> la beer. <!ATTLIST SELLS theBeer IDREF #REQUIRED> <!ELEMENT BEER EMPTY> <!ATTLIST BEER name ID #REQUIRED> <!ATTLIST BEER soldBy IDREFS #IMPLIED> ]>
Se va Elementele BEER au un atribut ID denumit name, explica i un atribut soldBy ce este un set de nume de BAR-uri. n continuare
21
Elementele BAR au numele ca un atribut ID i au unul sau mai multe subelemente SELLS.
Exemplu: Document
<BARS> <BAR name = JoesBar> <SELLS theBeer = Bud>2.50</SELLS> <SELLS theBeer = Miller>3.00</SELLS> </BAR> <BEER name = Bud soldBy = JoesBar SuesBar /> </BARS>
22
Elemente Empty
Un element poate fi descris prin atribute.
n exemplul anterior BEER.
Un alt exemplu: elementele SELLS ar fi putut avea atributul price n locul valorii ce reprezint price.
23
Schem XML
Ofer o cale mai puternic pentru a descrie structura documentelor XML. Declaraiile Schem-XML sunt ele nsele documente XML .
Ele descriu elemente iar descrierea se face de asemenea cu elemente.
25
</xs:schema>
Folosirea xs la definirea elementelor schemei se refer la tag-uri din acest namespace.
Se definete xs ca fiind namespace i este descris prin URL-ul respectiv. Orice ir de caractere poate lua locul xs.
26
Elementul xs:element
Are atributele:
name = numele tag-ului elementului definit. type = tipul elementului.
Poate fi un tip Schem-XML , de exemplu, xs:string. Sau numele tipului definit n document.
27
Exemplu: xs:element
<xs:element name = NUME type = xs:string /> Descrie elemente ca de exemplu: <NUME>Pop Ion</NUME>
28
Tipuri Complexe
Pentru a descrie elemente ce constau din subelemente, se folosete xs:complexType.
Atributul name precizeaz numele tipului.
Un subelement tipic al unui tip complex este xs:sequence, ce conine o secven xs:element de subelemente.
Se folosesc atributele minOccurs i maxOccurs pentru a controla numrul apariiilor unui xs:element.
29
xs:attribute
Elementele xs:attribute pot fi folosite n cadrul unui tip complex pentru a indica atributele elementelor tipului respectiv. Atribute xs:attribute:
name i type ca i la xs:element. use = required sau optional.
33
Exemplu: xs:attribute
<xs:complexType name = beerType> <xs:attribute name = name type = xs:string use = required /> <xs:attribute name = price type = xs:float use = optional /> </xs:complexType>
34
35
36
Restricii
Atributul base specific tipul simplu ce va fi restricionat, de exemplu, xs:integer. xs:{min, max}{Inclusive, Exclusive} sunt patru atribute ce specific limita inferioar i superioar a unei plaje de valori numerice. xs:enumeration este un subelement cu atributul value ce permite tipuri 37 enumerare.
Exemplu: Cheie
<xs:element name = BAR > . . . <xs:key name = barKey> <xs:selector xpath = BEER /> <xs:field xpath = @name /> </xs:key> XPath este un limbaj de interogare . . . pentru XML. Singurul lucru ce este </xs:element>nevoie s fie cunoscut pentru moment
41
Chei Strine
Un subelement xs:keyref pentru un xs:element precizeaz c pentru acest element, anumite valori (definite printrun selector i cmp(uri), ca i la chei) trebuie s apar ca i valori ale unei chei.
42
Se dorete s se declare c elementele DRINKER au subelementele FREQ. Un atribut bar al FREQ este cheie strin, ce refer ctre NAME al BAR.
43