un model de date pentru Web ga -...

123
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Service Oriented Architectures un model de date pentru Web </> familia XML

Transcript of un model de date pentru Web ga -...

Page 1: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/Service Oriented Architectures

un model de date pentru Web

</>familia XML

Page 2: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

„Esențialul în lumânare nu este cearace lasă urma, ci lumina.”

Antoine de Saint-Exupéry

Page 3: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Cum modelăm (reprezentăm) datele?

Page 4: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

datele: mai importante ca aplicațiile

Procesare(programe)

Date proprietare(baze de date, suite de birou)

Publicareadatelorpe Web (HTML)

Modelare(semi)

structurată(XML, JSON)

Modelareconceptuală(RDF, OWL)

1945—1970 2000—20031994—20001970—1994 2003—

“Data is lessimportantthan code”

“Data is asimportantas code”

“Data is moreimportantthan code”

evoluția conceptului de „dată”(adaptare după Daconta et al., 2003)

Page 5: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

datele: mai importante ca aplicațiile

Procesare(programe)

Date proprietare(baze de date, suite de birou)

Publicareadatelorpe Web (HTML)

Modelare(semi)

structurată(XML, JSON)

Modelareconceptuală(RDF, OWL)

1945—1970 2000—20031994—20001970—1994 2003—

“Data is lessimportantthan code”

“Data is asimportantas code”

“Data is moreimportantthan code”

evoluția conceptului de „dată”(adaptare după Daconta et al., 2003)

pre-Web Web clasic Web social Web-ul datelor

open data

Page 6: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Ce model de reprezentare a dateloralegem pentru…

stocarea datelor eterogene ce provin din surse multiple?informații care evoluează în timp?reprezentarea limbajului natural?

Page 7: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Dorim să modelăm și să procesăm date privitoare la

antologii de poeziicataloage de produse ale unui e-shop

depozite de rețete gastronomicechestionare

rețele sociale…

Page 8: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Necesități:un limbaj de marcare explicită a informațiilor

datele dorite a fi modelate pot fi practicnelimitate (unbound) și necunoscute

nu există a-priori un vocabular/schemă comun(ă)

Page 9: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Necesități:datele trebuie să poată fi auto-explicative

(self-explanatory)

ce reprezintă triplul ("Sabin", "Buraga", 30374) ?

Page 10: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Necesități:modelul adoptat să se preteze arhitecturilor

navigaționale actuale, bazate pe hipertext

suport pentru specificarea URI-urilor

Page 11: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Documente:formate particulare vs. formate generice

Page 12: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

Documente:formate particulare vs. formate generice

codificare generică (’60):procedurală – apeluri de proceduri

bazată pe marcatori (mark-ups)

Page 13: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

preliminarii

GenCode – Stanley Rice, Norman Scharpf

GML (Generalized Markup Language)Charles Goldfarb et al. (IBM)

definirea formală a tipurilor de documente

SGML (Standard Generalized Markup Language)

standard ISO 8879 (1986)

Page 14: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/preliminarii: definiții

Marcaj – adnotare, codare, mark-up

orice acțiune de a interpreta explicit o porțiune de text (conținut)

Page 15: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/preliminarii: definiții

Marcaj – adnotare, codare, mark-up

exemple:semnele de punctuație pentru limbile scrise,

deliminatorii folosiți în codul-sursă

Page 16: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

marcajespeciale

Page 17: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/preliminarii: definiții

Limbaj de specificare (de adnotare, de marcare)set de convenții de marcare

utilizate pentru codificarea datelor

Page 18: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/preliminarii: definiții

Limbaj de specificare (de adnotare, de marcare)set de convenții de marcare

utilizate pentru codificarea datelor

definește mulțimea de marcaje obligatorii,modul de identificare și de structurare a marcajelor

pe baza unei/unor specificații (i.e. gramatici)

Page 19: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml

Extensible Markup Language

meta-limbaj de marcare

descendent simplificat al SGML destinatutilizării în Internet (1996—prezent)

Page 20: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml

Extensible Markup Language

standard W3C (1998, 2000, 2004, 2006, 2008)

http://www.w3.org/TR/xml/

Page 21: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml

Extensible Markup Language

o tehnologie+

o familie de limbaje

Page 22: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml

www.w3.org/standards/xml/

Page 23: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: caracterizare

Marcaje descriptive

<para> <img /> <response> <Person> <tag>

case sensitive

Page 24: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: caracterizare

Tipuri de documente

Document Type Definition (DTD)

specificare formală a tipurilor de documente(constituienți + structură)

folosește la verificarea corectitudinii sintactice

Page 25: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: caracterizare

Independența datelor

suport pe orice platformă hardware/software

extinderea marcajelor

translatarea/transformarea documentelor

Page 26: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: trăsături

Ușor de implementat, cu suport pentru Web

procesoare XML disponibile pentru toate limbajele de programare

Page 27: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: trăsături

Suport pentru utilizarea internațională

folosirea Unicode

independent de codificare/limbă

Page 28: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: trăsături

Meta-limbaj

definire de alte limbaje

portabil

Page 29: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: trăsături

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

asigurarea inter-operabilității (lingua franca)

Page 30: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: constituienți

Prolog (preambul)ElementeAtributeEntități

Secțiuni de marcareInstrucțiuni de procesare

Page 31: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: prolog

Declarație care specifică versiuneași codificarea documentului

<?xml version="1.0"

encoding="UTF-8"

?>

Page 32: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: prolog

Declarație care specifică versiuneași codificarea documentului

<?xml version="1.0"

encoding="UTF-8"

?>

atributobligatoriu

atributopțional

trebuie să apară o singură dată la începutul documentului

Page 33: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: elemente

Element = componentă structurală (unitate-text)

Page 34: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: elemente

Element = componentă structurală (unitate-text)

nume – identifică un element

sintaxă similară cu cea a identificatorilor de variabile

produs

Page 35: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: elemente

Sintactic, un element este specificatvia marcatori (tag-uri) – de început și de sfârșit

<produs>Ping Uinix</produs>

Page 36: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: elemente

Case sensitive

<marcaj> <Marcaj> <MARCAJ>

Page 37: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: elemente

Un element poate avea conținut vid

<produs></produs>

<produs />

Page 38: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: elemente

Un element poate avea conținut vid

<!-- exemplu concret: JSX (React.js) -->

<Form>

<Form.Row>

<Form.Label />

<Form.Input />

</Form.Row>

</Form>

Page 39: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: modele ale conținutului

Model structural

desemnează relațiile dintre elemente: secvență, ierarhie, grupare, incluziune

Page 40: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: modele ale conținutului

Elemente imbricate în alte elemente(pot conține date textuale și/sau alte elemente)

<produs>

Ping Uinix este o mascotă

<obs>policromă</obs>

care se vinde

<obs>foarte rapid</obs>.

</produs>

Page 41: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: modele ale conținutului

Elemente imbricate în alte elemente(pot conține date textuale și/sau alte elemente)

<!-- marcaje HTML5 respectând convențiile XML --><article>

<section><ul>

<li>Concurs:<strong>FII Code</strong>

</li></ul>

</section></article>

Page 42: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: modele ale conținutului

Elementele trebuie să fie închiseși să se împerecheze corect

<div><q>We don't need no education</div></q>

greșit!

Page 43: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<?xml version="1.0" ?><antologie>

<poem><titlu>...</titlu><strofa>

<vers>…</vers><vers>…</vers>…

</strofa> </poem><poem>

<titlu /></poem><poem>

<!-- mai multe poeme… --></poem>

</antologie>

preambul

document XML modelând o antologie

de poezii

Page 44: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<?xml version="1.0" encoding="UTF-8"?><produse>

<produs><nume>Ping Uinix</nume><ofertant>http://www.pinguin.info</ofertant><promo>Mascota lunii</promo>

</produs> <produs>

<!-- un soi de portocale albastre --><nume>Blue Ory</nume><descriere />

</produs><produs>

<nume>Ceas „isteț” cu gust de măr</nume></produs>

</produse>

un posibil catalog de produse în cadrul unui e-shop

Page 45: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: atribute

Atributdescrie o anumită proprietate (caracteristică)

a unei apariții particulare a unui element

Page 46: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: atribute

Atributele apar doar în marcajul de început

<antologie stare= "ciorna" data="2016-12-07">

...

</antologie>

<student matricol="TuPi33">

<nume initiala= "I">Tuxy Pinguinescu</nume>

</student>

Page 47: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: atribute

Atributele pot fi specificate în orice ordine

<Button text="Ok" id="@+id/un_buton" />

≡<Button id="@+id/un_buton" text="Ok" />

Page 48: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: atribute

Numele atributelor este case sensitive

<img src="..." />

<img SRC="..." />

Page 49: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: atribute

Valorile atributelor trebuie să fie delimitateobligatoriu de ghilimele sau apostrofuri

atributele fără valoare nu sunt acceptate

<form action=procesare.php method="GET'>

<label for=căutare">Caută:</label>

<input default type=search placeholder= /></form>

eronat!

Page 50: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<game> <title>Angry Profs</title><platform>Android</platform><platform min-version="8">iOS</platform><platform min-version="10">Windows</platform><url>…</url><player>

<identity> <first-name>Sabin</first-name><last-name>Buraga</last-name><!-- eventual, și alte informații -->

</identity> <points>30374</points>…

</player></game>

date XML referitoare la un joc electronic

Page 51: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<!-- Meta-date asociate unui program, folosite de http://www.pcjs.org/ --><manifest>

<title>VisiCalc</title><version>VC-176Y2-IBM-TEST</version><type>Application</type><category>Productivity</category><company>Software Arts</company><releaseDate>December 16, 1981</releaseDate><machine

href="/devices/pc/machine/5150/mda/64kb/machine.xml" state="/apps/pc/1981/visicalc/state.json"/>

<disk id="disk" dir="/apps/pc/1981/visicalc/bin/"><file>VC.COM</file><file dir="../">README.md</file><link href="http://www.bricklin.com/history/vclicense.htm">

VisiCalc License</link>

</disk></manifest>

Page 52: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: referințe la entități

Scop: codificare și referentiere a unei părți de document

sintaxă: &identificator;

sau

&#număr;

Page 53: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: referințe la entități

Entități predefinite – similare celor de la HTML:

&lt; (<) &gt; (>) &amp; (&) &quot; (")

Entități (referințe) de tip caracter:

&#160; (non-breaking space – &nbsp; pentru HTML)

&#259; („ă” – setul de caractere ISO-8859-2 și UTF)

&#10048; (simbolul „❀” – setul de caractere UTF)

Page 54: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: secțiuni

Anumite părți din documente necesităprocesări speciale

CDATA – inhibă procesarea XML

Page 55: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<script type="application/javascript">

if (vizite < 10) { // nu e vizitator fidel

$("#mesaj").html ("<p>Salut!</p>");

}

</script>

xml: secțiuni

eroare la procesarea XML

Page 56: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<script type="application/javascript">

/*<![CDATA[*/

if (vizite < 10) { // nu e vizitator fidel

$("#mesaj").html ("<p>Salut!</p>");

}

/*]]>*/

</script>

xml: secțiuni

procesorul XML nu va interpreta sintaxa codului JavaScript

Page 57: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: instrucțiuni de procesare

Includ informații privitoare la aplicațiile (externe)care urmează a fi executate

pentru procesarea conținutului

<?processing-instruction ... ?>

Page 58: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: instrucțiuni de procesare

<script>

<?php

echo "<p>Salut!\n</p>";

?>

</script>

procesorul XML ar putea invoca interpretorul PHP pentru execuția programului

Page 59: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: instrucțiuni de procesare

Exemplificare:

asocierea unei foi de stiluri CSS pentru redareaconținutului unui document XML

<?xml-stylesheet type="text/css" href="stiluri.css" ?>

Page 60: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/xml: procesarea spațiilor

Spațiile albe – e.g., spațiu, TAB, caracterele NL (New Line) sau CR (Carriage Return) – nu au nicio semnificație

<VisualAsset id="obiectObservabil">

<enabled>true</enabled>

<zOrder>0</zOrder>

<Orientation>

<roll>90</roll>

<tilt>90</tilt>

<heading>90</heading>

</Orientation>

</VisualAsset>

<VisualAsset id="obiectObservabil">

<enabled>true</enabled><zOrder>0

</zOrder><Orientation><roll>90</roll>

<tilt>90</tilt><heading>90</heading>

</Orientation></VisualAsset>

marcaje ARML (Augmented Reality Markup Language)

Page 61: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: familia

XML (Extensible Markup Language)sintaxa

XML Information Set – Infosetmodelul (abstract) de date XML

XLL (Extensible Linking Language)XLink – legături între documenteXPointer – localizare relativă a resurselor

XSL (Extensible Stylesheet Language)transformări și formatări: XSLT + XSL-FO

XQuery (împreună cu XPath)interogarea datelor XML

Page 62: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: aplicabilitate

Structurarea/formatarea conținutului(formate de prezentare a datelor)

în navigatorul Web: (X)HTML (Extensible HTML), HTML5formulare electronice: XForms

grafică vectorială: SVG (Scalable Vector Graphics)lumi tridimensionale: X3D (Extensible 3D Graphics)

pe platforme mobile: SVG Mobile

Page 63: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: aplicabilitate

Reprezentarea diferitelor tipuri de continut

expresii matematice: MathML – www.w3.org/Math/

date multimedia sincronizate:SMIL (Synchronized Multimedia Integration Language)

informații vocale: VoiceXML – www.voicexml.org

componente ale interfeței-utilizator: e.g., XUL (Extensible User-interface Language)

informații cartografice: KML (Keyhole Markup Language)date hidrologice: WaterML – www.opengeospatial.org

Page 64: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: aplicabilitate

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), Atompublicații electronice (e-books): EPUB – idpf.org/epub

reguli de specificare a proceselor de afaceri: BRML (Business Rules Markup Language)

Page 65: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: aplicabilitate

Descrierea – conceptuală – a resurselor Web

cadrul general: RDF (Resource Description Framework)exprimarea vocabularelor de meta-date:DCMI (Dublin Core Metadata Initiative),

FOAF (Friend Of A Friend),DOAP (Description Of A Project),…

exprimarea modelelor conceptuale – ontologii:OWL (Web Ontology Language)

avansat

Page 66: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: aplicabilitate

Descrierea serviciilor Web

serializarea datelor transmise conform RPC:XML-RPC (XML Remote Procedure Calls)

descrierea serviciilor:WSDL (Web Service Description Language)exprimarea protocolului de transfer: SOAP

modelarea proceselor de afaceri via servicii Web:BPEL4WS

(Business Process Execution Language for Web Services)

într-un curs viitor

Page 67: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

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

Page 68: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: privire de ansamblu

XML – principiu unificator al tehnologiilor de:procesare a documentelor

stocare și procesare tradițională a dateloracces la Internet (Web)

detalii în cartea S. Buraga, Tehnologii XML, Polirom, 2006http://www.slideshare.net/busaco/sabin-buraga-tehnologii-xml

Page 69: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: privire de ansamblu

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

sistemele tradiționale (e.g., baze de date relaționale)necesită specificarea unei scheme rigide

în vederea stocării/accesării datelor

punct de vedereîn general centralizat

Page 70: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: privire de ansamblu

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 a-priori cunoscute

Page 71: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: direcții importante

Comunicații/interacțiune

person-to-person – instant messagingXMPP (Extensible Messaging and Presence Protocol)

http://xmpp.org/

person-to-computer – syndicationformatele RSS și Atom – www.atomenabled.org

computer-to-computer – servicii Webmash-up-uri

Page 72: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: direcții importante

Publicare deschisă a datelor

modelare (semi-)structurată

procesare independentă de platforma/limbaj

prezentări multiple ale conținutului,în diverse formate și pe sisteme eterogene

Page 73: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: direcții importante

Căutare și regăsire – knowledge retrieval

meta-datetagging

navigarefiltrare

import/export de dateinter-operabilitate...

în contextul aplicațiilor Web sociale

Page 74: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: direcții importante

Modelarea proceselor (de afaceri, mai ales)

dataflow

workflow

Page 75: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: instrumente

Analizoare (procesoare, parsers)Apache Xerces, Expat, libxml, MSXML,…

Vizualizatoare și editoare structuralebrowser Web, Open Office, <oXygen/>, MS Visual Studio

Formatatoare – e.g., procesoare XSLT/XSL-FOAH Formatter, FOP, Saxon, Xalan, XEP

Sisteme de gestiune a bazelor de date XMLBaseX, eXistdb, MarkLogic

Page 76: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Dacă alegem nume de marcatori/atribute

deja definite de alte limbaje XML?

Page 77: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume

<event uri="http://studentwebawards.net/">

<name>Student Web Awards</name>

<year>2016</year>

</event>

<participant>

<name uri="mailto:[email protected]">

Tuxy Pinguinescu</name>

<year kind="Bachelor">2</year>

</participant>

Page 78: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume

<event uri="http://studentwebawards.net/">

<name>Student Web Awards</name>

<year>2016</year>

</event>

<participant>

<name uri="mailto:[email protected]">

Tuxy Pinguinescu</name>

<year kind="Bachelor">2</year>

</participant>

?conflict!

Page 79: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume

Spațiu de nume

desemnează un vocabular utilizatpentru calificarea – în mod unic –

a elementelor/atributelor XML

Page 80: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume

Vocabularul definit – colecție de numede elemente și attribute, plus maniera lor de

structurare – poate fi desemnat de un URI

Page 81: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume

Vocabularul definit poate fi desemnat de un URI

atributul xmlns specifică acest URI, atașând opțional un identificator unic

fiecărui vocabular folosit

specificație W3C (2009): http://www.w3.org/TR/xml-names/

Page 82: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<?xml version="1.0"?>

<c:calendars xmlns:c="http://www.calendar.info">

<e:participant xmlns:s="http://www.info.uaic.ro/Students/"

xmlns:e="http://www.info.uaic.ro/Events/">

<s:name>Tuxy Pinguinescu</s:name>

<s:year s:kind="Bachelor">2</s:year>

<c:calendar>

<e:event xml:id="SWA">

<e:name>Student Web Awards</e:name>

<e:year>2016</e:year>

</e:event>

<e:event xml:id="StagiiPeBune" />

</c:calendar>

</e:participant>

</c:calendars>

fără conflicte!

de studiat exemplele din arhiva asociată acestei prezentări

Page 83: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume – exemple

Vocabularul XHTML/HTML5: http://www.w3.org/1999/xhtml

Vocabularul Atom: http://www.w3.org/2005/Atom

Vocabularul modelului conceptual oferit de DBpedia:http://dbpedia.org/ontology/

Vocabularul JSP (Java Server Pages): http://java.sun.com/JSP/Page

Vocabularul XUL (Extensible User-interface Language): http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

Page 84: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

xml: spații de nume

Studiu de caz:includerea în documentele HTML

a unor construcții provenite din alte limbaje XML

exemplificare: SVG (Scalable Vector Graphics) – http://www.w3.org/TR/SVG/

Page 85: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><title>HTML + SVG</title></head><body><h1>O ilustrație SVG (grafică vectorială) inclusă într-o pagină Web</h1>

<!-- Elemente și atribute SVG specificate în documentul HTML, recunoscute pe baza spațiului de nume SVG -->

<svg width="500" height="200" xmlns="http://www.w3.org/2000/svg"><!-- o zonă rectangulară cu colțuri rotunjite --><rect x="50" y="50" rx="7" ry="7" width="450" height="150"

style="fill: #6699FF; stroke: #3333CC;"/><!-- conținut textual --><text x="70" y="90" style="stroke: navy; fill: white; font-size: 32pt;">

SVG direct &icirc;n browser...</text><!-- un cerc galben --><circle cx="400" cy="150" r="33" style="fill: yellow; stroke: red;" />

</svg>

<p>De utilizat un navigator Web care oferă suport nativ pentru SVG.</p></body>

</html>

Page 86: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Page 87: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="8cm" height="3cm">

<title>Grafică vectorială cu SVG</title><defs>

<!-- definim un dégradé (gradient) liniar --><linearGradient id="unGradient">

<stop offset="33%" stop-color="#ADA" /><stop offset="74%" stop-color="#369" />

</linearGradient><rect id="patrat" width="15px" height="15px" rx="2" ry="2" fill="green" /><!-- o cale de redare --><path id="cale" d="M15 50 C10 0 90 0 90 40" /><!-- un filtru cromatic --> <filter id="filtruCromatic"><feColorMatrix in="SourceGraphic" type="matrix"

values="0 0 0 0 01 0 1 1 00 1 1 0 00 0 0 1 0" />

</filter></defs>

C. Bulancea & S. Buraga (2004, 2014)

comenzi grafice(e.g., M=mută, C=cerc)

aplicarea unui filtruwww.w3.org/TR/SVG/filters.html

avansat

Page 88: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<!-- o formă rectangulară umplută cu dégradé-ul definit anterior --><rect x="1cm" y="1cm" width="6cm" height="1cm" round="1em"

fill="url(#unGradient)" />

<!-- folosim 4 instanțe ale pătratului definit, plasate la diverse coordonate și având diverse proprietăți grafice -->

<use x="40" y="40" xlink:href="#patrat" /><use x="100" y="80" xlink:href="#patrat" filter="url(#filtruCromatic)" /><use x="160" y="80" xlink:href="#patrat" fill-opacity="0.33" /><use x="220" y="80" xlink:href="#patrat" />

<!-- un text redat conform căii specificate --><text fill="red">

<!-- de studiat și http://www.w3.org/TR/SVG/fonts.html --><textPath xlink:href="#cale">&#10084; 2016</textPath>

</text></svg>

C. Bulancea & S. Buraga (2004, 2014)

avansat

Page 89: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

redarea conținutului grafic vectorial SVG

Firefoxla nivel de desktop

Windows 10

Safari pe platforma mobilă iOS 10 (iPad)

Page 90: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

Cum verificăm corectitudinea datelor XML?

Page 91: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

necesități

Dorim ca datele modelate via XMLsă poată fi regăsite, reutilizate și partajate

între aplicații

Page 92: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

necesități

O cerință importantă este de a cunoaște:

elementele/atributele ce pot fi specificate+

modul lor de structuraree.g., ordinea, numărul minim/maxim de apariții,...

Page 93: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

necesități

O cerință importantă este de a cunoaște:

tipul conținutului

exemplu: „atributul align poate avea valorilemutual exclusive left, right, center”

Page 94: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

necesități

O cerință importantă este de a cunoaște:

ce poate fi considerat valid și ce reprezintă eroare

exemplificare: elementul <img> are conținut vid

(nu va putea include alte elemente)

Page 95: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

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

și regulile de marcare – modelele structurale

Page 96: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

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

și regulile de marcare – modelele structurale

uzual, grupurile reprezintă: o companie, o industrie, persoane împărtășind

interese comune,dezvoltatori de instrumente de marcare,

un consorțiu/organizație non-profit

Page 97: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Modelul structural se aplică unei clase dedocumente XML, în vederea verificării

– via un analizor (procesor, parser XML) –a corectitudinii instanțelor de documente

aparținând acelei clase

Page 98: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Aspecte de interes:

numirea elementelor/atributelordefinirea regulilor de utilizare a acestora

specificarea structurii și conținutuluidefinirea constrângerilor

oferirea unui set de convenții de numire

Page 99: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Apare necesitatea specificăriiunui set de constrângeri asociate documentelor

XML, astfel încât datele XML să fie verificatedaca sunt valide sau nu din punct de vedere

structural ori al tipului conținutului

Page 100: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

soluție

Modalitățile de specificare a constrângerilorse pot baza pe:

descrieriDTD, XML Schema

reguliSchematron

șabloaneRELAX NG

Page 101: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd

Tipuri de documenteDocument Type Definition (DTD)

specificare formală a tipurilor de documente(constituienți + structură)

Page 102: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd

Documentele XML pot avea sau nu un DTD atașat

intern sau extern documentului XML pe care-l validează

Page 103: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd

Dacă DTD-ul lipsește, documentul trebuiesă respecte un număr minim de constrângeri

document bine formatat – well formed

Page 104: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd

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

DTD-ul poate exprima structura conținutului, indicatorii de apariție, conectorii

detalii: http://www.w3.org/TR/REC-xml

Page 105: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd

Un DTD specifică un tip de document:

<!DOCTYPE element_rădăcină [

declarații de elemente, atribute, entități,...

]>

Page 106: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd

Un DTD specifică un tip de document:

<!DOCTYPE element_rădăcină [

declarații de elemente, atribute, entități,...

]>

<!DOCTYPE projects [

...

]>

exemplu:lista proiectelor

Page 107: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: elemente

<!ELEMENT projects (project+)>

<!ELEMENT project (title, desc?, stud, url?)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT desc (#PCDATA)>

<!ELEMENT stud (#PCDATA)>

<!ELEMENT url (#PCDATA)>

conținut (neterm. & term.)#PCDATA, EMPTY, ANY

* + ? indicatori de apariție, | conectori

meta-element

nume de element

(neterminal)

Page 108: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: elemente

Conținutul unui element poate fi:

șir de caractere (#PCDATA – parsed character data)

vid (EMPTY)

orice alt marcaj/șir de caractere (ANY)

Page 109: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: elemente

Un element poate apărea:

o singură dată – numele elementului

de oricâte ori, inclusiv niciodată (*)

macăr o dată (+)

de zero sau unu ori (?)

Page 110: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: elemente

Ordinea apariției elementelor:

secvență (,)

alternativă (|)

Page 111: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: atribute

<!ATTLIST projectsupdate CDATA #REQUIRED

><!ATTLIST project

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

tipul conținutului CDATA, ID, ENTITY,...enumerare de valori

elementul căruia îi este asociat

mod de apariție#REQUIRED

#IMPLIED#FIXED

Page 112: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: atribute

Conținutul unui atribut poate fi:

șir de caractere (CDATA – character data)

identificator unic (ID)

referință la un identificator (IDREF)

referință la o entitate (ENTITY)

enumerare de valori

Page 113: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: atribute

Un atribut poate fi declarat să apară:

obligatoriu (#REQUIRED)

opțional (#IMPLIED)

fix – se folosește o valoare a-priori specificată(#FIXED)

Page 114: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<!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)+><!ELEMENT colgroup (col)*><!ELEMENT col EMPTY><!ELEMENT tr (th | td)+>…

fragment din DTD-ulspecificând gramatica

limbajului HTML

Page 115: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: validare

O instanță de document trebuie să aibă atașatăo declarație a tipului căruia îi aparține:

<!DOCTYPE html PUBLIC

"-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE projects SYSTEM "projects.dtd">

Page 116: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: validare

Validarea documentului se realizeazăprin intermediul unui analizor – procesor, parser – XML

(Apache Xerces, libxml, MSXML etc.) sau utilitar

(exemple: OpenSP, <oXygen/>, xmllint,…)

Page 117: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: validare

validarea unui document XML cu utilitarul xmllint

<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>

> xmllint projects-dtd.xml --valid

projects-dtd.xml:32: element project: validity error :

Value "D" for attribute class of project is not among

the enumerated set

<project class="D">

^

projects-dtd.xml:36: element stud: validity error :

No declaration for attribute atribut of element stud

<stud atribut="suplimentar">1</stud>

^

projects-dtd.xml:38: element project: validity error :

Element project content does not follow the DTD,

expecting (title , desc? , stud , url?),

got (title title desc stud url )

</project>

^

Page 118: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

<!DOCTYPE cuprins SYSTEM "cuprins.dtd"><!-- pentru validare se folosește un DTD extern --><cuprins titlu="Programarea in Web 2.0" editura="Polirom" an="2007">

<coordonator>&busaco;</coordonator>…

</cuprins>

<!-- DTD definind tipul de document 'cuprins' --><!ELEMENT cuprins (coordonator?, capitol+)><!ELEMENT coordonator ANY><!ELEMENT capitol (nume, autor*, descriere?)><!ELEMENT nume (#PCDATA)><!ELEMENT autor (#PCDATA)><!ELEMENT descriere (#PCDATA)>

<!-- declararea unei entități (cu utilizarea entităților predefinite) --><!ENTITY busaco "Sabin Buraga &lt;[email protected]&gt;">

<!ATTLIST cuprinstitlu CDATA #REQUIRED editura CDATA #IMPLIED an (2004|2005|2007|2009) "2007">

<!ATTLIST capitol numar CDATA #REQUIRED>

<!ATTLIST autoremail CDATA #IMPLIED>

de studiatarhiva

exemplelor

Page 119: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: validare

validarea unui document XML via <oXygen /> XML Editor pe baza Apache Xerces

Page 120: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: validare

raportarea erorilor de validare în Visual Studiorecurgând la MSXML

https://msdn.microsoft.com/en-us/library/ms763742.aspx

Page 121: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

dtd: validare

validarea paginilor Web pe baza DTD-urilor corespunzătoare versiunilor HTML: 3.2, 4.01, 5, 5.1,…

validator.w3.org

Page 122: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/rezumat

modelarea datelor prin XML

</>caracterizare & constituienți, utilizări,

spații de nume XML, validarea datelor XML

Page 123: un model de date pentru Web  ga - profs.info.uaic.robusaco/teach/courses/soa/presentations/web... · antologii de poezii cataloage de produse ale unui e-shop depozite de

Dr.

Sab

in B

ura

ga

profs.in

fo.uaic.ro/~busa

co/

episodul viitor: servicii Web