XML

March 2, 2019 | Author: Adriana Ghisellini | Category: Xml, Html Element, Computer Data, Computer File Formats, Software Engineering
Share Embed Donate


Short Description

Breve introduzione al linguaggio XML...

Description

Indice Introduzione ........................................... .................................................................. .............................................. .............................................. ................................................3 .........................3 Uno sguardo a XML......................................... XML................................................................ .............................................. .............................................. ...................................... ...............3 3 La sintassi XML......................................... XML................................................................ .............................................. ................................................................... ............................................ 4 Le grammatiche DTD........................................ DTD............................................................... .............................................. .............................................. .....................................8 ..............8 Collegare un file XML ad un foglio di stile CSS............................................................................... CSS............................................................................... 4 Introduzione a XML Schema........................................... Schema................................................................... ............................................... ...........................................! ....................! "ltre tecnologie legate a XML........................................ XML............................................................... .............................................. .......................................... .....................#3 ..#3 XML e le $agine %e&' X(TML...................................................... X(TML............................................................................. ................................................... ............................ #4 )uer* con LI+) to XML......................................... XML................................................................. ............................................... ..................................................#4 ...........................#4 ,sercizi................................................... ,sercizi............................ .............................................. .............................................. ..................................................................... .............................................. #! -i&liografia e Sitografia......................... Sitografia................................................ .............................................. ..................................................................... .............................................. #8

Introduzione XML significa eXtensible Markup Language , cioè “Linguaggio a marcatori estensibile”   

E' un insieme di regole e convenzioni che consentono di descrivere qualunque linguaggio di markup, basato quindi sui marcatori L'idea è in parte derivata dai concetti di base di S!L "standard eneralized !arkup Language# $l vantaggio di %!L su S!L è dato dalla semplicit& con la quale in %!L è possibile definire una struttura gerarchica per le informazioni

Uno sguardo a XML   

  

no dei linguaggi a marcatori pi( conosciuto è )*!L e i marcatori sono prefissati %!L non definisce una propria collezione di marcatori "detti tag# ma definisce le regole sintattiche per generare marcatori personalizzati e i loro eventuali attributi %!L è un meta+linguaggio, cioè uno strumento estensibile con cui è possibile realizzare altri linguaggi descrivendo i nuovi marcatori e gli eventuali attributi di questi E' anche possibile, ma non obbligatorio, definire le regole semantiche di relazione tra gli stessi marcatori $ documenti %!L sono di puro testo e non binari, ci garantisce la portabilit& tra sistemi differenti %!L non è legato ad una azienda particolare, è una specifica prodotta dal -./ "-orld -ide -eb /onsortium#

Un esempio di documento XML:

esempio012ml 342ml 34 2ml version version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3prenotazione prenotazione9 9 3id:olo id:olo9 9; ;id:olo id:olo9 9 3id/liente id/liente9 9;;=.7?3> ;;=.7?3>id/liente id/liente9 9 3data data9 9==+07+=7703> ==+07+=770 3>data data9 9 3prezzo valuta valuta5 5“Euro Euro““9=@?3> =@?3>prezzo prezzo9 9 3>prenotazione 3> prenotazione9 9 esempio=12ml 342ml 34 2ml version version5 56017 01766 encoding encoding5 56*A+8 *A+86649 3html html9 9 3head head9 9 3title title9 9 *itolo del documento )*!L 3>title 3> title9 9 3>head 3> head9 9 3bodB bodB9 9 3h0 h09 9n documento )*!L scritto in %!L3> %!L3>h0 h09 9 3>bodB 3> bodB9 9 3>html 3> html9 9

Esercizio

Con un editor di testo (anche Blocco note di Windows) scrivere il codice esempio2!ml e memorizzarlo in due "ile diversi: #)esempio2html  2)esempio2!ml   2)esempio2!ml   $prire con un %rowser %rowser prima un "ile "ile e poi l&altro e osservare i risultati risultati

n esempio pi( complesso di documento %!LC esempio.12ml 342ml version 342ml version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3ranD;remio ranD;remio9 9 3azione azione9 9Felgio3> Felgio3>azione azione9 9 3/ircuito /ircuito9 9S; S;< 3>/ircuito /ircuito9 9 3;osizione ;osizione9 9 3ome ome9 9Guan ;ablo !ontoHa3> !ontoHa3>ome ome9 9 3:ettura :ettura9 9-illiams F!-3> F!-3>:ettura :ettura9 9 3*empo *empo9 901?=17I=3> 01?=17I=3>*empo *empo9 9 3>;ilota 3> ;ilota9 9 3;ilota ;ilota9 9 3;osizione ;osizione9 9=3> 3>;osizione ;osizione9 9 3ome ome9 9Jalph Schumaker3> Schumaker3>ome ome9 9 3:ettura :ettura9 9-illiams F!-3> F!-3>:ettura :ettura9 9 3*empo *empo9 901?.1=IK3> 01?.1=IK3>*empo *empo9 9 3>;ilota 3> ;ilota9 9 3;ilota ;ilota9 9   1111111111111 3>;ilota 3> ;ilota9 9 3>rigliaDdiD;artenza 3> rigliaDdiD;artenza9 9 3>ranD;remio 3> ranD;remio9 9

La sintassi XML

La prima rigaC 342ml version5”017” version5”017” encoding5“*A+8”49 encoding5“*A+8”49 0#$dentifica la tipologia del documento =#Specifica la versione di %!L e la codifica utilizzata .#$l tag non è obbligatorio ma la sua presenza pu evitare problemi legati a incompatibilit& tra file sviluppati con versioni differenti *utto il documento è contenuto all'interno dei due tagC 3ranD;remio9 1111111111111 3>ranD;remio9 0#Muesto elemento è chiamato root element =#E' consentita la presenza di un solo root element .#$ tag sono case sensitive @#on è ammesso avere coppie di tag che si intersecano ?#Ngni tag deve essere sempre chiuso O#;u accadere che un tag non contenga valori Esempio: 'uali"icato'*uali"icato oppure in "orma a%%reviata: 'uali"icato * Attributi

$ tag %!L possono essere corredati corredati di attributi che specificano alcune caratteristiche 1 li attributi sono delle coppie nome=”valore” che devono esse inserite all'interno dei tag1 Esempio: '+!ml version,-#.- L'attr L'attribu ibuto to version  arricchisce il tag di intestazione del documento %!L aggiungendo

l'informazione sulla versione li attributi vanno sempre racchiusi tra doppi apici o apice singolo li attributi possono essere utilizzati in alternativa ad alcuni elementi nidificatiC   esempio@12ml 342ml 34 2ml version version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3;ilota ;ilota9 9 3;osizione ;osizione9 903> 3>;osizione ;osizione9 9 3ome ome9 9Guan ;ablo !ontoHa3> !ontoHa3>ome ome9 9 3:ettura :ettura9 9-illiams F!-3> F!-3>:ettura :ettura9 9 3*empo *empo9 901?=17I=3> 01?=17I=3>*empo *empo9 9 3>;ilota 3> ;ilota9 9 ;u diventareC esempio?12ml 342ml 34 2ml version version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3;ilota ;osizione ;osizione5 5606 *empo *empo5 5”01?=17I= 01?=17I=””9 3ome ome9 9Guan ;ablo !ontoHa3> !ontoHa3>ome ome9 9 3:ettura :ettura9 9-illiams F!-3> F!-3>:ettura :ettura9 9 3>;ilota 3> ;ilota9 9 Muest'ultimo esempio fornisce le stesse informazioni dell'esempio precedente ma questa volta Posizione e Tempo sono state trasformate in attributi del tag ;ilota *ag o attributi 4  Mualche regola per decidereC  n tag è un elemento estendibile in termini di contenuto "con elementi figli# e di attributi   n attributo non è estendibileC pu solo modellare una propriet& di un tag in termini di valore  n tag è unPentit& a se stante  n attributo è strettamente legato ad un tag  n attributo pu solamente contenere un valore “atomico”  $n pratica non cPè una regola valida in assoluto  La scelta dipende da diversi fattoriC leggibilit&, semantica, tipo di applicazione, efficienza Documenti ben ormati e documenti validi   

$n %!L ci sono regole sintattiche C /osa possiamo scrivere in un documento %!L1 /i possono possono essere essere "ma non è obblig obbligato atorio rio## regole regole semanti semantich che e "defin "definite ite da grammatiche# C /ome dobbiamo scrivere scrivere le informazioni allPinterno allPinterno dei documenti n documento %!L che rispetta le regole sintattiche si dice ben formato !"ell ormed #



n documento %!L che rispetta le regole sintattiche e le regole semantiche si dice



si dice valido !valid# n documento ben formato pu non essere valido rispetto ad una grammatica, mentre un documento documento valido è necessariamente necessariamente ben formato1 formato1

$omponenti di un documento

$n un documento %!L generico possiamo individuareC individuareC 0# $l prologo =# $ commenti .# $ marcatori @# $l root element ?# li attributi O# $l contenuto informativo Il prologo contieneC 



La dichiarazione %!LC 342ml version5”017” version5”017” encoding5”*A+8” encoding5”*A+8” standalone5”Bes”49 standalone5”Bes”49 ◦ La dichiarazione %!L se presente deve essere la prima riga del prologo e quindi del documento %!L $struzioni di elaborazione ◦ Sono direttive che danno indicazioni al softQare che utiliza il documento %!L1 ◦



Esempio: '+!ml/st0lesheet t0pe,-te!t*css- hre",-esempiocss-+

$nformazioni sulla grammatica utilizzata nel documento o il riferimento a una grammatica esterna ◦

Esempio:'13C456E Li%ro 7574EM 8li%rodtd-

$ommenti  

3R++ Muesto è un commento ++9 $ commenti %!L possono essere posizionati ovunque on bisogna inserirli prima della dichiarazione %!L

3R++ commento in posizione scorretta ++9 3R++ commento 342ml 34 2ml version version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3root root9 9 111 3> 3>root root9 9 

on possono essere inseriti in altri tag

342ml version 342ml version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3root   3R++ commento 3R++ commento in posizione scorretta ++9 ++99 9 111 3>root 3> root9 9 %lementi del documento XML    

n documento %!L %!L è composto da una gerarchia gerarchia di elementi che possono essere nidificati a piacere piacere secondo regole regole sintattiche precise precise n elemento è formato da una coppia di marcatori detti rispettivamente tag di apertura e tag di chiusura n elemento pu contenere del semplice testo $l linguaggio %!L è case sensitive

%lemento radice

  

 E' il contenitore che racchiude tutta la gerarchia E' obbligatorio E' denominato root element

&omenclatura dei tag    

n tag di apertura deve iniziare con il carattere 3  n tag di chiusura deve iniziare con la coppia di caratteri 3> Entrambi i tag devono terminare con il carattere 9 $l nome compreso tra questi caratteri puC ◦ $niziare con una lettera, un carattere di sottolineatura o con il carattere C "due punti# ◦ opo il primo carattere è possibile utilizzare lettere, numeri, caratteri di sottolineatura, trattini, punti e due punti ◦ on è possibile utilizzare spazi bianchi per separare parole diverse all'interno del nome del tag

Attributi dei tag    

;ermettono di specificare meglio alcune caratteristiche dell'elemento senza ricorrere a elementi figli  La sintassi degli attributi prevede la presenza della coppia nome=”valore” ;ossono essere racchiusi racchiusi tra apici doppi o apici singoli omi degli attributi C ◦ evono seguire le stesse regole dei nomi dei tag degli elementi ◦ $ nomi degli attributi sono univoci all'interno dello stesso tag ◦ radice9 * all'esterno del documento 2mlC 342ml version5”017”9 version5”017”9 3RN/*V;E radice SVS*E! 6nomefile1dtd69 3radice9 111 contenuto del documento 2ml 3>radice9 Perc(+ usare un DTD    

/on un * ciascun file %!L porta con s[ una descrizione del tipo di contenuto iversi programmatori possono usare un * standard per scambiarsi dati ;otete ;otete usare usare il * per per verif verifica icare re la corret correttez tezza za del vostr vostro o docume documento nto %!L "validazione# ;otete usare un * standard per verificare la correttezza di un documento %!L fatto da altri che dovrebbe essere conforme conforme allo standard

,intassi di un DTD

La sintassi di un * si basa principalmente sulla presenza delle seguenti dichiarazioniC 3RELE!E*9

3R >  > > 6> > > >7ossi >(+rio >9iov+nni > >4i+ dei igli10 >:;01 >4 >iene >0:;;;1 >01@: >rossiAgm+il.com > >

> >4erdi >2ergio > > >4i+ 9+riB+ldi >:;01; >4 >2cio >0:;;;18 >01@:; >verdiAgm+il.com > > L$FJN ^displaB displaBCCblock blockUU margin+topCC=7pt margin+top =7ptUU font+sizeCC00pt font+size 00ptUU font+familBCC6*rebuchet !S6, font+familB !S6, :erdana,, C>>Q >QQQ QQ1Q 1Q.1 .1or org> g>=7 =770 70>% >%!L !LSc Sche hema ma++ inst instan ance ce

http httpC> C>>t >tem empu puri ri1o 1org rg>% >%!L !LSc Sche hema ma12 12sd sd

el caso in cui l'istanza non usi nessun namespace, nel documento %!L occorre inserireC 01 La dichiarazione del namespaceC 2mlnsC2si56httpC>>QQQ1Q.1org>=770>%!LSche 2mlnsC2si56httpC>>QQQ1Q.1org>=770>%!LSchema+instance6 ma+instance6 =1 L'indicazione della locazione dello schemaC 2siCnoamespaceSchemaLocation5 2siCnoamespaceSchemaLocation56%!LSchema/12sd6 6%!LSchema/12sd6 $l primo attributo permette di associare il prefisso 2si all'J$ mostrato, il secondo consente di indicare la directorB in cui è stato salvato lo schema che vogliamo associare all'istanza1 Esempio

Schema/12sd

/12ml

342ml version 342ml version5 56017 01766 encoding encoding5 56utf+8 utf+86649 32sCschema 2mlnsC2s5 2mlnsC2s 56httpC>>QQQ1Q.1org>=770>%!LSchema httpC>>QQQ1Q.1org>=770>%!LSchema66 9 32sCelement name name 5  566artista artista66 tBpe tBpe5 562sCstring 2sCstring66>9 32sCelement name name 5  566commento commento66 tBpe tBpe5 562sCstring 2sCstring66>9 32sCelement name name 5  566lunghezza lunghezza66 tBpe tBpe5 562sCstring 2sCstring66>9 32sCelement name name 5  566titolo titolo66 tBpe tBpe5 562sCstring 2sCstring66>9 32sCelement name name 5  566anno anno66 tBpe tBpe5 562sCstring 2sCstring66>9 32sCelement name name 5  566/ /669 32sCcomple2*Bpe 2sCcomple2*Bpe9 9 32sCsequence 2sCsequence9 9 32sCelement ref ref5 56artista artista66 minNccurs minNccurs5 5676>9 32sCelement ref ref 5  566commento commento66 minNccurs minNccurs5 5676>9 32sCelement ref ref 5  566lunghezza lunghezza66>9 32sCelement ref ref 5  566titolo titolo66>9 32sCelement ref ref 5  566anno anno66 minNccurs minNccurs5 5676>9 3>2sCsequence 3> 2sCsequence9 9 3>2sCcomple2*Bpe 3> 2sCcomple2*Bpe9 9 3>2sCelement 3> 2sCelement9 9 3>2sCschema 3> 2sCschema9 9

342ml version 342ml version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3/ 2mlns5 2mlns 56httpC>>tempuri1org>%!LSchema12sd httpC>>tempuri1org>%!LSchema12sd66 2mlnsC2si5 2mlnsC2si 56httpC>>QQQ1Q.1org>=770>%!LSchema+instance httpC>>QQQ1Q.1org>=770>%!LSchema+instance66 2siCnoamespaceSchemaLocation5 2siCnoamespaceSchemaLocation 56%!LSchema/Dbis12sd 69 3artista artista9 9Nne irection3> irection3>artista artista9 9 3commento commento9 9arrivati nelle top list dei grandi mercati musicali3> musicali3>commento commento9 9 3lunghezza lunghezza9 9?C@K3> ?C@K3>lunghezza lunghezza9 9 3titolo titolo9 9p ight3>titolo titolo9 9 3anno anno9 9=7003> =7003>anno anno9 9 3>/ 3> /9 9

Esempio: ocumento semplice

efinizione di un documento contenente un solo elemento di tipo testualeC 342ml 34 2ml version version5 56017 01766 encoding encoding5 56utf+8 utf+86649 3saluto saluto9 9)ello3> )ello3>saluto saluto9 9 Lo schema associato èC 342ml 34 2ml version version5 56017 0176649 32sCschema 2mlnsC2s 2mlnsC2s5 56httpC>>QQQ1Q.1org>=770>%!LSchema httpC>>QQQ1Q.1org>=770>%!LSchema669 32sCelement name name5 56saluto saluto66 tBpe tBpe5 562sCstring 2sCstring66>9 3>2sCschema 3> 2sCschema9 9 L*elemento .sc(ema1

$l documento dello schema %S deve innanzitutto dichiarare un elemento di primo livello di nome schema e il riferimento riferimento al namespace “httpC>>QQQ1Q.1org>=770>%!LSc “httpC>>QQQ1Q.1org>=770>%!LSchema”1 hema”1 $l namespac namespace e pu essere essere dichiar dichiarato ato come default default o con prefis prefisso so,, comun comuneme emente nte si assegna a questo spazio di nomi il prefisso 2s1 $l primo elemento "o radice# di un documento %S sar& quindiC 32sCschema 2mlnsC2s56httpC>>QQQ1Q.1org>=770>%!LSche 2mlnsC2s56httpC>>QQQ1Q.1org>=770>%!LSchema69 ma69 111 3>2sCschema9 Nltre al namespace namespace obbligatori obbligatorio, o, lPelemento lPelemento schema pu dichiarar dichiarare e anche altri spazi di nomi, tra i quali quello del documento al quale si riferisce1 >estrae i libri di un certo autore /onsole1-riteLine" /onsole 1-riteLine"6+++++++++++++++++++++++++6 6+++++++++++++++++++++++++6#U #U /onsole1-riteLine" /onsole 1-riteLine"6i 6i quale autore ti interessano i libri46#U libri46#U string cerco string  cerco 5 /onsole /onsole1JeadLine"#U 1JeadLine"#U var libriDdiDautore var  libriDdiDautore 5 from from item  item in in libri1Elements"  libri1Elements"6L$FJN6 6L$FJN6##  Qhere item1Element"  Qhere  item1Element"62sdCsimple*Bpe 3> 2sdCsimple*Bpe9 9 3>2sdCschema 3> 2sdCschema9 9

enerare un esempio di documento %!L associato1

Esercizio n. 7 

/reare uno Schema %!L che descriva la struttura di un documento dizionario, che rispetti i seguenti vincoliC  L'elemento dizionario deve contenere zero o pi( elementi termine1  L'el L'elem emen ento to term termin ine e è cost costititui uito to dagl daglii elem elemen entiti paro parola la,, pron pronun unci cia a e alme almeno no un'occorrenza un'occorrenza dell'elemento significato1  L'elemento significato è costituito dagli elementi definizione ed esempio "l'elemento esempio pu, comparire zero o pi( volte#1  gli elementi parola, pronuncia, definizione e esempio sono di tipo stringa1  /reare un documento istanza %!L valido rispetto allo schema precedente1 Esercizio n. 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF