提问人:Pushpraj Singh 提问时间:11/5/2023 最后编辑:Pushpraj Singh 更新时间:11/5/2023 访问量:39
无法在 XSD 中使用 Assert 元素
Unable to use Assert element in XSD
问:
我是XSD架构验证的新手。我正在寻找是否要在XSD架构中应用其他条件。在互联网上搜索了很多之后,我找到了“assert”元素,我们可以在其中测试条件,例如if else condition。但是 XSD 验证器给了我这样的错误
你能帮我解决这个问题吗?谢谢
我尝试在 XSD 中使用 assert 元素,我的期望是使用“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>
答:
1赞
Martin Honnen
11/5/2023
#1
我认为,如果您使用支持 XSD 1.1 的验证器,您的架构将起作用(但示例 XML 实例是有效的)。基本上,您的开源选项是最新版本的 Apache Xerces Java,您需要确保使用支持 XSD 1.1 的版本(Web 界面在 https://www.softwarebytes.org/xmlvalidation/ 上在线),或者 Python 包 https://pypi.org/project/xmlschema/,我有一个 Python 包版本在这个 XML 工作台小提琴的浏览器中运行,使用 XSD 按钮运行验证。
此外,还有 Saxon EE 或 Altova 等商业选择。
评论