2013-02-07 53 views
1

驗證我的XML文檔在Oracle上失敗(通過oraxsd c庫),但在其他工具中成功。對於空的(字符串)元素,Oracle的XML驗證失敗

甲骨文驗證錯誤:

LSX-00009:數據缺少類型 「#simple」
LSX-00213:0僅出現粒子的 「序列」,最小值爲1

對於以下XSD:

<xs:element name="AGREE" minOccurs="0"> 
    <xs:simpleType> 
     <xs:restriction base="type7434"/> 
    </xs:simpleType> 
</xs:element> 

<xs:simpleType name="type7434"> 
    <xs:annotation> 
     <xs:documentation>AGREE</xs:documentation> 
    </xs:annotation> 
    <xs:restriction base="xs:string"> 
     <xs:maxLength value="70"/> 
    </xs:restriction> 
</xs:simpleType> 

與下面的XML:

<AGREE/> 

相同的搜索結果: <AGREE></AGREE>

在這種情況下,Oracle驗證是錯誤的嗎?如果是這樣,解決方法是什麼?

我幾乎沒有對XSD的控制權,對XML的一些控制權以及對驗證過程本身的完全訪問權。

Oracle版本:Oracle9i企業版發行9.2.0.8.0 - 64

回答

0

對於它的價值,它看起來像一個錯誤給我。我想知道驗證者是否在唯一標籤和空白元素之間做出了一些古怪的區分:它是否也拒絕<AGREE></AGREE>?如果您將<xs:minLength value="0"/>添加到類型7434的聲明中,它會改變行爲嗎?

+0

是的,它也拒絕。對於第二部分,我無法輕鬆修改最終的XSD(但爲了測試目的,我可以對其進行修改)。 – Daddy32