modelarea datelor via xml. design patterns in contextul specificarii documentelor xml
DESCRIPTION
An introduction to XML (Extensible Markup Language), including several considerations regarding the use of design patterns in the context of semi-structural data modeling.TRANSCRIPT
![Page 1: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/1.jpg)
Dr. Sabin-Corneliu BuragaFacultatea de Informatică
Universitatea “Alexandru Ioan Cuza” – Iași, România
www.purl.org/net/busaco@busaco
![Page 2: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/2.jpg)
„Lucrurile nu sunt grele de făcut,ceea ce este greu este să fim în stare să le facem!”
Constantin Brâncuși
![Page 3: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/3.jpg)
![Page 4: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/4.jpg)
Cum modelăm (reprezentăm) datele?
![Page 5: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/5.jpg)
Procesare(programe)
Date proprietare(baze de date, suite de birou)
Publicareadatelorpe Web (HTML)
Modelare(semi)
structurată(XML)
Modelareconceptuală(RDF, OWL)
1945 -1970 2000 - 20031994 - 20001970 - 1994 2003 -
“Data is lessimportant
than code”
“Data is asimportantas code”
“Data is moreimportant
than code”
evoluția conceptului de “dată” (Daconta et al., 2003)
datele: mai importante decât aplicațiile
![Page 6: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/6.jpg)
Procesare(programe)
Date proprietare(baze de date, suite de birou)
Publicareadatelorpe Web (HTML)
Modelare(semi)
structurată(XML)
Modelareconceptuală(RDF, OWL)
1945 -1970 2000 - 20031994 - 20001970 - 1994 2003 -
“Data is lessimportant
than code”
“Data is asimportantas code”
“Data is moreimportant
than code”
datele: mai importante decât aplicațiile
evoluția conceptului de “dată” (Daconta et al., 2003)
![Page 7: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/7.jpg)
Ce model de reprezentare a dateloralegem pentru…
stocarea datelor eterogene,provenind din surse multiple?
![Page 8: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/8.jpg)
Ce model de reprezentare a dateloralegem pentru…
informații care evoluează rapid?
![Page 9: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/9.jpg)
Ce model de reprezentare a dateloralegem pentru…
reprezentarea limbajului natural?
![Page 10: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/10.jpg)
Dorim să modelăm și să procesămdate privitoare la…
antologii de poezii,cataloage de produse ale unui e-shop,
depozite de rețete gastronomice,chestionare,rețele sociale
etc.
![Page 11: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/11.jpg)
Folosim HTML pentru modelarea datelorși – eventual – CSS pentru prezentarea lor
o soluție
![Page 12: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/12.jpg)
Folosim HTML pentru modelarea datelorși – eventual – CSS pentru prezentarea lor
<p><strong>Prietenii mei:</strong></p><ul>
<li><a href="http://twitter.com/pinguinulvesel">Dragoș</a></li>
<li><a href="mailto:[email protected]">Tux</a></li>
</ul>
o soluție
![Page 13: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/13.jpg)
![Page 14: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/14.jpg)
Nu putem defini propriile noastre marcaje!?
![Page 15: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/15.jpg)
Necesitate:un limbaj de marcare explicită a datelor
![Page 16: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/16.jpg)
Necesitate:un limbaj de marcare explicită a datelor
datele modelate pot fi practic nelimitate (unbound)și necunoscute
![Page 17: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/17.jpg)
Necesitate:un limbaj de marcare explicită a datelor
ar fi de dorit ca datelesă se poată „explica” pe ele însele (self-explanatory)
![Page 18: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/18.jpg)
Necesitate:un limbaj de marcare explicită a datelor
ar fi de dorit ca datelesă se poată „explica” pe ele însele (self-explanatory)
ce reprezintă triplul ("Sabin", "Buraga", 33)?
![Page 19: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/19.jpg)
Necesitate:modelul adoptat să se preteze arhitecturilornavigaționale actuale, bazate pe hipertext
suport pentru specificarea adreselor Web – URI-uri
![Page 20: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/20.jpg)
Am putea recurge la sau specificaun nou format de document?
![Page 21: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/21.jpg)
Documente:
formate particulare (proprietare)
versus
formate generice (deschise, standardizate)
![Page 22: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/22.jpg)
definiție
Marcaj – adnotare, codare, mark-up
orice actiune de a interpreta explicito porțiune de text (conținut)
![Page 23: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/23.jpg)
definiție
Marcaj – adnotare, codare, mark-up
orice actiune de a interpreta explicito porțiune de text (conținut)
exemple:semnele de punctuație pentru limbile scrise,
deliminatorii folosiți în codul-sursă
![Page 24: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/24.jpg)
![Page 25: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/25.jpg)
definiție
Limbaj de specificare(de adnotare, de marcare)
set de convenții de marcareutilizate pentru codificarea datelor
![Page 26: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/26.jpg)
definiție
Limbaj de specificare(de adnotare, de marcare)
set de convenții de marcareutilizate pentru codificarea datelor
specifică mulțimea de marcaje obligatorii,modul de identificare și de structurare a marcajelor
![Page 27: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/27.jpg)
Extensible Markup Language
meta-limbaj de marcare
permite definirea de limbaje
![Page 28: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/28.jpg)
Extensible Markup Language
descendent simplificat al SGML destinatutilizării în Internet (1996–prezent)
![Page 29: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/29.jpg)
Extensible Markup Language
standard al Consorțiului Web (W3C)
www.w3.org/TR/REC-xml
![Page 30: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/30.jpg)
Extensible Markup Language
o tehnologie + o familie de limbaje
www.w3.org/XML/
![Page 31: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/31.jpg)
Asigură inter-operabilitatea la nivel de date
are suport pe orice platformă hardware/software, inclusiv în cadrul navigatoarelor Web
![Page 32: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/32.jpg)
Asigură inter-operabilitatea la nivel de date
procesoarele XML sunt implementateîn toate limbajele de programare
![Page 33: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/33.jpg)
Asigură inter-operabilitatea la nivel de date
procesoarele XML sunt implementateîn toate limbajele de programare
metode uzuale de procesareobiectuală: DOM (Document Object Model)
secvențială bazată pe evenimente: SAX (Simple API for XML)simplificată: Simple XML
![Page 34: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/34.jpg)
Asigură inter-operabilitatea la nivel de date
recurge la Unicode – independent de codificare
![Page 35: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/35.jpg)
Soluție pentru reprezentarea conținutuluiresurselor Web identificate de URI/IRI
![Page 36: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/36.jpg)
Reprezentarea unei antologii de poezii
<?xml version="1.0" ?><antologie>
<poem><titlu>...</titlu> <strofa>
<vers>...</vers> <vers>...</vers> ...
</strofa> </poem> <!-- mai multe poeme… (acesta e un comentariu) -->
</antologie>
exemplu
![Page 37: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/37.jpg)
Specificarea unui catalog de produse
<produse> <produs tip="promo">
<nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant>
</produs> <produs>
<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere /> <!-- un element având conținut vid -->
</produs><produs>…</produs>
</produse>
exemplu
![Page 38: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/38.jpg)
Specificarea unui catalog de produse
<produse> <produs tip="promo">
<nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant>
</produs> <produs>
<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere /> <!-- un element având conținut vid -->
</produs><produs>…</produs>
</produse>
exemplu
![Page 39: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/39.jpg)
Specificarea unui catalog de produse
<produse> <produs tip="promo">
<nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant>
</produs> <produs>
<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere /> <!-- un element având conținut vid -->
</produs><produs>…</produs>
</produse>
exemplu
date semi-structurate
![Page 40: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/40.jpg)
Informații despre o persoanăvia vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
exemplu
![Page 41: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/41.jpg)
Informații despre o persoanăvia vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
<foaf:Image rdf:about="http://www.flickr.com/.../foto.jpg"> <dc:date rdf:datatype="xsd:date">2010-05-12</dc:date> <dc:title xml:lang="ro">Prezentare la Summer Web 2010</dc:title> <foaf:depicts rdf:resource="#busaco"/> <foaf:maker rdf:resource="#tux"/>
</foaf:Image>
exemplu
![Page 42: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/42.jpg)
Informații despre o persoanăvia vocabularul FOAF (Friend Of A Friend)
<foaf:Person rdf:ID="busaco"> <foaf:name>Sabin Buraga</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:homepage rdf:resource="http://www.purl.org/net/busaco"/>
</foaf:Person>
<foaf:Image rdf:about="http://www.flickr.com/.../foto.jpg"> <dc:date rdf:datatype="xsd:date">2010-05-12</dc:date> <dc:title xml:lang="ro">Prezentare la Summer Web 2010</dc:title> <foaf:depicts rdf:resource="#busaco"/> <foaf:maker rdf:resource="#tux"/>
</foaf:Image>
exemplu
spații de nume
![Page 43: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/43.jpg)
sintaxaXML (Extensible Markup Language)
modelul de date XML (abstract)XML Information Set – Infoset
transformări/prezentări de dateXSL (Extensible Stylesheet Language)
interogarea datelorXQuery – împreună cu XPath
![Page 44: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/44.jpg)
Structurarea/formatarea conținutului(formate de prezentare a datelor)
în navigatorul Web: (X)HTML – Extensible HTMLformulare electronice: XForms
grafică vectorială: SVG (Scalable Vector Graphics)lumi tridimensionale: X3D (Extensible 3D Graphics)
în medii fără fir: XHTML-MP (Mobile Profile), Tiny SVG
![Page 45: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/45.jpg)
Reprezentarea diferitelor tipuri de conținut
expresii matematice: MathMLmultimedia sincronizată: SMIL
(Synchronized Multimedia Integration Language)informații vocale: VoiceXML
componente ale interfeței-utilizator: XUL(Extensible User-interface Language)
informații cartografice: KML (Keyhole Markup Language)
![Page 46: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/46.jpg)
Reprezentarea diferitelor tipuri de conținut
documentații: DocBook (Documentation Book)informații prelucrate de suite de birou
– e.g., Open Office: ODF (Open Document Format) mediatizare (syndication) – fluxuri de știri:
RSS (Really Simple Syndication), Atomreguli de specificare a proceselor de afaceri:
BRML (Business Rules Markup Language)
![Page 47: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/47.jpg)
Multe alte limbaje la
http://xml.coverpages.org/
![Page 48: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/48.jpg)
Așadar, până la urmă, ce este XML?
![Page 49: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/49.jpg)
XML unifică tehnologii privind:
procesarea documentelor
stocarea și prelucrarea tradițională a datelor
accesul la Internet (Web)
![Page 50: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/50.jpg)
XML
Internet
Docu-mente
Bazede date
![Page 51: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/51.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
![Page 52: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/52.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
sistemele tradiționale (e.g., bazele de date relaționale)necesită specificarea unei scheme rigide
în vederea stocării/accesării datelor
![Page 53: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/53.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
sistemele tradiționale (e.g., bazele de date relaționale)necesită specificarea unei scheme rigide
în vederea stocării/accesării datelor
…un punct de vedere în general centralizat
![Page 54: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/54.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
datele de pe Web sunt descentralizate, eterogene și pot fi,deseori, accesate – chiar modificate – de către oricine
![Page 55: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/55.jpg)
XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate
datele de pe Web sunt descentralizate, eterogene și pot fi,deseori, accesate – chiar modificate – de către oricine
resursele disponibile la un moment datnu sunt cunoscute a-priori
![Page 56: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/56.jpg)
![Page 57: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/57.jpg)
Direcții de interes:comunicatii și interacțiune
![Page 58: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/58.jpg)
Direcții de interes:comunicatii și interacțiune
person-to-person
instant messaging – e.g., Jabber via XMPPmicro-blogging – exemplu: Twitter
![Page 59: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/59.jpg)
Direcții de interes:comunicatii și interacțiune
computer-to-person
syndication – via RSS/Atomrecomandare de conținut – e.g., Zemanta
integrare de sisteme sociale
![Page 60: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/60.jpg)
![Page 61: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/61.jpg)
Direcții de interes:comunicatii și interacțiune
computer-to-computer
servicii Webaplicații hibride (mash-up-uri)
![Page 62: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/62.jpg)
Twitter + Google EarthTwittEarth
![Page 63: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/63.jpg)
Direcții de interes:publicare deschisă a datelor
![Page 64: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/64.jpg)
Direcții de interes:publicare deschisă a datelor
modelare (semi)structurată
utilizare de formate/vocabulare standardizateDCMI (Dublin Core Metadata Initiative),
FOAF (Friend Of A Friend),DOAP (Description Of A Project),
…
![Page 65: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/65.jpg)
![Page 66: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/66.jpg)
Direcții de interes:publicare deschisă a datelor
procesare independentă de platformă/limbaj
![Page 67: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/67.jpg)
Direcții de interes:publicare deschisă a datelor
prezentări multiple ale conținutului,în diverse formate, pe sisteme eterogene
![Page 68: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/68.jpg)
![Page 69: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/69.jpg)
Direcții de interes:modelarea proceselor (de afaceri, mai ales)
![Page 70: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/70.jpg)
Direcții de interes:modelarea proceselor (de afaceri, mai ales)
dataflow/workflow
BRML (Business Rules Markup Language),BPEL4WS (Business Process Execution Language
for Web Services)
![Page 71: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/71.jpg)
Analizoare (procesoare, parsers)Apache Xerces, Expat, libxml,…
Vizualizatoare și editoare structuraleFirefox, Open Office, 4Suite, <oXygen />, Serna etc.
Formatatoare – e.g., procesoare XSLT/XSL-FOApache FOP, libxslt, Saxon,…
![Page 72: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/72.jpg)
Firefinder – folosirea interogărilor XPath în cadrul Firebug
![Page 73: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/73.jpg)
Instrumente de convertireTidy
Instrumente de arhivareXMill
Sisteme de gestiune a bazelor de date XMLBerkeley DB XML, eXist, Sedna etc.
![Page 74: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/74.jpg)
![Page 75: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/75.jpg)
Există bune practiciprivind utilizarea și/sau modelarea
documentelor XML?
![Page 76: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/76.jpg)
Cum trebuie structurat un document XML pentru a modela (stoca)
anumite date sau meta-date?
![Page 77: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/77.jpg)
Recurgerea la șabloane de proiectare(design patterns)
![Page 78: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/78.jpg)
definiție
Pattern (șablon)
regulă ce exprimă o relațiedintre un context, o problemă și o soluție
Christopher Alexander, 1979
![Page 79: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/79.jpg)
Uzual, pattern-urile sunt utilizateîn proiectarea de aplicații
(object-oriented software design)
pattern “mind sized” chunk of information
lucrarea de referință:E. Gamma et al., Design Patterns, Addison-Wesley, 1995
![Page 80: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/80.jpg)
Șabloanele de proiectare au fost folosite, ulterior, în cadrul interacțiunii om-calculator
context: IA – Information Architecture
resurse esențiale:J. Tidwell, Designing Interfaces, O’Reilly, 2005
www.hcipatterns.orgwww.welie.com/patterns
![Page 81: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/81.jpg)
folosirea șabloanelor de interacțiune
![Page 82: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/82.jpg)
Un șablon poate descrie cunoștințele unui expert(pe baza experienței sale personale)
în domeniul problemei în ceea ce priveșterecunoașterea problemei, a contextului și a soluției
la acea problemă
![Page 83: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/83.jpg)
Un șablon nu reprezintă o regulă fermă
uneori nu trebuie aplicatanti-patterns
![Page 84: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/84.jpg)
Este necesară adoptarea unui vocabular comuncorespunzător domeniului problemei
pattern language
![Page 85: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/85.jpg)
Șabloane privitoare la:
proiectarearhitectură
analizădezvoltarestructură
comportament
![Page 86: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/86.jpg)
Ne interesează modelarea datelorpe baza familiei XML
![Page 87: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/87.jpg)
Recurgerea la șabloane structurale pentruproiectarea structurii unui document XML:
lungimea documentuluiușurința folosirii marcajelor
ușurința procesăriiflexibilitateaconsistența
gradul de abstractizare
![Page 88: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/88.jpg)
Use XML
determină situația în care XML este soluția viabilă de reprezentare a informațiilor (semi-)structurate
exemplu
![Page 89: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/89.jpg)
Use XML
reprezentări multiple: binar, CSV (Comma-Separated Values), HTML,
baze de date relaționale, obiecte serializate, XML,…
exemplu
![Page 90: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/90.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
datele (conținutul) trebuie separat(e) de formatare
exemplu
![Page 91: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/91.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
datele trebuie partajate între aplicații, organizații,...
exemplu
![Page 92: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/92.jpg)
exemplu
![Page 93: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/93.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
reprezentarea resurselortrebuie să poată fi înțeleasă și de oameni
exemplu
![Page 94: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/94.jpg)
Use XML
XML poate fi o soluție adecvată atunci când:
reprezentarea trebuie procesată facil de calculator, independent de platformă și de limbaj
exemplu
![Page 95: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/95.jpg)
Short Understandable Names
numele marcajelor (elemente și atribute)trebuie să fie scurte și ușor de înțeles atât de autori,
cât și de dezvoltatorii software-uluicare va procesa documentul XML
exemplu
![Page 96: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/96.jpg)
Short Understandable Names
numele prea scurte sunt dificil de înțeles,dar reduc lungimea documentelor
<DescriereaEchipamentului CodulEchipamentului="…" /> versus <desec c="…" />
<b> <ul> versus <video /> <table> <title>
exemplu
![Page 97: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/97.jpg)
Short Understandable Names
convenții de numire:
<nume_tag><NumeTag><numeTag>
exemplu
![Page 98: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/98.jpg)
Content Element
problemă: numeroase elemente care aparpe același nivel în document și care pot fi divizate
în grupuri distincte
un container grupează elemente (copil) înrudite
exemplu
![Page 99: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/99.jpg)
Content Element
adaugă un nivel de abstractizare,gruparea elementelor oferind informații semantice
suplimentare – e.g., asocierea de meta-date unui grup de elemente
exemplu
![Page 100: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/100.jpg)
Content Element
șabloane înrudite: Head-Body
Collection Element
exemplu
![Page 101: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/101.jpg)
Content Element
exemplu
<config>
<ram>4096</ram>
<hdd tip="...">500</hdd>
<parser limbaj="Java">
Xerces</parser>
<editor>vim</editor>
<parser limbaj="Perl">
Expat</parser>
</config>
<config><hardware>
<ram>4096</ram><hdd tip="...">500</hdd>
</hardware><software>
<parser limbaj="Java">Xerces</parser>
<parser limbaj="Perl">Expat</parser>
<editor>vim</editor></software>
</config>
![Page 102: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/102.jpg)
Envelope
oferă un tip de document care va desemna un „plic” în care se vor putea stoca date XML arbitrare
exemplu
![Page 103: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/103.jpg)
Envelope
oferă un tip de document care va desemna un „plic” în care se vor putea stoca date XML arbitrare
problemă: diferite seturi de date trebuie livrateunui sistem, într-o manieră consistentă
context: structura datelor din „plic” poate varia și nu este cunoscută la momentul creării sistemului
exemplu
![Page 104: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/104.jpg)
Envelope
permite separarea diferitelor tipuri de conținuturi,oferindu-se un mecanism de livrare a datelor XML
„plicul” nu interferează cu conținutul propriu-zisal mesajului transmis
exemplu
![Page 105: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/105.jpg)
Envelope
exemplu tipic de utilizare:protocolul SOAP folosit la vehicularea datelor
dintre servicii Web și clienți
exemplu
![Page 106: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/106.jpg)
Envelope
exemplu
![Page 107: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/107.jpg)
Role Attribute
problemă:unui element îi trebuie precizat rolul
(i.e. caracteristica definitorie)
exemplu
![Page 108: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/108.jpg)
Role Attribute
problemă:unui element îi trebuie precizat rolul
(i.e. caracteristica definitorie)
soluție:se poate folosi un atribut specificând rolul
exemplu
![Page 109: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/109.jpg)
Role Attribute
valorile atributului trebuie să fie mutual exclusive
pentru un element XML, nu pot apăreade mai multe ori atribute având același nume
<departament rol="cercetare">…</departament>
exemplu
![Page 110: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/110.jpg)
Role Attribute
exemple de utilizare în cadrul microformatelor
www.microformats.org
vezi direcția POSH (Plain Old Semantic HTML)
exemplu
![Page 111: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/111.jpg)
Alte șabloane
reutilizarea tipurilor de documente existente: Reuse Document Type
![Page 112: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/112.jpg)
Alte șabloane
alegerea elementului/elementelor rădăcină: Multiple Document Types
Multi Root Document Types
![Page 113: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/113.jpg)
Alte șabloane
referențierea unor construcții: Declare Before First Use
referențierea aceleiași informații în locuri multiple: Flyweight
arbore (ierarhie) versus graf: Marketplace
facilitează organizarea structurii documentului XML
![Page 114: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/114.jpg)
Alte șabloane
facilitarea extinderii: Catch-All Element
Role AttributeExtensible Content Model
![Page 115: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/115.jpg)
Alte șabloane
asigurarea consistenței: Common Attributes
Consistent Element Set
![Page 116: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/116.jpg)
Alte șabloane
asocierea de meta-date:Separate Metadata & Data
Metadata in Separate DocumentHead-Body
Metadata First
![Page 117: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/117.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
![Page 118: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/118.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
<preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6"
/>
![Page 119: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/119.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
<preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6"
/>
convenții de reprezentare ce nu pot fi deduse explicit
![Page 120: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/120.jpg)
Modelarea datelor (de la implicit la explicit)
specificarea preferințelor utilizatoruluiîn contextul navigării pe Web
studiu de caz
<preferinte tema="aqua" rezolutie="1024x768" browser="Firefox 3.6"
/>
dacă trebuie stocatăo listă de navigatoare?
![Page 121: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/121.jpg)
Modelarea datelor (de la implicit la explicit)
recurgând la șabloaneo soluție mai bună
studiu de caz
<preferinte> <tema>aqua</tema><rezolutie>
<latime unit="px">1024</latime><lungime unit="px">768</lungime>
</rezolutie><browser versiune="3.6">Firefox</browser>
</preferinte>
![Page 122: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/122.jpg)
![Page 123: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/123.jpg)
Resurse bibliografice
S. Buraga, Tehnologii XML, Polirom, 2006
S. Buraga (coord.), Programarea în Web 2.0, Polirom, 2007
B. Daum, U. Merten, System Architecture with XML,Elsevier Science, 2003
![Page 124: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/124.jpg)
Situri Web de interes
Consorțiul Web: www.w3.org
Șabloane de proiectare XML: www.XMLPatterns.com
XML.org: www.XML.org
Instrumente XML open source oferite de fundația Apache: xml.apache.org
![Page 125: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML](https://reader034.vdocuments.us/reader034/viewer/2022051109/547b2a635906b57c798b45ac/html5/thumbnails/125.jpg)
Ă