我是 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 >= 0 and age <= 120"/>
</xs:complexType></xs:element></xs:schema>
我认为如果您使用支持 XSD 1.1 的验证器,您的架构将会起作用(但示例 XML 实例是有效的)。基本上,您的开源选项是最新版本的 Apache Xerces Java,您需要确保使用支持 XSD 1.1 的版本,或使用 Python 包 https://pypi.org/project/xmlschema/。
此外,还有 Saxon EE 或 Altova 等商业选项。