Compartilhar via


Exportando esquemas de classes

Para gerar esquemas XSD (linguagem de definição de esquema XML) de classes usadas no modelo de contrato de dados, use a XsdDataContractExporter classe. Este tópico descreve o processo de criação de esquemas.

O processo de exportação

O processo de exportação de esquema começa com um ou mais tipos e produz um XmlSchemaSet que descreve a projeção XML desses tipos.

O XmlSchemaSet é parte do Modelo de Objeto de Esquema (SOM) do .NET Framework que representa um conjunto de documentos de esquema XSD. Para criar documentos XSD de um XmlSchemaSet, use a coleção de esquemas da propriedade Schemas da classe XmlSchemaSet. Em seguida, serialize cada XmlSchema objeto usando o XmlSerializer.

Para exportar esquemas

  1. Criar uma instância do XsdDataContractExporter.

  2. Opcional. Passe um XmlSchemaSet no construtor. Nesse caso, o esquema gerado durante a exportação de esquema é adicionado a essa XmlSchemaSet instância em vez de começar com um espaço em branco XmlSchemaSet.

  3. Opcional. Chame um dos métodos CanExport. O método determina se o tipo especificado pode ser exportado. O método tem as mesmas sobrecargas que o Export método na próxima etapa.

  4. Chame um dos métodos Export. Há três sobrecargas que levam um Type, um List<T> de Type objetos ou um List<T> de Assembly objetos. No último caso, todos os tipos em todos os assemblies determinados são exportados.

    Várias chamadas ao Export método resultam em vários itens sendo adicionados ao mesmo XmlSchemaSet. Um tipo não é gerado no XmlSchemaSet caso de ele já existir lá. Portanto, chamar Export várias vezes no mesmo XsdDataContractExporter é preferível para criar várias instâncias da XsdDataContractExporter classe. Isso evita que tipos de esquema duplicados sejam gerados.

    Observação

    Se houver uma falha durante a exportação, o XmlSchemaSet estará em um estado imprevisível.

  5. Acesse o XmlSchemaSet por meio da propriedade Schemas.

Opções de Exportação

Você pode definir a propriedade Options de XsdDataContractExporter para uma instância da classe ExportOptions a fim de controlar vários aspectos do processo de exportação. Especificamente, você pode definir as seguintes opções:

Métodos auxiliares

Além de sua função primária de exportar o esquema, ele XsdDataContractExporter fornece vários métodos auxiliares úteis que fornecem informações sobre tipos. Elas incluem:

  • Método GetRootElementName. Esse método usa um Type e retorna um XmlQualifiedName que representa o nome do elemento raiz e o namespace que seriam usados se esse tipo fosse serializado como o objeto raiz.

  • Método GetSchemaTypeName. Esse método usa um Type e retorna um XmlQualifiedName que representa o nome do tipo de esquema XSD que seria usado se esse tipo fosse exportado para o esquema. Para IXmlSerializable tipos representados como tipos anônimos no esquema, esse método retorna null.

  • Método GetSchemaType. Esse método funciona apenas com IXmlSerializable tipos que são representados como tipos anônimos no esquema e retorna null para todos os outros tipos. Para tipos anônimos, esse método retorna um XmlSchemaType que representa um determinado Type.

As opções de exportação afetam todos esses métodos.

Consulte também