我正在使用 .net 应用程序,我们需要根据从数据库检索的数据集动态生成 XML 文件。XML 模式应该基于提供的 xsd。我想知道是否有任何方法可以将数据集或每个数据行与 xsd 绑定或关联。我不知道这是否可以完成,或者我可能以错误的角度思考 XSD 的使用。如果我错了,请纠正我,并让我知道将从数据库检索的数据关联到预定义架构的最佳方法。谢谢。

更新:如果我对 xsd 的看法是错误的,请阐明如何使用 xsd(或者也许向我指出一些有用的链接)。

有帮助吗?

解决方案

除了 Joel Coehoorn 建议的解决方案(从 XSD 生成类型化数据集或业务实体)之外,让我添加一些其他方法:

  1. 如果您使用支持 XML 类型的数据库(例如 Oracle 或 MS SQL Server),则可以直接在 SQL 查询中构造 XML,并直接从数据库检索 XML,绕过数据集的填充。
  2. 如果您的数据库架构未直接映射到给定的 XSD,即您已经有一个类型化数据集或一组 XML 可序列化业务对象,并且这些对象被序列化为不符合您提供的 XSD 的 XML,那么您可以使用 XSLT 将 XML 转换为另一个 XML 文档,这将符合给定的 XSD。

其他提示

使用架构文档作为 Visual Studio 附带的命令行 xsd.exe 程序的参数来生成可包含在项目/解决方案中的类文件或类型化数据集。这些类或数据集可以序列化为 xml,并且符合您用于创建它们的架构文档。

唯一的问题是它不是动态的:您不能等到运行时才能获取架构文件。但没有任何内置的东西可以支持这一点。

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