繁体   English   中英

如何在C ++中针对XSD验证XML节点?

[英]How to Validate an XML Node against an XSD in C++?

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

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

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

是否可以使用单独的userdefined.XSD文件来验证“ UserDefinedNode”? 是否可以使用C ++的MSXML(IXMLDomDocument)进行验证?

谢谢!

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

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

是的,那是可能的。 我建议下载Microsoft Core XML Services(MSXML)6.0 SDK,因为它具有显示如何执行此操作的C ++示例代码。

应该是可能的。 在Visual C#.NET中找到了一个名为HOW TO:根据XML Schema验证XML片段的文档请参见此处 )。 那是C#,但是您应该可以翻译一下:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM