Pergunta

Existe uma maneira padrão para converter um XSD para um formulário de entrada (ASP.NET C #), de modo que, mais tarde, sempre que um novo campo é adicionado / removido do XSD o campo na página mostra automaticamente para cima ou desaparece respectivamente, isso é algo que precisa ser desenvolvido in-house I supor que deve haver uma maneira de Serializa / desserializa e gera um formulário? Qualquer hel seria apreciado ..

Foi útil?

Solução

Eu não acho que haja algo construído em fazer esta totalmente automático. No entanto, você pode ficar muito perto. Visual Studio inclui um programa de linha de comando chamado xsd.exe que você pode usar para criar automaticamente uma definição de classe a partir de um documento XSD. Depois de ter essa definição de classe pode ligá-lo a uma forma através de um componente ObjectDataSource e um controle DetailsView.

Outras dicas

Assunção: Você está usando XML porque é mais simples para você no momento.

Idea: Desde que você deseja criar uma forma de manipular os dados, eu estou supondo que você pode estar aberto a SQL em vez de XML. Isto pode não ser o caso, mas provavelmente você vai encontrar mais ferramentas para ajudá-lo se você tiver um banco de dados backend em vez de um backend XML / XSD. (Além disso, existem maneiras que você pode converter seus dados de um para outro).

Existem ferramentas que criam formas de bancos de dados em ASP.NET. SubSonic, por exemplo, tem um módulo de auto-andaimes que lhe permite criar um gerenciador de banco de dados sabendo apenas seu esquema. Se as alterações de esquema, apenas tem SubSonic regenerar seus arquivos e seus formulários terá sido modificada. Não é perfeito, mas pode percorrer um longo caminho, dependendo de suas necessidades.

Opção 1) Você pode criar o esquema de banco de dados a partir do XSD ( Como posso criar tabelas de banco de dados a partir de arquivos XSD? ) e usar SubSonic a partir desse ponto. Isso pode ser ainda mais de uma dor do que você pergunta original ... só você sabe.

Opção 2) Corte o andaime SubSonic para que ele apoia a sua subjacente XSD / XML em vez de um banco de dados. Você provavelmente pode re-uso lotes de sua infra-estrutura (SubSonic é open source) para gerar a forma de um XSD.

Boa sorte!

Bem, eu tenho que dizer que o ObjectDataSource não é uma má idéia, mas isso não funciona se você tiver elementos aninhados. Além de tudo isso, por elementos aninhados que você terá toda a "..FieldSpecified" campos booleanos no DetailsView também.

Eu ainda estou tentando descobrir como para gerar um formulário ASP.NET usando um arquivo XSD, sem ter que digitar em tudo, que é o trabalho de macaco.

Qualquer um que já correu para essa questão?

PS: Uma outra abordagem seria usar InfoPath, mas isso requer software licenciado para ser executado como webforms ...

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