0

我有一组使用 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

4

1 回答 1

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 Schema 视为文档中的文档。好吧,使用 Kirk 的示例,最外层的文档更像是一个使用未定义命名空间(无模式)的容器。他的示例使用属于未定义命名空间的“DerekDoc”文档根。您可以随意命名。

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

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

于 2012-06-21T19:40:19.343 回答