Condividi tramite


Esportazione di schemi da classi

Per generare schemi XSD (XML Schema Definition Language) dalle classi usate nel modello del contratto dati, usare 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 set di documenti dello schema XSD. Per creare documenti XSD da una classe XmlSchemaSet, usare la raccolta di schemi dalla proprietà Schemas della classe XmlSchemaSet . Quindi serializzare ogni oggetto XmlSchema usando 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 XmlSchemaSetvuota.

  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<T> di oggetti Type o un List<T> 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:

  • MetodoGetRootElementName . Questo metodo accetta un Type e restituisce un XmlQualifiedName che rappresenta il nome e lo spazio dei nomi dell'elemento principale che verrebbero usati se questo tipo venisse serializzato come oggetto principale.

  • MetodoGetSchemaTypeName . Questo metodo accetta un Type e restituisce un XmlQualifiedName che rappresenta il nome dello schema XSD che verrebbe usato se questo tipo venisse esportato nello schema. Per i tipi IXmlSerializable rappresentati come tipi anonimi nello schema, questo metodo restituisce null.

  • MetodoGetSchemaType . 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.

Vedi anche