Xml XSD验证失败,因为空值是无效的小数
我在编写有效的XSD时遇到了一个问题,该XSD描述了一个十进制数的潜在空值 我正在尝试验证以下XMLXml XSD验证失败,因为空值是无效的小数,xml,xsd,null,xml-validation,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:simpl
<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有效。您需要在实例文档中使用
xsi:nil
,而不仅仅是nil
,即
<RatioDe fieldId="011" xsi:nil="true"/>
并确保xsi
前缀是在文档中的某个地方定义的(使用xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“
)