如何解决带有所有必需枚举的 XSD 验证
我必须使用 XSD 验证下表。
验证条件是..
- 每次都会有这 9 条唯一记录。
- 不允许重复。
- 计划应该按照确切的保存顺序进行。
即使我们从表中删除一条记录或复制任何记录,XSD 也会通过上表。 如何应用上述条件。 我尝试了 use="required" 枚举,但它不起作用。我经历了很多解决方案,但没有一个符合我的要求。
<xs:element name="Plan" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Actual DSP"></xs:enumeration>
<xs:enumeration value="Actual OOR"></xs:enumeration>
<xs:enumeration value="Budget DSP"></xs:enumeration>
<xs:enumeration value="Budget OOR"></xs:enumeration>
<xs:enumeration value="FY Forecast"></xs:enumeration>
<xs:enumeration value="Q1 Forecast"></xs:enumeration>
<xs:enumeration value="Q2 Forecast"></xs:enumeration>
<xs:enumeration value="Q3 Forecast"></xs:enumeration>
<xs:enumeration value="Q4 Forecast"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
解决方法
基于您分享的有限信息。我建议使用将所有 9 个计划选项定义为计划的子项的 xml 模式。通过这种方式,您可以满足所有三个要求并保持 xml 模式简单。 我假设每个计划选项都有专用信息,然后您可以将其存储为计划选项元素的子项。还要记住,xml 元素的名称中不能有空格。
我已经做了一个简单的例子,你可以如何设置它。 例子:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Plan">
<xs:complexType>
<xs:sequence>
<xs:element name="Actual_DSP"/>
<xs:element name="Actual_OOR"/>
<xs:element name="Budget_DSP"/>
<xs:element name="Budget_OOR"/>
<xs:element name="FY_Forecast" type="ForecastType"/>
<xs:element name="Q1_Forecast" type="ForecastType"/>
<xs:element name="Q2_Forecast" type="ForecastType"/>
<xs:element name="Q3_Forecast" type="ForecastType"/>
<xs:element name="Q4_Forecast" type="ForecastType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ForecastType">
<xs:sequence>
<xs:element name="Debit" type="xs:decimal"/>
<xs:element name="Credit" type="xs:decimal"/>
<xs:element name="Status" type="StatusType"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="StatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="Behind"/>
<xs:enumeration value="OnTrack"/>
<xs:enumeration value="Ahead"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。