2012-01-06 62 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