Clase System.Runtime.Serialization.XsdDataContractExporter
En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.
Use la clase XsdDataContractExporter cuando haya creado un servicio Web que incorpore datos representados por tipos de Common Language Runtime (CLR) y cuando necesite exportar esquemas XML para cada tipo que vayan a usar otros servicios Web. Es decir, XsdDataContractExporter transforma un conjunto de tipos de CLR en esquemas XML. (Para obtener más información sobre los tipos que se pueden usar, consulte Tipos admitidos por el serializador de contrato de datos). A continuación, los esquemas se pueden exponer a través de un documento de lenguaje de descripción de servicios web (WSDL) para su uso por parte de otros usuarios que necesitan interoperar con el servicio.
Por el contrario, si está creando un servicio Web que debe interoperar con un servicio Web existente, use XsdDataContractImporter para transformar los esquemas XML y crear los tipos de CLR que representan los datos en un lenguaje de programación seleccionado.
XsdDataContractExporter genera un objeto XmlSchemaSet que contiene la colección de esquemas. Obtenga acceso al conjunto de esquemas a través de la propiedad Schemas().
Nota:
Para generar rápidamente archivos de definición del esquema XML (XSD) que otros servicios Web pueden usar, use XsdDataContractExporter.
Exportación de esquemas a xmlSchemaSet
Para crear una instancia de la clase XmlSchemaSet que contiene archivos de esquema XML, deberá tener en cuenta lo siguiente.
El conjunto de tipos que está exportando se registra como un conjunto interno de contratos de datos. De este modo, puede llamar varias veces al método CanExport para agregar tipos nuevos al conjunto de esquemas establecido sin que se reduzca el rendimiento porque sólo los tipos nuevos se agregarán al conjunto. Durante la operación Export, los esquemas existentes se comparan con los nuevos esquemas que se agregan. Si hay conflictos, se producirá una excepción. Normalmente se detecta un conflicto si una misma instancia XsdDataContractExporter exporta dos tipos con el mismo nombre de contrato de datos pero con contratos diferentes (miembros diferentes).
Uso del exportador
Una manera recomendada de usar esta clase es como sigue: