微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

libxml2在元素类型anyURI包含特殊字符例如“ [”,“ [”的xsd模式验证上失败

如何解决libxml2在元素类型anyURI包含特殊字符例如“ [”,“ [”的xsd模式验证上失败

参见RFC3986(强调我的):

由Internet协议文字地址版本6 [RFC3513]或更高版本标识的主机通过将IP文字括在方括号(“ [”和“]”)中来区分。这是URI语法中 。

尝试分别用%5b和替换它们%5d

解决方法

我正在使用go-libxml2进行xsd模式验证。我有一个将url作为值的XML元素。我的xsd还包含其类型为anyURI,如下所示

<xs:element name="url" type="xs:anyURI">

以下代码在包含“ []”的验证网址上引发错误

xsd.schema.Validate(xml)

以下是引发错误的示例网址

<url>
    <![CDATA[
        http://example.com/orda/var[div]=super
    ]]>
</url>

错误:

'http://example.com/orda/var[div]=super is not a valid value of the atomic type 'xs:anyURI'

常规网址可以正常工作。任何想法如何解决这个问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。