2

是否有将 XSD 转换为输入表单(ASP.NET C#)的标准方法,以便以后每当从 XSD 添加/删除新字段时,页面上的字段会分别自动显示或消失,这是什么东西哪些需要内部开发我认为必须有一种方法来序列化/反序列化并生成表单?任何地狱将不胜感激..

4

3 回答 3

2

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

于 2008-10-20T03:03:27.983 回答
0

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

想法:由于您想创建一个表单来操作数据,我猜您可能对 SQL 而非 XML 持开放态度。情况可能并非如此,但如果您有数据库后端而不是 XML/XSD 后端,您可能会找到更多工具来帮助您。(此外,还有一些方法可以将数据从一种转换为另一种)。

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

选项 1)您可以从 XSD 创建数据库模式(如何从 XSD 文件创建数据库表?)并从那时起使用 SubSonic。这可能比你原来的问题更痛苦......只有你知道。

选项 2) 破解 SubSonic 脚手架,使其支持您的底层 XSD/XML 而不是数据库。您可能可以重用他们的许多基础设施(SubSonic 是开源的)来从 XSD 生成表单。

祝你好运!

于 2008-10-20T03:02:42.463 回答
0

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

我仍在试图弄清楚如何使用 XSD 文件生成 ASP.NET 表单,而不必输入所有内容,这是猴子的工作。

有人已经遇到过这个问题吗?

PS:另一种方法是使用 InfoPath,但这需要许可软件作为网络表单运行......

于 2008-10-31T15:37:10.007 回答