如何使用libxml2在1.1版中使用模式验证xml
How to use libxml2 validate a xml with a schema in version 1.1?
我使用libxml2来验证带有模式的xml我必须使用模式1.1版本的原因,所以我开始了我的模式头像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1">
我写了一个完整的类型:
<xs:complexType name="test-type">
<xs:all>
<xs:element name="test"></xs:element>
<xs:element name="test1" minOccurs="0" maxOccurs="4"></xs:element>
</xs:all>
</xs:complexType>
它在1.1版本中有效,但在1.0版本中无效。当我使用我的程序解析这个模式时:
xmlSchemaParseCtxtPtr ctxt;
xmlLineNumberDefault(1);
ctxt=xmlSchemaNewParserCtxt("schema.xsd");
_xmlSchema* _schema = xmlSchemaParse(ctxt);
我在_schema中得到了一个空指针。但如果我删除了上面的complexType,一切都还好。所以我认为根本原因可能是libxml2"在我的代码中"只支持schema版本1.0。那么,有什么解决方案可以使libxml2与schema版本1.1协同工作吗?我必须使用它的一些新功能。任何建议都会有帮助!谢谢
libxml2尚未更新为支持XSD 1.1。据我所知,该产品没有积极的开发,因此这种情况不太可能发生。您需要找到一个不同的架构处理程序。
相关文章:
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 正在尝试了解输入验证循环
- 为什么在保护模式下继承升级不起作用
- 如何在全屏模式下(在OpenGL中)使背景透明
- 如何在C++中检查2D数组中负值的输入验证
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- LibGit2 SSH身份验证失败
- 此模式的C++RegEx
- C++11 中的对象验证逻辑模式
- FlatC是否验证了给定JSON的FlatBuffer模式所需的字段
- 解析 HTTP 的摘要式身份验证的正确正则表达式模式是什么?
- 加密++对称算法和经过身份验证的块模式组合
- 如何在Objective-C中验证JSON模式
- 如何使用libxml2在1.1版中使用模式验证xml
- 使用XML模式类型的Qt GUI输入验证
- 应用程序验证器DEBUG或RELEASE模式
- 将 valijson 与 Nlohmann 的 JSON for Modern C++ 结合使用,以验证具有子模式的模式
- 如何根据libxml++中的relaxNG模式验证xml文档
- 验证用户输入字符串的大小写模式(isupper/islower)