XML架构验证(XSD)

问题描述:

我只想知道如何在场景后面进行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

嗯,这取决于XML解析器和模式验证的实施,但我认为这很可能大多数实现都需要每个文本节点(或属性值),以配合在Java(等)字符串的限制。

我认为在接下来的几年里,随着我们对字符串,数组等的大小达到2^31的限制,我们将看到问题日益增多的问题。重新设计编程语言会非常困难Java来解决这个问题,因为使用(int)数据类型来处理这样的结构非常普遍。