La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT Italian BLog:

Presentazioni simili


Presentazione sul tema: "WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT Italian BLog:"— Transcript della presentazione:

1 WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT Italian BLog:

2 Agenda Cosa è XML?Cosa è XML? Documenti well-formed e documenti validiDocumenti well-formed e documenti validi Namespace XMLNamespace XML XML InfoSetXML InfoSet DTD e Xml Schema DefinitionDTD e Xml Schema Definition XML Document Object Model (DOM)XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FOPresentare XML: CSS, XSL, XSLT e XPath, XSL-FO Ricercare XML con XQueryRicercare XML con XQuery

3 Cosa è XML ? XML = eXtensible Markup LanguageXML = eXtensible Markup Language METALINGUAGGIOMETALINGUAGGIO permette di rappresentare informazionipermette di rappresentare informazioni in un formato testualein un formato testuale trasmissibile via Internettrasmissibile via Internet tra piattaforme diversetra piattaforme diverse chiunque può leggerlo e scriverlochiunque può leggerlo e scriverlo

4 Cerano già i file ASCII?!!! Sì! Ma sono davvero comodi?Sì! Ma sono davvero comodi? I classici file CSV e/o tab delimitedI classici file CSV e/o tab delimited Non indicano la natura delle informazioniNon indicano la natura delle informazioni Non rappresentano dati gerarchiciNon rappresentano dati gerarchici Non esistono regole di validazioneNon esistono regole di validazione E facile commettere erroriE facile commettere errori Non hanno una struttura flessibileNon hanno una struttura flessibile Aggiungere o togliere un campo è un problema per il codice che li utilizzaAggiungere o togliere un campo è un problema per il codice che li utilizza

5 XML invece Presenta le informazioni in modo gerarchicoPresenta le informazioni in modo gerarchico Utilizza dei marcatori (tag) per identificarleUtilizza dei marcatori (tag) per identificarle Fornisce delle regole e degli strumenti per verificarne lapplicazioneFornisce delle regole e degli strumenti per verificarne lapplicazione Può descrivere in automatico la sua strutturaPuò descrivere in automatico la sua struttura Possiamo trasformare XML da un formato ad un altro senza troppo sforzoPossiamo trasformare XML da un formato ad un altro senza troppo sforzo Separa completamente linformazione da come sarà presentataSepara completamente linformazione da come sarà presentata

6 Il primo documento XML Introduzione ad XML Introduzione ad XML 17/02/2004 Speriamo non sia troppo noioso ! Speriamo non sia troppo noioso ! P.S.: Non è poi così diverso dallHTML...

7 XML 1.0 è una specifica del W3C Cronologia di XML:Cronologia di XML: 10 Febbraio 1998: W3C Recommendation10 Febbraio 1998: W3C Recommendation 6 Ottobre 2000: Second Edition6 Ottobre 2000: Second Edition 4 Febbraio 2004: Third Edition4 Febbraio 2004: Third Edition 4 Febbraio 2004: XML 1.14 Febbraio 2004: XML 1.1 Derivato da SGML (Standard Generalized Markup Language)Derivato da SGML (Standard Generalized Markup Language)

8 Obiettivi di XML Working Group Deve essere utilizzabile in modo semplice su Internet.Deve essere utilizzabile in modo semplice su Internet. Deve supportare un gran numero di applicazioni.Deve supportare un gran numero di applicazioni. Deve essere compatibile con SGML.Deve essere compatibile con SGML. Deve essere facile lo sviluppo di programmi che elaborino documenti XML.Deve essere facile lo sviluppo di programmi che elaborino documenti XML. Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile, idealmente a zero.Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile, idealmente a zero. I documenti XML dovrebbero essere leggibili da un uomo e ragionevolmente chiari.I documenti XML dovrebbero essere leggibili da un uomo e ragionevolmente chiari. La progettazione XML dovrebbe essere rapida.La progettazione XML dovrebbe essere rapida. La progettazione XML deve essere formale e concisa.La progettazione XML deve essere formale e concisa. I documenti XML devono essere facili da creare.I documenti XML devono essere facili da creare.

9 Quando conviene? Scambio di informazioniScambio di informazioni Gestione contenuti separati dal loro layout (anche Web)Gestione contenuti separati dal loro layout (anche Web) Rappresentazione di (poche!) righe che provengono da un database e devono essere scambiate/persistite temporaneamenteRappresentazione di (poche!) righe che provengono da un database e devono essere scambiate/persistite temporaneamente Definizione di protocolli di dialogo multi- piattaformaDefinizione di protocolli di dialogo multi- piattaforma

10 Regole XML Ci sono Regole sintatticheCi sono Regole sintattiche COME dobbiamo scrivere le informazioni allinterno dei documentiCOME dobbiamo scrivere le informazioni allinterno dei documenti Ci possono essere Regole semanticheCi possono essere Regole semantiche COSA possiamo scrivere in un documento XML.COSA possiamo scrivere in un documento XML.

11 Regole di XML Un documento XML che rispetta le regole sintattiche si dice Well-FormedUn documento XML che rispetta le regole sintattiche si dice Well-Formed Un documento XML che rispetta le regole sintattiche e le regole semantiche si dice ValidoUn documento XML che rispetta le regole sintattiche e le regole semantiche si dice Valido

12 Regole sintattiche Prologo ( )Prologo ( ) Gerarchia di tag con elemento (=tag) radiceGerarchia di tag con elemento (=tag) radice Tutti i tag devono essere chiusiTutti i tag devono essere chiusi => chiusura esplicita => chiusura esplicita => chiusura implicita => chiusura implicita Nomi dei tagNomi dei tag Iniziano con: _ o lettere (o altri caratteri Unicode 4.0 in XML 1.1)Iniziano con: _ o lettere (o altri caratteri Unicode 4.0 in XML 1.1) Possono contenere: lettere, cifre, -, _,.Possono contenere: lettere, cifre, -, _,. I nomi sono case sensitive: è diverso da I nomi sono case sensitive: è diverso da I tag possono avere attributiI tag possono avere attributi Unici come nome per ciascuno singolo tagUnici come nome per ciascuno singolo tag Contenuto delimitato da oContenuto delimitato da o I nome degli attributi rispettano le stesse regole dei nomi dei tagI nome degli attributi rispettano le stesse regole dei nomi dei tag In alcuni casi i caratteri devono usare degli alias (entity name)In alcuni casi i caratteri devono usare degli alias (entity name), &, ecc. devono essere rappresentati come < > &, &, ecc. devono essere rappresentati come < > &

13 Documento XML Well-Formed? Introduzione ad XML Introduzione ad XML 17/02/2004 Cosa è XML? Cosa è XML? Documenti well-formed e documenti validi Documenti well-formed e documenti validi Namespace XML Namespace XML XML InfoSet XML InfoSet DTD e Xml Schema Definition DTD e Xml Schema Definition XML Document Object Model (DOM) XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO Ricercare XML: XQuery Ricercare XML: XQuery

14 Documento XML Well-Formed? Introduzione ad XML Introduzione ad XML 17/02/2004 Cosa è XML? Cosa è XML? Documenti well-formed e documenti validi Documenti well-formed e documenti validi Namespace XML Namespace XML XML InfoSet XML InfoSet DTD e Xml Schema Definition DTD e Xml Schema Definition XML Document Object Model (DOM) XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO Ricercare XML: XQuery Ricercare XML: XQuery

15 Documento XML Well-Formed! Introduzione ad XML Introduzione ad XML 17/02/2004 Cosa è XML? Cosa è XML? Documenti well-formed e documenti validi Documenti well-formed e documenti validi Namespace XML Namespace XML XML InfoSet XML InfoSet DTD e Xml Schema Definition DTD e Xml Schema Definition XML Document Object Model (DOM) XML Document Object Model (DOM) Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO Ricercare XML: XQuery Ricercare XML: XQuery

16 Validazione in base a La struttura può essere definita con:La struttura può essere definita con: DTD (Document Type Definition)DTD (Document Type Definition) XML Schema Definition (XSD)XML Schema Definition (XSD) Contengono gli elementi, gli attributi e i valori consentiti allinterno del documentoContengono gli elementi, gli attributi e i valori consentiti allinterno del documento DTD viene usato per esempio per validare lHTMLDTD viene usato per esempio per validare lHTML

17 Esempio: quali sono... I tag HTML ammessi...I tag HTML ammessi... Si può mettere un fuori da una ?Si può mettere un fuori da una ? Può esserci una senza e Può esserci una senza e Queste regole semantiche sono definite da una DTDQueste regole semantiche sono definite da una DTD

18 Document Type Definition Specifica formale del vocabolario a nostra disposizione per comporre un documentoSpecifica formale del vocabolario a nostra disposizione per comporre un documento Serie di regoleSerie di regole cosa si puòcosa si può cosa non si puòcosa non si può scrivere in un documento SGML (quindi anche HTML e XMLscrivere in un documento SGML (quindi anche HTML e XML Sono scritti con una sintassi particolareSono scritti con una sintassi particolare

19 Esempio di DTD

20 Document Type Definition Sono difficili da comprendereSono difficili da comprendere Sono in un linguaggio diverso da quello usato per descrivere le informazioniSono in un linguaggio diverso da quello usato per descrivere le informazioni Ma ?Ma ? Se XML può descrivere tutto…Se XML può descrivere tutto…

21 XML XML

22 ...Può descrivere anche lo Schema di un documentoSchema di un documento XML Schema infattiXML Schema infatti Nasce dallidea di utilizzare XML per descrivere la struttura di XMLNasce dallidea di utilizzare XML per descrivere la struttura di XML Descrive le regole di validazione di un documentoDescrive le regole di validazione di un documento Ci permette di tipizzare i nostri dati (intero, stringa, ecc.)Ci permette di tipizzare i nostri dati (intero, stringa, ecc.) Sono estendibili ed aperti alla possibilità di supportare modificheSono estendibili ed aperti alla possibilità di supportare modifiche

23 XML Schema Cosa è XML Schema Definition Language (XSD) ?Cosa è XML Schema Definition Language (XSD) ? un meccanismo per definire la struttura, il contenuto e la semantica di un documento XMLun meccanismo per definire la struttura, il contenuto e la semantica di un documento XML un sistema basato su XML per tipizzare i datiun sistema basato su XML per tipizzare i dati Una raccomandazione del W3C:Una raccomandazione del W3C:http://www.w3.org/XML/Schema Sta diventando il denominatore comune di ogni applicazione basata su XMLSta diventando il denominatore comune di ogni applicazione basata su XML Ci permette di definire classi di documenti XMLCi permette di definire classi di documenti XML

24 Elementi di XSD Namespace di riferimento: di riferimento: Dichiarazione di istanzeDichiarazione di istanze ElementiElementi AttributiAttributi Definizione di tipiDefinizione di tipi SempliciSemplici ComplessiComplessi Restrizioni/EstensioniRestrizioni/Estensioni

25 Elementi ed Attributi

26 Tipi Semplici XSD contiene:XSD contiene: 19 tipi di dati di base19 tipi di dati di base 25 tipi di dati derivati25 tipi di dati derivatihttp://www.w3.org/TR/xmlschema-2/

27 Definizione di un tipo semplice

28 Tipi Complessi Sono la descrizione di blocchi informativi costituiti da:Sono la descrizione di blocchi informativi costituiti da: elementielementi attributiattributi gruppi, sequenze, elenchi, ecc.gruppi, sequenze, elenchi, ecc.

29 Restrizioni sui tipi Enumerazioni:

30 Restrizioni sui tipi Regular Expressions: Forzo lattributo codice ad avere una maschera tipo PP2305 cioè 2 caratte e 4 cifre.

31 Restrizioni sui tipi Enumerazioni: Definisco un tag il cui valore dovrà essere compreso fra 50 e 130 Kg, estremi compresi.

32 Sequenze ...

33 Conflitti di nomi ? Ma se possiamo inventarci i nomi dei TAG a piacereMa se possiamo inventarci i nomi dei TAG a piacere E possiamo costruire i documenti XML secondo le nostre esigenze nel solo rispetto delle regole sintattiche (Well-Formed) come facciamo a capirci ?E possiamo costruire i documenti XML secondo le nostre esigenze nel solo rispetto delle regole sintattiche (Well-Formed) come facciamo a capirci ? Cioè: come distinguoCioè: come distinguo (Codice ISBN) (Codice ISBN) PLRPLA75L03B157T (Codice Fiscale) PLRPLA75L03B157T (Codice Fiscale)

34 Conflitti di nomi ? No ! Possiamo utilizzare nomi di TAG uguali con significati diversiPossiamo utilizzare nomi di TAG uguali con significati diversi È sufficiente indicare nel documento XML quale significato stiamo dando ai nomi degli elementi e degli attributiÈ sufficiente indicare nel documento XML quale significato stiamo dando ai nomi degli elementi e degli attributi Questo si ottiene tramite i NamespaceQuesto si ottiene tramite i Namespace I Namespace definiscono grammaticheI Namespace definiscono grammatiche

35 Nomi unici per i Namespace Come possiamo assegnare nomi unici ai Namespace per non avere ulteriori conflitti ?Come possiamo assegnare nomi unici ai Namespace per non avere ulteriori conflitti ? URI:URI: URL: URN: urn:schemas-azienda-com:qualcosaURN: urn:schemas-azienda-com:qualcosa

36 Definire i Namespace Per definire un Namespace in un documento XML dobbiamo usare la parola chiave xmlns.Per definire un Namespace in un documento XML dobbiamo usare la parola chiave xmlns. Se dobbiamo usare più Namespace nel nostro documento ne avremo uno di default e potremo indicarne di opzionali.Se dobbiamo usare più Namespace nel nostro documento ne avremo uno di default e potremo indicarne di opzionali.

37 Un esempio concreto 1321PP2301 PP2301 PP2301 PP2301

38 XML InfoSet Pensiamo al documento XML come ad una gerarchia di nodi (attributi, elementi, testo, ecc.)Pensiamo al documento XML come ad una gerarchia di nodi (attributi, elementi, testo, ecc.) Pensiamo a trattare la gerarchia in memoria e non preoccupiamoci della sua natura fisica (file, stream, foglio di carta...)Pensiamo a trattare la gerarchia in memoria e non preoccupiamoci della sua natura fisica (file, stream, foglio di carta...) XML InfoSet 1.0 (e dal 4/2/2004 anche 1.1) è una Recommendation del W3CXML InfoSet 1.0 (e dal 4/2/2004 anche 1.1) è una Recommendation del W3C Per pensare ad XML come albero di nodi informativiPer pensare ad XML come albero di nodi informativi E non più soltanto come file di testo con tagE non più soltanto come file di testo con tag Possiamo creare dei nostri formati (compressi, criptati, ecc.) che in memoria siano InfoSet...Possiamo creare dei nostri formati (compressi, criptati, ecc.) che in memoria siano InfoSet...

39 Ancora ragionamenti E simile a HTML ?E simile a HTML ? SìSì Possiamo scrivere HTML come XML ?Possiamo scrivere HTML come XML ? Sì anche se non è proprio HTML …Sì anche se non è proprio HTML … SGML HTML XML Si può affermare che HTML è una grammatica XML ?Si può affermare che HTML è una grammatica XML ? Insomma … quasi …. se fosse scritto meglio …Insomma … quasi …. se fosse scritto meglio …

40 XML vs HTML => XHTML In HTML si scrive abc In HTML si scrive abc In XML abc In XML abc Ma in HTML si scrive Ma in HTML si scrive In XML o o In XML o o I tag devono sempre chiudersi per essere Well- formed, gli attributi devono avere i valori delimitati, ecc.I tag devono sempre chiudersi per essere Well- formed, gli attributi devono avere i valori delimitati, ecc. Idea: XHTML...Idea: XHTML... SGML XHTML

41 XML: Usiamolo ! Ma dobbiamo sempre lavorare con Notepad ?Ma dobbiamo sempre lavorare con Notepad ? No!No! Per esempio abbiamo il DOM (Document Object Model)Per esempio abbiamo il DOM (Document Object Model) modello ad oggetti definito dal W3C per navigare e creare contenuti XMLmodello ad oggetti definito dal W3C per navigare e creare contenuti XML è indipendente dalla piattaformaè indipendente dalla piattaforma esistono diverse implementazioni del DOM (Microsoft, IBM, Oracle, ecc.)esistono diverse implementazioni del DOM (Microsoft, IBM, Oracle, ecc.)

42 Document Object Model Livello 1Livello 1 Raccomandazione W3C del 1-Oct-1998Raccomandazione W3C del 1-Oct-1998 Implementato da Microsoft, IBM e altriImplementato da Microsoft, IBM e altri Livello 2Livello 2 Raccomandazione W3C del 13-Nov-2000Raccomandazione W3C del 13-Nov-2000 Implementato da: MSXML 4.0 e.NET FrameworkImplementato da: MSXML 4.0 e.NET Framework Livello 3Livello 3 Proposed Recommendation 05-Feb-2004 …Proposed Recommendation 05-Feb-2004 …

43 Come funziona ? Rappresenta il contenuto di un documento XML tramite un in-memory treeRappresenta il contenuto di un documento XML tramite un in-memory tree Ci permette di navigare il tree ragionando per gradi di parentela (nodi figli, nodo padre, ecc.)Ci permette di navigare il tree ragionando per gradi di parentela (nodi figli, nodo padre, ecc.) Possiamo creare nuova informazione modificando il tree.Possiamo creare nuova informazione modificando il tree.

44 In-Memory Tree webCast data agenda Introduzione ad XML 17/02/2004 XML Schema argomento argomento

45 Attributo Documento Text Text Text XML DOM in-memory tree Elemento Testo Legenda tipologie di Nodo Text E molti altri... tutti che ereditano dallinterfaccia Node. documentElement

46 XML DOM : Document Comment root ProcessingInstruction Document DocumentType Comment ProcessingInstruction Molti { Solo 1 { document.doctype document.documentElement

47 XML DOM : Node nodeType = Element nodeName = customer nodeValue = null hasChildNodes = true previousSibling nextSibling parentNode NamedNodeMap... attributes firstChild lastChild... NodeList childNodes

48 Presentare XML (CSS, XSL, XSLT e XPath, XSL-FO)

49 Cascading Style Sheets Sono gli stessi che usiamo in HTMLSono gli stessi che usiamo in HTML Permettono di applicare dei colori e delle formattazioni ai tagPermettono di applicare dei colori e delle formattazioni ai tag Sono comodi solo in rari casiSono comodi solo in rari casi in cui non abbiamo attributi o non dobbiamo mostrarliin cui non abbiamo attributi o non dobbiamo mostrarli ci basta cambiare relativamente poco (font, colore, posizione)ci basta cambiare relativamente poco (font, colore, posizione) Sono molto limitanti per XML... ma ci sonoSono molto limitanti per XML... ma ci sono

50 XSL, XSLT, XSL-FO e XPath XSL = eXtensible Stylesheet LanguageXSL = eXtensible Stylesheet Language Si occupa della trasformazione e della impaginazione di contenuti XML. (W3C Recommendation 15 October 2001) Si basa principalmente su: XSLT = XSL for TransformationXSLT = XSL for Transformation (Gestisce la trasformazioni e non la impaginazione dei contenuti) XSL-FO = XSL Formatting ObjectsXSL-FO = XSL Formatting Objects (Orientato alla visualizzazione ed impaginazione dei contenuti) XPath = XML Path Language (Serve per costruire percorsi di ricerca di informazioni allinterno di documenti XML)XPath = XML Path Language (Serve per costruire percorsi di ricerca di informazioni allinterno di documenti XML)

51 Perché XSLT? descrizione codice prodotto prezzo giacenza prodotti prodotto codice … X

52 Funzionamento di XSLT XML Doc. XSLT Doc. HTML Doc. XML Doc. TXT Doc. Processore XSLT

53 XSLT è un linguaggio Versione 1.0 del 16 Novembre 1999Versione 1.0 del 16 Novembre 1999 NamespaceNamespacehttp://www.w3.org/1999/XSL/Transform Si tratta di un linguaggio di programmazione a tutti gli effettiSi tratta di un linguaggio di programmazione a tutti gli effetti Permette di gestire variabili, parametri, cicli, condizioni, funzioniPermette di gestire variabili, parametri, cicli, condizioni, funzioni È una grammatica XML (ricordiamoci che XML è un METALINGUAGGIO)È una grammatica XML (ricordiamoci che XML è un METALINGUAGGIO)

54 Come funziona XSLT? Lavora sulla struttura del documentoLavora sulla struttura del documento Costruisce lalbero del documentoCostruisce lalbero del documento Lo attraversa cercando le informazioni indicateLo attraversa cercando le informazioni indicate Produce un nuovo documento – XML, HTML, TXT - applicando le regole definiteProduce un nuovo documento – XML, HTML, TXT - applicando le regole definite Per cercare i nodi allinterno del documento XML vengono utilizzate regole XPathPer cercare i nodi allinterno del documento XML vengono utilizzate regole XPath

55 XSL-FO È una grammatica XML dellottobre 2001 pensata per formattare il contenuto dei documenti XMLÈ una grammatica XML dellottobre 2001 pensata per formattare il contenuto dei documenti XML XML Doc. XSLT Doc. XSL-FO Doc. PDF Doc. RTF Doc. Processore XSLT Processore XSL-FO

56 Ricercare XML con XQuery XQuery 1.0: An XML Query Language (W3C Working Draft 12 November : An XML Query Language (W3C Working Draft 12 November Linguaggio basato su espressioni per eseguire selezioni di nodi sul data model (XML InfoSet) di uno o più documenti XMLLinguaggio basato su espressioni per eseguire selezioni di nodi sul data model (XML InfoSet) di uno o più documenti XML È un linguaggio di selezione strongly-typed in quanto utilizza i tipi di dati XSDÈ un linguaggio di selezione strongly-typed in quanto utilizza i tipi di dati XSD Si tratta di un linguaggio fortemente legato a XPath 2.0 e XSLT 2.0 (tutti di imminente rilascio come W3C Recommendation)Si tratta di un linguaggio fortemente legato a XPath 2.0 e XSLT 2.0 (tutti di imminente rilascio come W3C Recommendation) Si basa sullequivalenza: XQuery : XML = SQL : DataBaseSi basa sullequivalenza: XQuery : XML = SQL : DataBase

57 Community news.microsoft.comnews.microsoft.commicrosoft.public.it.dotnet.xmlmicrosoft.public.it.dotnet.* Comunità degli sviluppatoriComunità degli sviluppatorihttp://www.microsoft.com/italy/msdn/community/default.asp

58 MSDN Webcasts in italiano Stay tuned:Stay tuned:http://www.microsoft.com/italy/msdn/webcast/ Prossimi WebCast su XML:Prossimi WebCast su XML: XML e.NET Framework 24 Febbraio 2004 dalle alle Applicazioni reali di XML 2 Marzo 2004 dalle alle 16.00

59 Altre Informazioni Dove posso ottenere maggiori informazioniDove posso ottenere maggiori informazioni Developer resourcesDeveloper resources Microsoft Visual Studio.NETMicrosoft Visual Studio.NET Microsoft.NET Framework SDKMicrosoft.NET Framework SDK Microsoft Developer NetworkMicrosoft Developer Network

60 Introduzione ad XML I vostri feedback sono importanti ScriveteciScriveteci Grazie della partecipazione –A presto


Scaricare ppt "WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT Italian BLog:"

Presentazioni simili


Annunci Google