Documente Academic
Documente Profesional
Documente Cultură
//*
XML Infoset, acces via XPath, validri DTD
Tehnologii Web
Chuang-Tzu
Scop:
specificarea unui model de date (abstract)
pentru XML
www.w3.org/TR/xml-infoset
xml-infoset
xml-infoset
xml-infoset
xml-infoset
xml-infoset
xml-infoset: concepte
xml-infoset: concepte
Element
specific un element XML
posed proprietatea [parent] oferind informaii
despre elementul printe cruia i apartine
are asociat proprietatea [children]
xml-infoset: concepte
Element
proprietatea [local name] desemneaz numele local
al elementului aparinnd unui spaiu de nume indicat
via [namespace name]
prefixul spaiului de nume utilizat este stocat
de proprietatea [prefix]
xml-infoset: concepte
Element
proprietatea [attributes] ofer lista neordonat
a atributelor ataate
proprietatea [namespace attributes] specific
lista neordonat a atributelor xmlns asociate
xml-infoset: concepte
Atribut (attribute)
desemneaz conceptul de atribut XML
xml-infoset: concepte
Atribut (attribute)
elementul cruia i aparine este indicat
de proprietatea [owner element]
valoarea propriu-zis a atributului
este specificat de [normalized value]
xml-infoset: concepte
Caractere (characters)
corespund informaiilor textuale
ale coninuturilor elementelor XML
proprietatea [parent] indic elementul cruia i aparin
xml-infoset: concepte
Caractere (characters)
setul de caractere utilizat este desemnat
de proprietatea [character code]
modul de procesare a spaiilor albe este specificat
de proprietatea boolean [element content whitespace]
xml-infoset: concepte
Attribute
Characters
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
Element
Instruciuni de procesare
(processing instruction information item)
Comentarii
(comment information item)
xml-infoset: concepte
Construciei
<antologie xmlns=
"http://www.infoiasi.ro/antologii"
coordonator="Sabin Buraga" />
i corespunde infoset-ul:
xml-infoset: exemplu
XPath 1.0
xsl: xpath
XPath 1.0
adreseaz pri dintr-un document XML
ofer faciliti de baz pentru manipularea datelor
(iruri, numere,)
opereaz la nivelul structurii abstracte
a documentelor XML (arborele)
xsl: xpath
xsl: xpath
xsl: xpath
Descendent /
/html/body/article
/cuprins/capitol/autor
Traversare recursiv //
//capitol
//cuprins
//div/a
Traversare recursiv //
//capitol
//cuprins
//div/a
Atenie la problemele de performan!
De ce?
Wildcard *
/cuprins/*/nume
capitol/*
/html/body/*/section
Nodul curent .
./capitol
Atribut @
capitol/@nr
table/@*
Spaiu de nume :
svg:*
Spaiu de nume :
//html:*
Filtru/index [ ]
/cuprins/capitol[2]
//li[@class = "presentation"]
self
parent
child
descendant
attribute
namespace
Nodurile ascendente
ancestor
Nodurile ascendente
ori nodul curent
ancestor-or-self
Nodurile descendente
ori nodul curent
descendant-or-self
//div/descendant::a
//div/descendant::*
Ce valoare ofer fiecare expresie XPath?
expresia XPath
/produse/produs/promo/preceding::*
ofer rezultatul
<nume>Ping Uinix</nume>
<ofertant>
http://www.pinguin.info
</ofertant>
self
parent
attribute
namespace
../nume
//child::*[@nr > 2]
.
..
@
:
count(//li[@class = "presentation"])
numrarea nodurilor ce satisfac o anumit condiie
count(//a[@href]) = count(//a)true
toate elementele <a> includ atributul href
count(//li[@class]) = count(//li)false
exist elemente <li> care nu au specificat atributul class
xsl:
//*[contains(text(), "XML")]
furnizarea tuturor nodurilor care conin irul "XML"
<projects>
evaluarea expresiilor XPath
<project class="S">
direct n linia de comand
<title>Super</title>
<desc>Un super proiect pentru super studenti!</desc>
<stud>1</stud>
<url>http://super.info/</url>
</project>
<project class="M">
<title>Super--</title>
<desc>Un proiect care nu e foarte super...</desc>
<stud>2</stud>
<url>http://www.supermm.org/</url>
</project>
</projects>
detalii n
cursul viitor
avansat
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/
avansat
un rezultat
al procesrii
avansat
$x ("//p[@class='info']/*[1]/text()")
utilizarea obiectului $x oferit de consola browser-ului
Chrome sau Firefox pentru evaluarea expresiilor XPath
xsl: xpath
avansat
xsl: xpath
necesiti
necesiti
necesiti
necesiti
soluie
soluie
soluie
Aspecte de interes:
numirea elementelor/atributelor
definirea regulilor de utilizare a acestora
specificarea structurii i coninutului
definirea constrngerilor
oferirea unui set de convenii de numire
soluie
soluie
soluie
avansat
soluie
avansat
soluie
avansat
soluie
Tipuri de documente
Document Type Definition (DTD)
specificare formal a tipurilor de documente
(constituieni + structur)
dtd
Tipuri de documente
Document Type Definition (DTD)
specificare formal a tipurilor de documente
(constituieni + structur)
n spiritul
limbajelor formale
dtd
dtd
dtd
detalii: http://www.w3.org/TR/REC-xml
dtd
dtd
exemplu:
lista proiectelor
dtd
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
<!ELEMENT
metaelement
projects
project
title
desc
stud
url
nume de
element
(neterminal)
(project+)>
(title, desc?, stud, url?)>
(#PCDATA)>
(#PCDATA)>
(#PCDATA)>
(#PCDATA)>
dtd: elemente
dtd: elemente
dtd: elemente
dtd: elemente
elementul cruia
i este asociat
<!ATTLIST projects
update
>
<!ATTLIST project
class
>
CDATA
#REQUIRED
(A | B | C)
"A"
tipul coninutului
CDATA, ID, ENTITY,...
enumerare de valori
mod de apariie
#REQUIRED
#IMPLIED
#FIXED
dtd: atribute
dtd: atribute
dtd: atribute
<!ELEMENT html
(head, body)>
<!ATTLIST html
id
ID
#IMPLIED
xmlns CDATA #FIXED 'http://www.w3.org/1999/xhtml'>
<!ELEMENT img
EMPTY>
<!ATTLIST img
src
CDATA #REQUIRED
alt
CDATA #REQUIRED
height CDATA #IMPLIED
width
CDATA #IMPLIED>
<!ELEMENT table
(caption?, (col* | colgroup*), thead?, tfoot?, (tbody+ | tr+))>
<!ELEMENT caption
#PCDATA>
<!ELEMENT thead
(tr)+>
<!ELEMENT tfoot
(tr)+>
<!ELEMENT tbody
(tr)+>
fragment din DTD-ul
<!ELEMENT colgroup
(col)*>
<!ELEMENT col
EMPTY>
specificnd gramatica
<!ELEMENT tr
(th | td)+>
limbajului HTML
dtd: validare
dtd: validare
<projects>
<project class="D">
<title>Super</title>
<title/>
<desc>Un super proiect!</desc>
<stud atribut="suplimentar">
1
</stud>
<url>http://www.super.ro/</url>
</project>
</projects>
dtd:> xmllint
validare
projects-dtd.xml --valid
de studiat
arhiva
exemplelor
#REQUIRED
#IMPLIED
"2007">
#REQUIRED>
#IMPLIED>
</cuprins>
dtd: validare
dtd: validare
dtd: validare
//*
limbajul XPath definirea tipurilor de documente
rezumat