Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
Cree una instancia de XsdDataContractExporter.
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.
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.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 mismoXmlSchemaSet
. No se genera un tipo en elXmlSchemaSet
si ya existe allí. Por lo tanto, llamar aExport
varias veces en el mismoXsdDataContractExporter
es preferible a crear varias instancias de la claseXsdDataContractExporter
. 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.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:
KnownTypes. Esta colección de
Type
representa los tipos conocidos para los tipos que se exportan. (Para obtener más información, vea Tipos conocidos del contrato de datos). Estos tipos conocidos se exportan en cadaExport
llamada además de los tipos pasados alExport
método .DataContractSurrogate. Un IDataContractSurrogate puede ser proporcionado a través de esta propiedad, lo que personalizará el proceso de exportación. Para obtener más información, consulte Representantes del contrato de datos. De forma predeterminada, no se usa ningún suplente.
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 devuelvenull
.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 determinadoType
.
Las opciones de exportación afectan a todos estos métodos.