modelarea datelor via xml. design patterns in contextul specificarii documentelor xml

125
Dr. Sabin-Corneliu Buraga Facultatea de Informatică Universitatea “Alexandru Ioan Cuza” – Iași, România www.purl.org/net/busaco @busaco

Upload: sabin-buraga

Post on 30-Nov-2014

2.665 views

Category:

Technology


2 download

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

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

„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
Page 4: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Cum modelăm (reprezentăm) datele?

Page 5: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

Ce model de reprezentare a dateloralegem pentru…

reprezentarea limbajului natural?

Page 10: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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
Page 14: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Nu putem defini propriile noastre marcaje!?

Page 15: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Necesitate:un limbaj de marcare explicită a datelor

Page 16: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

Am putea recurge la sau specificaun nou format de document?

Page 21: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Documente:

formate particulare (proprietare)

versus

formate generice (deschise, standardizate)

Page 22: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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
Page 25: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

Extensible Markup Language

meta-limbaj de marcare

permite definirea de limbaje

Page 28: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

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

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

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

Soluție pentru reprezentarea conținutuluiresurselor Web identificate de URI/IRI

Page 36: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

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

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

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

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

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

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

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

Multe alte limbaje la

http://xml.coverpages.org/

Page 48: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Așadar, până la urmă, ce este XML?

Page 49: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

XML

Internet

Docu-mente

Bazede date

Page 51: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

XML se pretează pentru stocarea(reprezentarea) datelor semi-structurate

Page 52: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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
Page 57: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Direcții de interes:comunicatii și interacțiune

Page 58: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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
Page 61: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

Twitter + Google EarthTwittEarth

Page 63: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Direcții de interes:publicare deschisă a datelor

Page 64: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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
Page 66: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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
Page 69: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Direcții de interes:modelarea proceselor (de afaceri, mai ales)

Page 70: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

Firefinder – folosirea interogărilor XPath în cadrul Firebug

Page 73: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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
Page 75: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Există bune practiciprivind utilizarea și/sau modelarea

documentelor XML?

Page 76: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

Recurgerea la șabloane de proiectare(design patterns)

Page 78: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

Ș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

folosirea șabloanelor de interacțiune

Page 82: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

Este necesară adoptarea unui vocabular comuncorespunzător domeniului problemei

pattern language

Page 85: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Șabloane privitoare la:

proiectarearhitectură

analizădezvoltarestructură

comportament

Page 86: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Ne interesează modelarea datelorpe baza familiei XML

Page 87: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

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

exemplu

Page 93: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

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

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

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

Content Element

șabloane înrudite: Head-Body

Collection Element

exemplu

Page 101: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

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

Envelope

exemplu

Page 107: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

Alte șabloane

reutilizarea tipurilor de documente existente: Reuse Document Type

Page 112: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

Alte șabloane

facilitarea extinderii: Catch-All Element

Role AttributeExtensible Content Model

Page 115: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

Alte șabloane

asigurarea consistenței: Common Attributes

Consistent Element Set

Page 116: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

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

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

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

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
Page 123: Modelarea datelor via XML. Design patterns in contextul specificarii documentelor XML

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

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

Ă