2012-01-06 109 views
0

我有一个问题,写一个有效的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> 

基本上,errormessage的是

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

此刻我不知道要在xsd中更改哪些内容才能使xml生效。

回答

1

你需要你的实例文档中使用xsi:nil,不只是nil,即

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

,并确保该xsi前缀的文件中定义的地方(与xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

+0

不错!它现在有效......谢谢 – Viper 2012-01-06 11:05:38