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