无法在 XSD 中使用 Assert 元素

问题描述 投票:0回答:1

我是 XSD 架构验证的新手。我正在寻找适用于 XSD 架构的 if else 条件。在互联网上进行了大量搜索后,我发现了“assert”元素,我们可以在其中测试条件,例如 if else 条件。但是 xsd 验证器给了我这样的错误

你能帮我解决这个问题吗?谢谢你

我尝试在 XSD 中使用断言元素,我的期望是使用“if else”之类的条件。

这是我的简单 XML 数据

<?xml version="1.0" encoding="UTF-8"?><person> <name>JohnDoe</name><age>30</age></person>

这是我的 XSD 架构

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="person">
<xs:complexType>
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="age" type="xs:integer"/>
  </xs:sequence>
  
  <xs:assert test="age &gt;= 0 and age &lt;= 120"/>
</xs:complexType></xs:element></xs:schema>
xsd xsd-validation xsd-1.1
1个回答
0
投票

我认为如果您使用支持 XSD 1.1 的验证器,您的架构将会起作用(但示例 XML 实例是有效的)。基本上,您的开源选项是最新版本的 Apache Xerces Java,您需要确保使用支持 XSD 1.1 的版本,或使用 Python 包 https://pypi.org/project/xmlschema/

此外,还有 Saxon EE 或 Altova 等商业选项。

© www.soinside.com 2019 - 2024. All rights reserved.