La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

XML: eXstensible Markup Language Laura Papaleo

Presentazioni simili


Presentazione sul tema: "XML: eXstensible Markup Language Laura Papaleo"— Transcript della presentazione:

1 XML: eXstensible Markup Language Laura Papaleo

2 Il nostro Flusso di Lavoro… Perché XML? Per rappresentare le informazioni XSL XSLT - XPath Per strutturare le informazioniXML Per creare gli ipertesti XLink XPointer

3 Il nostro Flusso di Lavoro… ìValidare Documenti XML ìUsare lo stesso TAG con significati diversi ìI Metadata ìManipolare Documenti DTD e PARSER NameSpace DOM SAX Schema RDF

4 Il nostro Flusso di Lavoro… ìRappresentare senza trasformare ìApplicazioni CSS2 e CSS3 QUILT - XQL SMIL SVG

5 Perché serve XML L’ipertesto, lacune di HTML ed esigenze di un nuovo linguaggio ?

6 L’ipertesto Theodor Nelson - termine ipertesto nel ‘65: Theodor Nelson - termine ipertesto nel ‘65: “Lasciate che io introduca il termine ipertesto per rappresentare un insieme di materiale scritto o figurato interconnesso in un modo così complesso da non poter essere rappresentato su carta.”

7 L’ipertesto ìPuò contenere sommari o mappe dei contenuti ìPuò contenere annotazioni, note a fondo pagina di coloro che vi hanno lavorato sopra ì"iper" : ha il significato di estensione ìIn grado di rappresentare le informazioni contenute attraverso una rappresentazione non lineare

8 Il concetto di Link ìElemento chiave che permette il salto tra testo e ipertesto ìEsistono diverse tipologie di Link tra le quali: 3link bidirezionali 3link multiplo (uno a molti e molti a uno) 3link che puntano su sezioni strutturali di un documento 3link che identificano una sequenza di documenti interrelati 3link definiti all'esterno del documento

9 Struttura e Rappresentazione ìUn libro ha un certo ordine nelle cose che devono essere lette ìLa scrittura ha definito il rapporto fra struttura gerarchica delle informazioni e la rappresentazione visiva

10 Struttura e Rappresentazione ìUn libro riporta informazioni strutturate gerarchicamente in modo da risultare funzionali all’accesso, 2questo a prescindere dalla casa editrice, dalla tipologia estetica 2dal colore della carta e dal font usato ìA prescindere dalla sua rappresentazione

11 Struttura e Rappresentazione ìPer i documenti elettronici il discorso è analogo ìNel momento in cui si ha bisogno di un'informazione entrano in gioco i tre livelli ContenutoContenuto Struttura Rappresentazione

12 Struttura e Rappresentazione ìIn fase di progettazione titolo è a prescindere dal carattere usato ìLa rappresentazione può essere utile 3in fase di individuazione 3per migliorare la leggibilità 3per favorire la percezione della struttura ìStruttura e Rappresentazione di un contenuto sono due cose assolutamente separate Struttura Rappresentazione

13 I Linguaggi di Markup ìI word processor assumono nell’ambito dell’ipertesto un rilievo minore rispetto ai linguaggi di markup 3in genere sono sistemi WYSIWYG 3utilizzano per la rappresentazione dei caratteri di controllo invisibili e proprietari 3limitano la portabilità e il riutilizzo obbligando ad utilizzare per la lettura lo stesso software usato per la scrittura

14 I Linguaggi di Markup ìDescrivono i meccanismi di strutturazione e di rappresentazione del testo 3"marcano" le porzioni di testo indicandone le caratteristiche ìDue gruppi: 3Di tipo procedurale, indicano le procedure di trattamento del testo aggiungendo le istruzioni 3Di tipo descrittivo, lasciano la scelta della rappresentazione al software ìDifferenza nel meccanismo usato per definire la formattazione del testo

15 I Linguaggi di tipo descrittivo ìI linguaggi di tipo descrittivo risultano più vantaggiosi, 3Lasciano la concentrazione sui problemi strutturali di leggibilità 3Prescindono in fase di lettura dal software con cui sono stati generati 3Garantiscono una corretta separazione tra struttura e rappresentazione ìTra i linguaggi del primo tipo ci sono lo Script, il TROFF, il TEX, tra quelli del secondo tipo SGML, HTML, XML.

16 Storia: Il Markup ed il Web ìLa Graphic Communications Association crea GenCode ìDopo IBM sviluppa GML (Generalized Markup Language) 3Una sintassi semplice di tag contenuti tra <> (/) ìPer avere un formato aperto e standardizzato per il trattamento di dati ìPer poter scambiare e manipolare documenti strutturati

17 Storia: Il Markup ed il Web ì1980 – GenCode/GML e si fonda “American National Standards Institute” (ANSI) ìNel ‘86 nasce SGML 3Presente anche il CERN ìDa SGML Lee ricava un sottoinsieme: HTML GenCode GML SGML HTML

18 Crisi del Web ìLa potenza di HTML rappresenta anche il punto di massima debolezza ìInternet è in evoluzione ìLo sviluppo abnorme deve comportare cambiamenti nella gestione delle informazioni ìLa staticità degli standard tende a diventare un peso ìLa maggiore duttilità dei nuovi standard può risolvere il problema

19 Crisi del Web ìCostruire e Pubblicare in rete è semplicissimo ìAumentando i documenti, la complessità diventa incredibile ìPrimo Problema: “dead link”.

20 I Problemi del Web ìTrovare “documenti significativi” è tutt’altro che semplice ìProblemi per individuare documenti utili alle proprie esigenze ìLink che annuncia finalmente un sito pieno di informazioni interessanti, ì“messaggio di errore” da parte del server !

21 HTML ed il Link Unidirezionale ìLink elemento chiave della struttura ipertestuale ì e HREF in HTML per saltare da un punto ad un altro del documento o dell'intero Web ìHTML usa solo link unidirezionale Documento B Documento A link Point to Point Point to Topics

22 I Link Scomparsi ìL'indirizzo della risorsa è interno al file HTML. 3La teoria ipertestuale raccomandava di mantenerlo all'esterno del documento in un database o in un altro documento. ìCancellazione di una risorsa di destinazione o modifica del path, comporta l’aggiornamento di tutti i documenti che puntano alla risorsa. ìUn problema da risolvere...

23 Perdita Struttura/Rappresentazione ìDistinzione struttura/rappresentazione persa ìTale distinzione è la base della concezione dei linguaggi di markup di tipo descrittivo come SGML, HTML ìUn altro Problema da risolvere…,,, … ??

24 Cosa è sbagliato in HTML? ìUna corretta divisione di Struttura e Rappresentazione permette: ìdi individuare occorrenze di un certo termine significativo ìdi stabilirne la rilevanza in base alla posizione nella gerarchia testuale

25 Cosa è sbagliato in HTML? ìL’intento di HTML era di usare elementi per marcare le informazioni in relazione al loro significato  Usare FONT e I o altro fornisce layout migliore rendendo difficile rispettare le richieste dell’utente 2proprietario del browser... ìLasciare al browser la possibilità di interpretare le informazioni non è un atteggiamento semplicistico

26 Cosa è sbagliato in HTML? ìLa Staticità ìSe l’idea è marcare informazioni in modo molto preciso i TAG HTML possono non bastare 3Esempio un chimico per le formule 3Un costruttore di aeroplani per i motori, modelli... 3Mantenere tutti i tag possibili sarebbe davvero difficile!

27 Cosa è sbagliato in HTML? ìDocumenti non validi semanticamente ìSi possono scrivere documenti HTML validi che non hanno senso quando si considera la semantica ìNon esiste un vincolo nello standard... Prova una prova titolo1 ?

28 Inadeguatezza di HTML ìNUOVE RICHIESTE ìGli utenti richiedono pagine complesse, ìLe prestazioni hardware migliorano ìJavascript Shockvawe, Acrobat reader ìHTML diventa assemblatore di tecnologie HTML Javascript VBScript AppletFlash PHP PERL CGI

29 Inadeguatezza di HTML ìPortabilità ìLe nuove tecnologie sono soluzioni proprietarie ìI Documenti HTML ci obbligano a scaricare una miriade di plugin ìLontanissimo dalla filosofia iniziale e dall'informatica distribuita 3Cercare ambienti standard Ambiente Standard DB WEB Parallel

30 HTML e SGML ìHTML è quindi un linguaggio ìSGML è un metalinguaggio ìHTML è semplice ma rigido ìSGML è duttile ma molto complesso SGMLSGML HTML

31 SGMLSGML XML Esigenza dell’XML ìNell’estate del ‘96 il W3C inizia un lavoro per un nuovo standard di applicazioni Web per risolvere i problemi ìNasce un nuovo working group (XWG) per creare un nuovo standard eXstensible Markup Language (XML) ìQualcosa di più di HTML, qualcosa di più semplice di SGML HTML

32 Fasi di Lavoro ìil XWG individua tre fasi principali di lavoro: 3Definire uno standard per la creazione di linguaggi di markup 3Sviluppare uno standard comune per “linkare” a tali linguaggi 3Sviluppare uno standard comune per la specifica del layout di documenti scritti secondo tali linguaggi... ìXML 1.0 specifiche completate presso il sito del W3C

33 eXstensible Markup Language Tim Bray, uno degli autori di XML 1.0, scrive: ìUnfortunately, there are things that HTML just can't do for you. ìFortunately, HTML is growing quickly to meet these needs. ìUnfortunately, no matter how many new tags are added, there will never be enough for all the good ideas people keep having. ìFortunately, HTML is a form of SGML [...]. ìUnfortunately, the SGML standard is large, takes time to learn, and doesn't have a "starter kit". ìFortunately, XML is here.

34 XML - Introduzione ìXML = Extensible Markup Language “XML is a language for creating markup languages that describe structured data.” Mike Edwards, Microsoft ìDescrive i dati e non la loro rappresentazione ìHa un formato aperto e leggibile visualmente simile all’HTML ìElimina la necessità di Browser e tool di mezzo per aggiungere TAG speciali

35 XML - Introduzione ìeXtensible - non rigido come HTML ìOttimo per la trasmissione di dati da server e browser ìOttimo per la trasmissione da applicazione a applicazione, da macchina a macchina… ìE’ un metalinguaggio usato per definire nuovi domini applicativi o linguaggi specifici

36 XML - Aree Applicative ìApplicazioni che richiedono al Web Client di mediare tra due o più DB eterogenei ìApplicazioni che cercano di distribuire porzioni significanti di dati tra Client/Server OracleSQL…

37 XML – Aree Applicative ìApplicazioni che richiedono al Web Client di mostrare più viste dello stesso dato a diversi utenti ìApplicazioni che richiedono al Web Client di mostrare più viste dello stesso dato a diversi utenti ìApplicazioni in cui Agenti Web Intelligenti decidono riguardo informazioni utili per un utente Compito TestoEsercizio Soluzione Client User1 Client User2 TestoEsercizio Soluzione Client con caratteristiche A, B, C, …. Agente

38 XML - Vantaggi ìAttenzione esclusivamente al contenuto ìLa fase di grafica può essere attuata successivamente o da un altra persona ìSi possono sviluppare linguaggi ad HOC specifici per certe comunità di utenti ìMatematici, chimici, una singola società, un ente…etc…

39 XML - Vantaggi ìLa gestione semplice da SGML a XML rende le società che usano SGML per l’archiviazione dati proiettate alla pubblicazione di dati nel Web ìStrutturando le info bene, i software di ricerca, in IR, possono essere precisi e veloci ìscegliendo tra l’enorme quantità di materiale nel Web

40 Che cosa è un documento? ìDocumento si riferisce non soltanto ai documenti tradizionali ma anche alla miriade di altri formati di dati XML ìQuesti includono 3le transazioni di commercio elettronico, 3le equazioni matematiche, 3i meta dati di un oggetto, 3ed altri mille generi di informazioni strutturate.

41 XML e HTML ìXML non specifica né la semantica né un insieme di TAG ìXML è un metalinguaggio per la descrizione dei linguaggi di markup ìXML fornisce un modo per definire i tag ed i rapporti strutturali fra loro ìPoiché non vi è un insieme predefinito di TAG, non ci può essere alcuna semantica preesistente

42 Gli obiettivi di sviluppo di XML ìLe specifiche XML hanno precisato i seguenti obiettivi: ìXML dovrà diventare il linguaggio di markup standard per Internet. ìOgni utente deve poter visualizzare documenti XML come quelli HTML ìCompatibile con SGML. ìI documenti XML devono essere leggibili e chiari ìIl design XML deve essere redatto rapidamente ìIl design XML deve essere formale e conciso ìI documenti XML devono essere facili da creare.

43 W3C - Termini ìW3C organizzazione mondiale per standard WEB ìRecommendation 3uno standard (più o meno); stabile; si può usare ìProposed Recommendation: 3quasi standard; fissabile in 2-3 mesi; le feature possono essere usate ìWorking Draft: 3Lavoro in fase di sviluppo; potrebbe diventare una Recommendation in meno di un anno; ìNote: 3idee completamente non affidabili

44 XML – Standard collegati ìXML è una lingua “franca” che permette di descrivere la struttura di documenti ìIl W3C ha definito svariati standard per poter integrare la definizione di XML per consentire la: 3Definizione metadata 3Definizione link tra più documenti 3Trasformazione/Rappresentazione documenti XML 3Definizione di linguaggi di interrogazione 3Manipolazione documenti XML “da programma” 3Rappresentazione di informazione grafica

45 Definizione di metadata ìCome detto in precedenza, i TAG non definiscono la semantica dei dati che rappresentano ìOccorre quindi introdurre il concetto di metadata cioè “dati sui dati” ìSi parla di metadata a diversi livelli 3a livello linguistico introducendo dizionari di nomi (Namespace) 3a livello di tipo introducendo gli schema (Xschema) 3a livello concettuale introducendo concetti e legami tra concetti (RDF -- Resource Description Framework)

46 Definizione link tra più documenti ìLo standard XML permette di rappresentare solo i link interni al documento, ma non i link tra documenti diversi ìInoltre, si vogliono poter rappresentare tutte le forme di link che abbiamo visto in precedenza ìPer questo motivo sono stati introdotti i seguenti standard 3XLink che permette di definire link tra più documenti 3XPointer che permette di indirizzare una parte specifica di un documento

47 Rappresentazione - Trasformazione ìLo standard XML permette di strutturare documenti XML ìNo rappresentazione ìNasce XSL. ìXSL permette di 3Identificare parti di documento da rappresentare (Xpath) 3Trasformare le parti (attraverso il linguaggio XSLT) 3Rappresentare (HTML, PDF,...) il documento risultante (attraverso il linguaggio XSL-FO)

48 Linguaggi di interrogazione ìI documenti XML possono essere memorizzati in sorgenti di informazioni (DB). ìOgnuno può sottomettere alla sorgente richieste di documenti che soddisfano certe query. ìEsistono diversi linguaggi per poter interrogare sorgenti XML ìAttualmente non esiste uno standard W3C ìLa proposta potrebbe essere QUILT

49 Manipolazione “da programma” ìI documenti XML possono essere visti come canale di comunicazione tra applicazioni client- server ìCioè permettono alle applicazioni di scambiarsi informazioni. ìUn’applicazione deve saper leggere e manipolare documenti XML ìSono stati introdotti standard per manipolare documenti XML ìGli standard principalmente utilizzati sono DOM e SAX

50 MathML ìRaccomandazione del W3C uscita il 21 febbraio ìMathML è una specifica a basso livello per la descrizione di oggetti matematici per la comunicazione macchina a macchina. ìFornisce un fondamento necessario per l'inclusione delle espressioni matematiche in pagine Web

51 SVG – Scalable Vector Graphics ìLinguaggio per la descrizione di grafica 2D in XML 1.0 ìSVG tiene conto tre tipi di oggetti grafici: 3vector graphic shapes (path che consistono in linee rette e curve), 3immagini e testo ìGli oggetti grafici possono essere raggruppati, trasformati ìGli oggetti SVG possono essere interattivi e dinamici.

52 XForms 1.0 ìW3C Working Draft 8 June 2001 Le Form di adesso non separano questi concetti ed offrono una rappresentazione restrittiva dei dati ìXForms fa questo ed altro. Purpose Presentation Data Data collection Arrangement of form controls Registration information Time card How dates are entered Days and hours worked Order form How to render the form controls on small devices Order, shipping, and payment info Information Please How the form integrates with a Web site User contact information

53 XHTML 1.0 (1.1): ìThe Extensible HyperText Markup Language 3Una Riformulazione di HTML 4 in XML 1.0 ìXHTML rappresenta una famiglia di tipi di documenti correnti e futuri e moduli che riproducono ed estendono HTML 4. ìI tipi di documento XHTML sono basati su XML, ìXHTML 1.0 è il primo tipo di documento nella famiglia XHTM

54 XML Encryption ìW3C Working Draft 2001-April-20 ìRequirements ìQuesta specifica fornisce le richieste per una sintassi XML ìed istruzioni di processing per la codifica di contenuti digitali, ìTali documenti possono includere anche porzioni di documenti XML e messaggi di protocollo.

55 XML Query ìWorking Draft June 2001 ìLa missione di XML Query è di fornire facilitazioni nella fase di estrazione di dati reali o virtuali da documenti WEB ìe di fornire l’interazione necessaria tra il WEB e il mondo dei database ìInfine dovrebbe servire ad accedere ai file XML come se fossero DB essi stessi.

56 XML Signature ìWorking Draft April 2001 ìLo standard dovrebbe identificare sintassi XML per creare e rappresentare firme digitali ìXML Signatures può essere applicato a qualsiasi digital content (data object), non solo XML. ìXML Signature è un metodo di associazione di chiavi a dati riferiti (octets); ìNon specifica come le chiavi sono associate con persone o istituzioni, né il significato dei dati che si sono riferiti e firmati.

57 CML - Chemical Markup Language ìCML porta la potenza di XML nella gestione delle informazioni legate alla chimica. ì"HTML con le molecole“ ìSi preoccupa della fase di porting tra gli archivi presenti ed i nuovi documenti CML ìSi interessa di strutturare le info chimiche in modo “significativo” 3i TAG usati possono servire anche per cercare le informazioni

58 SMIL ìSynchronized Multimedia Integration Language ìPermette la gestione di presentazioni nelle quali interagiscono audio e video, ed in generali elementi multimediali ìBasato su XML

59 Esempi di linguaggi da XML ìCSD: CORBA Software Description (OMG) ìCDF: Channel Definition Format (MS) ìGedML: Genealogical exchange format (M.Kay) ìWIDL: Web IDL (webMethods) ìUXF: UML eXchange Format (J. Suzuki) ìXML-RPC: XML-based RPC (Userland) ì…ed altri…

60 PAUSA 10 minuti? minuti?

61 Imparare XML ìPer imparare XML occorre conoscere un po’ di HTML ìHTML, semplice linguaggio di Markup ìHTML usato per marcare delle porzioni di testo ìHTML, metodologia per la codifica di dati con una certa semantica

62 Imparare XML ìEsempio di un libro e dell’atto di evidenziare ìE’ considerato uno standard che il testo evidenziato implica importante, e quasi tutti operiamo nello stesso modo ìEvidenziando una porzione di testo in un certo senso la marchiamo

63 Due punti fondamentali ìPer la strutturazione di un linguaggio di Markup deve essere definito uno standard di codifica (come in HTML) per spiegare cosa è un elemento di markup Esempio : evidenziare o TAG ìDeve essere definita una semantica associata ad un elemento Esempio : importante o bold, header1, etc…

64 Il linguaggio HTML ìLinguaggio di markup più diffuso nel web ìDefinisce un insieme di tag finito ìAd ogni TAG viene associata una regola di formattazione di porzioni di testo  Esempio: corsivo

65 Esempio di file HTML … … Pinco Pallino Pinco Pallino Client ID: 002 Client ID: 002 Azienda: La mia Azienda s.r.l. Azienda: La mia Azienda s.r.l. Telefono: Telefono: Indirizzo: Via B, 23/a Indirizzo: Via B, 23/a Città : Genova Città : Genova C.A.P.: C.A.P.:

66 XML - Caratteristiche ìCome HTML, XML è un linguaggio di markup ìPermette di specificare quali sono i tag ìPermette di specificare la relativa semantica ìpiù potente di HTML, più flessibile X (eXstensible) il numero di TAG non è predefinito

67 Esempio Pinco Pallino Pinco Pallino &NinthFloorAddress; &NinthFloorAddress; TAGTAG

68 Più chiarezza ai contenuti ìIn un documento XML si comprende la semantica delle porzioni di testo dai TAG associati  Esempio: (HTML, cosa è?) (XML, più chiaro!) ìLa struttura del documento XML è comunque molto simile ad HTML ìLeggibile anche senza un parser

69 XML - Non basta codificare ìOccorre definire una sintassi per marcare ìOccorre definire la semantica degli elementi ìOccorre una applicazione che processando il file possa capire cosa si intende per marcatura valida e che cosa fare se è valida  Esempio: è un TAG? È valido? Come lo devo rappresentare?

70 XML - La struttura Elementi, Attributi, TAG, … DTD !

71 Un documento XML ìUn file XML è un semplice file di testo con TAG XML al suo interno  Esso ha una estensione.xml (nome_file.xml) ìUn file XML contiene tre sezioni: dichiarazione 3Una dichiarazione che si tratta di un file XML 3Una definizione (opzionale) circa il tipo di documento e sul nome della DTD associata 3Il contenuto del documento con tag XML

72 Un altro esempio Un altro esempio Primo Libro Primo Libro Primo Autore Primo Autore Secondo Libro Secondo Libro Secondo Autore Secondo Autore Dichiarazione DTD associata Contenuto

73 XML - la dichiarazione ìDichiarazione XML opzionale ma consigliata ìVersione(per adesso 1.0!) ìViaggia da solo?(DTD associata o no)

74 XML - Gli elementi ìGli elementi rappresentano i contenuti base di un documento XML ìSono definiti come tag di apertura contenuto tag di chiusura Pinco Pallino Pinco Pallino

75 XML - Gli elementi ìOccorre sempre un elemento ROOT 3tipicamente come il nome della DTD e del file XML ìSe devo codificare > Carattere speciale!

76 XML - I Tag  Un TAG è tutto quello compreso tra  Un TAG è tutto quello compreso tra 2a meno che non sia dentro CDATA o commenti... ìdeve esserci almeno un TAG! ìXML è case-sensitive 2 diverso da ìSempre chiudere i TAG 2 abc… ìElementi vuoti con segno di chiusura 2

77 XML - Elementi (Annidamento) ìGli elementi devono essere annidati in modo corretto (non come HTML) ìEsempio: Pinco Pallino Pinco Pallino

78 XML - Elementi (nomi validi) ìI nomi degli elementi possono iniziare per 3una lettera, 3_, o 3: ìPossono essere seguiti da numeri, lettere, _, -, : ìNO spazi bianchi ìNessun nome di elemento può contenere la stringa xml, XML, Xml...

79 XML - Attributi ìI Tag XML possono possedere un qualsiasi numero di attributi ìUn attributo ha un nome ed un valore associato ìIl valore di un attributo è sempre una stringa che può contenere anche spazi bianchi o altri simboli

80 XML - Commenti ìI commenti in XML possono essere inseriti esattamente come si fa in HTML 3No “-” o “--” all’interno 3No commenti dentro TAG 3No dentro entità 3Mai prima di 3No annidamenti!

81 XML - Istruzioni di Processing ìLa dichiarazione XML è già una istruzione di processing ìUna istruzione di processing rappresenta una porzione di testo significativa per l’applicazione che usa il documento XML ìnon serve al parser ma all’applicazione che usa il parser

82 XML - le Entità ìLe Entità rappresentano in pratica aliases che permettono di riferirsi a sezioni di testo senza doverle editare ogni volta ìPossono essere generali o parametriche ìOgni entità ha 3una dichiarazione e 3il valore di riferimento

83 XML - Entità (Generali) ìLe entità generali sono nella forma &nome_entità; (come in HTML); ìSostituisco banalmente il contenuto tra virgolette...

84 XML - Entità (Parametriche) ìVengono espanse e interpretate nella DTD ìPossono essere interne o esterne ìPossono occorrere solo all’interno di una DTD ìHanno dichiarazione simile a quelle generali con in più un % %nome_entità_parametrica; %nome_entità_parametrica;

85 XML - DOCTYPE  La dichiarazione DOCTYPE serve a utilizzare le ENTITY in un documento XML  Si trovano sempre dopo la dichiarazione XML … body del documento … body del documento

86 Documenti ben formati e validi ìUn documento XML è ben formato se rispetta le seguenti regole: 3Bilanciamento dei marcatori Ad ogni marcatore di apertura deve corrisponderne uno di chiusura (a meno di elemento vuoto) 3Valori degli attributi tra virgolette 3Uso di entità dichiarate dichiarati 3Tutti i caratteri speciali devono essere dichiarati prima di poter essere usati

87 Un esempio SI! ]> &g; di ]> &g; di

88 Un esempio NO! &g; di &g; di TAG non chiuso Entità speciale non dichiarata Valori non tra virgolette

89 Documento XML Valido ìUn documento XML è valido se ìE’ ben formato ìRispetta una struttura descritta in una Document Type Definition azienda 3I documenti XML devono essere validi nel caso di strutturazione di documenti di una certa importanza, ad esempio, in una azienda dove è fondamentale mantenere una stessa struttura

90 Document Type Definition Sintassi di una DTD !

91 DTD - Descrizione ìDocument Type Defintion ìDefinisce 3gli elementi, 3gli attributi e 3le relazioni che intercorrono (X può contenere Y o Z ma non entrambi) ìRappresenta un modo per fare un check sulla strutturazione corretta di un documento XML

92 DTD - Descrizione ìUtilizzo non obbligatorio (contrariamente ad SGML) ìLa DTD fornisce grammatica 3una grammatica ed vocabolario 3il vocabolario per il linguaggio di markup ìLa DTD specifica tutto quello che un parser deve sapere per poter comprendere un documento XML

93 Strumento per la validazione ìUn documento XML viene processato e viene confrontato con la DTD associata (se ce ne è una) ìIl confronto è un processo detto validazione 3Un parser: software per il checking di documenti XML 2non-validating parser 2non-validating parser controlla che segua le regole di sintassi XML 2validating parser 2validating parser, controlla la sintassi ed il matching con la DTD ìDTD necessaria solo per documenti XML validi

94 DTD - Well-formed e Valido ìUn esempio: esempio un stupido! Questoèpo’ ìLa DTD mette in ordine i termini corretti per dare un senso alle frasi del linguaggio ! Questo è un esempio un po’ stupido!

95 Un esempio di DTD  DTD ricettario.dtd Dichiarazione di elemento Dichiarazione di attributo

96 DTD - Caratteri per la grammatica ìIn una DTD è possibile avere dichiarazioni di: ìElementi struttura degli elementi, figli e quanti ìEntità ìAttributi e valori, richiesti o no ìUso di simboli precisi per definire la grammatica

97 Dichiarare un elemento non vuoto 3L’elemento nome è una stringa di caratteri, 3Eventuali entità presenti nella stringa vengono trasformate nei caratteri corrispondenti

98 Dichiarare un elemento vuoto  l’oggetto foto potrebbe pensarsi equivalente al tag HTML  l’oggetto foto potrebbe pensarsi equivalente al tag HTML ìPertanto non ha un marcatore di chiusura né tantomeno un contenuto ìPossiede solo degli attributi

99 Dichiarazione di attributi 3src, nome del file bitmap necessario (#REQUIRED) 3desc, descrizione può omettersi (#IMPLIED) 3ha un attributo che ne identifica il tipo, 3che indica se il numero è di casa, dell'ufficio o di un cellulare 3il valore di default è 'casa’

100 Tipi degli attributi

101 Valori di default per gli attributi

102 Dati Parsed Un esempio completo - la DTD ì DTD agenda.dtd

103 Un esempio completo - la DTD ì … continua Elemento vuoto Valore predefinito Entità Dichiarate

104 Un esempio completo - XML ìAgenda.xml Pinco Pallino Via Incognita 10 Bologna &BO; …continua Pinco Pallino Via Incognita 10 Bologna &BO; …continuaRadiceRadice DTD associata Richiamo entità della DTD

105 Un esempio completo - XML ì… continua Elemento vuoto foto

106 XML - Namespace ìCollezione di nomi, identificativi di URL, che possono essere usati in documenti XML come tipi di elementi e nomi di attributi. ìRaccomandazione W3C dal 14 gennaio 1999 ìUn namespace viene dichiarato usando una famiglia di attributi riservati

107 Dichiarare e usare i Namespaces content content ìEsempio 3negozio di vendita di pesci on-line  con SOURCE vogliamo intendere 2da un lato da dove (posizione geografica) proviene il pesce 2dall’altro chi è il fornitore

108 PAUSA??? 10 minuti?? minuti??

109 Rappresentare i documenti XML CSS2, XSL, XSLT, XPath !

110 La rappresentazione di file XML ìPer documenti XML è necessario associare un foglio di stile ìLinguaggi candidati a rappresentare le informazioni strutturate per mezzo di XML CSS2 3Cascading Style Sheet Level 2 (CSS2) DSSSL 3Document Style Semantics and Specification Language (DSSSL) XSL 3Extensible Style Language (XSL)

111 La rappresentazione di file XML ìCSS è una tecnologia, rilasciata dal W3C per HTML, diffusa, sperimentata e conosciuta, Limite: non riesce a modificare notevolmente il documento ìDSSSL: è il linguaggio di stile di SGML eredita da SGML potenza e difficoltà ìXSL, linguaggio "proprietario" del progetto XML. Dovrebbe raccogliere pregi di CSS e di DSSSL

112 Cascading Style Sheets, level 2 ìCSS2 linguaggio di stile che permette di aggiungere font, spaziatura, … ai file HTML o ad applicazioni XML Pinco's Home Page Pinco's Home Page Pinco’s home page Pinco’s home page Pinco Pallino fu un bravissimo programmatore, simpatico e fantasioso. Pinco Pallino fu un bravissimo programmatore, simpatico e fantasioso.

113 CSS e HTML  Se vogliamo H1 blu, scriveremo CSS: H1 { color: blue } ìUna regola CSS consiste di due parti: 3un selettore ’H1’ 3una dichiarazione (’color: blue’) ìLa dichiarazione ha due parti 3la proprietà (’color’) 3il valore (’blue’)

114 CSS come file esterno ìE’ possibile dichiarare fogli di stile fuori dal file HTML: Pinco's Home Page Pinco's Home Page Pinco’s home page Pinco’s home page Pinco Pallino fu un bravissimo programmatore, simpatico e fantasioso. Pinco Pallino fu un bravissimo programmatore, simpatico e fantasioso. Tipo di link LocazioneLocazione Tipo di Foglio di Stile

115 I fogli di stile e i file XML ìRaccomandazione W3C 29 Giugno ‘99  un foglio di stile viene aggiunto usando xml-stylesheet. 3stesse regole del tag LINK  xml-stylesheet viene processata nello stesso modo della prima dichiarazione 3se l’istruzione viene inserita in una DTD esterna o in una entità parametrica essa talvolta non viene processata bene da un parser

116 Esempi

117 CSS e XML ìCSS2 può essere anche per applicazioni XML

118 CSS - XML ìDichiarare quali elementi 3inline-level 3inline-level ( non causano fine riga, ad esempio) 3block-level  In un file “nome.css” INSTRUMENT { display: inline } ARTICLE, HEADLINE, AUTHOR, PARA { display: block }

119 Inserire un CSS file ìInserire un documento di stile in un file XML Al posto del TAG LINK

120 PAUSA 10 minuti? minuti?

121 eXstensible Stylesheet Language ìXSL working draft del W3C ìPer aumentare la flessibilità dello standard XML 3Più sofisticato di CSS 3Contiene specifiche di CSS e DSSSL ìXSL consiste di tre parti: XSLT 3Un linguaggi o per trasformare i documenti XML (XSLT) XSL 3un vocabolario per definire la formattazione (XSL) XPath 3una sintassi per indirizzare parti di un documento ad una certa formattazione (XPath)

122 XSLT – la trasformazione ìXSLT trasforma documenti XML in altri XML ìXSLT creato da XSL ìXSL include un vocabolario di formattazioni specifiche in più ìXSLT descrive come un documento deve essere trasformato in un altro che usa il vocabolario XSL

123 Una trasformazioni XSLT ìLa trasformazione viene attuata associando patterns con templates 3Un pattern deve coincidere con un elemento input tree 3Un template serve per formare parte dell’albero in output ìLa struttura dell’albero risultante potrebbe essere del tutto diversa da quella dell’albero in input

124 XSLT Namespace ìhttp://www.w3.org/1999/XSL/Transform ìI parser XSLT devono usare il concetto di namespaces XML per riconoscere elementi e attributi dai namespace ìTali elementi sono riconosciuti solo nello stylesheet e non nel documento sorgente

125 XSLT - xsl:stylesheet ìPuò contenere i seguenti tipi di elementi: 3xsl:import, xsl:include 3xsl:strip-space, xsl:preserve-space 3xsl:output, xsl:key 3xsl:decimal-format, xsl:namespace-alias 3xsl:attribute-set, xsl:variable 3xsl:param 3xsl:template ìUn elemento che compare come figlio di xsl:stylesheet è detto top-level element

126 Un esempio …… … … Posizione Obbligatoria Si possono posizionare dove si vuole

127 XSLT - Combining Stylesheets ìXSLT fornisce due meccanismi per combinare i fogli di stile: meccanismo di inclusione 3un meccanismo di inclusione che permette agli stylesheet di essere combinati senza cambiare la loro semantica e meccanismo di importazione 3un meccanismo di importazione che permette ai fogli di stile di sovrascriversi

128 XSLT - Esempio importazioni italic italic Importo due nuovi fogli di sitle

129 Inserire fogli di stile in XML ì E’ possibile inserire l’elemento xsl:stylesheet nel documento XML …

130 XSLT - Espressioni ìXSLT usa un linguaggio di espressioni definito da XPath ìLe espressioni sono usate per: 3Selezionare 3Selezionare un nodo da processare; 3Specificare 3Specificare le condizioni per differenti modi di processare un nodo; 3Generare 3Generare del testo da inserire nell’albero di output. ìLe espressioni compaiono come valori di certi attributi di elementi nel file XSLT dentro parentesi graffe

131 XSLT - Regole di Template ìL’albero in output viene creato appendendo i nodi processati partendo dal nodo radice ìUn nodo viene processato cercando tutti le regole di template con il pattern corrispondente ìUn template contiene, tipicamente istruzioni di selezione di nuovi nodi da processare ìIl processo di matching, la creazione di nodi e la selezione continuano ricorsivamente fino a quando non esistono nuovi nodi da aggiungere

132 XSLT - I Patterns ìLe regole di Template identificano i nodi ìI patterns sono usati anche per la numerazione e per la dichiarazione di chiavi 3Un pattern specifica un insieme di condizioni su un nodo 3Un nodo che soddisfa quelle condizioni corrisponde al pattern ìLa sintassi di patterns è un sottoinsieme della sintassi di expressions in XPath

133 XSLT - I Patterns - Esempi para ogni elemento para ogni elemento * qualsiasi elemento olist/item ogni item con una come genitore / il nodo radice text() ogni nodo text node() ogni nodo id("W11") l’elemento con ID uguale a… para[1] ogni elemento primo nel contesto ogni attributo

134 XSLT - Definire una regola di template XSLT - Definire una regola di template  viene specificata da un elemento xsl:template ìmatch è un pattern che identifica il nodo (nodi) sorgente a cui applicare la regole

135 XSLT - Definire una regola di template XSLT - Definire una regola di template  Esempio: This is an important point. –Occorre usare il namespace  l’ xsl:apply-templates ricorsivamente processa i figli dell’elemento sorgente

136 XSLT - Applicare una regola Template  in assenza di select xsl:apply-templates processa tutti i figli del nodo corrente

137 XSLT - Applicare una regola Template XSLT - Applicare una regola Template ìESEMPIO: Processa tutti gli elementi figli dell’elemento ìESEMPIO: Processa tutti gli elementi figli dell’elemento Qui c’è la select

138 XSLT - Applicare una regola Template XSLT - Applicare una regola Template  Più xsl:apply-templates possono essere usati in un singolo template per fare ordinamenti ìAd esempio per creare due tabelle HTML 2La prima riempita da domestic sales 2la seconda da foreign sales

139 XSLT - Ripetizioni XSLT - Ripetizioni 3Quando il documento ha una struttura più o meno regolare è utili selezionare un certo template per nodi dello stesso genere  l’istruzione xsl:for-each contiene un template, che viene creato per ogni nodo selezionato  L’attributo select è obbligatorio

140 XSLT - Processare seguendo una condizione XSLT - Processare seguendo una condizione ìEsistono due istruzioni in XSLT che supportano il processing condizionale in un template ìxsl:if ìxsl:choose 3L’istruzione xsl:if fornisce un semplice if-then 3l’istruzione xsl:choose supporta la selezione di una scelta quando esistono varie possibilità

141 Esempio Tag articolo Link ad altro file Tag vuoto

142 Esempio file.xsl Lo trasforma in un file HTML

143 Risultato links

144 XML Path Language (XPath) ìW3C Recommendation - 16 Novembre 1999 ìXPath è un linguaggio usato per indirizzare parti di un documento XML sia in XSLT che in XPointer ìLa valutazione di una espressione XPath avviene in relazione al nodo contesto ìXSLT e XPointer specificano come deve essere trovato il contesto

145 XPath - Location Paths  child::para seleziona para figlio del nodo contesto  child::* seleziona tutti i figli  child::text() seleziona tutti i testo figli  attribute::* seleziona tutti gli attributi del nodo contesto  descendant::para seleziona tutti i para discendenti del nodo  self::para seleziona il nodo contesto se è di tipo para

146 Link Utili ìhttp://www.w3.org ìhttp://www.html.it ìhttp://www.mokabyte.it (Java-XML) ìhttp://wdvl.internet.com/Authoring/ ìhttp://web2.javasoft.com/xml/docs/tutorial/ ìhttp://www.stud.ifi.uio.no/~lmaiusg/download/artikler ìhttp://www.xml.it

147 The End! (errori o problemi? Fatemelo sapere...) Grazie... Laura Papaleo


Scaricare ppt "XML: eXstensible Markup Language Laura Papaleo"

Presentazioni simili


Annunci Google