2008-10-20 13 views
2

Existe-t-il un moyen standard de convertir un XSD en un formulaire d'entrée (ASP.NET C#) afin que plus tard, chaque fois qu'un nouveau champ est ajouté/retiré du XSD, le champ sur le la page apparaît automatiquement ou disparaît respectivement, est-ce quelque chose qui doit être développé en interne je suppose qu'il doit y avoir un moyen de sérialiser/désérialiser et générer un formulaire? Hypothèse: Vous utilisez XML parce que c'est plus simple pour vous en ce moment.Éléments XSD à un formulaire dans ASP.NET

Répondre

2

Je ne pense pas qu'il y ait quelque chose de intégré pour rendre cela complètement automatique. Cependant, vous pouvez être assez proche. Visual Studio inclut un programme de ligne de commande appelé xsd.exe que vous pouvez utiliser pour créer automatiquement une définition de classe à partir d'un document xsd. Une fois que vous avez cette définition de classe, vous pouvez le connecter à un formulaire via un composant ObjectDataSource et un contrôle DetailsView.

0

Idée: Puisque vous voulez créer un formulaire pour manipuler les données, je suppose que vous pourriez être ouvert à SQL au lieu de XML. Cela peut ne pas être le cas, mais vous trouverez probablement plus d'outils pour vous aider si vous avez un backend de base de données au lieu d'un backend XML/XSD. (De plus, il existe des moyens de convertir vos données de l'une à l'autre).

Il existe des outils qui créent des formulaires à partir de bases de données dans ASP.NET. SubSonic, par exemple, a un module d'auto-échafaudage qui vous permet de créer un gestionnaire de base de données en ne connaissant que son schéma. Si le schéma change, il suffit à SubSonic de régénérer ses fichiers et vos formulaires auront été modifiés. Ce n'est pas parfait, mais cela peut aller loin, selon vos besoins.

Option 1) Vous pouvez créer le schéma de base de données à partir du XSD (How can I create database tables from XSD files?) et utiliser SubSonic à partir de ce point. Cela peut être encore plus une douleur que votre question originale ... seulement vous le savez.

Option 2) Hacker l'échafaudage SubSonic afin qu'il prenne en charge votre XSD/XML sous-jacent au lieu d'une base de données. Vous pouvez probablement réutiliser beaucoup de leur infrastructure (SubSonic est open source) pour générer le formulaire à partir d'un XSD.

Bonne chance!

0

Eh bien, je dois dire que ObjectDataSource n'est pas une mauvaise idée, mais cela ne fonctionne pas si vous avez des éléments imbriqués. En plus de cela, pour les éléments imbriqués, vous aurez également tous les champs booléens "..FieldSpecified" dans DetailsView. J'essaye toujours de comprendre comment générer un formulaire ASP.NET en utilisant un fichier XSD, sans avoir à taper tout, ce qui est le travail de singe.

Quelqu'un at-il déjà rencontré ce problème? PS: Une autre approche serait d'utiliser InfoPath, mais cela nécessite un logiciel sous licence pour fonctionner sous forme de formulaires Web ...