【问题标题】:XSD validation fails because null value is invalid decimalXSD 验证失败,因为 null 值是无效的十进制
【发布时间】:2012-01-06 18:59:19
【问题描述】:

我在编写有效的 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' 无效 - 值 '' 不是有效的 'Decimal' - 字符串 '' 不是有效的十进制值

目前我不知道要在我的 xsd 中更改什么以使 xml 有效。

【问题讨论】:

    标签: xml xsd null xml-validation


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      相关资源
      最近更新 更多