X M L e tensible arkup anguage L’XML è un linguaggio di markup aperto e basato su testo che fornisce informazioni di tipo strutturale e semantico relative ai dati veri e propri. L’XML è stato ottimizzato per il Web, diventando potente complemento dell’HTML basato su standard. L’utilizzo di XML permette di superare il grosso limite attuale del Web, che è quello della dipendenza da un tipo di documento HTML, singolo e non estensibile. L’ HTML è nato per permettere agli utenti del World Wide Web di condividere le informazioni su sistemi differenti; il presupposto era che quelle informazioni fossero testo con al più alcune immagini e collegamenti ipertestuali. Oggi le informazioni sul World Wide Web sono database di testo, immagini, suoni, video, audio. Quindi l’HTML è stato chiamato sempre più di frequente a fornire soluzioni a problemi che non aveva lo scopo di risolvere, come dover descrivere tipi differenti e specifici di informazioni, definire relazioni complesse di collegamenti fra documenti, trasmettere informazioni in diversi formati. Per superare questi problemi, sono state create delle estensioni dell’HTML, spesso fra loro incompatibili. e XtensibleMarkupLanguage XML fu sviluppato da XML Working Group (originariamente noto come SGML Editorial Review Board) costituitosi sotto gli auspici del World Wide Web Consortium (W3C) nel 1996. Esso era presieduto da Jon Bosak della Sun Microsystems con la partecipazione attiva dell’XML Special Interest Group (precedentemente noto come SGML Working Group) anch’esso organizzato dal W3C. L’XML si differenzia dall’HTML per tre maggiori aspetti: • • • Possono essere definiti nuovi tag ed attributi. La struttura di un documento può essere vista in modo gerarchico nidificando i tag in ogni livello di complessità. Ogni documento XML può contenere una opzionale descrizione della sua grammatica, in modo che possa essere utilizzata da applicazioni che richiedono una validazione della struttura del documento. X M L e tensible arkup anguage L’XML è importante in due classi di applicazioni Web: la creazione di documenti lo scambio dei dati L’XML permette di creare dei tag personalizzati; inoltre uno stesso documento XML può essere utilizzato per scopi diversi da applicazioni diverse. L’XML può essere utilizzato come piattaforma per lo scambio di dati tra le applicazioni, come mostra la figura; ciò è possibile perché è orientato alla descrizione dei dati. e XtensibleMarkupLanguage Le pagine HTML hanno l’unico scopo di essere visualizzate da un browser (infatti si dice che i dati nell’HTML sono orientati al video); per questo è molto difficile l’elaborazione successiva delle informazioni contenute nelle pagine HTML. I documenti basati sull’XML invece, non fanno supposizioni su come verranno utilizzati dal client; così le informazioni ricevute possono essere utilizzate da un’applicazione che comprende il linguaggio XML, utilizzando i dati ivi contenuti in altri processi software; quindi uno stesso documento può essere facilmente utilizzato per scopi diversi. XML permette di aggiungere informazioni semantiche al testo: <Autore>Giancarlo Parma</Autore> questo permette di semplificare la creazione di applicazioni che svolgono operazioni intelligenti con i documenti elettronici; un motore di ricerca sarebbe in grado di eseguire ricerche esplicite nel Web per trovare tutti i documenti in cui Giancarlo Parma è l’autore; in questo modo si può superare uno dei limiti dell’HTML, in cui i dati sono orientati al video e difficili da utilizzare per una elaborazione successiva. e XtensibleMarkupLanguage Un documento XML è costituito da dichiarazioni, elementi, istruzioni di elaborazione e commenti. Alcuni componenti sono opzionali, altri sono necessari. PROLOGO Il primo elemento strutturale di un documento XML è un prologo opzionale, costituito da due componenti principali anch’essi opzionali: • la dichiarazione XML • la dichiarazione del tipo di documento. e XtensibleMarkupLanguage DICHIARAZIONE XML La dichiarazione XML identifica la versione delle specifiche XML a cui è conforme il documento. Esempio: <?xml version="1.0"?> DICHIARAZIONE DEL TIPO DI DOCUMENTO La dichiarazione del tipo di documento è costituita da codice di markup che indica le regole grammaticali o la definizione del tipo di documento per una particolare classe di documenti. Queste stringhe di codice aggiungono una dichiarazione del tipo di documento all’esempio: <?xml version="1.0"?> <!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd"> e XtensibleMarkupLanguage L’ELEMENTO DOCUMENT L’elemento Document contiene tutti i dati di un documento XML inclusi tutti i sottoelementi nidificati e le entità esterne. Può essere considerato simile all’unità C: del computer. Tutti i dati del computer sono memorizzati in questa singola unità in cui le cartelle e le sottocartelle contengono le singole parti di dati in una struttura logica e di semplice gestione. Queste stringhe di codice aggiungono un elemento Document, in questo caso l’elemento Plant all’esempio: <?xml version="1.0"?> <!DOCTYPE Wildflowers SYSTEM "Wldflr.dtd"> <PLANT> <COMMON>Columbine</COMMON> <BOTANICAL>Aquilegia canadensis</BOTANICAL> </PLANT> e XtensibleMarkupLanguage La nidificazione è il processo che consente di incorporare un oggetto o un costrutto l’uno all’interno dell’altro. Un documento XML può ad esempio contenere elementi nidificati e altri documenti. Ogni elemento secondario, cioè un elemento diverso dall’elemento Document risiede interamente all’interno del relativo elemento principale, così : <DOCUMENT> <PARENT1> <CHILD1></CHILD1> <CHILD2></CHILD2> </PARENT1> </DOCUMENT> e XtensibleMarkupLanguage ENTITA' PREDEFINITE Nel linguaggio XML alcuni caratteri sono utilizzati per contrassegnare il documento in modo specifico. Le parentesi angolari (<>) e la barra (/) sono interpretate come markup e non come dati di un carattere effettivo: <PLANT>Blodroot</PLANT> Questi e altri caratteri sono riservati per il markup e non possono essere utilizzati come contenuto. Se si desidera che questi caratteri siano visualizzati come dati, è necessario utilizzare determinati codici: &lt; < (parentesi angolare di apertura) &gt; > (parentesi angolare di chiusura) &amp ; & (e commerciale) &apos; ‘ (apostrofo) &quot; " (virgolette doppie) e XtensibleMarkupLanguage Creiamo un documento XML di messaggio di posta elettronica con un sottoinsieme DTD ( Document Type Definitions ) interno. <?xml version="1.0"?> <!DOCTYPE EMAIL [ <!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)> <!ELEMENT TO (#PCDATA)> <!ELEMENT FROM (#PCDATA)> <!ELEMENT CC (#PCDATA)> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT BODY (#PCDATA)> ]> e XtensibleMarkupLanguage <EMAIL> <TO>[email protected]</TO> <FROM>[email protected]</FROM> <CC>[email protected]</CC> <SUBJECT>My first DTD</SUBJECT> <BODY>Hello, World</BODY> </EMAIL> e XtensibleMarkupLanguage Si noti che il codice contiene informazioni aggiuntive nella dichiarazione del tipo di documento. In questo caso si tratta del sottoinsieme DTD interno e identifica gli elementi che possono essere presenti nel documento e il tipo di dati che deve contenere. Se questo documento viene eseguito visualizzando la pagina XML, il documento avrà questo aspetto: