Documente Academic
Documente Profesional
Documente Cultură
Tehnologii Web
Nicolae Iorga
xml-infoset
Scop: specificarea unui model de date (abstract) pentru XML
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset
Dr. Sabin Buragawww.purl.org/net/busaco
Modelul asigura inter-operabilitatea diferitelor tehnologii, interfete de programare (API-uri) si aplicatii XML
xml-infoset: concepte
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Element specifica un element XML
poseda o proprietate [parent] oferind informatii despre elementul parinte caruia ii apartine
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Element
proprietatea [local name] desemneaza numele local al elementului al carui scop este dat de [namespace name] ce indica URI-ul spatiului de nume folosit vid daca nu se specifica spatii de nume prefixul spatiului de nume utilizat este stocat de proprietatea [prefix]
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Element
proprietatea [attributes] ofera lista neordonata a atributelor atasate proprietatea [namespace attributes] specifica lista neordonata a atributelor xmlns asociate
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Atribut (attribute) desemneaza conceptul de atribut XML
Dr. Sabin Buragawww.purl.org/net/busaco
numele si spatiul de nume atasat sunt specificate de proprietatile [local name] si [namespace name], respectiv
xml-infoset: concepte
Atribut (attribute)
elementul caruia ii apartine este indicat de proprietatea [owner element] valoarea propriu-zisa a atributului este specificata de [normalized value]
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Caractere (characters) corespund informatiilor textuale ale continuturilor elementelor XML
proprietatea [parent] indica elementul caruia ii apartin
Dr. Sabin Buragawww.purl.org/net/busaco
xml-infoset: concepte
Caractere (characters)
setul de caractere utilizat este desemnat de proprietatea [character code]
modul de procesare a spatiilor albe este specificat de proprietatea booleana [element content whitespace]
Dr. Sabin Buragawww.purl.org/net/busaco
Document
Element
Characters
xml-infoset: concepte
Instructiuni de procesare
(processing instruction information item)
Dr. Sabin Buragawww.purl.org/net/busaco
Comentarii
(comment information item)
xml-infoset: exemplu
Constructiei <antologie xmlns= "http://www.infoiasi.ro/antologii" coordonator="Sabin Buraga" /> ii corespunde infoset-ul:
Dr. Sabin Buragawww.purl.org/net/busaco
transformari XML
Dr. Sabin Buragawww.purl.org/net/busaco
preliminarii
Un document XML asigura separarea continutului i.e. modelul datelor de maniera de formatare (prezentare) si/sau de procesare
Dr. Sabin Buragawww.purl.org/net/busaco
preliminarii
Dr. Sabin Buragawww.purl.org/net/busaco
preliminarii solutie
CSS (Cascading Style Sheets)
sintaxa non-XML flexibilitate limitata nu pot fi efectuate procesari in functie de context
Dr. Sabin Buragawww.purl.org/net/busaco
utilizarea a doua foi de stiluri CSS pentru a oferi prezentari alternative ale acelorasi date XML
preliminarii solutie
XSL (Extensible Stylesheet Language)
sintaxa XML o mai buna flexibilitate procesare in functie de context se pot opera modificari de structura XML ...
Dr. Sabin Buragawww.purl.org/net/busaco
preliminarii strategie
Dr. Sabin Buragawww.purl.org/net/busaco
preliminarii strategie
Dr. Sabin Buragawww.purl.org/net/busaco
usor de produs documente derivate (interogari slabe): selectii, sortari, sumarizari, indexari, catalogari,...
xsl: scopuri
Transformarea structurii si/sau continutului documentelor XML rescrierea documentelor XML
documente XML/HTML sau alte formate
Dr. Sabin Buragawww.purl.org/net/busaco
xsl
Dr. Sabin Buragawww.purl.org/net/busaco
xsl
XSL-FO
atasarea de proprietati de formatare vizuala a continutului documentelor XML
Dr. Sabin Buragawww.purl.org/net/busaco
xsl
xsl
Document XML arbore de noduri
tipuri de noduri: Radacina, Elemente, Text, Atribute, Spatii de nume, Instructiuni de procesare, Comentarii
vezi si XML Infoset
Dr. Sabin Buragawww.purl.org/net/busaco
xsl
Dr. Sabin Buragawww.purl.org/net/busaco
xsl
Dr. Sabin Buragawww.purl.org/net/busaco
Transformarile se aplica recursiv tuturor nodurilor XML care satisfac sabloanele de reguli (pattern-matching)
xsl: xpath
XPath 1.0
recomandare a Consortiului Web (1999)
Dr. Sabin Buragawww.purl.org/net/busaco
www.w3.org/TR/xpath
xsl: xpath
XPath 1.0
adreseaza parti dintr-un document XML
ofera facilitati de baza pentru manipularea datelor (siruri, numere,) opereaza la nivelul structurii abstracte a documentelor XML (arborele)
Dr. Sabin Buragawww.purl.org/net/busaco
xsl: xpath
expresia XPath constructie de baza evaluarea se realizeaza in functie de context:
un nod al documentului XML pozitie o functie de biblioteca o declaratie a unui spatiu de nume
Dr. Sabin Buragawww.purl.org/net/busaco
xsl: xpath
expresia XPath constructie de baza in urma evaluarii expresiei, e returnat un obiect:
o multime de noduri (node-set) o valoare logica true/false un numar (float) un sir de caractere
Dr. Sabin Buragawww.purl.org/net/busaco
Traversare recursiva //
//capitol //cuprins //div/a
Traversare recursiva //
//capitol //cuprins //div/a
Atentie la problemele de performanta!
De ce?
Wildcard *
/cuprins/*/nume capitol/*
/html/body/*/section
Nodul curent .
./capitol
Atribut @
capitol/@nr table/@*
Spatiu de nume :
xsl:*
6 noduri <li> (de tip Element) care au ca valoare a atributului class sirul de caractere "presentation"
ancestor
ancestor-or-self
descendent-or-self
. .. @ :
count(//li[@class = "presentation"])
gasirea sub-nodurilor elementelor <li> aflate pe ultima pozitie din primele liste neordonate: //ul[1]/li[last()]/*
xsl: xpath
Exemple de instrumente (API-uri) de procesare:
REXML (Ruby) modul XML cu suport si pentru XPath XML::XPath modul Perl XPath API diverse interfete de programare oferite de Apache Xalan si Saxon pentru Java vezi si javax.xml.xpath.XPath din cadrul JAXP
Dr. Sabin Buragawww.purl.org/net/busaco
xsl: xpath
Instrumente XPath exemplificari:
Dr. Sabin Buragawww.purl.org/net/busaco
FirePath, Firefinder extensii Firebug pentru formularea de interogari XPath asupra documentelor Web EXPath initiativa de utilizare/creare de extensii pentru XPath: http://expath.org/
xsl: xslt
XSLT (XSL Transformations) 1.0
recomandare a Consortiului Web (1999)
www.w3.org/TR/xslt
Dr. Sabin Buragawww.purl.org/net/busaco
xsl: xslt
XSLT (XSL Transformations) 1.0
transforma documentele XML in alte tipuri de continut: XML, HTML, text etc.
Dr. Sabin Buragawww.purl.org/net/busaco
xsl: xslt
Dr. Sabin Buragawww.purl.org/net/busaco
Pentru a putea fi folosite, constructiile XSLT trebuie sa apartina spatiului de nume desemnat de URI-ul: http://www.w3.org/1999/XSL/Transform
xsl: xslt
Dr. Sabin Buragawww.purl.org/net/busaco
O foaie de stiluri XSLT are drept element radacina <xsl:stylesheet> sau <xsl:transform> include sabloane de transformare
xsl: xslt
Pentru transformare, se recurge la expresii XPath folosite la:
selectarea nodurilor dorite a fi procesate
specificarea conditiilor de procesare generarea textului de iesire
Dr. Sabin Buragawww.purl.org/net/busaco
includerea de alte foi de stiluri: <xsl:include /> variabile si parametri: <xsl:variable />, <xsl:param />
current ()
document () function-available ()
format-number ()
system-property ()
xsl: demo
rezumat