Compartir a través de


Exportación de esquemas desde las clases

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

Proceso de exportación

El proceso de exportación de esquemas comienza con uno o varios tipos y genera un XmlSchemaSet que describe la proyección XML de estos tipos.

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

Para exportar esquemas

  1. Cree una instancia de XsdDataContractExporter.

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

  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 Export método en el paso siguiente.

  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 especificados.

    Varias llamadas al Export método da como resultado que se agreguen varios elementos al mismo XmlSchemaSet. No se genera un tipo en el XmlSchemaSet si ya existe allí. Por lo tanto, llamar a Export varias veces 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 XmlSchemaSet exportación, estará en un estado imprevisible.

  5. Acceda al XmlSchemaSet a través de la propiedad Schemas.

Opciones de exportación

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

Métodos auxiliares

Además de su rol principal de exportar el esquema, XsdDataContractExporter proporciona varios métodos auxiliares útiles que proporcionan información sobre los tipos. Estos incluyen:

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

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

  • Método GetSchemaType. Este método solo funciona con IXmlSerializable tipos representados como tipos anónimos en el esquema y devuelve null para todos los demás tipos. En el caso de los tipos anónimos, este método devuelve un XmlSchemaType que representa un determinado Type.

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

Consulte también