我在编写有效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有效。
答案 0 :(得分:1)
您需要在实例文档中使用xsi:nil
,而不仅仅是nil
,即
<RatioDe fieldId="011" xsi:nil="true"/>
并确保xsi
前缀已在文档中的某处定义(使用xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
)