Exportación de esquemas desde las clases

Para generar esquemas (XSD) de lenguaje de definición de esquemas XML a partir de las clases utilizadas en el modelo de contrato de datos, utilice la clase XsdDataContractExporter . En este tema se describe el proceso para crear los esquemas.

Proceso de exportación

El proceso de exportación de esquema se inicia con uno o más tipos y genera un XmlSchemaSet que describe la proyección de XML de estos tipos.

XmlSchemaSet forma parte del Modelo de objetos de esquemas (SOM) de .NET Framework que representa un conjunto de documentos esquema XSD. Para crear documentos XSD a partir de XmlSchemaSet, utilice la colección de esquemas de la propiedad Schemas de la clase XmlSchemaSet . A continuación, serialice cada objeto XmlSchema mediante XmlSerializer.

Exportar esquemas

  1. Creación de una instancia de XsdDataContractExporter.

  2. Opcional. Pase XmlSchemaSet en el constructor. En este caso, el esquema generado durante la exportación del esquema se agrega a esta instancia XmlSchemaSet en lugar de iniciarse con un XmlSchemaSeten blanco.

  3. Opcional. Llame a uno de los métodos CanExport. El método determina si se puede exportar el tipo especificado. El método tiene las mismas sobrecargas que el método Export en el siguiente paso.

  4. Llame a uno de los métodos Export. Hay tres sobrecargas que toman Type, List<T> de los objetos Type , o List<T> de los objetos Assembly . En el último caso, se exportan todos los tipos de todos los ensamblados determinados.

    Varias llamadas al método Export produce como resultado varios elementos que se agregan al mismo XmlSchemaSet. Un tipo no se genera en XmlSchemaSet si ya existe en este. Por consiguiente, llamar varias veces Export en el mismo XsdDataContractExporter es preferible a crear varias instancias de la clase XsdDataContractExporter . Esto evita que se generen tipos de esquema duplicados.

    Nota

    Si se produce un error durante la exportación, XmlSchemaSet estará en un estado imprevisible.

  5. Obtenga acceso a XmlSchemaSet a través de la propiedad Schemas .

Exportar opciones.

Puede establecer la propiedad Options de XsdDataContractExporter a una instancia de ExportOptions para administrar varios aspectos del proceso de exportación. En concreto, puede establecer las opciones siguientes:

métodos del asistente

Además de su función primaria de exportar el esquema, XsdDataContractExporter proporciona varios métodos del asistente útiles que proporcionan información sobre los tipos. Entre ellas se incluyen las siguientes:

  • Método GetRootElementName. Este método toma Type y devuelve XmlQualifiedName que representa el nombre del elemento raíz y espacio de nombres que se utilizarían si este tipo se serializara como objeto raíz.

  • Método GetSchemaTypeName. Este método toma Type y devuelve XmlQualifiedName que representa el nombre del tipo de esquema XSD que se utilizaría si este tipo se exportara al esquema. Para los tipos IXmlSerializable representados como tipos anónimos en el esquema, este método devuelve null.

  • Método GetSchemaType. Este método solo funciona con tipos IXmlSerializable representados como tipos anónimos en el esquema y devuelve null para el resto de tipos. Para los tipos anónimos, este método devuelve XmlSchemaType que representa un Typedeterminado.

Las opciones de exportación afectan a todos estos métodos.

Consulte también