2008-09-16 96 views
6

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

更新:如果我对xsd的看法不对,请详细说明如何使用xsds(或者可能指向我一些有用的链接)。

+0

我一直在寻找这样的代码,没有现成的可用..看起来并不那么简单。好。如果这是为了您的测试,然后去Altova XMLSpy,像gem一样创建XML。 – 2012-11-22 15:30:16

回答

1

除了乔尔Coehoorn建议的解决方案 - 从XSD生成类型化数据集或商业实体 - 让我添加一些其他方法:

  1. 如果您使用支持XML类型如数据库Oracle或MS SQL Server,您可以在SQL查询中正确构建XML,并绕过数据集的总体直接从数据库检索XML。
  2. 如果您的数据库架构没有直接映射到给定的XSD,即您已经有一个类型化数据集或一组XML对象,并且这些对象被序列化为不符合XSD的XML,随同您一起提供,那么您可以使用XSLT将您的XML转换为另一个符合给定XSD的XML文档。
3

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

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