使用 C++ 针对 xsd 验证 xml

Posted

技术标签:

【中文标题】使用 C++ 针对 xsd 验证 xml【英文标题】:Validate xml against xsd using c++ 【发布时间】:2010-05-31 07:23:48 【问题描述】:

我对 XML 和 c++ 很陌生。

我想使用 C++ API 针对 XSD 验证 XML。谁能给我一些教程链接或示例程序?我不想使用 MSXML 来执行此操作,因为它适用于 Windows 和 Visual Studio。

我尝试使用 Xerces 和 libXML,但失败了。现在我正在尝试使用 tinyXML。

请帮助我使用 c++(不是 VC++,应该在跨平台上工作)根据 XML 模式验证 XML。

【问题讨论】:

libxml2 出了什么问题?我能够非常轻松地围绕它构建一个 C++ 包装器。 @ereOn,您是否能够使用libxml2 验证 XML 架构 (.xsd) 文件?我以为它只支持针对 DTD 文件的验证 【参考方案1】:

你可以看看libsystools。它是一个开源、多平台、x86/x64 C++ 库,包括 XML(和 XML 模式,又名 XSD)支持。

它基于libxml2,但这是隐藏的。

它还处理很多您可能不想要的东西(sockets、openssl、xmlsec),因此您可以提取 XML 类并在您的项目中使用它们。 (不过,您的软件必须是开源的)。

如果你想这样做,我建议你使用 SVN 获取最后的源(采用修订版 315)并查看以 xml 开头的文件。

注意:当前的 2.0 版本支持 XSD 验证。下一个版本将在几个月后发布,因此除了从 SVN 存储库中获取源代码之外别无他法。但这没什么大不了的。

【讨论】:

根据这篇评论的撰写,libsystools 似乎已在 2013 年被放弃。

以上是关于使用 C++ 针对 xsd 验证 xml的主要内容,如果未能解决你的问题,请参考以下文章

使用 php 针对 xsd 验证 xml 文件

可以在运行时使用代码针对 xsd 验证 xml 吗?

可以在运行时使用 Objc/iPhone 代码针对 xsd 验证 xml

如何使用 MSXML 针对 XML Schema.xsd 验证我自己的 Schema XSD 文件?

针对 XSD 验证 XML [重复]

在客户端使用 JavaScript 针对 XSD 验证 XML