WebCast XML e .NET Framework

37
www.devleap.com www.devleap.com WebCast WebCast XML e .NET XML e .NET Framework Framework Paolo Paolo Pialorsi Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT MCSD.NET MCAD MCSE2000 MCSA MCT [email protected] [email protected] om om

description

WebCast XML e .NET Framework. Paolo Pialorsi MCSD.NET MCAD MCSE2000 MCSA MCT [email protected] Italian BLog: http://blogs.devleap.com/paolo.blog. Agenda. System.Xml XMLReader, XMLWriter, XMLDocument System.Xml.XPath XPathDocument, XPathNavigator, XPathExpression System.Xml.Xsl - PowerPoint PPT Presentation

Transcript of WebCast XML e .NET Framework

Page 1: WebCast XML e .NET Framework

www.devleap.comwww.devleap.com

WebCastWebCastXML e .NET XML e .NET FrameworkFramework

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: WebCast XML e .NET Framework

www.devleap.com

AgendaAgenda• System.XmlSystem.Xml

• XMLReader, XMLWriter, XMLDocumentXMLReader, XMLWriter, XMLDocument

• System.Xml.XPathSystem.Xml.XPath• XPathDocument, XPathNavigator, XPathExpressionXPathDocument, XPathNavigator, XPathExpression

• System.Xml.XslSystem.Xml.Xsl• XslTransformXslTransform

• System.Xml.SchemaSystem.Xml.Schema• XmlSchema, XmlSchemaCollectionXmlSchema, XmlSchemaCollection

• XML con ASP.NET e ADO.NETXML con ASP.NET e ADO.NET

Page 3: WebCast XML e .NET Framework

www.devleap.com

Scopo di questa sessioneScopo di questa sessione

• Capire come:Capire come:• utilizzare i documenti XMLutilizzare i documenti XML• sfruttare le tecnologie del mondo XMLsfruttare le tecnologie del mondo XML

• All’interno di applicazioni realizzate con All’interno di applicazioni realizzate con il .NET Frameworkil .NET Framework

• Avremo un approccio pratico, di quasi Avremo un approccio pratico, di quasi tutto vedremo il codice di esempiotutto vedremo il codice di esempio

Page 4: WebCast XML e .NET Framework

www.devleap.com

System.XMLSystem.XML• Tecnologie e standard supportati:Tecnologie e standard supportati:

• XML, Namespaces, XSLT, XPath, XSD, Document XML, Namespaces, XSLT, XPath, XSD, Document Object ModelObject Model

• EstendibilitàEstendibilità• si basa su classi astratte che si possono ereditaresi basa su classi astratte che si possono ereditare• fornisce già delle classi di uso comune che fornisce già delle classi di uso comune che

ereditano dalle classi astratteereditano dalle classi astratte

• Incremento delle prestazioni rispetto ad Incremento delle prestazioni rispetto ad MSXMLMSXML

• Fortemente legato ad ADO.NETFortemente legato ad ADO.NET• Non è un’evoluzione di MSXMLNon è un’evoluzione di MSXML• E’ completamente diverso !E’ completamente diverso !

Page 5: WebCast XML e .NET Framework

www.devleap.com

Classi astratte eClassi astratte eimplementazioni di baseimplementazioni di base

XmlTextWriter

XmlReader XmlWriterXML 1.0NamespacesAstratta Astratta

XmlTextReader XmlNodeReader

Page 6: WebCast XML e .NET Framework

www.devleap.com

XMLReaderXMLReader• E’ una classa astratta (MustOverride/abstract)E’ una classa astratta (MustOverride/abstract)

• Non possiamo quindi istanziarla direttamenteNon possiamo quindi istanziarla direttamente

• Rappresenta un cursore forward-only read-only privo Rappresenta un cursore forward-only read-only privo di cachingdi caching

• E’ pensata per leggere velocemente documenti XML E’ pensata per leggere velocemente documenti XML senza tenere traccia di ciò che è già stato processato senza tenere traccia di ciò che è già stato processato (idea già presente in SAX)(idea già presente in SAX)

• Funziona in modalità Pull mentre SAX ragiona in Funziona in modalità Pull mentre SAX ragiona in modalità Pushmodalità Push

Page 7: WebCast XML e .NET Framework

www.devleap.com

XmlTextReaderXmlTextReader

• Eredita da XmlReaderEredita da XmlReader• Può caricare il contenuto di:Può caricare il contenuto di:

• TextReader, Stream, Stringhe, Url, FileTextReader, Stream, Stringhe, Url, FileImports System.Xml...

Dim objXMLTextReader As System.Xml.XmlTextReaderobjXMLTextReader = New XmlTextReader("C:\Ordine.XML")With objXMLTextReader

While .Read()Select Case .NodeType

Case XmlNodeType.Element...

End SelectEnd While

End With

Page 8: WebCast XML e .NET Framework

www.devleap.com

XmlNodeTypeXmlNodeType

• I principali tipi di nodo che I principali tipi di nodo che XmlTextReader gestisce sono:XmlTextReader gestisce sono:• ProcessingInstructionProcessingInstruction • CommentComment• ElementElement• AttributeAttribute• TextText• EndElementEndElement

<?xml version=“1.0”?><!-- Commento --><root attributo=“valore”>testo</root>

Page 9: WebCast XML e .NET Framework

www.devleap.com

XmlDocumentXmlDocument• E’ il buon vecchio E’ il buon vecchio Document Object Model Document Object Model

• Implementa il Livello 1 e 2 del DOM secondo le Implementa il Livello 1 e 2 del DOM secondo le specifiche del W3Cspecifiche del W3C

• Costruisce quindi un in-memory tree del Costruisce quindi un in-memory tree del documento anzichè farne una lettura forward-documento anzichè farne una lettura forward-only read-onlyonly read-only

• Deve essere utilizzato per documenti piccoli in Deve essere utilizzato per documenti piccoli in termini di dimensionitermini di dimensioni

Page 10: WebCast XML e .NET Framework

www.devleap.com

DOM Document RecallDOM Document Recall• DOMDocument: classe principale che DOMDocument: classe principale che

identifica un documento XMLidentifica un documento XML

• Metodi principali:Metodi principali:• Load(url/file)Load(url/file)• LoadXML(string)LoadXML(string)• Save(file)Save(file)• Create[Element/Attribute/...]Create[Element/Attribute/...]

• Proprietà principali:Proprietà principali:• documentElementdocumentElement• childNodeschildNodes

Page 11: WebCast XML e .NET Framework

www.devleap.com

DOM Node RecallDOM Node Recall• Metodi principali:Metodi principali:

• appendChildappendChild• removeChildremoveChild• cloneNodecloneNode• removeNoderemoveNode

• Proprietà principali:Proprietà principali:• nextSiblingnextSibling• previousSiblingpreviousSibling• firstChildfirstChild• lastChildlastChild• nodeTypenodeType• nodeNamenodeName• valuevalue

Page 12: WebCast XML e .NET Framework

www.devleap.com

XmlNodeReaderXmlNodeReader• Eredita da XmlReaderEredita da XmlReader• Carica il contenuto da un oggetto di tipo Carica il contenuto da un oggetto di tipo

XmlNodeXmlNodeDim objXMLNodeReader As System.Xml.XmlNodeReaderDim objXMLDocument As XmlDocument()

objXMLDocument.load ("C:\Ordine.XML")

objXMLNodeReader = New XmlNodeReader(objXMLDocument)With objXMLNodeReader

While .Read()Select Case .NodeType

Case XmlNodeType.Element...

End SelectEnd While

End With

Page 13: WebCast XML e .NET Framework

www.devleap.com

XmlTextReader via HTTPXmlTextReader via HTTP• Possiamo caricare documenti XML anche via HTTP Possiamo caricare documenti XML anche via HTTP

tramite XmlTextReadertramite XmlTextReader

• E se dobbiamo “presentarci” al server web che E se dobbiamo “presentarci” al server web che espone i contenuti ?espone i contenuti ?• la proprietà XmlResolver ci permette di fornire una la proprietà XmlResolver ci permette di fornire una

particolare identità al serverparticolare identità al server

Dim objXMLHTTPReader As System.Xml.XmlTextReader

Dim objXMLResolver As New System.Xml.XmlUrlResolver()

objXMLHTTPReader = New XmlTextReader("http://...") objXMLHTTPReader.XmlResolver = objXMLResolver

objXMLResolver.Credentials = New _

System.Net.NetworkCredential(“User", “Pwd",“DOMAIN")

....

Page 14: WebCast XML e .NET Framework

www.devleap.com

E SAX che fine ha fatto?E SAX che fine ha fatto?• SAX = Simple API for XMLSAX = Simple API for XML

• XmlReader sostituisce SAX/SAX2 in quanto le sue XmlReader sostituisce SAX/SAX2 in quanto le sue prestazioni sono migliori e quindi non è più necessario prestazioni sono migliori e quindi non è più necessario usare SAXusare SAX

• XmlReader è più semplice da utilizzareXmlReader è più semplice da utilizzare

• Possiamo comunque ereditare XmlReader in una Possiamo comunque ereditare XmlReader in una nostra classe e costruirci un SAX reader “fatto in casa”nostra classe e costruirci un SAX reader “fatto in casa”

• Oppure possiamo utilizzare via COM-Interop MSXML e Oppure possiamo utilizzare via COM-Interop MSXML e SAXSAX

Page 15: WebCast XML e .NET Framework

www.devleap.com

XmlWriterXmlWriter• E’ una classa astratta (MustOverride/abstract)E’ una classa astratta (MustOverride/abstract)

• Come per XmlReader non possiamo Come per XmlReader non possiamo istanziarla direttamenteistanziarla direttamente

• Rappresenta un cursore in scrittura forward-Rappresenta un cursore in scrittura forward-only privo di cachingonly privo di caching

• Produce documenti XML nel rispetto della Produce documenti XML nel rispetto della specifica XML 1.0 del W3Cspecifica XML 1.0 del W3C

Page 16: WebCast XML e .NET Framework

www.devleap.com

XmlTextWriterXmlTextWriter• Eredita da XmlWriterEredita da XmlWriter

• Invia il suo output verso:Invia il suo output verso:• TextWriter, Stream, StringheTextWriter, Stream, Stringhe

• Metodi Principali:Metodi Principali:• WriteProcessingInstructionWriteProcessingInstruction• WriteStartDocumentWriteStartDocument• WriteStartElementWriteStartElement• WriteAttributeStringWriteAttributeString• WriteEndElementWriteEndElement• WriteEndDocumentWriteEndDocument

Page 17: WebCast XML e .NET Framework

www.devleap.com

Esempio di XmlTextWriterEsempio di XmlTextWriterDim objXMLTextWriter As System.Xml.XmlTextWriter

objXMLTextWriter = New XmlTextWriter(“file.xml", _

System.Text.Encoding.UTF8)

With objXMLTextWriter.WriteStartDocument()

.WriteStartElement("Ordine")

.WriteStartElement("Cliente")

.WriteAttributeString("idCliente", "PP2305")

.WriteElementString("Nome", "Paolo")

.WriteElementString("Cognome", "Pialorsi")

...

.WriteEndElement()

.WriteEndElement()

.WriteEndDocument()

.Close()

End With

Page 18: WebCast XML e .NET Framework

www.devleap.com

System.Xml.XPathSystem.Xml.XPath

• E’ il namespace del motore XPathE’ il namespace del motore XPath

• Permette di:Permette di:• cercare/filtrare i contenuti di un documento cercare/filtrare i contenuti di un documento

XMLXML• eseguire delle elaborazioni (somme, conteggi, eseguire delle elaborazioni (somme, conteggi,

ecc.) sul contenuto del documento XMLecc.) sul contenuto del documento XML

• Può precompilare le regole/espressioni Può precompilare le regole/espressioni per ottimizzarne l’esecuzioneper ottimizzarne l’esecuzione

Page 19: WebCast XML e .NET Framework

www.devleap.com

XPathDocumentXPathDocument• Implementa IXPathNavigableImplementa IXPathNavigable

• Rappresenta un oggetto documento Rappresenta un oggetto documento ottimizzato per la ricerca e la navigazione ottimizzato per la ricerca e la navigazione tramite regole XPathtramite regole XPath

• Lo utilizzeremo anche con XSLTLo utilizzeremo anche con XSLT

• Possiamo costruirlo partendo da:Possiamo costruirlo partendo da:• TextReader, Stream, Stringhe, XmlReader, FileTextReader, Stream, Stringhe, XmlReader, File

Page 20: WebCast XML e .NET Framework

www.devleap.com

XPathNavigatorXPathNavigator• E’ una classe astratta (MustOvveride/abstract)E’ una classe astratta (MustOvveride/abstract)

• Lo possiamo ottenere tramite il metodo Lo possiamo ottenere tramite il metodo CreateNavigator di un oggetto di tipo CreateNavigator di un oggetto di tipo XPathDocumentXPathDocument

• Metodi più interessanti:Metodi più interessanti:• Compile: compila una regola XPath e restituisce un Compile: compila una regola XPath e restituisce un

oggetto XPathExpressionoggetto XPathExpression• Evaluate: valuta un’espressione XPath e ne Evaluate: valuta un’espressione XPath e ne

restituisce il risultatorestituisce il risultato• Select: restituisce un XPathIterator sulla base di Select: restituisce un XPathIterator sulla base di

una XPathExpressionuna XPathExpression

Page 21: WebCast XML e .NET Framework

www.devleap.com

XPathExpression ed XPathExpression ed XPathIteratorXPathIterator

Dim objXPathDocument As System.Xml.XPath.XPathDocument

Dim objXPathNavigator As System.Xml.XPath.XPathNavigator

Dim objXPathExpression As System.Xml.XPath.XPathExpression

Dim objXPathNodeIterator As _System.xml.XPath.XPathNodeIterator

objXPathDocument = New XPathDocument("Ordini.XML")

objXPathNavigator = objXPathDocument.CreateNavigator()

With objXPathNavigator

objXPathExpression = .Compile(strXPathRule)

objXPathNodeIterator = .Select(objXPathExpression)

With objXPathNodeIterator

While .MoveNext()

MsgBox(.Current.Value)

End While

End With

End With

Page 22: WebCast XML e .NET Framework

www.devleap.com

System.Xml.XslSystem.Xml.Xsl

• Le classi principali di questo Le classi principali di questo namespace sono:namespace sono:

• XslTransform: trasforma del contenuto XML XslTransform: trasforma del contenuto XML sulla base di una trasformazione XSL/XSLTsulla base di una trasformazione XSL/XSLT

• XsltArgumentList: permette di definire una XsltArgumentList: permette di definire una lista di parametri da passare ad un XSLT lista di parametri da passare ad un XSLT parametricoparametrico

Page 23: WebCast XML e .NET Framework

www.devleap.com

XslTransformXslTransform• Supporta trasformazioni XSL-WD ed XSLT 1.0Supporta trasformazioni XSL-WD ed XSLT 1.0

• Per trasformare del contenuto XML occorre:Per trasformare del contenuto XML occorre:• Istanziare un oggetto XslTransformIstanziare un oggetto XslTransform• Caricare il documento XSLT con il metodo LoadCaricare il documento XSLT con il metodo Load• Avere un XPathNavigator che contiene l’XML di Avere un XPathNavigator che contiene l’XML di

partenzapartenza• Usare il metodo Transform dell’oggetto XslTransform Usare il metodo Transform dell’oggetto XslTransform

fornendo come argomenti il documento XML di fornendo come argomenti il documento XML di input,la destinazione della trasformazione e un input,la destinazione della trasformazione e un XmlResolver (per motivi di sicurezza).XmlResolver (per motivi di sicurezza).

• Possiamo trasformare verso:Possiamo trasformare verso:• XmlReader, Stringhe, Stream, TextReaderXmlReader, Stringhe, Stream, TextReader

Page 24: WebCast XML e .NET Framework

www.devleap.com

Esempio di XslTransformEsempio di XslTransform

• Un situazione classica è la Un situazione classica è la trasformazione all’interno di pagine trasformazione all’interno di pagine web (ASPX) con la restituzione web (ASPX) con la restituzione dell’output verso l’oggetto Response:dell’output verso l’oggetto Response:

Dim objXMLReader As System.Xml.XmlTextReader

Dim objXPathDocument As System.Xml.XPath.XPathDocument

Dim objXSLTDocument As System.Xml.Xsl.XslTransform

objXMLReader = New XmlTextReader("Ordine.XML")

objXPathDocument = New XPathDocument(objXMLReader)

objXSLTDocument = New XslTransform()

objXSLTDocument.Load("Ordine.XSLT")

objXSLTDocument.Transform(objXPathDocument, Nothing, _Response.Output, resolver)

Page 25: WebCast XML e .NET Framework

www.devleap.com

XSLT ParametriciXSLT Parametrici• Come in MSXML anche in System.XML è Come in MSXML anche in System.XML è

possibile eseguire trasformazioni possibile eseguire trasformazioni parametriche alimentando una collection parametriche alimentando una collection di parametri come se si lavorasse con una di parametri come se si lavorasse con una stored procedure parametricastored procedure parametrica

• Il parametro che nella trasformazione Il parametro che nella trasformazione precedente era Nothing ora conterrà la precedente era Nothing ora conterrà la collection(XsltArgumentList) dei parametri collection(XsltArgumentList) dei parametri da passare alla trasformazione XSLTda passare alla trasformazione XSLT

Page 26: WebCast XML e .NET Framework

www.devleap.com

Esempio di XSLT ParametricoEsempio di XSLT ParametricoDim objXPathDocument As System.Xml.XPath.XPathDocument

Dim objXSLTDocument As System.Xml.Xsl.XslTransform

Dim colArgList As New System.Xml.Xsl.XsltArgumentList()

objXPathDocument = New XPathDocument("Ordine.XML")

objXSLTDocument = New XslTransform()

objXSLTDocument.Load("OrdineParametrico.XSLT")

colArgList.AddParam(“NomePar1", “[NameSpaceURI]", Valore1)

colArgList.AddParam(“NomePar2", “[NameSpaceURI]", Valore2)

...

objXSLTDocument.Transform(objXPathDocument, colArgList, _Response.Output)

Page 27: WebCast XML e .NET Framework

www.devleap.com

XSLT “Automatici” in ASP.NETXSLT “Automatici” in ASP.NET• Se dobbiamo trasformare XML tramite XSLT Se dobbiamo trasformare XML tramite XSLT

all’interno di pagine ASPX possiamo anche all’interno di pagine ASPX possiamo anche utilizzare un WebControl apposito:utilizzare un WebControl apposito:• System.Web.UI.WebControls.XmlSystem.Web.UI.WebControls.Xml

• Accetta come proprietà:Accetta come proprietà:• DocumentSource: file XML sorgenteDocumentSource: file XML sorgente• TransformSource: file XSLT sorgenteTransformSource: file XSLT sorgente• TransformArgumentList: collection di parametriTransformArgumentList: collection di parametri

• Esegue automaticamente la trasformazione e Esegue automaticamente la trasformazione e restituisce alla Response il risultatorestituisce alla Response il risultato

Page 28: WebCast XML e .NET Framework

www.devleap.com

System.Xml.SchemaSystem.Xml.Schema• Esiste un namespace appositamente pensato per la Esiste un namespace appositamente pensato per la

gestione (lettura, scrittura e validazione) degli Schema gestione (lettura, scrittura e validazione) degli Schema XSDXSD

• E’ costituito da 66 diverse classi corrispondenti ai vari E’ costituito da 66 diverse classi corrispondenti ai vari blocchi informativi di uno schema XSD (element, blocchi informativi di uno schema XSD (element, complexType, annotation, ecc.)complexType, annotation, ecc.)

• E’ compatibile al 100% con la raccomandazione W3C E’ compatibile al 100% con la raccomandazione W3C del 2 Maggio 2001del 2 Maggio 2001

• Possiamo costruire da codice degli XML Schema Possiamo costruire da codice degli XML Schema oppure caricare da file esterni gli schema ed applicarli oppure caricare da file esterni gli schema ed applicarli ai documenti XMLai documenti XML

Page 29: WebCast XML e .NET Framework

www.devleap.com

Validazione di documenti XMLValidazione di documenti XML• Esiste un XmlReader che valida durante la Esiste un XmlReader che valida durante la

lettura:lettura:• System.Xml.XmlValidatingReaderSystem.Xml.XmlValidatingReader

• Per funzionare richiede che vengano indicati:Per funzionare richiede che vengano indicati:• ValidationType: XSD, XDR, DTD, Auto, NoneValidationType: XSD, XDR, DTD, Auto, None• Schemas: la collection degli Schema da utilizzareSchemas: la collection degli Schema da utilizzare

• Eventuali errori di validazione sono notificati Eventuali errori di validazione sono notificati tramite un evento tramite un evento ValidationEventHandler che ValidationEventHandler che ci fornisce la descrizione precisa dell’erroreci fornisce la descrizione precisa dell’errore

Page 30: WebCast XML e .NET Framework

www.devleap.com

ADO.NET ed XMLADO.NET ed XML• In ADO.NET il supporto ad XML non è più In ADO.NET il supporto ad XML non è più

un’estensione come in ADO 2.xun’estensione come in ADO 2.x

• XML e ADO.NET costituiscono un’architettura unica XML e ADO.NET costituiscono un’architettura unica basata sulla rappresentazione nativa dei dati in basata sulla rappresentazione nativa dei dati in formato XMLformato XML

• Oggi un DataSet:Oggi un DataSet:• può caricare e salvare nativamente dati in formato XMLpuò caricare e salvare nativamente dati in formato XML• permette di caricare o creare un XML Schema (XSD) permette di caricare o creare un XML Schema (XSD)

partendo dai dati che contienepartendo dai dati che contiene• può essere associato ad un XmlDataDocument che eredita può essere associato ad un XmlDataDocument che eredita

da XmlDocument ed è quindi utilizzabile con:da XmlDocument ed è quindi utilizzabile con:• System.Xml.SchemaSystem.Xml.Schema• System.Xml.Xsl.XslTransformSystem.Xml.Xsl.XslTransform• System.Xml.XPathSystem.Xml.XPath

Page 31: WebCast XML e .NET Framework

www.devleap.com

Generare XML da un DataSetGenerare XML da un DataSetDim objDataAdapterAs New SqlDataAdapter(…)

Dim objDataSet As New DataSet()

objDataAdapter.Fill(objDataSet)

‘Restituiscono una stringa contenente il DataSet ‘in formato XML o lo Schema XSD dello stesso

MsgBox(objDataSet.GetXml()) MsgBox(objDataSet.GetXmlSchema())

‘Come i metodi precedenti ma scrivono dentro a Stream‘TextWrite, XmlWriter o Stringhe il contenuto XML

MsgBox(objDataSet.WriteXml(destinazione, modalità))

MsgBox(objDataSet.WriteXmlSchema(destinazione, modalità))

Page 32: WebCast XML e .NET Framework

www.devleap.com

Leggere XML in un DataSetLeggere XML in un DataSet• Il metodo ReadXML legge da:Il metodo ReadXML legge da:

• Stream, Stringhe, TextReader, XmlReaderStream, Stringhe, TextReader, XmlReader

• Per “interpretare” la struttura dati può ragionare in uno dei seguenti Per “interpretare” la struttura dati può ragionare in uno dei seguenti modi (enumerazione XmlReadMode):modi (enumerazione XmlReadMode):• DiffGram: rilegge un documento XML generato con una chiamata a DiffGram: rilegge un documento XML generato con una chiamata a

WriteXml(.., DiffGram) ed apporta le modifiche subite al DataSetWriteXml(.., DiffGram) ed apporta le modifiche subite al DataSet• Fragment: legge documenti xml che hanno al loro interno (inline) uno Fragment: legge documenti xml che hanno al loro interno (inline) uno

schema XDR, per es. i dati esportati da SQL Server 2000 FOR XMLschema XDR, per es. i dati esportati da SQL Server 2000 FOR XML• IgnoreSchema: legge i dati sulla base dell’attuale stato del DataSet, se non IgnoreSchema: legge i dati sulla base dell’attuale stato del DataSet, se non

riesce ad associare qualche informazione alla struttura corrente, la ignorariesce ad associare qualche informazione alla struttura corrente, la ignora• InferSchema: costruisce/estende lo schema interno del DataSet sulla base InferSchema: costruisce/estende lo schema interno del DataSet sulla base

dell’ “aspetto” dei dati ignorando eventuali Schema presenti nel documentodell’ “aspetto” dei dati ignorando eventuali Schema presenti nel documento• ReadSchema: si basa sullo schema presente nel documento e cerca di ReadSchema: si basa sullo schema presente nel documento e cerca di

aggiungere le nuove informazioni al DataSetaggiungere le nuove informazioni al DataSet• Auto: 1) DiffGram, 2) ReadSchema, 3) InferSchemaAuto: 1) DiffGram, 2) ReadSchema, 3) InferSchema

Page 33: WebCast XML e .NET Framework

www.devleap.com

ASP.NET, System.XML, ASP.NET, System.XML, ADO.NETADO.NET

ADO.NET

ASP.NET

System.Xml

System.IO.Stream

Page 34: WebCast XML e .NET Framework

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 35: WebCast XML e .NET Framework

www.devleap.com

MSDN Webcasts in italianoMSDN Webcasts in italiano

• Stay tuned:Stay tuned:

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

• Prossimi WebCast su XML:Prossimi WebCast su XML:

Applicazioni reali di XMLApplicazioni reali di XML

2 Marzo 2004 dalle 14.30 alle 16.002 Marzo 2004 dalle 14.30 alle 16.00

Page 36: WebCast XML e .NET Framework

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 37: WebCast XML e .NET Framework

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]