ASP.NET中的表单的XSD元素
题
是否有标准方法将XSD转换为输入表单(ASP.NET C#),以便以后每当从XSD添加/删除新字段时,页面上的字段将自动显示或消失,这是需要在内部开发的东西我假设必须有一种序列化/反序列化并生成表单的方法吗?任何帮助将不胜感激..
解决方案
我认为没有内置任何东西可以让它完全自动化。但是,你可以非常接近。 Visual Studio包含一个名为xsd.exe的命令行程序,您可以使用该程序从xsd文档自动创建类定义。获得该类定义后,可以通过ObjectDataSource组件和DetailsView控件将其连接到表单。
其他提示
假设:您正在使用XML,因为此刻它对您来说更简单。
想法:既然你想创建一个表单来操作数据,我猜你可能对SQL而不是XML开放。情况可能并非如此,但如果您有数据库后端而不是XML / XSD后端,您可能会找到更多工具来帮助您。 (另外还有一些方法可以将数据从一个转换为另一个)。
有些工具可以从ASP.NET中的数据库创建表单。例如,SubSonic有一个自动脚手架模块,可以让您创建一个只知道其模式的数据库管理器。如果架构发生更改,只需让SubSonic重新生成其文件,您的表单就会被修改。它并不完美,但可能会有很长的路要走,具体取决于您的需求。
选项1)您可以从XSD创建数据库模式(如何从XSD文件创建数据库表?)并从那时起使用SubSonic。这可能比你原来的问题更痛苦......只有你知道。
选项2)破解SubSonic脚手架,使其支持您的底层XSD / XML而不是数据库。您可以重新使用它们的大量基础结构(SubSonic是开源的)来从XSD生成表单。
祝你好运!好吧,我不得不说ObjectDataSource并不是一个坏主意,但如果您有嵌套元素,这不起作用。除此之外,对于嵌套元素,您将拥有所有“.. FieldSpecified”。 DetailsView中的布尔字段。
我仍在尝试弄清楚如何使用XSD文件生成ASP.NET表单,而不必输入所有内容,这就是猴子的工作。
任何人都遇到过这个问题?
PS:另一种方法是使用InfoPath,但这需要许可软件作为webforms运行...