web - xml validation

77
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ Tehnologii Tehnologii Web Web <?xml version=“1.0” ?> <curs desc=“…” /> Tehnologii Web Dr. SabinCorneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/

Upload: sabin-buraga

Post on 21-Aug-2015

1.238 views

Category:

Technology


0 download

TRANSCRIPT

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tehnologii Web

Dr. Sabin­Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Marcarea datelor pentru <Web />

Partea IV: Validari XML

Detalii in [TX, 102‐136]

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

“Este de ajuns un dictionarpentru a contine toate cuvintele. Dar gindirii ii trebuie infinitul.”

Alexandr Puskin

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XML (Extensible Markup Language)Procesul de validare

DTD (Document Type Definition)Scheme XMLRELAX NGAlternative

cuprins

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Dorim ca informatiile marcate in XMLsa poata fi regasite, reutilizate si partajate

intre aplicatii

necesitati

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O cerinta importanta este de a cunoaste: elementele/atributele ce pot fi specificatemodul lor de structurare (e.g., ordinea, numarul minim/maxim de aparitii,...)

tipul continutuluice este valid si ce reprezinta eroare

necesitati

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Grupuri de indivizi specifica vocabularul XML(setul de elemente/atribute permise)

si regulile de marcare –modelele structurale

Uzual, grupurile reprezinta: o companie, o industrie, persoane impartasind un interes

comun, dezvoltatori/comercianti de instrumentede marcare (tool vendors), 

un consortiu/organizatie non‐profit

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modelul structural se aplica unei clase dedocumente XML, in vederea verificarii

– via un analizor (procesor, parser XML) –a corectitudinii instantelor de documente

apartinind acelei clase

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Se au in vedere:numirea elementelor/atributelordefinirea regulilor de utilizare a acestoraspecificarea structurii si continutuluidefinirea constringeriloroferirea unui set de conventii de numire

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Apare necesitatea specificariiunui set de constringeri asociate documentelorXML, astfel incit datele XML sa fie verificatedaca sunt valide sau nu din punct de vedere

structural ori al tipului continutului

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modalitatile de specificare a constringerilorse pot baza pe:descrierireguli

sabloane

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modalitatile de specificare a constringerilorse pot baza pe:descrieri

“exista un element <student> avind un atribut numecare are continutul...” 

DTD, XML Schema

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modalitatile de specificare a constringerilorse pot baza pe:

reguli

“orice element <student> va avea un atribut nume, iar continutul acestui atribut se va conforma unei reguli...”

Schematron

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modalitatile de specificare a constringerilorse pot baza pe:

sabloane – pattern‐uri

“structura documentelor din clasa ‘student’ trebuiesa se potriveasca (match) conform urmatorului sablon...” 

RELAX NG

solutie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

DTD (Document Type Definition)Scop & caracterizare

Specificarea tipurilor de documenteExemple

cuprins

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tipuri de documenteDocument Type Definition (DTD)

specificare formala a tipurilor de documente(constituienti & structura)

dtd

In spiritullimbajelor formale

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Documentele XML pot avea sau nu un DTD atasatintern sau extern documentului XML pe care‐l valideaza

Daca DTD‐ul lipseste, documentul trebuiesa respecte un numar minim de constringeri

document bine formatat – well formed

dtd

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Regulile sintactice de specificarea meta‐elementelor DTD provin de la SGML

DTD‐ul poate exprima structura continutului, indicatorii de aparitie, conectorii

Detalii: http://www.w3.org/TR/REC­xml

dtd

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Un DTD specifica un tip de document:<!DOCTYPE element_radacina [

Declaratii de elemente, atribute, entitati,...]>

<!DOCTYPE projects [...

]>

dtd

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

<!ELEMENT projects (project+)><!ELEMENT project (title, desc?, stud, url?)><!ELEMENT title (#PCDATA)><!ELEMENT desc (#PCDATA)><!ELEMENT stud (#PCDATA)><!ELEMENT url (#PCDATA)>

dtd: elemente

Conținut (neterm. & term.)#PCDATA, EMPTY, ANY* + ? indicatori de apariție

, | conectori

Meta‐element

Nume de element 

(neterminal)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Continutul unui element poate fi:Sir de caractere (#PCDATA – parsed character data)Vid (EMPTY)Orice alt marcaj/sir de caractere (ANY)

dtd: elemente

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Un element poate aparea:O singura data (numele elementului)De oricite ori, inclusiv niciodata (*)Macar o data (+)De zero sau unu ori (?)

dtd: elemente

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Ordinea aparitiei elementelor poate fi:Secventa (,)Alternativa (|)

dtd: elemente

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

<!ATTLIST projectsupdate CDATA #REQUIRED

><!ATTLIST project

class (A | B | C) "A">

dtd: atribute

Tipul conținutului CDATA, ID, ENTITY,...Enumerare de valori

Elementul căruia îi este asociat

Mod de apariție#REQUIRED#IMPLIED#FIXED

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Continutul unui atribut poate fi:Sir de caractere (CDATA – character data)Identificator unic (ID)Referinta la un identificator (IDREF)Referinta la o entitate (ENTITY)Enumerare de valori

dtd: atribute

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Un atribut poate fi declarat sa apara:Obligatoriu (#REQUIRED)Optional (#IMPLIED)Fix – se foloseste intotdeauna o valoare a­priorispecificata (#FIXED)

dtd: atribute

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Alt exemplu – genealogia unor persoane:

<!ELEMENT person (name | birth | death | note | father | mother)*>

<!ATTLIST personid ID #REQUIREDgender (M | F) #IMPLIEDxmlns CDATA #FIXED "http://person.org/gen/"

>

dtd

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Interne analizate – text expandat de analizor<!ENTITY busaco "Sabin Buraga"><coordonator>&busaco;</coordonator>

Externe analizate – ca mai sus, dar se declara intr‐un fisier extern

Interne cu parametri – folosite doar in DTDPredefinite

<!ENTITY quot "&#34;">

dtd: entitati

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Exemplu de specificare a entitatilor interne cu parametri:

<!ENTITY % event "(reference*, place?, date?)"><!ELEMENT birth %event;><!ELEMENT death %event;>

dtd: entitati

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O instanta de document trebuie sa aiba atasatao declaratie a tipului caruia ii apartine:

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">

<!DOCTYPE projects SYSTEM "projects.dtd">

dtd: validare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Validarea documentului se realizeazaprin intermediul unui analizor – procesor, parser – XML 

(Jing, libxml, MSXML, Xerces,...) sau utilitar (OpenSP, <oXygen/>, xmllint, XML Nanny etc.)

dtd: validare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XML SchemaScop & caracterizareDefinirea unei schemeXML Schema versus DTD

UtilizariViitor

cuprins

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Recomandare a Consortiului Web (2001, 2004)

XML Schema Primerhttp://www.w3.org/TR/xmlschema­0/

XML Schema Structureshttp://www.w3.org/TR/xmlschema­1/

XML Schema Data Typeshttp://www.w3.org/TR/xmlschema­2/

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Scop: validarea documentelor XML, folosind sintaxa XML

Se foloseste spatiul de nume definit dehttp://www.w3.org/2001/XMLSchema

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Schemaspecificatie formala a gramaticii asociate

unui document XML

flexibilitate sporita fata de DTD

stocata extern intr‐un fisier .xsd

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pentru a i se putea fi verificata validitatea, o instanta a unei clase de documente XML trebuie sa aiba asociata o schema XML

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

O schema defineste o clasa de documente XMLconformindu‐se unui model structural

Suplimentar, specifica un sistem de tipuri de date in termenii infoset‐ului XML

O schema va specifica modul de aparitie si tipurilede date pe care le pot lua valorile constructiilor XML

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Verificarea tipurilor de date in contextul bazelor de date (relationale), masinilor virtuale (JVM, CLR) etc.

Serializarea automata a datelorInvocarea la distanta a metodelor – RMI, SOAPGenerarea de cod‐sursaEditoare “inteligente”Validatoare generale de date (e.g., validarea formularelor electronice)

xschema: utilizari

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Elementul radacina: <xsd:schema>

Definirea/instantierea unui element: <xsd:element>

Definirea/instantierea unui atribut: <xsd:attribute>

Valorile permise pentru un element/atributapartin unui tip de date (simplu sau complex): <xsd:SimpleType>, <xsd:ComplexType>

xschema: definirea unei scheme

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Fiecare instanta de element trebuie sa apartinaunei clase (tip) de elemente

<element name="nume" type="tip" />

xschema: tipuri

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Tipul poate fi: Simplu – nu permite ca un element sa includaalte elemente si nici sa aiba asociate atribute

Complex – permite ca elementele sa includaalte elemente (reguli de aparitie) sisa aiba asociate atribute

xschema: tipuri

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Elementele de tip complex contin: declaratii de elemente<element name="nume" type="tip" />

referinte la elemente definite<element ref="nume" reguli_aparitie="val" />

declaratii de atribute<attribute name="nume" type="tip" />

xschema: tipuri

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Elementele de tip simplu sunt predefinitesau derivate din cele predefinite

Tipurile complexe nu pot fi utilizate pentrua specifica tipurile valorilor atributelor

xschema: tipuri

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Numerice: byte, unsignedByte, hexBinary, integer, positiveInteger, negativeInteger, int, unsignedInt, long, decimal, float, double,…

Logice: booleanData & timp: time, dateTime, duration, date, gYear, gMonth, gDay,…

Siruri: string, token, Name, QName etc.URI: anyURIConstructii XML: ID, IDREF, ENTITY,…

Detalii: www.w3.org/TR/xmlschema­2

xschema: tipuri predefinite

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Definirea de tipuri simple derivate din cele predefinite se face via <xsd:restriction>care poate specifica:

un interval: <xsd:minInclusive>, <xsd:maxInclusive><xsd:minExclusive>, <xsd:maxExclusive>

un model (pattern):<xsd:pattern> (conventii regexp din Perl)

o lista de valori: <xsd:enumeration>

xschema: tipuri

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

<xsd:simpleType name="nrcapType"> <xsd:restriction base="xsd:integer">

<xsd:minInclusive value="0" /> <xsd:maxInclusive value="8" />

</xsd:restriction> </xsd:simpleType> <xsd:simpleType name="addrType">

<xsd:restriction base="xsd:string"> <xsd:pattern value=".+@.+\.(.){2,4}" />

</xsd:restriction> </xsd:simpleType>

xschema: tipuri – exemple

Expresieregulata Perl

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Pentru tipurile simple pot fi specificateconstringeri suplimentare – facets:

Lungime: <xsd:length>Lungimeminima: <xsd:minLength>Lungimemaxima: <xsd:maxLength>Model (pattern): <xsd:pattern>Multime de valori permise: <xsd:enumeration>Controlul spatiilor albe: <xsd:whiteSpace>Numarul de cifre: <xsd:totalDigits>Numarul de cifre zecimale: <xsd:fractionDigits>

xschema: tipuri

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Reguli (restrictii) de aparitiea unei instante de element:

minOccurs=“numar”maxOccurs=“numar | unbounded”

Reguli de aparitie a unui atribut:use=“required | optional | prohibited”

xschema: reguli de aparitie

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Valoarea predefinita a unui atribut se specificaprin atributul default

Setarea de valori particulare pentru elementesau atribute se face via atributul fixed

xschema: continut

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Continutul unui element – derivarea via <xsd:extension>

Dorim elementului <autor> sa atasam atributul emailInitial: <xsd:element name="autor" type="xsd:string" />Acum:  

<xsd:element name="autor"><xsd:complexType><xsd:simpleContent>

<xsd:extension base="xsd:string"><xsd:attribute name="email" type="addrType" />

</xsd:extension></xsd:simpleContent></xsd:complexType>

</xsd:element>

xschema: continut

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Continutul unui element – derivarea via <xsd:restriction>(se folosesc constringeri)

Titlul unui capitol va avea lungime de maxim 50 de caractere: 

<xsd:element name="titlu"><xsd:complexType>

<xsd:simpleContent><xsd:restriction base="titluType">

<xsd:maxLength value="50" /></xsd:restriction>

</xsd:simpleContent></xsd:complexType>

</xsd:element>

xschema: continut

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Continutul unui elementSpecificarea unui continut mixt: <xsd:complexType mixed=“true”>

Specificarea unui continut vid se realizeazaprin <xsd:complexType> care nu va continedecit declaratii de atribute

xschema: continut

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modele ale continutuluiAlternativa: <xsd:choice>Secventa: <xsd:sequence>Grupare: <xsd:group>Aparitie in orice ordine: <xsd:all>

xschema: continut

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Alte facilitatiLegaturi intre constructii XML:identificatori (de tip ID) sireferinte la identificatori (IDREF)

Elemente/atribute cu aparitii unice: <xsd:unique>

Valori nil pentru elemente: nillable=“true”

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Alte facilitatiRelatii intre doua multimi de valori(posibil de tipuri diferite)Un element/atribut poate fi constrins sa fie valid ddaca valoarea lui se afla in multimea valoriloraltui element/atributspecificarea de relatii intre chei

Se folosesc <xsd:key> si <xsd:keyRef>

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Suportul pentru abstractizareSe realizeaza prin atributul abstract=“true”

Elementele/atributele declarate ca fiind “abstracte”nu pot fi utilizate intr‐o instanta de document

Pentru a putea fi folosite trebuie derivate via o schema suplimentara – prin <xsd:include>

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Specificarea unor elemente/atribute generice(ale altor tipuri de documente) se realizeaza

prin elementele <xsd:any> si <xsd:anyAttribute>

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Se foloseste elementul <xsd:annotation> care poate include elementele:

<xsd:documentation> pentru utilizatorii umani<xsd:appInfo> destinat instrumentelor de procesare

Trebuie sa apara ca prim element‐copil al unor elementeca <xsd:schema>, <xsd:element>, <xsd:attribute> sau <xsd:simpleType>

xschema: documentarea schemelor

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

In vederea validarii, o instanta de documenttrebuie sa declare un spatiu de nume cu un URI

desemnind schema utilizata si o instantaa acestei scheme:

<s:radacina xmlns:s="uri_schema"xmlns:xsi=

"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=

"uri_schema doc_schema.xsd">…

</s:radacina>

xschema: procesul de validare

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

In cadrul definitiei schemei, se poate specifica faptul caelementele sau atributele sa fie prefixate obligatoriude un spatiu de nume prin elementFormDefault

si attributeFormDefault

<xsd:schema xmlns="urn:infoiasi.ro:xsdCuprins" targetNamespace="urn:infoiasi.ro:xsdCuprins" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"attributeFormDefault="unqualified">

… </xsd:schema>

xschema: procesul de validare

veziexemplele

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XML Schema versus DTDModuri diferite de specificare formalaa continutului documentelor XMLSchemele pot fi deschise (extinse)

Tipuri de date XML Schema predefinitesunt variate si complexe

Declaratiile spatiilor de nume nu pot fi exprimate in DTDSchemele sunt mai usor de validat/procesat

xschema

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XML Schema 1.1In curs de standardizare la W3C

http://www.w3.org/TR/xmlschema11‐1/ 

http://www.w3.org/TR/xmlschema11‐2/ 

xschema: viitor

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XML Schema 1.1Noutati: 

Declaratiile de tipuri simple/complexeau asociate atributul scopeApare tipul anyAtomicType

Suport pentru controlul versiunilor

Si altele...

xschema: viitor

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

REgular LAnguage for XML Next Generation

Standard OASIS

Vezi http://relaxng.org si http://dsdl.org

Bazat pe expresii regulate – sabloane (patterns): colectii de noduri cu o structura interna specifica

relax ng

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Se iau in consideratie pattern‐urile de baza privitoarela nodurile text, elemente si atribute:Text pattern

<text />Element pattern

<element name="nume">pattern*</element>Attribute pattern

<attribute name="nume"><text /></attribute>

relax ng

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Modul de aparitie a elementelor: <optional>, <oneOrMore>, <zeroOrMore>

Alternativa: <choice>

Grup de elemente: <group>

relax ng

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Definirea de pattern‐uri noi:<define name="elementul-student">

<element name="student"> <text /> </element><optional>

<element name="adresa"> <text /> </element> </optional>

</define> referite prin <ref name="elementul-student" />

relax ng

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Definitiile pattern‐urilor sunt incluse intr‐o gramatica(<grammar>) pentru care trebuie precizat si elementulde start ce desemneaza radacina documentului XMLspecificat: 

<grammar xmlns="http://relaxng.org/ns/structure/1.0"> <start>

<element name="..."> ... </element> </start> <define name="..."> ... </define>

</grammar>

relax ng

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Utilizat la definirea limbajelorXHTML 2.0, RDF, DocBook, 

TEI (Text Encoding Initiative) etc.

Poate specifica si modele nedeterministe

relax ng

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

intrebare

Exista si alte modalitati de validare XML?

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

XDR (XML Data Reduced) –MicrosoftMult mai simplu decit XML SchemaImplementat de MSXML.DLL (versiuni <3)Tipurile de date apartin spatiului de numeurn:schemas‐microsoft‐com:datatypes

Detalii & exemple in [TW, B44‐52]Actualmente, considerat invechit

alternative

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

SchematronLimbaj bazat pe reguli, utilizind expresii XPathin loc de gramatici

Regulile de aparitie se specifica prin asertiunivia pattern‐uri XSLT

Validarea se bazeaza pe procesorul XSLTProcesoare: Cocoon (Java), Schematron.NET

alternative

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

Validarea folosind specificatii multiple: NVDL (Namespace­based Validation Dispatching Language)

www.nvdl.org

Convertirea dintr‐un format in altul(asigurarea inter‐operabilitatii): Trang

www.thaiopensource.com/relaxng/trang.html

Ambele sunt oferite si de <oXygen />

alternative

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

!!

validari: demo

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

rezumat

Validarea documentelor XMLDTD, XML Schema, RELAX NG, alternative

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

TehnologiiTehnologii WebWeb <?xml version=“1.0” ?><curs desc=“…” />

??