[jdom-interest] <xsd:all> bug? (lots of details) OutOfMemoryError

Rubin, Dan dan.Rubin at qwest.com
Fri May 4 04:37:40 PDT 2001


Hi,

Could this be a bug or am I doing something wrong in my XML/XSD?  When I use
<xsd:sequence> in my xsd (appended as OUTPUT 1 below) everything works fine
when I use the SAXBuilderDemo.class to read in and validate the sample xml
(appended as OUTPUT 2 below).  When I change the <xsd:sequence> to <xsd:all>
in the xsd I get the exception seen in OUTPUT 3.  If I reduce the number of
elements in the xml and xsd to 31 (ie chop it off after DD) I get an
'Exception in thread "main" java.lang.OutOfMemoryError' (even with -Xms256m
-Xmx256m).  What is going on?  We are running JDK JDK_1.2.2_05a and JDOM
beta 6 and Xerces 1.3.1.

OUTPUT 1
==========

<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XML Spy v3.5 NT (http://www.xmlspy.com)-->
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
elementFormDefault="qualified">
    <xsd:element name="Services">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="A" minOccurs="0"/>
                <xsd:element ref="B" minOccurs="0"/>
                <xsd:element ref="C" minOccurs="0"/>
                <xsd:element ref="D" minOccurs="0"/>
                <xsd:element ref="E" minOccurs="0"/>
                <xsd:element ref="F" minOccurs="0"/>
                <xsd:element ref="G" minOccurs="0"/>
                <xsd:element ref="H" minOccurs="0"/>
                <xsd:element ref="I" minOccurs="0"/>
                <xsd:element ref="J" minOccurs="0"/>
                <xsd:element ref="K" minOccurs="0"/>
                <xsd:element ref="L" minOccurs="0"/>
                <xsd:element ref="M" minOccurs="0"/>
                <xsd:element ref="N" minOccurs="0"/>
                <xsd:element ref="O" minOccurs="0"/>
                <xsd:element ref="P" minOccurs="0"/>
                <xsd:element ref="Q" minOccurs="0"/>
                <xsd:element ref="R" minOccurs="0"/>
                <xsd:element ref="S" minOccurs="0"/>
                <xsd:element ref="T" minOccurs="0"/>
                <xsd:element ref="U" minOccurs="0"/>
                <xsd:element ref="V" minOccurs="0"/>
                <xsd:element ref="W" minOccurs="0"/>
                <xsd:element ref="X" minOccurs="0"/>
                <xsd:element ref="Y" minOccurs="0"/>
                <xsd:element ref="Z" minOccurs="0"/>
                <xsd:element ref="AA" minOccurs="0"/>
                <xsd:element ref="BB" minOccurs="0"/>
                <xsd:element ref="CC" minOccurs="0"/>
                <xsd:element ref="DD" minOccurs="0"/>
                <xsd:element ref="EE" minOccurs="0"/>
                <xsd:element ref="FF" minOccurs="0"/>
                <xsd:element ref="GG" minOccurs="0"/>
                <xsd:element ref="HH" minOccurs="0"/>
            </xsd:sequence>
            <xsd:attribute name="guid" use="required" />
    <xsd:attribute name="SomNs" use="optional" />
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="A">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="B">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="C">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="D">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="E">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="F">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="G">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="H">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="I">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="J">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="K">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="L">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="M">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="N">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="O">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="P">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="Q">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="R">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="S">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="T">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="U">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="V">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="W">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="X">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="Y">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="Z">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="AA">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="BB">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="CC">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="DD">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="EE">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="FF">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="GG">
        <xsd:complexType/>
    </xsd:element>
    <xsd:element name="HH">
        <xsd:complexType/>
    </xsd:element>
</xsd:schema>

OUTPUT  2
=========
<Services guid="abc"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Services.xs
d">
   <A></A>
   <B></B>
   <C></C>
   <D></D>
   <E></E>
   <F></F>
   <G></G>
   <H></H>
   <I></I>
   <J></J>
   <K></K>
   <L></L>
   <M></M>
   <N></N>
   <O></O>
   <P></P>
   <Q></Q>
   <R></R>
   <S></S>
   <T></T>
   <U></U>
   <V></V>
   <W></W>
   <X></X>
   <Y></Y>
   <Z></Z>
   <AA></AA>
   <BB></BB>
   <CC></CC>
   <DD></DD>
   <EE></EE>
   <FF></FF>
   <GG></GG>
   <HH></HH>
</Services>

OUTPUT  3
=========

java.lang.ArrayIndexOutOfBoundsException: 32
        at
org.apache.xerces.validators.schema.TraverseSchema.traverseAll(Compiled
Code)
        at
org.apache.xerces.validators.schema.TraverseSchema.processComplexContent(Tra
verseSchema.java:2888)
        at
org.apache.xerces.validators.schema.TraverseSchema.traverseComplexTypeDecl(T
raverseSchema.java:2176)
        at
org.apache.xerces.validators.schema.TraverseSchema.traverseElementDecl(Compi
led Code)
        at
org.apache.xerces.validators.schema.TraverseSchema.doTraverseSchema(Compiled
Code)
        at
org.apache.xerces.validators.schema.TraverseSchema.<init>(TraverseSchema.jav
a:288)
        at
org.apache.xerces.validators.common.XMLValidator.resolveSchemaGrammar(XMLVal
idator.java:2706)
        at
org.apache.xerces.validators.common.XMLValidator.bindNamespacesToElementAndA
ttributes(Compiled Code)
        at
org.apache.xerces.validators.common.XMLValidator.callStartElement(Compiled
Code)
        at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(Compiled Code)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(Co
mpiled Code)
        at org.apache.xerces.framework.XMLDocumentScanner.parseSome(Compiled
Code)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:952)
        at org.jdom.input.SAXBuilder.build(Compiled Code)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:464)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:445)
        at SAXBuilderDemo.testBuilder(SAXBuilderDemo.java:111)
        at SAXBuilderDemo.main(SAXBuilderDemo.java:150)
org.xml.sax.SAXParseException: Element type "Services" must be declared.
        at java.lang.Throwable.fillInStackTrace(Native Method)
        at java.lang.Throwable.fillInStackTrace(Compiled Code)
        at java.lang.Throwable.<init>(Compiled Code)
        at java.lang.Exception.<init>(Exception.java:42)
        at org.xml.sax.SAXException.<init>(SAXException.java:45)
        at org.xml.sax.SAXParseException.<init>(SAXParseException.java:56)
        at
org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1067)
        at
org.apache.xerces.validators.common.XMLValidator.reportRecoverableXMLError(X
MLValidator.java:1645)
        at
org.apache.xerces.validators.common.XMLValidator.validateElementAndAttribute
s(Compiled Code)
        at
org.apache.xerces.validators.common.XMLValidator.callStartElement(Compiled
Code)
        at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(Compiled Code)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(Co
mpiled Code)
        at org.apache.xerces.framework.XMLDocumentScanner.parseSome(Compiled
Code)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:952)
        at org.jdom.input.SAXBuilder.build(Compiled Code)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:464)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:445)
        at SAXBuilderDemo.testBuilder(SAXBuilderDemo.java:111)
        at SAXBuilderDemo.main(SAXBuilderDemo.java:150)



More information about the jdom-interest mailing list