Validate nested XSD hits Out Of Memory Error

When I try to validate a XML with nested XSD as following, I always get Out of Memory error. I am using jre 1.4.2 and xerces 2.9.0. Please kindly help!

container.xsd:

<?xml version="1.0"?>

<xs:schema xmlns:Doc="test:document" xmlns:container="test:container" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test:container" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:import namespace="test:document" schemaLocation="document.xsd"/>

<xs:element name="container" type="container:container"/>

<xs:complexType name="container">

<xs:sequence>

<xs:element name="ContainerId" type="xs:string" minOccurs="0"/>

<xs:element name="Msg" type="container:Msg" maxOccurs="999999"/>

</xs:sequence>

</xs:complexType>

<xs:complexType name="Msg">

<xs:sequence>

<xs:element name="HashValue" type="xs:string" minOccurs="0"/>

<xs:element ref="Doc:Document"/>

</xs:sequence>

</xs:complexType>

</xs:schema>

document.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns="test:document" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test:document" elementFormDefault="qualified">

<xs:element name="Document" type="Document"/>

<xs:complexType name="Document">

<xs:sequence>

<xs:element name="name" type="xs:string" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

</xs:schema>

sample.xml

<?xml version="1.0" encoding="UTF-8"?>

<container xmlns="test:container" xmlns:Doc="test:document" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="test:container container.xsd">

<ContainerId>abc</ContainerId>

<Msg>

<Doc:Document>

<Doc:name>name</Doc:name>

</Doc:Document>

</Msg>

</container>

Testing Program

SAXParserFactory factory = SAXParserFactory.newInstance();

factory.setValidating(true);

factory.setNamespaceAware(true);

final String JAXP_SCHEMA_LANGUAGE =

"http://java.sun.com/xml/jaxp/properties/schemaLanguage";

final String W3C_XML_SCHEMA =

"http://www.w3.org/2001/XMLSchema";

final String JAXP_SCHEMA_SOURCE =

"http://java.sun.com/xml/jaxp/properties/schemaSource";

SAXParser saxParser = factory.newSAXParser();

saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);

DefaultHandler handler =new DefaultHandler();

File file =new File("sample.xml");

saxParser.parse(file, handler);

[4225 byte] By [kobelipenga] at [2007-11-27 6:33:52]
# 1

In the container.xsd replace:

<xs:element name="Msg" type="container:Msg" maxOccurs="999999"/>

with:

<xs:element name="Msg" type="container:Msg" maxOccurs="unbounded"/>

dvohra09a at 2007-7-12 17:59:55 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...