XSD验证失败,因为空值为无效小数

时间:2012-01-06 10:54:31

标签: xml xsd null xml-validation

我在编写有效XSD时遇到问题,该XSD描述了小数的潜在空值。

我正在尝试验证以下XML

<RatioDe fieldId="011" nil="true"></RatioDe>

此元素的相应XSD描述为

  <xs:element minOccurs="0" maxOccurs="1" name="RatioDe" nillable="true">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:decimal">
          <xs:attribute name="fieldId" type="xs:string" />
          <xs:attribute name="nil" type="xs:boolean" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

基本上,错误消息是

  

元素'RatioDe'无效 - 值''不是有效'十进制' - 字符串''不是有效的十进制值

此刻我不知道在xsd中要更改什么才能使xml有效。

1 个答案:

答案 0 :(得分:1)

您需要在实例文档中使用xsi:nil,而不仅仅是nil,即

<RatioDe fieldId="011" xsi:nil="true"/>

并确保xsi前缀已在文档中的某处定义(使用xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"