Esportazione di schemi dalle classi

Per generare schemi XSD (XML Schema Definition Language) dalle classi utilizzate nel modello del contratto dati, utilizzare la classe XsdDataContractExporter. In questo argomento viene illustrato il processo di creazione degli schemi.

Processo di esportazione

Il processo di esportazione degli schemi ha inizio con uno o più tipi e produce una classe XmlSchemaSet che descrive la proiezione XML di questi tipi.

La classe XmlSchemaSet fa parte del modello SOM (Schema Object Model) di .NET Framework che rappresenta un insieme di documenti dello schema XSD. Per creare documenti XSD da una classe XmlSchemaSet, utilizzare l'insieme di schemi dalla proprietà Schemas della classe XmlSchemaSet. Quindi serializzare ogni oggetto XmlSchema utilizzando XmlSerializer.

Per esportare gli schemi

  1. Creare un'istanza di XsdDataContractExporter.

  2. Facoltativo. Passare una classe XmlSchemaSet nel costruttore. In questo caso, lo schema generato durante l'esportazione dello schema viene aggiunto a questa istanza di XmlSchemaSet anziché iniziare con un'istanza di XmlSchemaSet vuota.

  3. Facoltativo. Chiamare uno dei metodi CanExport. Il metodo determina se il tipo specificato può essere esportato. Il metodo presenta gli stessi overload del metodo Export nel passaggio successivo.

  4. Chiamare uno dei metodi Export. Sono disponibili tre overload che accettano un Type, un List di oggetti Type o un List di oggetti Assembly. Nell'ultimo caso, tutti i tipi degli assembly specificati vengono esportati.

    Più chiamate al metodo Export determinano l'aggiunta di più elementi alla stessa classe XmlSchemaSet. Se esiste già un tipo in XmlSchemaSet, non ne viene generato un altro. Pertanto, è preferibile eseguire più chiamate a Export sulla stessa classe XsdDataContractExporter rispetto alla creazione di più istanze della classe XsdDataContractExporter. In questo modo non vengono generati tipi di schema duplicati.

    Nota

    Se si verifica un errore durante l'esportazione, lo stato della classe XmlSchemaSet sarà imprevedibile.

  5. Accedere a XmlSchemaSet mediante la proprietà Schemas.

Opzioni di esportazione

È possibile impostare la proprietà Options di XsdDataContractExporter su un'istanza della classe ExportOptions per controllare vari aspetti del processo di esportazione. In particolare, è possibile impostare le opzioni seguenti:

Metodi helper

Oltre al ruolo principale di esportare gli schemi, XsdDataContractExporter fornisce molti utili metodi helper che forniscono informazioni sui tipi. Tra cui:

  • Metodo GetRootElementName. Questo metodo accetta un Type e restituisce un XmlQualifiedName che rappresenta il nome e lo spazio dei nomi dell'elemento principale che verrebbero utilizzati se questo tipo venisse serializzato come oggetto principale.
  • Metodo GetSchemaTypeName. Questo metodo accetta un Type e restituisce un XmlQualifiedName che rappresenta il nome dello schema XSD che verrebbe utilizzato se questo tipo venisse esportato nello schema. Per i tipi IXmlSerializable rappresentati come tipi anonimi nello schema, questo metodo restituisce null.
  • Metodo GetSchemaType. Questo metodo funziona solo con i tipi IXmlSerializable rappresentati come tipi anonimi nello schema e restituisce null per tutti gli altri tipi. Per i tipi anonimi, questo metodo restituisce un XmlSchemaType che rappresenta un determinato Type.

Le opzioni di esportazione influiscono su tutti questi metodi.

Vedere anche

Riferimenti

DataContractSerializer
XsdDataContractImporter
XsdDataContractExporter

Concetti

Importazione ed esportazione dello schema
Importazione dello schema per generare classi