2014-12-05 107 views
0

我只想知道如何在場景後面進行XSD驗證。 如果我定義了XSD如下XML架構驗證(XSD)

<xs:simpleType name="MaxText"> 
    <xs:restriction base="xs:string"> 
     <xs:minLength value="1"/> 
     <xs:maxLength value="10000000000000"/> 
    </xs:restriction> 
</xs:simpleType> 

做字符串長度的實際驗證,並java的需要加載XML來存儲整個字符串值?如果是這種情況,則存在拋出「java.lang.OutOfMemoryError:Java堆空間」的潛在問題。

感謝您的評論。

問候, Mayuran

回答

0

嗯,這取決於XML解析器和模式驗證的實施,但我認爲這很可能大多數實現都需要每個文本節點(或屬性值),以配合在Java(等)字符串的限制。

我認爲在接下來的幾年裏,隨着我們對字符串,數組等的大小達到2^31的限制,我們將看到問題日益增多的問題。重新設計編程語言會非常困難Java來解決這個問題,因爲使用(int)數據類型來處理這樣的結構非常普遍。