Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT...

60
www.devleap.com www.devleap.com WebCast WebCast Introduzione ad Introduzione ad XML XML Paolo Paolo Pialorsi Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT MCSD.NET MCAD MCSE2000 MCSA MCT [email protected] [email protected] om om

Transcript of Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT...

Page 1: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.comwww.devleap.com

WebCastWebCastIntroduzione ad Introduzione ad

XMLXML

Paolo PialorsiPaolo PialorsiMCSD.NET MCAD MCSE2000 MCSA MCTMCSD.NET MCAD MCSE2000 MCSA MCT

[email protected]@devleap.comomItalian BLog: Italian BLog: http://blogs.devleap.com/paolo.bloghttp://blogs.devleap.com/paolo.blog

Page 2: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

AgendaAgenda• Cosa è XML?Cosa è XML?• Documenti well-formed e documenti Documenti well-formed e documenti

validivalidi• 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, Presentare XML: CSS, XSL, XSLT e XPath,

XSL-FOXSL-FO• Ricercare XML con XQueryRicercare XML con XQuery

Page 3: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Cosa è XML ?Cosa è XML ?

• XML = eXtensible Markup LanguageXML = eXtensible Markup Language

• METALINGUAGGIOMETALINGUAGGIO • permette di rappresentare informazionipermette di rappresentare informazioni• in un formato testuale in un formato testuale • trasmissibile via Internet trasmissibile via Internet • tra piattaforme diversetra piattaforme diverse• chiunque può leggerlo e scriverlochiunque può leggerlo e scriverlo

Page 4: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

C’erano già i file ASCII?!!!C’erano 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 Aggiungere o togliere un campo è un problema per il codice che li utilizzaproblema per il codice che li utilizza

Page 5: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML inveceXML 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 Fornisce delle regole e degli strumenti per

verificarne l’applicazioneverificarne l’applicazione• Può descrivere in automatico la sua strutturaPuò descrivere in automatico la sua struttura• Possiamo trasformare XML da un formato ad Possiamo trasformare XML da un formato ad

un altro senza “troppo” sforzoun altro senza “troppo” sforzo• Separa completamente l’informazione da Separa completamente l’informazione da

come sarà presentatacome sarà presentata

Page 6: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Il primo documento XMLIl primo documento XML

<?xml version=“1.0”?><?xml version=“1.0”?>

<webCast id=“WCXML01”><webCast id=“WCXML01”>

<titolo>Introduzione ad XML</titolo><titolo>Introduzione ad XML</titolo>

<data>17/02/2004</data><data>17/02/2004</data>

<note>Speriamo non sia troppo noioso <note>Speriamo non sia troppo noioso !!</note></note>

</webCast></webCast>

P.S.: Non è poi così diverso dall’HTML ...P.S.: Non è poi così diverso dall’HTML ...

Page 7: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML 1.0 è una specifica del XML 1.0 è una specifica del W3CW3C

• 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 Derivato da SGML (Standard Generalized Markup Language)Generalized Markup Language)

Page 8: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Obiettivi di “XML Working Obiettivi di “XML Working Group”Group”

• Deve essere utilizzabile in modo semplice su Deve essere utilizzabile in modo semplice su Internet. 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 Deve essere facile lo sviluppo di programmi che

elaborino documenti XML. elaborino documenti XML. • Il numero di caratteristiche opzionali deve essere Il numero di caratteristiche opzionali deve essere

mantenuto al minimo possibile, idealmente a zero. mantenuto al minimo possibile, idealmente a zero. • I documenti XML dovrebbero essere leggibili da un I documenti XML dovrebbero essere leggibili da un

uomo e ragionevolmente chiari. 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.

Page 9: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Quando conviene?Quando conviene?

• Scambio di informazioniScambio di informazioni• Gestione contenuti separati dal loro Gestione contenuti separati dal loro

layout (anche Web)layout (anche Web)• Rappresentazione di (poche!) righe che Rappresentazione di (poche!) righe che

provengono da un database e devono provengono da un database e devono essere scambiate/persistite essere scambiate/persistite temporaneamentetemporaneamente

• Definizione di protocolli di dialogo Definizione di protocolli di dialogo multi-piattaformamulti-piattaforma

Page 10: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Regole XMLRegole XML

• Ci sono Ci sono Regole sintattiche Regole sintattiche • COME dobbiamo scrivere le informazioni COME dobbiamo scrivere le informazioni

all’interno dei documentiall’interno dei documenti

• Ci possono essereCi possono essereRegole semantiche Regole semantiche • COSA possiamo scrivere in un documento COSA possiamo scrivere in un documento

XML.XML.

Page 11: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Regole di XMLRegole di XML

• Un documento XML che rispetta le Un documento XML che rispetta le regole regole sintattichesintattiche si dice si dice Well-FormedWell-Formed

• Un documento XML che rispetta le Un documento XML che rispetta le regole sintattiche e le regole regole sintattiche e le regole semantichesemantiche si dice si dice ValidoValido

Page 12: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Regole sintatticheRegole sintattiche• Prologo (<?xml version=“1.0” encoding=“...”?><!-- commenti --><!Prologo (<?xml version=“1.0” encoding=“...”?><!-- commenti --><!

DOCTYPE ...>)DOCTYPE ...>)

• Gerarchia di tag con elemento (=tag) radiceGerarchia di tag con elemento (=tag) radice

• Tutti i tag devono essere chiusiTutti i tag devono essere chiusi• <note></note> => chiusura esplicita<note></note> => chiusura esplicita• <note/> => chiusura implicita<note/> => 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: <note/> è diverso da <Note/>I nomi sono case sensitive: <note/> è diverso da <Note/>

• 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 “” o ‘’Contenuto 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 &lt; &gt; &amp;<, >, &, ecc. devono essere rappresentati come &lt; &gt; &amp;

Page 13: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Documento XML Well-Formed?Documento XML Well-Formed?<?xml version="1.0"?><?xml version="1.0"?><webCast id='WCXML01"><webCast id='WCXML01">

<titolo>Introduzione ad XML</titolo><titolo>Introduzione ad XML</titolo><data>17/02/2004</data><data>17/02/2004</data><agenda><agenda>

<argomento>Cosa è XML?</argomento><argomento>Cosa è XML?</argomento><argomento>Documenti well-formed e documenti <argomento>Documenti well-formed e documenti

validi</argomento>validi</argomento><argomento>Namespace XML</argomento><argomento>Namespace XML</argomento><argomento>XML InfoSet</argomento><argomento>XML InfoSet</argomento><argomento>DTD e Xml Schema Definition<argomento>DTD e Xml Schema Definition<argomento>XML Document Object Model <argomento>XML Document Object Model

(DOM)</argomento></argomento>(DOM)</argomento></argomento><argomento>Presentare XML: CSS, XSL, XSLT e XPath, <argomento>Presentare XML: CSS, XSL, XSLT e XPath,

XSL-FO</argomento>XSL-FO</argomento><argomento>Ricercare XML: XQuery<argomento>Ricercare XML: XQuery

</Agenda></argomento></Agenda></argomento></webCast></webCast>

Page 14: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Documento XML Well-Formed?Documento XML Well-Formed?<?xml version="1.0"?><?xml version="1.0"?><webCast id=<webCast id=''WCXML01WCXML01"">>

<titolo>Introduzione ad XML</titolo><titolo>Introduzione ad XML</titolo><data>17/02/2004</data><data>17/02/2004</data><<aagenda>genda>

<argomento>Cosa <argomento>Cosa èè XML?</argomento> XML?</argomento><argomento>Documenti well-formed e documenti <argomento>Documenti well-formed e documenti

validi</argomento>validi</argomento><argomento>Namespace XML</argomento><argomento>Namespace XML</argomento><argomento>XML InfoSet</argomento><argomento>XML InfoSet</argomento><argomento><argomento>DTD e Xml Schema DefinitionDTD e Xml Schema Definition<argomento><argomento>XML Document Object Model XML Document Object Model

(DOM)(DOM)</argomento></argomento></argomento></argomento><argomento>Presentare XML: CSS, XSL, XSLT e XPath, <argomento>Presentare XML: CSS, XSL, XSLT e XPath,

XSL-FO</argomento>XSL-FO</argomento><argomento><argomento>Ricercare XML: XQueryRicercare XML: XQuery

</</AAgenda>genda></argomento></argomento></webCast></webCast>

Page 15: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Documento XML Well-Formed!Documento XML Well-Formed!<?xml version="1.0" encoding="ISO-8859-1"?><?xml version="1.0" encoding="ISO-8859-1"?><webCast id="WCXML01"><webCast id="WCXML01">

<titolo>Introduzione ad XML</titolo><titolo>Introduzione ad XML</titolo><data>17/02/2004</data><data>17/02/2004</data><agenda><agenda>

<argomento>Cosa è XML?</argomento><argomento>Cosa è XML?</argomento><argomento>Documenti well-formed e documenti <argomento>Documenti well-formed e documenti

validi</argomento>validi</argomento><argomento>Namespace XML</argomento><argomento>Namespace XML</argomento><argomento>XML InfoSet</argomento><argomento>XML InfoSet</argomento><argomento>DTD e Xml Schema Definition</argomento><argomento>DTD e Xml Schema Definition</argomento><argomento>XML Document Object Model (DOM)</argomento><argomento>XML Document Object Model (DOM)</argomento><argomento>Presentare XML: CSS, XSL, XSLT e XPath, <argomento>Presentare XML: CSS, XSL, XSLT e XPath,

XSL-FO</argomento>XSL-FO</argomento><argomento>Ricercare XML: XQuery</argomento><argomento>Ricercare XML: XQuery</argomento>

</agenda></agenda></webCast></webCast>

Page 16: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Validazione in base a 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 Contengono gli elementi, gli attributi e i valori consentiti all’interno del documentovalori consentiti all’interno del documento

• DTD viene usato per esempio per validare DTD viene usato per esempio per validare l’HTMLl’HTML

Page 17: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Esempio: quali sono...Esempio: quali sono...

• I tag HTML ammessi...I tag HTML ammessi...• Si può mettere un <TD> fuori da una Si può mettere un <TD> fuori da una

<TABLE> ?<TABLE> ?• Può esserci una <TABLE> senza <TR> Può esserci una <TABLE> senza <TR>

e <TD>e <TD>• Queste regole semantiche sono definite Queste regole semantiche sono definite

da una DTDda una DTD

• http://www.w3.org/http://www.w3.org/

Page 18: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Document Type DefinitionDocument Type Definition

• Specifica formale del “vocabolario” a nostra Specifica formale del “vocabolario” a nostra disposizione per comporre un documentodisposizione 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 scrivere in un documento SGML (quindi anche

HTML e XMLHTML e XML

• Sono scritti con una sintassi particolareSono scritti con una sintassi particolare

Page 19: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Esempio di DTDEsempio di DTD

<!DOCTYPE webCast [<!DOCTYPE webCast [

<!ELEMENT webCast (titolo, data, <!ELEMENT webCast (titolo, data, agenda) >agenda) >

<!ATTLIST webCast id ID #REQUIRED><!ATTLIST webCast id ID #REQUIRED>

<!ELEMENT titolo (#PCDATA) ><!ELEMENT titolo (#PCDATA) >

<!ELEMENT data (#PCDATA) ><!ELEMENT data (#PCDATA) >

<!ELEMENT agenda (argomento+) ><!ELEMENT agenda (argomento+) >

<!ELEMENT argomento (#PCDATA) ><!ELEMENT argomento (#PCDATA) >

]>]>

Page 20: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Document Type DefinitionDocument Type Definition

• Sono difficili da comprendereSono difficili da comprendere• Sono in un linguaggio diverso da quello Sono in un linguaggio diverso da quello

usato per descrivere le informazioniusato per descrivere le informazioni

• Ma ? Ma ? • Se XML può descrivere tutto…Se XML può descrivere tutto…

Page 21: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XMXMLL

XMXMLL

Page 22: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

...Può descrivere anche lo...Può descrivere anche lo

• SSchema di un documentochema di un documento• XML Schema infattiXML Schema infatti

• Nasce dall’idea di utilizzare XML per Nasce dall’idea di utilizzare XML per descrivere la struttura di XMLdescrivere la struttura di XML

• Descrive le regole di validazione di un Descrive le regole di validazione di un documentodocumento

• Ci permette di tipizzare i nostri dati Ci permette di tipizzare i nostri dati (intero, stringa, ecc.)(intero, stringa, ecc.)

• Sono estendibili ed aperti alla possibilità di Sono estendibili ed aperti alla possibilità di supportare modifichesupportare modifiche

Page 23: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML SchemaXML Schema

• Cosa è XML Schema Definition Language Cosa è XML Schema Definition Language (XSD) ?(XSD) ?• un meccanismo per definire la struttura, il un meccanismo per definire la struttura, il

contenuto e la semantica di un documento XMLcontenuto 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/Schemahttp://www.w3.org/XML/Schema

• Sta diventando il denominatore comune di ogni Sta diventando il denominatore comune di ogni applicazione basata su XMLapplicazione basata su XML

• Ci permette di definire classi di documenti XMLCi permette di definire classi di documenti XML

Page 24: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Elementi di XSDElementi di XSD• Namespace di riferimento:Namespace di riferimento:

http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema

• Dichiarazione di istanzeDichiarazione di istanze• ElementiElementi• AttributiAttributi

• Definizione di tipiDefinizione di tipi• SempliciSemplici• ComplessiComplessi• Restrizioni/EstensioniRestrizioni/Estensioni

Page 25: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Elementi ed AttributiElementi ed Attributi

<xsd:element name=“argomento” <xsd:element name=“argomento” type=“xsd:string” />type=“xsd:string” />

<xsd:attribute name=“posizione” <xsd:attribute name=“posizione” type=“xsd:int” />type=“xsd:int” />

<xsd:element name=“agenda” <xsd:element name=“agenda” type=“agendaType” />type=“agendaType” />

Page 26: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Tipi SempliciTipi Semplici• XSD contiene:XSD contiene:

• 19 tipi di dati di 19 tipi di dati di basebase

• 25 tipi di dati 25 tipi di dati derivatiderivati

http://www.w3.org/TR/xmlschema-http://www.w3.org/TR/xmlschema-2/ 2/

Page 27: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Definizione di un tipo sempliceDefinizione di un tipo semplice

<xsd:simpleType><xsd:simpleType>

<xsd:restriction base="xsd:int"><xsd:restriction base="xsd:int">

<xsd:maxInclusive value=“1500"/><xsd:maxInclusive value=“1500"/>

</xsd:restriction></xsd:restriction>

</xsd:simpleType></xsd:simpleType>

Page 28: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Tipi ComplessiTipi Complessi• Sono la descrizione di blocchi informativi costituiti Sono la descrizione di blocchi informativi costituiti

da:da:• elementielementi• attributiattributi• gruppi, sequenze, elenchi, ecc.gruppi, sequenze, elenchi, ecc.

<xsd:complexType name=“webCast"><xsd:complexType name=“webCast"> <xsd:sequence><xsd:sequence> <xsd:element name=“titolo“ type="xsd:string"/><xsd:element name=“titolo“ type="xsd:string"/> <xsd:element name=“data“ type="xsd:string"/><xsd:element name=“data“ type="xsd:string"/> <xsd:element name=“agenda“ type=“agendaType"/><xsd:element name=“agenda“ type=“agendaType"/> </xsd:sequence></xsd:sequence> <xsd:attribute name=“id” type=“xsd:ID” use=“required” /><xsd:attribute name=“id” type=“xsd:ID” use=“required” /></xsd:complexType></xsd:complexType>

Page 29: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Restrizioni sui tipiRestrizioni sui tipi

Enumerazioni: Enumerazioni:

<xsd:attribute name=“valore" use="required"><xsd:attribute name=“valore" use="required"><xsd:simpleType><xsd:simpleType>

<xsd:restriction base="xsd:string"><xsd:restriction base="xsd:string">

    <xsd:enumeration value=“Valore1" /> <xsd:enumeration value=“Valore1" />

    <xsd:enumeration value=“Valore2" /> <xsd:enumeration value=“Valore2" />

</xsd:restriction></xsd:restriction>

</xsd:simpleType></xsd:simpleType>

</xsd:attribute></xsd:attribute>

Page 30: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Restrizioni sui tipiRestrizioni sui tipi

Regular Expressions: Regular Expressions:

<xsd:attribute name=“codice" use="required"><xsd:attribute name=“codice" use="required"><xsd:simpleType><xsd:simpleType>

<xsd:restriction base="xsd:string"><xsd:restriction base="xsd:string">

    <xsd:pattern value=“ [A-Z]{2} \d{4}" /> <xsd:pattern value=“ [A-Z]{2} \d{4}" />

</xsd:restriction></xsd:restriction>

</xsd:simpleType></xsd:simpleType>

</xsd:attribute></xsd:attribute>

Forzo l’attributo codice ad avere una maschera tipo Forzo l’attributo codice ad avere una maschera tipo “PP2305” cioè 2 caratte e 4 cifre.“PP2305” cioè 2 caratte e 4 cifre.

Page 31: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Restrizioni sui tipiRestrizioni sui tipi

Enumerazioni: Enumerazioni:

<xsd:element name=“Peso"><xsd:element name=“Peso"><xsd:simpleType><xsd:simpleType>

<xsd:restriction base="xsd:integer"><xsd:restriction base="xsd:integer">

    <xsd:minInclusive value=“50" /> <xsd:minInclusive value=“50" />

    <xsd:maxInclusive value=“130" /> <xsd:maxInclusive value=“130" />

</xsd:restriction></xsd:restriction>

</xsd:simpleType></xsd:simpleType>

</xsd:element></xsd:element>

Definisco un tag <Peso /> il cui valore dovrà essere compreso fra Definisco un tag <Peso /> il cui valore dovrà essere compreso fra 50 e 13050 e 130Kg, estremi compresi.Kg, estremi compresi.

Page 32: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

SequenzeSequenze

<xsd:element name=“products"><xsd:element name=“products">

<xsd:complexType><xsd:complexType>

<xsd:sequence minOccurs="0“ <xsd:sequence minOccurs="0“ maxOccurs="unbounded">maxOccurs="unbounded">

<xsd:element name=“product"><xsd:element name=“product">

......

</xsd:element></xsd:element>

</xsd:sequence></xsd:sequence>

</xs:complexType></xs:complexType>

</xs:element> </xs:element>

Page 33: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Conflitti di nomi ?Conflitti di nomi ?• Ma se possiamo inventarci i nomi dei TAG a Ma se possiamo inventarci i nomi dei TAG a

piacerepiacere

• E possiamo costruire i documenti XML secondo le E possiamo costruire i documenti XML secondo le nostre esigenze nel solo rispetto delle regole nostre esigenze nel solo rispetto delle regole sintattiche (Well-Formed) come facciamo a sintattiche (Well-Formed) come facciamo a capirci ?capirci ?

• Cioè: come distinguoCioè: come distinguo• <codice>88-8331-129-9</codice> (Codice ISBN)<codice>88-8331-129-9</codice> (Codice ISBN)• <codice>PLRPLA75L03B157T</codice> (Codice <codice>PLRPLA75L03B157T</codice> (Codice

Fiscale)Fiscale)

Page 34: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Conflitti di nomi ? No !Conflitti di nomi ? No !• Possiamo utilizzare nomi di TAG uguali con Possiamo utilizzare nomi di TAG uguali con

significati diversisignificati diversi

• È sufficiente indicare nel documento XML È sufficiente indicare nel documento XML quale significato stiamo dando ai nomi degli quale significato stiamo dando ai nomi degli elementi e degli attributielementi e degli attributi

• Questo si ottiene tramite i Questo si ottiene tramite i NamespaceNamespace

• I Namespace definiscono grammaticheI Namespace definiscono grammatiche

Page 35: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Nomi unici per i NamespaceNomi unici per i Namespace

• Come possiamo assegnare nomi unici Come possiamo assegnare nomi unici ai Namespace per non avere ulteriori ai Namespace per non avere ulteriori conflitti ?conflitti ?

• URI:URI:• URL: URL:

http://www.nomeazienda.com/NS/Qualcosahttp://www.nomeazienda.com/NS/Qualcosa• URN:URN:

urn:schemas-azienda-com:qualcosaurn:schemas-azienda-com:qualcosa

Page 36: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Definire i NamespaceDefinire i Namespace• Per definire un Namespace in un Per definire un Namespace in un

documento XML dobbiamo usare la documento XML dobbiamo usare la parola chiave xmlns.parola chiave xmlns.

• Se dobbiamo usare più Namespace nel Se dobbiamo usare più Namespace nel nostro documento ne avremo uno di nostro documento ne avremo uno di default e potremo indicarne di opzionali.default e potremo indicarne di opzionali.

<elemento xmlns=“URI”><elemento xmlns=“URI”>

<elemento xmlns=“URI” xmlns:due=“URI2”><elemento xmlns=“URI” xmlns:due=“URI2”>

Page 37: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Un esempio concretoUn esempio concreto

<?xml version="1.0"?><?xml version="1.0"?>

<ordine <ordine xmlns:prodotto=“http://www.azienda.comxmlns:prodotto=“http://www.azienda.com/” /” xmlns:cliente=“http://www.cliente.com/”>xmlns:cliente=“http://www.cliente.com/”>

<prodotto:codice>1321</prodotto:codice><prodotto:codice>1321</prodotto:codice>

<cliente:codice>PP2301</cliente:codice><cliente:codice>PP2301</cliente:codice>

</ordine></ordine>

<?xml version="1.0"?><?xml version="1.0"?>

<ordine <ordine xmlns:xmlns:prodottoprodotto=“http://www.azienda.co=“http://www.azienda.com/” m/” xmlns:cliente=“http://www.cliente.com/”xmlns:cliente=“http://www.cliente.com/”>>

<<prodottoprodotto:codice>1321</:codice>1321</prodottoprodotto:codice>:codice>

<cliente:codice>PP2301</cliente:codice><cliente:codice>PP2301</cliente:codice>

</ordine></ordine>

<?xml version="1.0"?><?xml version="1.0"?>

<ordine <ordine xmlns:xmlns:prodottoprodotto=“http://www.azienda.co=“http://www.azienda.com/” m/” xmlns:xmlns:clientecliente=“http://www.cliente.com/”=“http://www.cliente.com/”>>

<<prodottoprodotto:codice>1321</:codice>1321</prodottoprodotto:codice>:codice>

<<clientecliente:codice>PP2301</:codice>PP2301</clientecliente:codice>:codice>

</ordine></ordine>

Page 38: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML InfoSetXML InfoSet• Pensiamo al documento XML come ad una Pensiamo al documento XML come ad una

gerarchia di nodi (attributi, elementi, testo, gerarchia di nodi (attributi, elementi, testo, ecc.)ecc.)

• Pensiamo a trattare la gerarchia in memoria e Pensiamo a trattare la gerarchia in memoria e non preoccupiamoci della sua natura fisica (file, non preoccupiamoci della sua natura fisica (file, stream, foglio di carta stream, foglio di carta ...) ...)

• XML InfoSet 1.0 (e dal 4/2/2004 anche 1.1) è XML InfoSet 1.0 (e dal 4/2/2004 anche 1.1) è una Recommendation del W3Cuna 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, Possiamo creare dei nostri formati (compressi,

criptati, ecc.) che in memoria siano InfoSet ...criptati, ecc.) che in memoria siano InfoSet ...

Page 39: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Ancora ragionamentiAncora 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 Si può affermare che HTML è una grammatica HTML è una grammatica XML ? XML ? • Insomma … quasi …. se Insomma … quasi …. se

fosse scritto “meglio” …fosse scritto “meglio” …

Page 40: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML vs HTML => XHTMLXML vs HTML => XHTML• In HTML si scrive <p>abc</p>In HTML si scrive <p>abc</p>• In XML <p>abc</p>In XML <p>abc</p>

• Ma in HTML si scrive <br>Ma in HTML si scrive <br>• In XML o <br><In XML o <br><//br> o <br br> o <br //>>

• I tag devono sempre I tag devono sempre chiudersi per essere chiudersi per essere Well-formed, gli attributi Well-formed, gli attributi devono avere i valori devono avere i valori delimitati, ecc.delimitati, ecc.

• Idea: XHTML ...Idea: XHTML ...

SGML

XHTML

Page 41: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML: Usiamolo !XML: Usiamolo !

• Ma dobbiamo sempre lavorare con Notepad Ma dobbiamo sempre lavorare con Notepad ??• No!No!

• Per esempio abbiamo il DOM (Document Per esempio abbiamo il DOM (Document Object Model)Object Model)• modello ad oggetti definito dal W3C per modello ad oggetti definito dal W3C per

navigare e creare contenuti XMLnavigare e creare contenuti XML• è indipendente dalla piattaformaè indipendente dalla piattaforma• esistono diverse implementazioni del DOM esistono diverse implementazioni del DOM

(Microsoft, IBM, Oracle, ecc.)(Microsoft, IBM, Oracle, ecc.)

Page 42: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Document Object ModelDocument 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 …

Page 43: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Come funziona ?Come funziona ?

• Rappresenta il contenuto di un Rappresenta il contenuto di un documento XML tramite un in-memory documento XML tramite un in-memory treetree

• Ci permette di navigare il tree ragionando Ci permette di navigare il tree ragionando per gradi di parentela (nodi figli, nodo per gradi di parentela (nodi figli, nodo padre, ecc.)padre, ecc.)

• Possiamo creare nuova informazione Possiamo creare nuova informazione modificando il tree.modificando il tree.

Page 44: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

In-Memory TreeIn-Memory Tree

titolotitolo

@id@id

webCastwebCast

datadata

agendaagenda

<?xml version=“1.0”?>

<webCast id=“WCXML01”>

<titolo>Introduzione ad XML</titolo>

<data>17/02/2004</data>

<agenda> <argomento>XML Schema</argomento>

</agenda>

</webCast>

argomentoargomento

argomentoargomento

Page 45: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

......

Attributo

Documento

TextTextTextText

TextText

XML DOM in-memory treeXML DOM in-memory tree

Elemento

Testo

Legenda tipologie di Nodo

TextText

E molti altri ... tutti che ereditano dall’interfaccia Node.

documentElement

Page 46: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML DOM : DocumentXML DOM : Document

CommentComment

root

ProcessingProcessingInstructionInstruction

Document

DocumentDocumentTypeType

CommentCommentProcessingProcessingInstructionInstructionMoltiMolti {{

Solo 1Solo 1 {{

document.doctypedocument.documentElement

Page 47: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XML DOM : NodeXML DOM : Node

nodeType = Element

nodeName = customer

nodeValue = null

hasChildNodes = truepreviousSibling nextSibling

parentNode

NamedNodeMapNamedNodeMap

...

attributesfirstChild

lastChild

...

NodeListNodeList

childNodes

Page 48: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.comwww.devleap.com

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

Page 49: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Cascading Style SheetsCascading Style Sheets• Sono gli stessi che usiamo in HTMLSono gli stessi che usiamo in HTML

• Permettono di applicare dei colori e delle Permettono di applicare dei colori e delle formattazioni ai tagformattazioni ai tag

• Sono comodi solo in rari casiSono comodi solo in rari casi• in cui non abbiamo attributi o non dobbiamo in cui non abbiamo attributi o non dobbiamo

mostrarlimostrarli• ci basta cambiare relativamente poco (font, colore, ci basta cambiare relativamente poco (font, colore,

posizione)posizione)

• Sono molto limitanti per XML ... ma ci sono Sono molto limitanti per XML ... ma ci sono

Page 50: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XSL, XSLT, XSL-FO e XPathXSL, XSLT, XSL-FO e XPath• XSL = eXtensible Stylesheet LanguageXSL = eXtensible Stylesheet Language

Si occupa della trasformazione e della impaginazione di contenuti Si occupa della trasformazione e della impaginazione di contenuti XML.XML.(W3C Recommendation 15 October 2001)(W3C Recommendation 15 October 2001)

Si basa principalmente su:Si basa principalmente su:

• XSLT = XSL for TransformationXSLT = XSL for Transformation(Gestisce la trasformazioni e non la impaginazione dei contenuti)(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)(Orientato alla visualizzazione ed impaginazione dei contenuti)

• XPath = XML Path LanguageXPath = XML Path Language(Serve per costruire percorsi di ricerca di informazioni (Serve per costruire percorsi di ricerca di informazioni all’interno di documenti XML)all’interno di documenti XML)

Page 51: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Perché XSLT?Perché XSLT?

descrizionedescrizione

codicecodice

prodottoprodotto

prezzoprezzo

giacenzagiacenza

prodottiprodotti

prodottoprodotto

codicecodice

descrizionedescrizione

……

@Dex@Dex

@SKU@SKU

itemitem

@Value@Value

catalogcatalog

itemitem

@SKU@SKU

@Dex@Dex

……

XX

Page 52: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Funzionamento di XSLTFunzionamento di XSLT

XMLDoc.

XSLTDoc.

HTMLDoc.

XMLDoc.

TXTDoc.

Processore

XSLT

Page 53: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XSLT è un linguaggioXSLT è un linguaggio

• Versione 1.0 del 16 Novembre 1999Versione 1.0 del 16 Novembre 1999• NamespaceNamespace

http://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Transform• Si tratta di un linguaggio di Si tratta di un linguaggio di

programmazione a tutti gli effettiprogrammazione a tutti gli effetti• Permette di gestire variabili, parametri, Permette di gestire variabili, parametri,

cicli, condizioni, funzionicicli, condizioni, funzioni• È una grammatica XML È una grammatica XML

(ricordiamoci che XML è un METALINGUAGGIO)(ricordiamoci che XML è un METALINGUAGGIO)

Page 54: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Come funziona XSLT?Come funziona XSLT?

• Lavora sulla Lavora sulla strutturastruttura del documento del documento• Costruisce l’albero del documentoCostruisce l’albero del documento• Lo attraversa cercando le informazioni Lo attraversa cercando le informazioni

indicateindicate• Produce un nuovo documento – Produce un nuovo documento – XML, XML,

HTML, TXTHTML, TXT - applicando le regole definite - applicando le regole definite• Per cercare i nodi all’interno del Per cercare i nodi all’interno del

documento XML vengono utilizzate documento XML vengono utilizzate regole XPathregole XPath

Page 55: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

XSL-FOXSL-FO

• È una grammatica XML dell’ottobre 2001 pensata È una grammatica XML dell’ottobre 2001 pensata per formattare il contenuto dei documenti XMLper formattare il contenuto dei documenti XML

XMLDoc.

XSLTDoc.

XSL-FODoc.

PDFDoc.

RTFDoc.

Processore

XSLT

Processore

XSL-FO

Page 56: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Ricercare XML con XQueryRicercare XML con XQuery• XQuery 1.0: An XML Query LanguageXQuery 1.0: An XML Query Language

(W3C Working Draft 12 November 2003(W3C Working Draft 12 November 2003 http://www.w3.org/TR/xquery/) http://www.w3.org/TR/xquery/)

• Linguaggio basato su espressioni per eseguire selezioni di nodi Linguaggio basato su espressioni per eseguire selezioni di nodi sul data model (XML InfoSet) di uno o più documenti XMLsul data model (XML InfoSet) di uno o più documenti XML

• È un linguaggio di selezione strongly-typed in quanto utilizza i È un linguaggio di selezione strongly-typed in quanto utilizza i tipi di dati XSDtipi di dati XSD

• Si tratta di un linguaggio fortemente legato a XPath 2.0 e XSLT Si tratta di un linguaggio fortemente legato a XPath 2.0 e XSLT 2.02.0(tutti di imminente rilascio come W3C Recommendation)(tutti di imminente rilascio come W3C Recommendation)

• Si basa sull’equivalenza: Si basa sull’equivalenza: XQuery : XML = SQL : DataBaseXQuery : XML = SQL : DataBase

Page 57: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

CommunityCommunity

• news.microsoft.comnews.microsoft.commicrosoft.public.it.dotnet.xmlmicrosoft.public.it.dotnet.xml

microsoft.public.it.dotnet.*microsoft.public.it.dotnet.*

• Comunità degli sviluppatoriComunità degli sviluppatorihttp://www.microsoft.com/italy/msdn/community/default.asphttp://www.microsoft.com/italy/msdn/community/default.asp

Page 58: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

MSDN Webcasts in italianoMSDN Webcasts in italiano• Stay tuned:Stay tuned:

http://www.microsoft.com/italy/msdn/webcast/http://www.microsoft.com/italy/msdn/webcast/

• Prossimi WebCast su XML:Prossimi WebCast su XML:

XML e .NET FrameworkXML e .NET Framework24 Febbraio 2004 dalle 14.30 alle 16.0024 Febbraio 2004 dalle 14.30 alle 16.00

Applicazioni reali di XMLApplicazioni reali di XML2 Marzo 2004 dalle 14.30 alle 16.002 Marzo 2004 dalle 14.30 alle 16.00

Page 59: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Altre InformazioniAltre Informazioni

• Dove posso ottenere maggiori Dove posso ottenere maggiori informazioniinformazioni• http://www.devleap.it/http://www.devleap.it/• http://www.gotdotnet.com/http://www.gotdotnet.com/• http://www.microsoft.com/italy/msdn/http://www.microsoft.com/italy/msdn/

• Developer resourcesDeveloper resources• Microsoft Visual Studio.NETMicrosoft Visual Studio.NET• Microsoft .NET Framework SDKMicrosoft .NET Framework SDK• Microsoft Developer NetworkMicrosoft Developer Network

Page 60: Www.devleap.com WebCast Introduzione ad XML Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT paolo@devleap.com Italian BLog: .

www.devleap.com

Introduzione ad XMLIntroduzione ad XML

I vostri feedback sono importantiI vostri feedback sono importanti•ScriveteciScriveteci

Grazie della partecipazione– A presto

[email protected]