2008-10-20 137 views
2

表单是否有一个XSD转换为输入表格(ASP.NET C#),以便以后每当一个新的字段被添加/移除从XSD领域对在标准方式页面分别自动显示或消失,这是需要在内部开发的东西,我认为必须有一种方法来序列化/反序列化并生成一个表单?任何hel将不胜感激。XSD元素在ASP.NET

回答

2

我不认为有什么内置的完全自动化。但是,你可以非常接近。 Visual Studio包含一个名为xsd.exe的命令行程序,您可以使用该程序从xsd文档自动创建类定义。一旦你有了这个类定义,你就可以通过ObjectDataSource组件和一个DetailsView控件将它连接到一个表单。

0

假设:您正在使用XML,因为它目前对您来说更简单。

想法:既然你想创建一个表单来处理数据,我猜你可能会打开到SQL而不是XML。这可能并非如此,但如果您拥有数据库后端而不是XML/XSD后端,则可能会找到更多工具来帮助您。 (另外还有方法可以将数据从一个转换为另一个)。

有一些工具可以在ASP.NET中从数据库创建表单。例如,SubSonic有一个自动脚手架模块,可以让你创建一个只知道其模式的数据库管理器。如果模式更改,只需让SubSonic重新生成其文件,并且表单将被修改。这并不完美,但可能会有很长的路要走,这取决于您的需求。

选项1)您可以创建一个从XSD(How can I create database tables from XSD files?)数据库架构和使用亚音速,从这一点上。这可能比你原来的问题更加痛苦......只有你知道。

选项2)破坏SubSonic脚手架,以便它支持您的基础XSD/XML而不是数据库。你可以重新使用大量的基础设施(SubSonic是开源的)来从XSD生成表单。

祝你好运!

0

好吧,我不得不说,ObjectDataSource控件并不是一个坏主意,但如果你已经嵌套元素,这并不工作。除此之外,对于嵌套元素,您还将在DetailsView中拥有所有“..FieldSpecified”布尔型字段。

我仍然试图找出如何使用XSD文件来生成一个ASP.NET的形式,而不需要输入的一切,这是猴子的工作。

任何人都已经遇到这个问题?

PS:另一种方法是使用InfoPath,但这需要许可软件才能以网页形式运行...