XSD断言未被识别。

4

我有一个XSD文件,想要使用xs:assert语句。问题是我不知道如何使断言功能对我可用。我正在使用Visual Studio进行编写,但它会出现蓝线提示不支持assert元素。

我的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>
1个回答

4

有没有任何 Visual Studio 的插件可以使用 1.1 版本的 XSD? - Tobias
Altova的一些产品与Visual Studio集成,我不知道他们的XSD处理器是否也是如此。 - Michael Kay
1
@Tobias,考虑给XSD 1.1的这篇UserVoice帖子点赞,以敦促微软添加此功能。此外,Saxon有一个.NET版本,因此您可以使用它。如果您想从编辑器内进行验证,请使用oXygen、Stylus Studio、Altova或Eclipse。 - Abel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接