xml - 如何为一周中的几天编写有效的 xsd ?
问题描述
我是 xml 新手,并尝试为至少一天且没有重复的天数列表编写 xsd。
我想允许在 xml 中以下列形式定义天数,例如:
<!-- working days -->
<days>
monday
tuesday
wednesday
</days>
该元素不能为空、包含重复或错误写入的日期。
我编写了以下代码来验证 xml:
<xs:simpleType name="day">
<xs:restriction base="xs:string">
<xs:enumeration value="sunday"/>
<xs:enumeration value="monday"/>
<xs:enumeration value="tuesday"/>
<xs:enumeration value="wednesday"/>
<xs:enumeration value="thirsday"/>
<xs:enumeration value="friday"/>
<xs:enumeration value="saturday"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dayList">
<xs:list itemType="day"/>
<xs:minLength value="1"/>
<xs:maxLength value="7"/>
</xs:simpleType>
<xs:element name="days" type="dayList"/>
上面定义的问题是重复仍然是可能的。有没有办法解决这个问题?
谢谢你。
解决方案
XSD 1.0 中无法将列表中的项目限制为唯一。
它可以在 XSD 1.1 中通过向xs:assertion
dayList 添加一个方面来完成:
test="count($value) eq count(distinct-values($value))"
推荐阅读
- javascript - 通过 jquery ajax 调用时谷歌图表不显示
- python-2.7 - 如何根据提供的 HTML 通过 Selenium 和 Python 搜索节点?
- java - 获取不同类型的 JSON 响应 Retrofit
- opengl - Singularity 不会“导入”OpenGL/EGL 库
- jquery - 添加按钮行不适用于下一个按钮
- c# - 搜索方法asp.net
- laravel - Laravel 路由问题
- powershell - 从 UninstallString 中删除参数
- javascript - 谷歌地图在 React 项目中加载时间过长
- validation - 确保单元格不为空白