Classe System.Runtime.Serialization.XsdDataContractExporter

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

Utilizzare la classe XsdDataContractExporter quando è stato creato un servizio Web che incorpora dati rappresentati da tipi CLR (Common Language Runtime) e quando è necessario esportare XML Schema per ogni tipo che deve essere utilizzato da altri servizi Web. Ciò significa che XsdDataContractExporter trasforma un set di tipi CLR in XML Schema. Per altre informazioni sui tipi che è possibile usare, vedere Tipi supportati dal serializzatore del contratto dati. Gli schemi possono quindi essere esposti tramite un documento WSDL (Web Services Description Language) da usare da altri utenti che devono interagire con il servizio.

Inversamente, se si sta creando un servizio Web che deve interoperare con un servizio Web esistente, utilizzare la classe XsdDataContractImporter per trasformare XML Schema e creare i tipi CLR che rappresentano i dati in un linguaggio di programmazione selezionato.

La classe XsdDataContractExporter genera un oggetto XmlSchemaSet che contiene la raccolta di schemi. Accedere al set di schemi mediante la proprietà Schemas().

Nota

Per generare rapidamente file XSD (XML Schema Definition) che possano essere utilizzati da altri servizi Web, utilizzare la classe XsdDataContractExporter.

Esportare gli schemi in un XmlSchemaSet

Per creare un'istanza della classe XmlSchemaSet che contenga file di XML Schema, è necessario tenere presente quanto segue.

Il set di tipi da esportare viene registrato come un set di contratti dati interno. Per aggiungere nuovi tipi allo schema impostato è pertanto possibile chiamare il metodo CanExport più volte senza compromettere le prestazioni in quanto verranno aggiunti al set solo i nuovi tipi. Durante l'operazione Export, gli schemi esistenti vengono confrontati ai nuovi schemi da aggiungere. In caso di conflitto viene generata un'eccezione. Un conflitto si verifica in genere se due tipi con lo stesso nome di contratto dati ma con contratti diversi (membri diversi) vengono esportati dalla stessa istanza XsdDataContractExporter.

Utilizzare l'utilità di esportazione

Di seguito è descritta una modalità di utilizzo consigliata per questa classe:

  1. Utilizzare uno degli CanExport per determinare se il tipo o il set di tipi specificato può essere esportato. Usare uno degli overload appropriato alle esigenze specifiche.

  2. Chiamare il metodo Export corrispondente.

  3. Recuperare gli schemi dalla proprietà Schemas.