La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

WebCast Introduzione ad XML

Presentazioni simili


Presentazione sul tema: "WebCast Introduzione ad XML"— Transcript della presentazione:

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

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

3 Cosa è XML ? XML = eXtensible Markup Language METALINGUAGGIO
permette di rappresentare informazioni in un formato testuale trasmissibile via Internet tra piattaforme diverse chiunque può leggerlo e scriverlo

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

5 XML invece Presenta le informazioni in modo gerarchico
Utilizza dei marcatori (tag) per identificarle Fornisce delle regole e degli strumenti per verificarne l’applicazione Può descrivere in automatico la sua struttura Possiamo trasformare XML da un formato ad un altro senza “troppo” sforzo Separa completamente l’informazione da come sarà presentata

6 Il primo documento XML <?xml version=“1.0”?>
<webCast id=“WCXML01”> <titolo>Introduzione ad XML</titolo> <data>17/02/2004</data> <note>Speriamo non sia troppo noioso !</note> </webCast> P.S.: Non è poi così diverso dall’HTML ...

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

8 Obiettivi di “XML Working Group”
Deve essere utilizzabile in modo semplice su Internet. Deve supportare un gran numero di applicazioni. Deve essere compatibile con SGML. 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. I documenti XML dovrebbero essere leggibili da un uomo e ragionevolmente chiari. La progettazione XML dovrebbe essere rapida. La progettazione XML deve essere formale e concisa. I documenti XML devono essere facili da creare.

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

10 Regole XML Ci sono Regole sintattiche
COME dobbiamo scrivere le informazioni all’interno dei documenti Ci possono essere Regole semantiche COSA possiamo scrivere in un documento XML.

11 Regole di XML Un 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 Valido

12 Regole sintattiche Prologo (<?xml version=“1.0” encoding=“...”?><!-- commenti --><!DOCTYPE ...>) Gerarchia di tag con elemento (=tag) radice Tutti i tag devono essere chiusi <note></note> => chiusura esplicita <note/> => chiusura implicita Nomi dei tag Iniziano con: _ o lettere (o altri caratteri Unicode 4.0 in XML 1.1) Possono contenere: lettere, cifre, -, _, . I nomi sono case sensitive: <note/> è diverso da <Note/> I tag possono avere attributi Unici come nome per ciascuno singolo tag Contenuto delimitato da “” o ‘’ I nome degli attributi rispettano le stesse regole dei nomi dei tag In alcuni casi i caratteri devono usare degli alias (entity name) <, >, &, ecc. devono essere rappresentati come < > &

13 Documento XML Well-Formed?
<?xml version="1.0"?> <webCast id='WCXML01"> <titolo>Introduzione ad XML</titolo> <data>17/02/2004</data> <agenda> <argomento>Cosa è XML?</argomento> <argomento>Documenti well-formed e documenti validi</argomento> <argomento>Namespace XML</argomento> <argomento>XML InfoSet</argomento> <argomento>DTD e Xml Schema Definition <argomento>XML Document Object Model (DOM)</argomento></argomento> <argomento>Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO</argomento> <argomento>Ricercare XML: XQuery </Agenda></argomento> </webCast>

14 Documento XML Well-Formed?
<?xml version="1.0"?> <webCast id='WCXML01"> <titolo>Introduzione ad XML</titolo> <data>17/02/2004</data> <agenda> <argomento>Cosa è XML?</argomento> <argomento>Documenti well-formed e documenti validi</argomento> <argomento>Namespace XML</argomento> <argomento>XML InfoSet</argomento> <argomento>DTD e Xml Schema Definition <argomento>XML Document Object Model (DOM)</argomento></argomento> <argomento>Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO</argomento> <argomento>Ricercare XML: XQuery </Agenda></argomento> </webCast>

15 Documento XML Well-Formed!
<?xml version="1.0" encoding="ISO "?> <webCast id="WCXML01"> <titolo>Introduzione ad XML</titolo> <data>17/02/2004</data> <agenda> <argomento>Cosa è XML?</argomento> <argomento>Documenti well-formed e documenti validi</argomento> <argomento>Namespace XML</argomento> <argomento>XML InfoSet</argomento> <argomento>DTD e Xml Schema Definition</argomento> <argomento>XML Document Object Model (DOM)</argomento> <argomento>Presentare XML: CSS, XSL, XSLT e XPath, XSL-FO</argomento> <argomento>Ricercare XML: XQuery</argomento> </agenda> </webCast>

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

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

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

19 Esempio di DTD <!DOCTYPE webCast [
<!ELEMENT webCast (titolo, data, agenda) > <!ATTLIST webCast id ID #REQUIRED> <!ELEMENT titolo (#PCDATA) > <!ELEMENT data (#PCDATA) > <!ELEMENT agenda (argomento+) > <!ELEMENT argomento (#PCDATA) > ]>

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

21 XML XML

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

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

24 Elementi di XSD Namespace di riferimento: Dichiarazione di istanze Elementi Attributi Definizione di tipi Semplici Complessi Restrizioni/Estensioni

25 Elementi ed Attributi <xsd:element name=“argomento” type=“xsd:string” /> <xsd:attribute name=“posizione” type=“xsd:int” /> <xsd:element name=“agenda” type=“agendaType” />

26 Tipi Semplici XSD contiene: 19 tipi di dati di base
25 tipi di dati derivati

27 Definizione di un tipo semplice
<xsd:simpleType> <xsd:restriction base="xsd:int"> <xsd:maxInclusive value=“1500"/> </xsd:restriction> </xsd:simpleType>

28 Tipi Complessi Sono la descrizione di blocchi informativi costituiti da: elementi attributi gruppi, sequenze, elenchi, ecc. <xsd:complexType name=“webCast"> <xsd:sequence> <xsd:element name=“titolo“ type="xsd:string"/> <xsd:element name=“data“ type="xsd:string"/> <xsd:element name=“agenda“ type=“agendaType"/> </xsd:sequence> <xsd:attribute name=“id” type=“xsd:ID” use=“required” /> </xsd:complexType>

29 Restrizioni sui tipi Enumerazioni:
<xsd:attribute name=“valore" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string">   <xsd:enumeration value=“Valore1" />   <xsd:enumeration value=“Valore2" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute>

30 Restrizioni sui tipi Regular Expressions:
<xsd:attribute name=“codice" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string">   <xsd:pattern value=“ [A-Z]{2} \d{4}" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> Forzo l’attributo codice ad avere una maschera tipo “PP2305” cioè 2 caratte e 4 cifre.

31 Restrizioni sui tipi Enumerazioni:
<xsd:element name=“Peso"> <xsd:simpleType> <xsd:restriction base="xsd:integer">   <xsd:minInclusive value=“50" />   <xsd:maxInclusive value=“130" /> </xsd:restriction> </xsd:simpleType> </xsd:element> Definisco un tag <Peso /> il cui valore dovrà essere compreso fra 50 e 130 Kg, estremi compresi.

32 Sequenze <xsd:element name=“products"> <xsd:complexType>
<xsd:sequence minOccurs="0“ maxOccurs="unbounded"> <xsd:element name=“product"> ... </xsd:element> </xsd:sequence> </xs:complexType> </xs:element>

33 Conflitti di nomi ? Ma 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 ? Cioè: come distinguo <codice> </codice> (Codice ISBN) <codice>PLRPLA75L03B157T</codice> (Codice Fiscale)

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

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

36 Definire i Namespace 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. <elemento xmlns=“URI”> <elemento xmlns=“URI” xmlns:due=“URI2”>

37 Un esempio concreto <?xml version="1.0"?>
<ordine xmlns:prodotto=“ xmlns:cliente=“ <prodotto:codice>1321</prodotto:codice> <cliente:codice>PP2301</cliente:codice> </ordine> <?xml version="1.0"?> <ordine xmlns:prodotto=“ xmlns:cliente=“ <prodotto:codice>1321</prodotto:codice> <cliente:codice>PP2301</cliente:codice> </ordine> <?xml version="1.0"?> <ordine xmlns:prodotto=“ xmlns:cliente=“ <prodotto:codice>1321</prodotto:codice> <cliente:codice>PP2301</cliente:codice> </ordine>

38 XML InfoSet 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  ...) XML InfoSet 1.0 (e dal 4/2/2004 anche 1.1) è una Recommendation del W3C Per pensare ad XML come albero di nodi informativi E non più soltanto come file di testo con tag Possiamo creare dei nostri formati (compressi, criptati, ecc.) che in memoria siano InfoSet ...

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

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

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

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

43 Come funziona ? Rappresenta 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.) Possiamo creare nuova informazione modificando il tree.

44 In-Memory Tree webCast @id titolo data agenda argomento argomento
<?xml version=“1.0”?> <webCast id=“WCXML01”> <titolo>Introduzione ad XML</titolo> <data>17/02/2004</data> <agenda> <argomento>XML Schema</argomento> </agenda> </webCast> @id titolo data agenda argomento argomento

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

46 XML DOM : Document document.documentElement document.doctype Molti {
Processing Instruction Processing Instruction Comment Comment Solo 1 { Document Type root document.documentElement document.doctype

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

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

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

50 XSL, XSLT, XSL-FO e XPath XSL = 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 Transformation (Gestisce la trasformazioni e non la impaginazione dei contenuti) XSL-FO = XSL Formatting Objects (Orientato alla visualizzazione ed impaginazione dei contenuti) XPath = XML Path Language (Serve per costruire percorsi di ricerca di informazioni all’interno di documenti XML)

51 Perché XSLT? catalog item @SKU prodotti @Dex prodotto @Value codice
descrizione codice prodotto prezzo giacenza prodotti X

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

53 XSLT è un linguaggio Versione 1.0 del 16 Novembre 1999 Namespace
Si tratta di un linguaggio di programmazione a tutti gli effetti Permette di gestire variabili, parametri, cicli, condizioni, funzioni È una grammatica XML (ricordiamoci che XML è un METALINGUAGGIO)

54 Come funziona XSLT? Lavora sulla struttura del documento
Costruisce l’albero del documento Lo attraversa cercando le informazioni indicate Produce un nuovo documento – XML, HTML, TXT - applicando le regole definite Per cercare i nodi all’interno del documento XML vengono utilizzate regole XPath

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

56 Ricercare XML con XQuery
XQuery 1.0: 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 XML È 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 basa sull’equivalenza: XQuery : XML = SQL : DataBase

57 Community news.microsoft.com Comunità degli sviluppatori
microsoft.public.it.dotnet.xml microsoft.public.it.dotnet.* Comunità degli sviluppatori

58 MSDN Webcasts in italiano
Stay tuned: Prossimi WebCast su XML: XML e .NET Framework 24 Febbraio 2004 dalle alle 16.00 Applicazioni reali di XML 2 Marzo 2004 dalle alle 16.00

59 Altre Informazioni Dove posso ottenere maggiori informazioni
Developer resources Microsoft Visual Studio.NET Microsoft .NET Framework SDK Microsoft Developer Network

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


Scaricare ppt "WebCast Introduzione ad XML"

Presentazioni simili


Annunci Google