使用XSD在.NET中生成XML

时间:2020-03-05 18:56:55  来源:igfitidea点击:

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

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

解决方案

回答

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

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

回答

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

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