我有一个 XSD,我想在其中使用xs:assert
陈述。问题是我不知道如何使断言功能可供我使用。我正在使用 Visual Studio 编写它,它会出现一条蓝线,表示它不支持断言元素。
我的 XSD 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.client.co.uk/quote"
targetNamespace="http://www.client.co.uk/quote"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="ProductType" type="ProductCodeType"/>
<xs:simpleType name="ProductCodeType">
<xs:annotation>
<xs:documentation>Client Product Type</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="L" />
<xs:enumeration value="C" />
<xs:enumeration value="H" />
</xs:restriction>
</xs:simpleType>
<xs:element name="BenefitBasisType">
<xs:simpleType>
<xs:annotation>
<xs:documentation>Client benefit basis type</xs:documentation>
</xs:annotation>
<xs:assert test= "if (ProductType = 'L') then $value = 'M' else if (ProductType = 'C') then $value = 'F' else if (ProductType = 'H') $value = 'P'" />
<xs:restriction base="xs:string">
<xs:enumeration value="M" />
<xs:enumeration value="F" />
<xs:enumeration value="P" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
问题是xs:assert
需要 XSD 1.1,而 Microsoft Visual Studio 仅支持 XSD 1.0。您必须使用支持 XSD 1.1 的 XML 处理器,例如以下处理器之一:
- Xerces-J 与 PsychoPath XPath 2.0
- Saxon EE
- Altova
-
液体XML also 支持它
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)