gpt4 book ai didi

c++ - 如何使用 libxml2 验证带有 1.1 版模式的 xml?

转载 作者:数据小太阳 更新时间:2023-10-29 02:29:55 26 4
gpt4 key购买 nike

我使用 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">

然后我写了一个像这样的 compleType:

<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 “在我的代码中”仅支持架构 version1.0。那么是否有任何解决方案可以使 libxml2 与 schema version1.1 一起使用?我必须使用它的一些新功能。任何建议都会有所帮助!谢谢!

最佳答案

libxml2 尚未更新以支持 XSD 1.1。据我所知,该产品没有积极的开发,所以这不太可能发生。您将需要找到不同的模式处理器。

关于c++ - 如何使用 libxml2 验证带有 1.1 版模式的 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26668140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com