问题描述
我目前正在使用一个跨平台的 c++ 项目 (windows+linux),它很快就会需要一个外部 xsd 验证器。
我的计划是:
- 要么找到一个执行 xsd 验证的 C++ 库(可能是一项复杂的任务)
- 或者我可以作为外部进程启动的现有工具(我相信更容易;Xerces 可能是一种选择?)
我有一个很深的 xsd 文件层次结构,所以我需要一个可靠的工具来完成这项工作。
我的问题:我需要一些关于一些易于集成但已生产就绪的解决方案的建议。
我现在的看法是使用 Java 版本的 Xerces,并在单独的进程中调用它。
可能我需要包装 Xerces,因为它似乎不允许直接在命令行中进行 xsd 验证,例如https://github.com/ndw/xjparse。
谢谢
解决方法
您可以将 xmllint
与 --schema
选项一起使用:
xmllint --noout --schema test.xsd test.xml
test.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="info" type="xs:string"/>
</xs:schema>
测试.xml
<?xml version="1.0"?>
<info>abc</info>