Validarea Documentelor XML - XML Schema
Mihai Gabroveanu
Facultatea de S, tiint,e Exacte
Mihai Gabroveanu Validarea Documentelor XML
Cuprins1 Introducere2 XML Schema
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simple
Definirea atributelorDefinirea restrict, iilor
Definirea elementelor complexeDefinirea elementelor videAsignarea de nume tipurilor complexeExtinderea unui tip
Indicatori de ordineIndicatori de aparitieIndicatori de grupare
3 Bibliografie4 Intrebari si RaspunsuriMihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Istoric
XML SchemaXML schema permite definirea regulilor si relatiilor intreelemente si attributeStandard init, iat de Microsoft02 Mai 2001 - XML Schema Language devine recomndare aW3C
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
XML Schema
XML Schemadefineste elementele care pot sa apara intr-un documentdefineste atributele pe care pot sa le aiba elementele dintr-undocumentdefineste care elemente au copii si care sunt acestiadefineste ordinea copiilor unui elementdefineste numarul de copiidefineste daca un element este vid sau poate contine un textdefineste tipurile elementelor si atributelordefineste valorile implicite si fixe ale elementelor si atributelor
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Referirea la o XML Schema
Sintaxa declararii unui DTD intern este urmatoarea:<?xml version="1.0"?>
<elementRadacinaxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="url.xsd">
...</elementRadacina>
unde:url.xsd = Locatia unde poate fi gasita definitia schemei
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Referirea la o XML Schema - Exemplu
Referirea la XML Schema CARTE.xsd<?xml version="1.0"><CARTE
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="CARTE.xsd" ><TITLU>XML Bible</TITLU><AUTOR>Elliotte Rusty Harold</AUTOR><EDITURA> IDG Books Worldwide</EDITURA><AN_APARITIE>2002</AN_APARITIE>
</CARTE>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea unui fisier XML Schema
Sintaxa definirii unui fisier XML Schema este urmatoarea:<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" [1]
elementFormDefault="qualified"> [2]...</xs:schema>
unde:1 indica faptul ca elementele si tipurile de date utilizate in schema
provin din namespace-ul http://www.w3.org/2001/XMLSchema.De asemenea, specifica ca aceste elemente si tipuri de date trebuiesa fie prefixate cu xs
2 indica ca toate elemente XML utilizate trebuie sa fie calificate denamespace
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea unui fisier XML Schema - Exemplu
Referirea la XML Schema PERSOANA.xsd<?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="PERSOANA"><xs:complexType>
<xs:sequence><xs:element name="NUME" type="xs:string"/><xs:element name="PRENUME" type="xs:string"/></xs:sequence>
</xs:complexType></xs:element>
</xs:schema>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Tipuri simple
Un element se numeste element simplu daca:
contine numai informatie text (date caracter)nu are atributenu contine alte atributenu este vid
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea unui element simplu
Sintaxa definiri unui element simplu este urmatoarea:<xs:element name="nume" type="tip"/>sau<xs:element name="nume" type="tip" default="val-implicita"/>sau<xs:element name="nume" type="tip" fixed="val-fixa"/>
unde:nume este numele elementului
tip este tipul valorii elementului
val-implicita valoare implicita este atribuita unui element atunci candnu este specificata nici o alta valoare valoare
val-fixa valoare fixa este atribuita de asemenea automat unuielement si nu putem specifica nici o alta valoare in afarade cea specificata
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Tipuri predefinite in XML Schema
Tipuri predefinite in XML Schema:xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Elemente simple - Exemplu
Consideram urmatoarele elemente simple XML:<NUME>Popescu Maria</NUME><VARSTA>21</VARSTA><DATA_NASTERII>1985-09-23</DATA_NASTERII><CETATENIA>romana</CETATENIA>
Definitiile corespunzatoare in XML Schema sunt:<xs:element name="NUME" type="xs:string"/><xs:element name="VARSTA" type="xs:integer" default="0"/><xs:element name="DATA_NASTERII" type="xs:date"/><xs:element name="CETATENIA" type="xs:string" fixed="romana"/>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea atributelor
Elementele simple nu pot avea atribute. Atributul insusi estedeclarat intotdeauna ca un tip simplu.
Sintaxa definiri unui atribut este urmatoarea:<xs:attribute name="nume" type="tip" />sau<xs:attribute name="nume" type="tip" default="val-implicita" />sau<xs:attribute name="nume" type="tip" fixed="val-fixa" />
unde:nume este numele atributului
tip este tipul valorii
val-implicita valoare implicita a atributului
val-fixa valorea fixa a atributuluiMihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea atributelor (cont.)
Sintaxa definiri unui atribut optional/obligatoriu este:<xs:attribute name="nume" type="tip" use="optional" />respectiv<xs:attribute name="nume" type="tip" use="required" />
Consideram urmatorul element cu un atribut:<PERSOANA sex="masculin">Garcea Ion</PERSOANA>
Definitia atributului in XML Schema este:<xs:attribute name="sex" type="xs:string" use="required"/>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea restrict, iilor
Sintaxa generala a definirii acestor restrictii este urmatoare:<xs:element name="nume"> (sau xs:attribute)<xs:simpleType>
<xs:restriction base="tip">... restrictii ...
</xs:restriction></xs:simpleType>
</xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea restrict, iilor - Exemplu
Definirea restrictiilor pentru NOTA unui student:<xs:element name="NOTA"><xs:simpleType>
<xs:restriction base="xs:integer"><xs:minInclusive value="1"><xs:maxInclusive value="10">
</xs:restriction></xs:simpleType></xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea elementelor complexe
Element complexUn element se numeste element complex daca contine alteelement si/sau atribute. De asemenea elementele vide suntconsiderate elemente complexe
Sintaxa definirii unui element complex:<xs:element name="nume">
<xs:complexType>... descrierea tipului complex ...
</xs:complexType></xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea elementelor complexe - Exemplu
Sintaxa definirii unui element complex:<xs:element name="PERSOANA"><xs:complexType>
<xs:sequence><xs:element name="NUME" type="xs:string"/><xs:element name="PRENUME" type="xs:string"/>
</xs:sequence></xs:complexType>
</xs:element>
<xs:sequence> spune ca elementele NUME si PRENUME trebuie saapara in acesta ordine
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Definirea elementelor vide
Sa consideram urmatorul element:<PRODUS cod="1345" />
Sintaxa definirii elementului PRODUS in XML Schema:<xs:element name="PRODUS">
<xs:complexType><xs:attribute name="cod" type="xs:positiveInteger"/>
</xs:complexType></xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Asignarea de nume tipurilor complexe
Unui tip complex ii putem asigna un nume astfel:<xs:complexType name="nume-tip">
....</xs:complexType>
Referirea la tipul definit se face astfel:<xs:element name="nume" type="nume-tip-declarat"/>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Asignarea de nume tipurilor complexe - Exemplu
Definirea tipui PERSOANA:<xs:complexType name="PERSOANA"><xs:sequence>
<xs:element name="NUME" type="xs:string"/><xs:element name="PRENUME" type="xs:string"/>
</xs:sequence></xs:complexType>
Referirea la tipul definit se face astfel:<xs:element name="STUDENT" type="PERSOANA"/><xs:element name="PROFESOR" type="PERSOANA"/>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Extinderea unui tip
Putem construi un tip complex prin extinderea unui alt tip complex:<xs:complexType name="tip-nou">
<xs:complexContent><xs:extension base="alt-tip">
... caracteristici noi...</xs:extension>
</xs:complexContent></xs:complexType>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatorul de secventa xs:sequence
Pentru a indica faptul ca elementle din cadrul unui tip complextrebuie sa apara intr-o anumita ordine folosim xs:sequence:
Definirea elementului PERSOANA:<xs:element name="PERSOANA"><xs:complexType>
<xs:sequence><xs:element name="NUME" type="xs:string"/><xs:element name="PRENUME" type="xs:string"/>
</xs:sequence></xs:complexType>
</xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatorul all xs:all
Pentru a declara o multimea de elemente ce trebuie sa aparaintr-un tip complex in care ordinea nu conteaza vom utilizaconstructia xs:all:
Definirea elementului PERSOANA:<xs:element name="PERSOANA"><xs:complexType>
<xs:all><xs:element name="NUME" type="xs:string"/><xs:element name="PRENUME" type="xs:string"/>
</xs:all></xs:complexType>
</xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatorul de alegere xs:choice
Indicatorul xs:choice permite definirea de tipuri complexe in careunul din elementele dintr-o multime poate sa apara:
Definirea elementului CARTE:<xs:element name="CARTE"><xs:complexType>
<xs:choice><xs:element name="AUTOR" type="persoana"/><xs:element name="EDITOR" type="persoana"/>
</xs:choice></xs:complexType>
</xs:element>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatorul maxOccurs
Indicator maxOccurs specifica numarul maxim de aparitii pentru unelement:
Definirea elementului PERSOANA:<xs:element name="PERSOANA"><xs:complexType>
<xs:sequence><xs:element name="NUME" type="xs:string"/><xs:element name="NUME-COPIL" type="xs:string"
maxOccurs="5"/></xs:sequence>
</xs:complexType></xs:element>
In exemplu anterior elementul NUME-COPIL trebuie sa apara cel putinodata (valoarea implicita pentru minOccurs este 1 implicit) si de maxim5 ori in secventa ce descrie elementul PERSOANA.Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatorul minOccurs
Indicator minOccurs specifica numarul maxim de aparitii pentru unelement:
Definirea elementului PERSOANA:<xs:element name="PERSOANA"><xs:complexType>
<xs:sequence><xs:element name="NUME" type="xs:string"/><xs:element name="NUME-COPIL" type="xs:string"
minOccurs="0" maxOccurs="5"/></xs:sequence>
</xs:complexType></xs:element>
In exemplu anterior elementul NUME-COPIL poate sa nu apara deloc saude maxim 5 ori in secventa ce descrie elementul PERSOANA.
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatori de grupare a elementelor
Sunt utilizati pentru multimi de elemente inrudite:
Sintaxa definirii grupurilor de elemente:<xs:group name="nume-grup">
...</xs:group>
in cadrul unui grup putem defini elemente all, choice sausequence.
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatori de grupare a elementelor -Exemplu
Definirea elementului PERSOANA:<xs:group name="GRUP-PERSOANA"><xs:sequence>
<xs:element name="NUME" type="xs:string"/><xs:element name="PRENUME" type="xs:string"/><xs:element name="DATA-NASTERE" type="xs:date"/>
</xs:sequence></xs:group><xs:element name="PERSOANA" type="INFO-PERSOANA"/><xs:complexType name="INFO-PERSOANA"><xs:sequence>
<xs:group ref="GRUP-PERSOANA"/><xs:element name="TARA" type="xs:string"/>
</xs:sequence></xs:complexType>
In exemplu anterior elementul NUME-COPIL poate sa nu apara deloc sau de maxim 5 ori in secventa ce
descrie elementul PERSOANA.
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatori de grupare a atributelor
Sintaxa definirii grupurilor de atribute:<xs:attributeGroup name="nume-grup">
...</xs:attributeGroup>
in cadrul unui grup putem defini elemente all, choice sausequence.
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Referirea la o XML SchemaDefinirea unui fisier XML SchemaTipuri simpleDefinirea elementelor complexeIndicatori de ordineIndicatori de aparitieIndicatori de grupare
Indicatori de grupare a atributelor -Exemplu
Definirea unui grup de atribute:<xs:attributeGroup name="GRUP-PERSOANA">
<xs:attribute name="nume" type="xs:string"/><xs:attribute name="prenume" type="xs:string"/><xs:attribute name="data-nasterii" type="xs:date"/>
</xs:attributeGroup>
<xs:element name="PERSOANA" type="INFO-PERSOANA"/>
<xs:complexType name="INFO-PERSOANA"><xs:attributeGroup ref="GRUP-PERSOANA">
</xs:complexType>
Mihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Bibliografie
XMLXML Schema Part 0: Primer Second Edition W3CRecommendation 28 October 2004, David C. Fallside, PriscillaWalmsleyXML Schema Part 1: Structures Second Edition W3CRecommendation 28 October 2004, Henry S. Thompson,David Beech, Murray Maloney, Noah MendelsohnXML Schema Part 2: Datatypes Second Edition W3CRecommendation 28 October 2004, Paul V. Biron, KaiserPermanente, Ashok MalhotraElliotte Rusty Harold, XML Bible. IDG Books Worldwide, Inc,919 E. Hillsdale Blvd., Suite 400, Foster City, CA 94404http://www.w3schools.com/schema/ XML Schema TutorialMihai Gabroveanu Validarea Documentelor XML
IntroducereXML SchemaBibliografie
Intrebari si Raspunsuri
Va multumesc pentru atentia acordata
Intrebari?Comentarii?
Mihai Gabroveanu Validarea Documentelor XML
Top Related