Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale

Strumento XML Schema Definition (Xsd.exe)

Lo strumento XML Schema Definition (Xsd.exe) consente di generare classi Common Language Runtime o XML Schema da file XDR, XML e XSD o da classi di un assembly di runtime.


xsd file.xdr [/outputdir:directory][/parameters:file.xml]
xsd file.xml [/outputdir:directory] [/parameters:file.xml]
xsd file.xsd {/classes | /dataset} [/element:element] 
             [/enableLinqDataSet] [/language:language] 
                          [/namespace:namespace] [/outputdir:directory] [URI:uri] 
                          [/parameters:file.xml]
xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename [...]][/parameters:file.xml]

Argomento

Descrizione

file.extension

Specifica il file di input da convertire. È necessario specificare un'estensionedi tipo xdr, xml, xsd, dll o exe.

Se si specifica un file di schema XDR (estensione xrd), lo schema XRD verrà convertito in uno schema XSD. Il file di output avrà lo stesso nome dello schema XDR, ma un'estensione xsd.

Se si specifica un file XML (estensione xml), verrà dedotto uno schema dai dati del file e prodotto uno schema XSD. Il file di output avrà lo stesso nome del file XML, ma un'estensione xsd.

Se si specifica un file dello schema XML (estensione xsd), verrà generato codice sorgente per gli oggetti di runtime corrispondenti allo schema XML.

Se si specifica un file di assembly di runtime (estensione EXE o DLL), verranno generati schemi per uno o più tipi di questo assembly. È possibile utilizzare l'opzione /type per specificare i tipi per i quali generare schemi. Gli schemi di output vengono denominati schema0.xsd, schema1.xsd e così via. In Xsd.exe vengono prodotti più schemi solo se i tipi forniti specificano uno spazio dei nomi con l'attributo personalizzato XMLRoot.

Opzione

Descrizione

/h [elp]

Visualizza la sintassi e le opzioni dei comandi dello strumento.

/o [utputdir]:directory

Specifica la directory per i file di output. Questo argomento può apparire una sola volta. Il valore predefinito è la directory corrente.

/?

Visualizza la sintassi e le opzioni dei comandi dello strumento.

/P[arameters]: file.xml

Legge le opzioni per diverse modalità operative dal file con estensione xml specificato. La forma abbreviata è /p:. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

È necessario specificare una sola delle opzioni elencate di seguito per i file XSD.

Opzione

Descrizione

/c [lasses]

Genera classi che corrispondono allo schema specificato. Per leggere dati XML nell'oggetto, utilizzare il metodo System.Xml.Serialization.XmlSerializer.Deserializer.

/d [ataset]

Genera una classe derivata da DataSet che corrisponde allo schema specificato. Per leggere dati XML nella classe derivata, utilizzare il metodo System.Data.DataSet.ReadXml.

È inoltre possibile specificare una o più opzioni tra quelle riportate di seguito per i file XSD.

Opzione

Descrizione

/e [lement]:element

Specifica l'elemento dello schema per il quale generare codice. Per impostazione predefinita, sono specificati tutti gli elementi. È possibile specificare questo argomento più volte.

/enableDataBinding

Implementa l'interfaccia INotifyPropertyChanged su tutti i tipi generati per consentire l'associazione dati. La forma abbreviata è /edb.

/enableLinqDataSet

(forma abbreviata: /eld). Specifica che il dataset generato può essere sottoposto a query mediante LINQ to DataSet. Questa opzione viene utilizzata quando è specificata anche l'opzione /dataset. Per ulteriori informazioni, vedere Cenni preliminari su LINQ to DataSet e Esecuzione di query su DataSet tipizzati. Per informazioni generali sull'utilizzo di LINQ, vedere LINQ (Language-Integrated Query).

/f [ields]

Genera campi anziché proprietà. Per impostazione predefinita, vengono generate le proprietà.

/l [anguage]:language

Specifica il linguaggio di programmazione da utilizzare. È possibile scegliere tra CS (C#, il linguaggio predefinito), VB (Visual Basic), JS (JScript) o VJS (Visual J#). È anche possibile specificare un nome completo per una classe che implementa System.CodeDom.Compiler.CodeDomProvider

/n [amespace]:namespace

Specifica lo spazio dei nomi del runtime per i tipi generati. Lo spazio dei nomi predefinito è Schemas.

/nologo

Evita la visualizzazione del messaggio di avvio.

/order

Genera identificatori di ordine espliciti su tutti i membri particella.

/o[ut]: directoryName

Specifica la directory di output in cui inserire i file. Il valore predefinito è la directory corrente.

/u [ri]:uri

Specifica l'URI degli elementi dello schema per il quale generare codice. Questo URI, se presente, viene applicato a tutti gli elementi specificati con l'opzione /element.

Opzione

Descrizione

/t [ype]:typename

Specifica il nome del tipo per il quale creare uno schema. È possibile specificare più argomenti type. Se typename non specifica alcuno spazio dei nomi, il tipo specificato verrà associato a tutti i tipi dell'assembly. Se typename specifica uno spazio dei nomi, il tipo specificato verrà associato solo a tale tipo. Se typename termina con un asterisco (*), verrà creata un'associazione con tutti i tipi che iniziano con la stringa che precede l'asterisco. Se si omette l'opzione /type, verranno generati schemi per tutti i tipi dell'assembly.

Nella tabella riportata di seguito vengono illustrate le operazioni eseguite da Xsd.exe.

Da XDR a XSD

Generare uno schema XML da un file di schema con dati XML ridotti. XDR è un precedente formato di schema basato su XML.

Da XML a XSD

Generare uno schema XML da un file XML.

Da XSD a dataset

Generare classi DataSet di Common Language Runtime da un file di schema XSD. Le classi generate forniscono un modello a oggetti elaborato per i dati XML regolari.

Da XSD a classi

Generare classi di runtime da un file di schema XSD. Le classi generate possono essere utilizzate con System.Xml.Serialization.XmlSerializer per leggere e scrivere il codice XML basato sullo schema.

Da classi a XSD

Generare uno schema XML da uno o più tipi presenti in un file di assembly di runtime. Lo schema generato definisce il formato XML utilizzato da System.Xml.Serialization.XmlSerializer.

Xsd.exe consente solo di modificare gli schemi XML che seguono il linguaggio XSD (XML Schema Definition) proposto da W3C (World Wide Web Consortium). Per ulteriori informazioni sulla proposta XSD o sullo standard XML, visitare il sito http://w3.org (informazioni in lingua inglese).

Impostazione delle opzioni con un file XML

Mediante l'opzione /parameters è possibile specificare un unico file XML in cui sono impostate diverse opzioni. Le opzioni che è possibile impostare dipendono dalla modalità di utilizzo dello strumento XSD.exe. È possibile scegliere di generare schemi, file di codice o file di codice con funzionalità DataSet. Ad esempio, è possibile impostare l'elemento <assembly> sul nome di un file eseguibile (.exe) o di una libreria di tipi (.dll) durante la generazione di uno schema, ma non durante la generazione di un file di codice. Nel codice XML riportato di seguito viene illustrato come utilizzare l'elemento <generateSchemas> con un determinato file eseguibile:

<!-- This is in a file named GenerateSchemas.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
   <assembly>ConsoleApplication1.exe</assembly>
</generateSchemas>
</xsd>

Se il codice XML riportato sopra è contenuto in un file denominato GenerateSchemas.xml, utilizzare l'opzione /parameters digitando la seguente stringa al prompt dei comandi e premendo INVIO:

xsd /p:GenerateSchemas.xml

Se invece si genera uno schema per un singolo tipo trovato nell'assembly, è possibile utilizzare il codice XML riportato di seguito:

<!-- This is in a file named GenerateSchemaFromType.xml. -->
<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateSchemas>
   <type>IDItems</type>
</generateSchemas>
</xsd>

Per utilizzare il codice riportato sopra è necessario specificare anche il nome dell'assembly al prompt dei comandi.Se il file XML è denominato GenerateSchemaFromType.xml, digitare la seguente stringa:

xsd /p:GenerateSchemaFromType.xml ConsoleApplication1.exe

Per l'elemento <generateSchemas> è necessario specificare solo una delle seguenti opzioni.

Elemento

Descrizione

<assembly>

Specifica un assembly dal quale generare lo schema.

<type>

Specifica un tipo trovato in un assembly per il quale generare uno schema.

<xml>

Specifica un file XML per il quale generare uno schema.

<xdr>

Specifica un file XDR per il quale generare uno schema.

Per generare un file di codice, utilizzare l'elemento <generateClasses>.Nell'esempio riportato di seguito viene generato un file di codice.Sono presenti anche due attributi che consentono di impostare il linguaggio di programmazione e lo spazio dei nomi del file generato.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
<generateClasses language='VB' namespace='Microsoft.Serialization.Examples'/>
</xsd>
<!-- You must supply an .xsd file when typing in the command line.-->
<!-- For example: xsd /p:genClasses mySchema.xsd -->

Per l'elemento <generateClasses> è possibile impostare le seguenti opzioni.

Elemento

Descrizione

<element>

Specifica un elemento nel file XSD per il quale generare codice.

<schemaImporterExtensions>

Specifica un tipo derivato dalla classe SchemaImporterExtension.

<schema>

Specifica un file dello schema XML per il quale generare un codice.Possono essere specificati più file dello schema XML utilizzando più elementi di <schema>.

Nella tabella riportata di seguito sono descritti gli attributi che è possibile utilizzare con l'elemento <generateClasses>.

Attributo

Descrizione

Linguaggio:

Specifica il linguaggio di programmazione da utilizzare.È possibile scegliere tra CS (C#, il linguaggio predefinito), VB (Visual Basic), JS (JScript) o VJS (Visual J#).È anche possibile specificare un nome completo per una classe che implementa CodeDomProvider.

namespace

Specifica lo spazio dei nomi per il codice generato.Lo spazio dei nomi deve essere conforme agli standard CLR, ad esempio non devono essere presenti spazi o barre rovesciate.

options

Uno dei seguenti valori: none, properties (genera proprietà anziché campi pubblici), order o enableDataBinding. Per informazioni, vedere le opzioni /order e /enableDataBinding nella sezioni precedente "Opzioni per i file XSD".

È anche possibile controllare la modalità di generazione del codice DataSet utilizzando l'elemento <generateDataSets>.Nel codice XML riportato di seguito viene specificato che il codice generato utilizza strutture DataSet, ad esempio la classe DataTable, per creare codice Visual Basic per un elemento specifico.Le strutture di DataSet generate supporteranno le query LINQ.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>

<generateDataSet language='VB' namespace='Microsoft.Serialization.Examples' enableLinqDataSet='true'>

</generateDataSet>

</xsd>

Per l'elemento <generateDataSet> è possibile impostare le seguenti opzioni.

Elemento

Descrizione

<schema>

Specifica un file dello schema XML per il quale generare un codice.Possono essere specificati più file dello schema XML utilizzando più elementi di <schema>.

Nella tabella riportata di seguito sono descritti gli attributi che è possibile utilizzare con l'elemento <generateDataSet>.

Attributo

Descrizione

enableLinqDataSet

Specifica che il dataset generato può essere sottoposto a query mediante LINQ to DataSet.Il valore predefinito è false.

Linguaggio:

Specifica il linguaggio di programmazione da utilizzare.È possibile scegliere tra CS (C#, il linguaggio predefinito), VB (Visual Basic), JS (JScript) o VJS (Visual J#).È anche possibile specificare un nome completo per una classe che implementa CodeDomProvider.

namespace

Specifica lo spazio dei nomi per il codice generato.Lo spazio dei nomi deve essere conforme agli standard CLR, ad esempio non devono essere presenti spazi o barre rovesciate.

Alcuni attributi possono essere impostati sull'elemento <xsd> di livello più alto.È possibile utilizzare queste opzioni con uno qualsiasi degli elementi figlio (<generateSchemas><generateClasses>, <generateDataSet> o ).Nell'esempio di codice XML riportato di seguito viene generato codice per un elemento denominato IDItems nella directory di output MyOutputDirectory.

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/' output='MyOutputDirectory'>
<generateClasses>
<element>IDItems</element>
</generateClasses>
</xsd>

Nella tabella riportata di seguito sono descritti gli attributi che è possibile utilizzare con l'elemento <xsd>.

Attributo

Descrizione

output

Nome della directory in cui verrà inserito lo schema o il file di codice generato.

nologo

Evita la visualizzazione del messaggio di avvio.Impostare su true o false.

help

Visualizza la sintassi e le opzioni dei comandi dello strumento.Impostare su true o false.

Il comando che segue genera uno schema XML da myFile.xdr e lo salva nella directory corrente.

xsd myFile.xdr 

Il comando che segue genera uno schema XML da myFile.xml e lo salva nella directory specificata.

xsd myFile.xml /outputdir:myOutputDir

Il comando che segue genera un set di dati che corrisponde allo schema specificato nel linguaggio C# e lo salva con il nome XSDSchemaFile.cs nella directory corrente.

xsd /dataset /language:CS XSDSchemaFile.xsd

Il comando che segue genera schemi XML per tutti i tipi dell'assembly myAssembly.dll e li salva con il nome schema0.xsd nella directory corrente.

xsd myAssembly.dll  

Aggiunte alla community

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft