XML Prof. Barbara Pernici Politecnico di Milano aggiornato 10/12/2002
La tecnologia Web La tecnologia Web come base di sistemi informativi complessi Come scambiare i dati tra sistemi diversi: –Quali sono i principali problemi da risolvere: Separazione tra dati, logica applicativa e presentazione Sicurezza
Sommario Separare contenuto e presentazione Struttura di un documento Definizione della struttura applicazioni
Interoperabilita tra applicazioni basate su web In che formato vengono scambiati i dati?
Formati standard –HTML linguaggio di markup per presentazione + contenuto –XML metalinguaggio (serve a definire linguaggi di markup) per descrizione contenuto altri formati per descrizione presentazione (XSL)
XML XML (eXtensible Markup Language) è un linguaggio che descrive il contenuto delle pagine Web Standard approvato dal W3C nel 1998 Sta diventano lo standard per lo scambio dei dati sul Web......molti software vendors stanno sviluppando tools per importare/esportare XML
XML Come HTML, prevede lutilizzo di tag:... A differenza di HTML: –possono essere definiti nuovi tag –le strutture possono essere arbitrariamente annidate
Elementi sintattici Element: porzione di testo limitata da tag –Start tag (e.g, ) –End tag (e.g., ) Subelement persona nome cognome Esempio: Julia Roberts
XML esempio CHECK ADDRESSCHECKNODATEPAYEEAMOUNT
Esempio assegno John W. Cowan Gale L. Cowan 123 E. 345th St, #2A New York, NY Consolidated Edison USD 65.75
The Chase Manhattan Bank 270 Park Avenue New York, NY AB903C93D8932F39D9F9EC123
Note esempio assegno tutto quello che sta tra start-tag e il corrispondente end-tag viene chiamato elemento gli elementi CHECK e MICR contengono altri elementi gli altri solo testo e possibile avere elementi misti
Attributi Gli elementi possono avere attributi Gli attributi possono avere valori Attributi e valori scritti nello start tag Elemento SIG ha attributo TYPE, con valore MD5.
Attributi Attributi: gli attributi sono coppie (attributo, valore) Esempio : <persona nome=Julia cognome=Roberts Opp. Julia
XML si autodocumenta Confronto con: CONSOLIDATED EDISON Contiene le stesse informazioni (eccetto firma), ma solo un programma e in grado di decifrarlo
Testo in chiaro I formati proprietari dei dati cambiano continuamente I dati del censimento USA scritti a mano del 1860 sono piu accessibili dei dati del 1960 su schede perfomate Il testo in chiaro non dipende da uno specifico programma per crearlo e editarlo
Document Type Definitions (DTDs) Descrivono gli elementi validi e che tipo di contenuto possono avere Descrivono gli attributi validi e i valori di default autodocumentazione
Esempio <!DOCTYPE db[ ]>
Struttura del documento Elementi semplici: Le stringhe di caratteri sono indicate come #PCDATA (Parsed Character Data) Elementi composti
Definizione di elementi composti Persona* è una espressione regolare che vuol dire un qualsiasi numero di persone Altre espressioni regolari sono: – e+, una o più occorrenze – e?, zero o uno – e1|e2, alternanza – e1,e2, concatenazione
Attributi Doc XML <nome linguaggio=Italiano categoria=pelletteria> Borsa Fendi 350 E possibile fare una dichiarazione dei tipi di attributi DTD <!Attlist nome linguaggio CDATA #REQUIRED categoria CDATA #IMPLIED> <!Attlist prezzo valuta CDATA #IMPLIED>
Definizione attributi #REQUIRED= obbligatorio #IMPLIED= opzionale Tipo CDATA= stringhe Nota: non ho modo di esprimere tipi interi, date, valuta nei DTD... è tutto genericamente CDATA
Parte del DTD per Check... <!ELEMENT CHECK (ADDRESS, CHECKNO, DATE, PAYEE, AMOUNT, BANK, MICR, SIG, MEMO?)> <!ATTLIST SIG TYPE CDATA #REQUIRED>
Definizione attributi ID, IDREF, IDREFS: il tipo ID indica che lattributo è un identificatore; il tipo IDREF indica che il valore dellattributo è un identicatore di un altro elemento; Il tipo IDREFS indica che il valore dellattributo è una lista di identificatori separati da spazi
Esempio DTD <!DOCTYPE family <!ATTLIST person Id ID #REQUIRED mother IDREF #IMPLIED father IDREF #IMPLIED children IDREFS #IMPLIED> >
Esempio dati in documento XML Jane Doe John Doe Mary Smith Jack Smith /person>
Memorizzazione DTD Alternative: –riferimento a file –semplici DTD inseriti direttamente nel documento –repositories
Applicazioni Diverse visualizzazioni per le stesse informazioni – Le informazioni rappresentate da un documento XML possono essere rappresentate in forme diverse con diversi documenti XSL Integrazione dati – Dati provenienti da più sorgenti possono essere mappati su documenti XML che ne descrivono lo schema e integrati in un unico documento Integrazione di componenti – Componenti basati su tecnologie diverse possono comunicare tra loro attraverso protocolli ASCII descritti in XML
Applicazioni XML/EDI (electronic business transactions between companies) Workflow Management Wrapping Legacy Systems XHTML: ridefinizione di HTML in XML
Riepilogo Separare contenuto e presentazione Struttura di un documento Definizione della struttura Applicazioni