[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