Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

NIB: obiettivi della progettazione per le classi XML in .NET Framework

Le classi XML in .NET Framework sono state progettate in modo da offrire agli sviluppatori:

  • Produttività elevata

  • Conformità agli standard W3C

  • Extensibility

  • Architettura modulare

  • Prestazioni elevate

  • Integrazione con ADO.NET

Con l'introduzione di LINQ to XML, l'obiettivo di Microsoft è aiutare gli sviluppatori a essere più produttivi rendendo più semplice la programmazione con XML. L'utilizzo delle query in LINQ to XML è simile a quello previsto in SQL. Sono sufficienti competenze minime per consentire a un programmatore di imparare a scrivere query potenti in poche righe di codice.

Le classi XML in .NET Framework sono state compilate tenendo in opportuna considerazione le raccomandazioni W3C (World Wide Web Consortium). Queste classi XML consentono di elaborare dati XML conformi alle raccomandazioni W3C. Ad esempio:

  • La classe XmlDocument consente l'implementazione delle raccomandazioni di base di livello 1 e 2 del modello DOM W3C.

  • Le classi XmlReader e XmlWriter sono conformi alle raccomandazioni elencate nel documento W3C XML 1.0 e Namespaces in XML (informazioni in lingua inglese).

  • Gli schemi della classe XmlSchemaSet sono conformi alle raccomandazioni elencate nei documenti W3C XML Schema Part 1: Structures Recommendation e XML Schema Part 2: Datatypes Recommendation (informazioni in lingua inglese).

  • Le classi dello spazio dei nomi System.Xml.Xsl supportano le trasformazioni XSLT conformi alla raccomandazione W3C XSLT versione 1.0.

Le classi XML di .NET Framework sono progettate per essere estendibili mediante l'uso di classi astratte di base e metodi virtuali. Questa estensibilità viene illustrata dalla classe XmlResolver.

La classe XmlResolver è una classe astratta che risolve le risorse XML quali entità, elementi da importare o esportare e così via. Le classi XmlUrlResolver e XmlSecureResolver sono implementazioni della classe XmlResolver. È possibile creare una versione personalizzata della classe XmlResolver derivandola dalla classe XmlResolver o da una delle relative implementazioni. Ad esempio, è possibile creare una classe derivata della classe XmlUrlResolver che archivia il flusso della cache nel disco locale.

In un'architettura modulare i componenti possono essere utilizzati in modo interscambiabile e, in molti casi, utilizzati uno in sostituzione dell'altro. .NET Framework fonda proprio su una tale architettura. I componenti basati su classi astratte possono essere utilizzati uno in sostituzione dell'altro ed è possibile creare un flusso di dati tra i componenti.

È possibile, ad esempio, analizzare un flusso di XML di un servizio Web XML con il tipo XmlReader. Il tipo XmlReader può essere utilizzato per creare un tipo XmlDocument, che a sua volta può essere utilizzato per creare un tipo XmlNodeReader.

Un altro esempio è costituito dall'utilizzo di archivi di dati diversi, ad esempio un oggetto XPathDocument o XmlDocument nella trasformazione di XML. È possibile trasformare questi archivi dati tramite la classe XslCompiledTransform e l'output potrà quindi essere inserito in un flusso di un altro archivio o restituito come flusso da un servizio Web XML.

Per favorire l'incremento delle prestazioni dell'applicazione, alcune delle classi XML di .NET Framework sono state progettate in modo da supportare un modello basato sul flusso con le caratteristiche seguenti:

  • Minimo utilizzo della cache per l'analisi di tipo forward-only, modello pull (XmlReader)

  • Convalida di tipo forward-only (XmlReader)

  • Tipo di navigazione tramite cursore grazie al quale la creazione di nodi è ridotta a un singolo nodo virtuale, fornendo tuttavia l'accesso casuale al documento (XPathNavigator). In questo modo non è necessario che venga compilata in memoria una struttura ad albero di nodi come il DOM.

Per incrementare le prestazioni ogni qualvolta sia necessaria l'elaborazione XSLT, utilizzare le classi XPathDocument e XslCompiledTransform. XPathDocument è un archivio ottimizzato di sola lettura per le query XPath progettate per interagire in modo efficace con la classe XslCompiledTransform.

In .NET Framework i dati relazionali e XML vengono combinati da una perfetta integrazione tra le classi XML e ADO.NET.

La classe DataSet è una cache in memoria dei dati recuperati da un database. Grazie al tipo DataSet, è possibile leggere e scrivere il codice XML utilizzando le classi XmlReader e XmlWriter, mantenere la struttura interna degli schemi relazionali come gli schemi XML (XSD) e inferire la struttura dello schema di un documento XML.

Mostra: