是否有标准方法将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运行...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top