.Net的内联架构/ XML编程生成

时间:2012-06-21 18:28:06

标签: asp.net .net xml excel xsd

我有一组使用ASP.Net(VB.Net)呈现到网页的数据。我现在想将该数据导出到XML。我已经创建了一些代码来生成模式,但是,我不知道下一步该做什么。我希望模式与XML数据保持一致,我希望编译器检查以确保我输入的XML内容数据对包含的模式进行验证。有人知道这样做的方法吗?我的想法是能够在Excel中使用正确类型的字段打开结果文件。

之前我已经构建了XML文档,这是我以编程方式创建的第一个模式文档。但是,我从未使用过内联架构,更不用说它们强烈键入要添加到文档中的XML。

我已经阅读了以下内容,这些内容非常有用,但两者都没有解决我上面提到的问题:

http://www.aspfree.com/c/a/XML/Generating-XML-Schema-Dynamically-Using-VBNET-2005-Essentials/

http://blogs.msdn.com/b/kaevans/archive/2007/06/05/inline-an-xml-schema-into-your-xml-document.aspx

1 个答案:

答案 0 :(得分:0)

我不知道你的意思是什么“...我希望编译器检查以确保我输入的XML内容数据是否符合所包含的模式。”

编译器永远不会检查它。如果要以编程方式针对架构验证XML文档,则应该使用http://msdn.microsoft.com/en-us/library/system.xml.schema.xmlschemavalidator.aspx

但是为了使用您的文档内联架构,您可以回答自己的问题。您问题中的第二个链接http://blogs.msdn.com/b/kaevans/archive/2007/06/05/inline-an-xml-schema-into-your-xml-document.aspx正是您要尝试的内容。

您可以将内联XML架构视为文档中的文档。好吧,使用Kirk的例子,最外面的文档更像是一个使用未定义命名空间(没有模式)的容器。他的示例使用属于未定义命名空间的“DerekDoc”文档根。无论你想要什么,都可以为你命名。

在该根目录中基本上是两个文档。一个是内联XML Schema。您只需将其添加为根的子元素。另一个是您打算符合XML Schema的XML文档。您需要使用xmlns属性将此元素设置为XML Schema(模式的目标名称空间)定义的名称空间。

可能工作(我还没有尝试过)将根元素设置为模式的目标名称空间,但客户端可能更难验证文档,因为它是一个前向引用