我需要根据模式验证xml文件的一小段片段。本质上,我想问一个问题“XML文档Y中的元素X是否符合模式Z中定义的类型?”如果没有得到描述原因的消息。这也必须考虑到对这些类型的限制(例如maxLength,minInclusive)。
这可能吗?
答案 0 :(得分:3)
我不知道从C#做到这一点,但它很容易在XQuery或XSLT 2.0中完成。在XSLT 2.0中,它是:
<xsl:copy-of select="doc('doc.xml')//selected/element" validation="strict"/>
在XQuery中它是
validate strict {doc('doc.xml')//selected/element}
您只需要一个可在您选择的环境中运行的架构感知XQuery或XSLT 2.0处理器。
答案 1 :(得分:1)
事实证明这比我预期的要容易得多。解决方案是创建一个新的模式,其中包含我想要验证的一个元素作为其根。将此架构添加到架构集后,您可以像处理任何完整文档一样简单地验证片段。
答案 2 :(得分:0)
一篇精确描述验证Xml片段的微软知识文章。这可能很有用。 http://support.microsoft.com/kb/318504