使用 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的主要内容,如果未能解决你的问题,请参考以下文章
可以在运行时使用 Objc/iPhone 代码针对 xsd 验证 xml