Seminario XML

114
Seminario XML Panoramica su XML e tecnologie collegate Ing. Luca Sabatucci

description

Seminario XML. Panoramica su XML e tecnologie collegate. Ing. Luca Sabatucci. Cosa è XML. XML deriva dal linguaggio SGML (Standard Generalization Markup Language) XML è un linguaggio di meta-markup per documenti di tipo testuale XML è standard XML è flessibile XML è portabile. - PowerPoint PPT Presentation

Transcript of Seminario XML

  • Seminario XMLPanoramica su XML e tecnologie collegateIng. Luca Sabatucci

  • Cosa XMLXML deriva dal linguaggio SGML (Standard Generalization Markup Language)XML un linguaggio di meta-markup per documenti di tipo testualeXML standardXML flessibileXML portabile

  • Cosa non XMLXML non un databaseXML non un linguaggio di programmazioneXML non un protocollo di rete

  • Usi e scopi di XMLLa genericit di XML ne ha consentito luso in svariati campi applicativi:finanza, arte, robotica, multimedialit, telecomunicazioni, grafica, matematica, chimica, ecc

  • XML come formato documentaleXML nasce per descrivere documenti:libripoemi,manuali,eccXML perfettamente adatto per scrivere documenti orientati alla narrazione, concepiti per essere letti da persone e non solo da computer.

  • XML come formato per i datiNellarco del suo sviluppo lXML stato usato anche per definire la sintassi dei dati dei programmi del computer:elaborazione di informazioni,serializzazione di oggettibackupecc

  • XML e il WebXML un ottimo strumento se usato per il webXML pu essere usato persostituire il linguaggio HTML con un linguaggio pi flessibile (XHTML)definire il contenuto di una pagina Web (XML)definire lo stile con il quale visualizzare una pagina web (XSL)

  • Alcune applicazioni di XMLSVG (Scalable Vector Graphics)MathMLCML (Chemical Markup Language)RDF (Resource Description Language)XHTML

  • Alcune tecnologie XMLDTD e SchemaNamespaceXpathXSLTSAXDOM

  • XMLeXtensible Markup LanguageIng. Luca Sabatucci

  • Struttura ad albero

  • Struttura del file XMLUn documento XML usato per descrivere un albero gerarchico.Un documento pu avere una sola radice.Ogni elemento pu contenere altri elementi al suo interno.

  • Un esempio di file XML

    LuigiPirandello28giugno1867Agrigento

  • I TAGI tag XML hanno lo stesso aspetto dei tag HTML

  • Nomi XMLNon possono essere usati:spazivirgolette , apostrofi , il simbolo $i simboli < e >il simbolo % e il punto e vigola ;Il nome usato per un tag sensibile alla differenza tra maiuscole e minuscoleIl tag diverso da

  • I datiTra un tag di apertura e un tag di chiusura possono essere inseriti:altri tagdei dati testualicontenuto misto

    28giugno1867

    lezione di XML

  • AttributiAd un tag possono essere associati degli attributiUn attributo consiste in una coppia nome-valore:

  • CommentiI documenti XML possono contenere dei commenti e delle note.Un commento si pu inserire usando la sintassi:

  • La dichiarazione XMLI documenti XML dovrebbero iniziare con una dichiarazione XML:

    dove:version identifica la versione di XML in uso. Attualmente la versione in uso la 1.0encoding specifica quale tipo di codifica deve essere usata allinterno del documento: XML supporta un grande quantit di set di caratteri.

  • Documenti ben formatiAffinch un documento XML sia ben formato necessario rispettare alcune regole sintattiche.ad ogni tag iniziale deve corrispondere un tag finalegli elementi non possono sovrapporsideve esistere esattamente un elemento radice

  • Documenti ben formatii valori degli attributi devono essere specificati tra apicii commenti e le istruzioni di elaborazione non possono apparire allinterno dei tagnon deve apparire nessun carattere < o & allinterno dei caratteri di un elemento o di un attributo

  • Regola 1Ad ogni tag iniziale deve corrispondere un tag finale28giugno1867

  • Regola 2Gli elementi non possono sovrapporsiNon valido:28giugnoValido:28giugno

  • Regola 3Deve esistere esattamente un elemento radice

    Luigi

    Mario

    Valeria

  • Regola 4I valori degli attributi devono essere specificati tra apiciNon valido:

    Valido:

  • Regola 5I commenti e le istruzioni di elaborazione non possono apparire allinterno dei tagNon valido:

    Valido:

  • Regola 6Non deve apparire nessun carattere < o & allinterno dei caratteri di un elemento o di un attributoNon valido: a > b

  • Referenze ad entitPer superare i limiti di non poter usare certi caratteri (>, il carattere minore il carattere &> ->il carattere maggiore >" -> le virgolette' -> apostrofo

  • Sezioni CDATAQuando un documento XML contiene delle grosse porzioni di testo, usare le referenze ad entit pu risultare fastidioso.Per semplificare la scrittura di documenti XML si introducono le sezioni CDATAAllinterno di una sezione CDATA pu essere usato qualunque carattere si desidera, compreso quelli che normalmente non possono essere usati.

  • Sezione CDATAUna sezione CDATA inizia con la sequenza

    Ad esempio: < % oppure i caratteri accentati ]]>

  • Elementi vuotiQuando un elemento non deve avere nessun contenuto esso pu apparire in due forme.Nella forma estesa:

    Oppure nella forma contratta:

  • DTDDocument Type DefinitionIng. Luca Sabatucci

  • Documenti validiLa flessibilit di XML ne consente lutilizzo in campi completamente diversi tra loro.Ogni applicazione XML ha quindi scopi diversi e di conseguenza necessario usare elementi differenti.Occorre quindi uno strumento per imporre una determinata struttura ad un file XML

  • DTDLo strumento in grado di fornire delle regole di composizione strutturale DTD.Un documento DTD descrive con precisione quali elementi ed entit possono apparire allinterno di un documento, quali possono essere i contenuti e gli attributi di tali elementi.

  • ValidazioneQuando un documento XML rispetta le regole imposte da un determinato DTD si dice che risulta valido per lapplicazione specifica.Rispetto alle regole di ben formazione, le regole di validazione sono opzionali.Lo scopo di tali regole quelle di generare documenti che possono essere capiti dalle applicazioni.

  • DTDUn DTD ad esempio pu specificare cheun elemento pu contenere solo elementi un elemento deve avere un attributo previdenza_sociale

  • Principio di baseUn DTD opera sul principio che tutto ci che non esplicitamente dichiarato come permesso allora deve essere considerato vietato.

  • Struttura

  • Esempio di DTD

  • Dichiarazione di elementiOgni elemento utilizzato in un documento valido deve essere dichiarato nel DTDLa sintassi la seguente:

    Dove:il nome di elemento pu essere un qualunque nome XML legale

  • Modello di contenutoIl modello di contenuto dichiara quali figli possa o debba avere lelemento in questione e in quale ordine.I modelli di contenuto possono essere scelti tra sette diversi tipi di elementi.

  • I sette tipi di elementi#PCDATAElementi figliSequenzeScelteElementi vuotiANYContenuto misto

  • #PCDATAE il pi semplice modello di contenutoSpecifica che lelemento pu contenere solamente dati di tipo carattereEsempio:

    Corrisponde a:Pirandello

  • Elementi figliSpecifica che un elemento deve contenere esattamente un elemento figlio di un determinato tipo.Esempio:

    Corrisponde a: 091123456

  • SequenzeGeneralmente gli elementi contengono pi di un elemento figlio.Per specificare quali elementi devono essere contenuti sufficiente elencarli separandoli con delle virgole.Esempio:

  • OrdineUna sequenza specifica che gli elementi devono apparire nellordine specificato.Qualora lordine non sia rispettato il file XML non risulta valido rispetto al DTD

  • Numero di figliE possibile aggiungere un suffisso per specificare quante istanze di figli sono permessi per un dato elemento.Suffissi? corrisponde a zero o un elemento* corrisponde a zero o pi elementi+ corrisponde a uno o pi elementi

  • Esempi

  • SceltePu capitare che il contenuto di un elemento debba essere selezionato tra un elenco di possibilit.Una scelta un elenco di nomi separati da barre verticali |Esempio:

  • Uso delle parentesiE possibile combinare scelte e sequenze in modo anche complessi usando le parentesi.Esempio:

    Corrisponde a:

    12,5 24

    12,5 48

  • Elementi vuotiAlcuni elementi, chiamati elementi vuoti, non hanno nessun contenuto.Gli elementi vuoti vengono dichiarati usando la parola EMPTY.Corrisponde a:

    Dante Alighieri

  • ANYAlcuni DTD particolarmente liberi permettono di specificare un contenuto arbitrario.Tale modello viene dichiarato usando la parola ANY.I figli di page possono essere di qualunque tipo: qualsiasi elemento (compreso page), testo, oppure contenuto misto.

  • Contenuto mistoPer definire che il contenuto di un certo elemento pu essere misto si usa la seguente sintassi:

    Questa dichiarazione indica che lelemento page pu contenere qualunque combinazione di caratteri e di elementi di tipo elemento_figlio.

  • Dichiarazione di attributiOltre a dichiarare gli elementi di un documento, deve essere possibile dichiarare anche gli attributi.La dichiarazione degli attributi ha la seguente forma:

    Una dichiarazione ATTLIST pu essere usata per dichiarare pi di un attributo.

  • Dichiarazione di attributi

    elemento il nome dellelemento che deve contenere lattributoattributo il nome dellattributocaratteristiche un insieme di parametri che specificano il tipo di attributo.se lattributo obbligatorio oppure opzionale

  • ParametriTipo di attributoCDATANMTOKENNMTOKENSIDIDREFENTITYNOTATION

  • Attributo CDATAUn attributo CDATA pu contenere una qualsiasi stringa di testo accettabile da XMLEsempio:

  • Valore di presenzaOgni dichiarazione ATTLIST pu includere un valore di presenza dellattributo#IMPLIEDIndica che lattributo opzionale#REQUIREDIndica che lattributo obbligatorio#FIXEDIndica che lattributo costante e non pu essere variato

  • Valore di presenzaEsempio:

  • La dichiarazione del tipo di documento XMLUn documento DTD specifica un insieme di regole che definiscono una applicazione XML.Per specificare che un documento XML sia conforme a un DTD necessario aggiungere una dichiarazione di tipo di documento.

    Questa dichiarazione va messa nel file XML subito dopo la dichiarazione XML.

  • NamespaceSpazio dei nomiIng. Luca Sabatucci

  • ScopoI Namespace servono a:distinguere tra elementi e attributi con lo stesso nome appartenenti ad applicazioni differentiraggruppare assieme tutti gli elementi e gli attributi di una applicazione XML correlati tra loro in modo che il software li possa distinguere facilmenteQuesta necessit nasce dal fatto che spesso accade che pi applicazioni XML risiedono nello stesso documento.

  • EsempiDocumento XHTML con immagini SVGDocumento XHTML con equazioni MathMLRDF + applicazioni risorsaXSL + documento origineDocumento DocBook con elementi XHTML

  • Catalogo di quadri

    Memory of the garden at EttenVincent Van GoghNovember, 1888Two women look to the left. The SwingPierre-Auguste Renoir1876A young girl on a swing.

  • Uso di RDF per descrivere la risorsaLapplicazione RDF (Resource Description Framework) pu essere usata per descrivere delle risorse.Supponiamo di voler inserire il catalogo di quadri sul Web e di voler usare RDF per rendere alcune informazioni accessibili ai motori di ricerca

  • RDF

  • Uso di RDF

    Catalogo quadri impressionismo 800Luca SabatucciPittori impressionisti26-02-2001Memory of the garden at EttenVincent Van GoghNovember, 1888Two women look to the left....

  • ConflittoTra lapplicazione CatalogoQuadri e RDF nato un conflitto di termini:titledescriptiondateTali elementi hanno lo stesso nome, ma significati completamente diversi tra loro.

  • ImplementazioneI Namespace vengono implementati aggiungendo un prefisso al nome di ogni elemento e attributo.Ogni prefisso viene messo in corrispondenza ad una applicazione XML diversaIn questo modo allinterno di un documento XML si possono avere elementi riguardanti pi applicazioni XML

  • PrefissoLa sintassi usata per introdurre un prefisso Namespace la seguente:Per cui si pu distinguere tra:rdf:descriptionex:descriptiondescription

  • Uso di Namespace

    Catalogo quadri impressionismo 800Luca SabatucciPittori impressionisti26-02-2001Memory of the garden at EttenVincent Van GoghNovember, 1888Two women look to the left....

  • Uso degli URLI prefissi eliminano lambiguit tra elementi con lo stesso nomeE obbligatorio assegnare ad ogni prefisso un URL che identifica la particolare applicazione di riferimentoI prefissi vengono legati agli URL dei Namespace aggiungendo un attributo xmlns:prefisso allelemento base della gerarchia

  • Esempi

  • LURLLa stringa specificata come valore dellattributo xmlns:prefisso ha la forma di un URL internet.In realt gli URL sono degli identificatori puramente formaliNon necessario che la pagina specificata dallURL esista realmenteTuttavia buona norma quella di inserire allURL specificato la descrizione della grammatica o il DTD dellapplicazione di riferimento

  • Namespace e DTDI namespace sono completamente indipendenti dai DTDUn documento pu essere dotato di DTD ma non utilizzare i namespaceOppure pu usare i namespace ma non avere un DTDI namespace non modificano la sintassi dei DTD in nessuna maniera

  • XSLTTrasformazioni XSLIng. Luca Sabatucci

  • XSLTUno dei vantaggi nell'utilizzo del XML la facilit con cui si possono trasformare i documenti in altri formati e strutture. Lo strumento utilizzato per definire queste trasformazioni denominato Extensible Stylesheet Language Transformations (XSLT).

  • Foglio di stileUn insieme di regole che permettono di trasformare un documento in un altro documento si chiama foglio di stileUn foglio di stile si definisce mediante delle regole XSLXSL una applicazione XML

  • Processo di trasformazioneLa trasformazione avviene tramite un processore chiamato elaboratore XSLT

  • Applicazioni praticheWebUn documento XML pu essere trasformato in una pagina HTML in modo da essere visualizzato tramite browser WebXSL-FOUn documento pu essere trasformato in formato FO (Formatting Object) che rappresenta una applicazione di formattazione per documenti testuali.

  • Antwone Quenton FisherWho Will Cry for the Little BoyHardcover9.95Kahlil GibranThe Prophet Hardcover10.50Samuel BeckettWaiting for Godot

  • Catalogo Web SempliceCatalogo di Libri

    Titolo: Autore: Editore: Prezzo:

  • Catalogo Web con TabelleCatalogo di Libri

  • Namespace XSLXSL una applicazione XMLXSL definisce un proprio DTD e un NamespaceLURL da usare per il namespace xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

    Il namespace viene generalmente associato al prefisso xsl

  • xsl:stylesheetLelemento radice di un documento XSL xsl:stylesheetAllinterno dellelemento xsl:stylesheet si mettono le regole di trasformazioneIl pi semplice foglio di stile XSL prevede che non vi siano regole di trasformazione

  • Catalogo persone

    LucaSabatucci1621976PalermoIngegnereMarioRossi471982

  • La pi semplice trasformazioneSe si trasforma il file XML catalogo persone con un foglio di stile vuoto, come quello mostrato di seguito

  • OutputSi ottiene loutput mostrato di seguito:LucaSabatucci1621976PalermoIngegnereMarioRossi471982Milano

  • Foglio di stile vuotoIn assenza di regole la trasformazione la seguente:Viene prelevato il testo interno agli elementi del documento di inputViene quindi riprodotto il contenuto ma non il markup.In questo caso il risultato non un documento XML

  • Modelli e regolePer controllare il modo in cui viene generato loutput in base allinput bisogna aggiungere dei modelli allinterno del foglio di stileOgni modello rappresentato da un elemento xsl:template, dotato di un attributo matchxsl:template definisce una regola di trasformazionematch identifica il tipo di input che attiva la regolaesempio: persona Una persona

  • EsempioDi seguito viene mostrata la regola corrispondente a:persona Una persona

    Una persona

    Output:Una personaUna persona

  • Associamo uno stile HTMLE possibile fare in modo che loutput sia un documento XML ben formato
  • OutputOutput XML

    Output HTML (Internet Explorer)Una personaUna personaUna personaUna persona

  • Valore di un elementoLelemento xsl:value-of permette di selezionare il contenuto di un elemento di input e inserirlo come outputxsl:value-of si pu trovare soltanto allinterno di un elemento xsl:templateLattributo select serve a selezionare il valore che deve essere prelevato

  • EsempioDi seguito viene riportato un esempio di elemento xsl:value-of:
  • OutputOutput XML

    Output HTML (Internet Explorer)Una persona: LucaUna persona: MarioUna persona: LucaUna persona: Mario

  • selectNellesempio mostrato lattributo select di xsl:value-of era impostato come di seguito:select="nomeDove nome lattributo del quale si vuole estrarre linformazione.Pi in generale il valore di select deve essere una espressione XPath

  • Applicazione forzata di modelliLutilizzo della regola xsl:apply-templates permette di stabilire quali modelli devono essere applicati e in che ordinexsl:apply-templates possiede un attributo select che specifica una regola di tipo xsl:template

  • Esempio
  • selectA differenza del primo esempio in cui lattributo select di xsl:value-of era impostato come:select="nomeIn questo esempio si ha:select="text()Dove text() una espressione XPath che sta ad indicare che dellelemento corrente (nellesempio si trattava del nome o del cognome) deve essere prelevato il testo in esso contenuto.

  • OutputOutput XML

    Cognome: SabatucciNome: Luca

    Cognome: RossiNome: Mario

  • OutputOutput HTML (Internet Explorer)Cognome: SabatucciNome: Luca

    Cognome: RossiNome: Mario

  • Intestazione HTMLCatalogo persone

  • Output XML

    Catalogo personeCognome: SabatucciNome: LucaCognome: RossiNome: Mario

  • DOM e SAXInterfaccia con i linguaggio di programmazione

  • XML e i linguaggi di programmazioneXML non altro che un formato passivo utilizzato per codificare dati.I programmatori devono incorporare nelle proprie applicazioni le tecnologie necessarie per generare e interpretare documenti XML

  • I punti di forzaSintassi sempliceSupporto per le strutture ricorsiveSemplicit di debuggingIndipendenza dal linguaggio e dalla piattaforma

  • API for XMLLa struttura grammaticale semplice di XML ha dato luogo alla creazione di componenti gratuiti per generare e interpretare documenti XML.Questi componenti appartengono a due famiglie:SAX (Simple API for XML)DOM (Document Object Model)

  • DOMIl Document Object Model definisce una gerarchia di oggetti in grado di descrivere un documento XMLIl parser integrato in DOM analizza il documento XML e genera in memoria la struttura DOM.Il programmatore deve quindi solo creare il codice per cercare le informazioni nella struttura DOM

  • SAXLe Simple API for XML definiscono un modello di interpretazione guidato dagli eventi.Un parser SAX utilizza un meccanismo di callback per inviare delle notifiche durante linterpretazione dei vari elementi XMLIl parser quindi non mantiene uno stato, e non crea nessuna struttura in memoria; questa caratteristica lo rende particolarmente adatto per lutilizzo con documenti molto grandi.

  • SAX e DOMLa W3C ha definito soltanto linterfaccia delle due librerie SAX e COMQuesto ha permesso limplementazione per moltissimi linguaggi di programmazione:JavaC / C++PerlPythonCOM

  • Ulteriori InformazioniDove reperire ulteriori informazioni su XMLW3C (World Wide Web Consortium) http://www.w3.org/XML/http://www.w3schools.com/default.asphttp://www.html.it/xml/guida/index.html