Pergunta

Estou trabalhando em um aplicativo .net onde precisamos gerar arquivos XML dinamicamente com base no conjunto de dados recuperado do banco de dados.O esquema XML deve ser baseado em um xsd fornecido.Gostaria de saber se existe alguma maneira de vincular ou associar um conjunto de dados ou cada linha de dados ao xsd.Não sei se isso pode ser feito ou posso estar pensando no uso de XSDs de uma perspectiva errada.Se eu estiver errado, corrija-me e informe-me sobre a melhor maneira de associar os dados recuperados do banco de dados a um esquema predefinido.

Atualizar:Se minha perspectiva sobre o xsd estiver errada, esclareça como o xsds é usado (ou talvez me indique alguns links úteis).

Foi útil?

Solução

Além da solução sugerida por Joel Coehoorn – gerar conjuntos de dados digitados ou entidades de negócios a partir de XSD – deixe-me adicionar algumas outras abordagens:

  1. Se você usar um banco de dados que suporte o tipo XML, como Oracle ou MS SQL Server, poderá construir XML diretamente em suas consultas SQL e recuperar XML diretamente do banco de dados, ignorando a população do conjunto de dados.
  2. Caso o esquema do seu banco de dados não esteja mapeado diretamente para o XSD fornecido, ou seja,você já tem um conjunto de dados digitado ou um conjunto de objetos de negócios serializáveis ​​em XML e esses objetos são serializados em XML que não está em conformidade com o XSD fornecido, então você pode usar XSLT para transformar seu XML em outro documento XML que irá ser compatível com o XSD fornecido.

Outras dicas

Use o documento de esquema como parâmetro para o programa de linha de comando xsd.exe incluído no visual studio para gerar arquivos de classe ou conjuntos de dados digitados que você pode incluir em seu projeto/solução.Essas classes ou conjuntos de dados podem ser serializados em xml e estarão em conformidade com o documento de esquema usado para criá-los.

O único problema com isso é que não é dinâmico:você não pode esperar até o tempo de execução para obter os arquivos de esquema.Mas não há nada incorporado que suporte isso de outra forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top