0

请注意,我要求对特定节点而不是整个文件进行验证。举些例子

<somexmldoc>
    <someNode>
        <UserDefinedNode> </>
        <UserDefinedNode> </>
    </someNode>
</somexmldoc>

对于这个 XML 文档,我有一个 wholeDoc.XSD 可用于验证除“UserDefinedNode”之外的整个文档(此节点在 xsd 中使用“any”标记指定,允许用户在该节点下定义任何内容)。

是否可以有一个单独的 userdefined.XSD 文件来验证“UserDefinedNode”?是否可以使用 MSXML for C++ (IXMLDomDocument) 来验证这一点?

谢谢!

4

3 回答 3

1

XSD 适用于整个 DOM 文档,但不适用于 DOM 片段。但是,由于您的片段也是有效的 XML,为什么不将其复制到另一个 DOM 对象作为根?您可以利用 appendChild 或 cloneNode 来实现这一点,然后验证新的 DOM。

顺便说一句,如果你想验证一个指定的 DOM 片段,你可以使用validateNode方法。

于 2010-06-10T23:42:03.470 回答
0

应该是可以的。我为您找到了一个名为HOW TO: Validate XML Fragments against an XML Schema in Visual C#.NET 的文档请参见此处)。那是 C#,但你应该能够翻译这个:-)

于 2010-06-10T18:40:59.720 回答
0

是的,这是可能的。我建议下载Microsoft Core XML Services (MSXML) 6.0 SDK,因为它有一个 C++ 示例代码,展示了如何做到这一点。

于 2010-06-10T18:35:05.733 回答