You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Praveen Mujje <pm...@MetLife.com> on 2007/03/16 03:04:03 UTC

Praveen Mujje/Bsg/MetLife/US is out of the office.

I will be out of the office starting  03/08/2007 and will not return until
03/26/2007.

Please contact the following in my absence.

Antony Rethinam for BSF/ULSFE related tasks, DocRetrieval, LoadMasterIndex,
DXT
Sarvanan Krishnan for MetLife Bank and
Brian Langan for anything else.

Thanks
Praveen



The information contained in this message may be CONFIDENTIAL and is for the intended addressee only.  Any unauthorized use, dissemination of the information, or copying of this message is prohibited.  If you are not the intended addressee, please notify the sender immediately and delete this message.


---------------------------------------------------------------------
To unsubscribe, e-mail: soap-user-unsubscribe@ws.apache.org
For additional commands, e-mail: soap-user-help@ws.apache.org


Re: load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Alberto Massari <am...@datadirect.com>.
At 15.29 16/03/2007 +0530, Umesh Chandak wrote:
>Hi Alberto,
>Thanks once again.
>What is the safe value of maxoccurs for good performance? You can
>specify the range.

Umesh,
there is no "safe value"; Xerces builds a DFA map that describes 
every possible state of a valid XML, so the performances depend on 
the total number of states.
A single maxOccurs=999999 will crash your application, but also an 
element with maxOccurs=20 that has a sequence of 20 other elements 
with a maxOccurs=20 could crash it too.

Alberto

>Thanks.
>Regards,
>Umesh
>On Fri, 2007-03-16 at 10:02 +0100, Alberto Massari wrote:
> > At 13.02 16/03/2007 +0530, Umesh Chandak wrote:
> > >Hi ,
> > >Thanks, It worked this time. But can you tell me why it is happening.
> > >what is the problem with the figure 30000.
> > >Is this a bug in xerces?
> > >If not does it documented some where.
> >
> > It's a known limitation of Xerces:
> > http://xml.apache.org/xerces-c/schema.html#limitation
> >
> > Alberto
> >
> >
> > >Thanks.
> > >Regards,
> > >Umesh
> > >On Fri, 2007-03-16 at 08:00 +0100, Alberto Massari wrote:
> > > > Hi Umesh,
> > > > the reason is the maxOccurs=30000; I would suggest to change it to be
> > > > unbounded.
> > > >
> > > > Alberto
> > > >
> > > > At 12.28 16/03/2007 +0530, Umesh Chandak wrote:
> > > > >Hi All,
> > > > >I am using the loadGrammar function of class SAX2XMLReaderImpl for
> > > > >loadding the grammar of XSD. But it is hanging in class 
> DFAContentModel
> > > > >in member function calcFollowList. I don't know the reason why it is
> > > > >hanging.
> > > > >Here is the code snippet I am using
> > > > >
> > > > >const bool schemaFullChecking = true;
> > > > >
> > > > >SAX2XMLReaderImpl* parser = new
> > > > >SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
> > > > >Janitor<SAX2XMLReaderImpl> janParser(parser);
> > > > >
> > > > >parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
> > > > >parser->setFeature(XMLUni::fgXercesSchema, true);
> > > > >parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
> > > > >schemaFullChecking);
> > > > >parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
> > > > >parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
> > > > >parser->setFeature(XMLUni::fgXercesDynamic, true);
> > > > >XSDErrorHandler* errorHandler = new XSDErrorHandler();
> > > > >Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
> > > > >parser->setErrorHandler(errorHandler);
> > > > >Grammar* result = parser->loadGrammar(xsdFileName,
> > > > >Grammar::SchemaGrammarType, true);
> > > > >
> > > > >
> > > > >I am also giving the xsd file I am using. It is simple xsd file.
> > > > >
> > > > ><?xml version="1.0"?>
> > > > ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > > >targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
> > > > >xmlns:imp="http://importedXSD">
> > > > >         <xsd:complexType name="B">
> > > > >                 <xsd:sequence>
> > > > >                         <xsd:element name="foo" minOccurs="1"
> > > maxOccurs="1"/>
> > > > >                         <xsd:any namespace="##any" minOccurs="0"
> > > > > maxOccurs="unbounded"/>
> > > > >                 </xsd:sequence>
> > > > >         </xsd:complexType>
> > > > >         <xsd:complexType name="R">
> > > > >                 <xsd:complexContent>
> > > > >                         <xsd:restriction base="x:B">
> > > > >                                 <xsd:sequence>
> > > > >                                         <xsd:element name="foo"
> > > > > minOccurs="1" maxOccurs="1"/>
> > > > >                                         <xsd:choice minOccurs="1"
> > > > > maxOccurs="1">
> > > > >                                                 <xsd:element
> > > > > name="e1" minOccurs="1" maxOccurs="30000"/>
> > > > >                                         </xsd:choice>
> > > > >                                 </xsd:sequence>
> > > > >                         </xsd:restriction>
> > > > >                 </xsd:complexContent>
> > > > >         </xsd:complexType>
> > > > >         <xsd:element name="doc">
> > > > >                 <xsd:complexType>
> > > > >                         <xsd:choice>
> > > > >                                 <xsd:element name="elem" type="x:R"/>
> > > > >                         </xsd:choice>
> > > > >                 </xsd:complexType>
> > > > >         </xsd:element>
> > > > ></xsd:schema>
> > > > >
> > > > >
> > > > >Thanks.
> > > > >Regards,
> > > > >Umesh
> > > > >
> > > > >
> > > > >---------------------------------------------------------------------
> > > > >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > > > >For additional commands, e-mail: c-dev-help@xerces.apache.org
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > > > For additional commands, e-mail: c-dev-help@xerces.apache.org
> > > >
> > > >
> > >
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > >For additional commands, e-mail: c-dev-help@xerces.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > For additional commands, e-mail: c-dev-help@xerces.apache.org
> >
> >
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
>For additional commands, e-mail: c-dev-help@xerces.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


Re: load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Umesh Chandak <um...@gs-lab.com>.
Hi Alberto,  
Thanks once again.
What is the safe value of maxoccurs for good performance? You can
specify the range.
Thanks.
Regards,
Umesh 
On Fri, 2007-03-16 at 10:02 +0100, Alberto Massari wrote:
> At 13.02 16/03/2007 +0530, Umesh Chandak wrote:
> >Hi ,
> >Thanks, It worked this time. But can you tell me why it is happening.
> >what is the problem with the figure 30000.
> >Is this a bug in xerces?
> >If not does it documented some where.
> 
> It's a known limitation of Xerces:
> http://xml.apache.org/xerces-c/schema.html#limitation
> 
> Alberto
> 
> 
> >Thanks.
> >Regards,
> >Umesh
> >On Fri, 2007-03-16 at 08:00 +0100, Alberto Massari wrote:
> > > Hi Umesh,
> > > the reason is the maxOccurs=30000; I would suggest to change it to be
> > > unbounded.
> > >
> > > Alberto
> > >
> > > At 12.28 16/03/2007 +0530, Umesh Chandak wrote:
> > > >Hi All,
> > > >I am using the loadGrammar function of class SAX2XMLReaderImpl for
> > > >loadding the grammar of XSD. But it is hanging in class DFAContentModel
> > > >in member function calcFollowList. I don't know the reason why it is
> > > >hanging.
> > > >Here is the code snippet I am using
> > > >
> > > >const bool schemaFullChecking = true;
> > > >
> > > >SAX2XMLReaderImpl* parser = new
> > > >SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
> > > >Janitor<SAX2XMLReaderImpl> janParser(parser);
> > > >
> > > >parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
> > > >parser->setFeature(XMLUni::fgXercesSchema, true);
> > > >parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
> > > >schemaFullChecking);
> > > >parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
> > > >parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
> > > >parser->setFeature(XMLUni::fgXercesDynamic, true);
> > > >XSDErrorHandler* errorHandler = new XSDErrorHandler();
> > > >Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
> > > >parser->setErrorHandler(errorHandler);
> > > >Grammar* result = parser->loadGrammar(xsdFileName,
> > > >Grammar::SchemaGrammarType, true);
> > > >
> > > >
> > > >I am also giving the xsd file I am using. It is simple xsd file.
> > > >
> > > ><?xml version="1.0"?>
> > > ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > >targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
> > > >xmlns:imp="http://importedXSD">
> > > >         <xsd:complexType name="B">
> > > >                 <xsd:sequence>
> > > >                         <xsd:element name="foo" minOccurs="1" 
> > maxOccurs="1"/>
> > > >                         <xsd:any namespace="##any" minOccurs="0"
> > > > maxOccurs="unbounded"/>
> > > >                 </xsd:sequence>
> > > >         </xsd:complexType>
> > > >         <xsd:complexType name="R">
> > > >                 <xsd:complexContent>
> > > >                         <xsd:restriction base="x:B">
> > > >                                 <xsd:sequence>
> > > >                                         <xsd:element name="foo"
> > > > minOccurs="1" maxOccurs="1"/>
> > > >                                         <xsd:choice minOccurs="1"
> > > > maxOccurs="1">
> > > >                                                 <xsd:element
> > > > name="e1" minOccurs="1" maxOccurs="30000"/>
> > > >                                         </xsd:choice>
> > > >                                 </xsd:sequence>
> > > >                         </xsd:restriction>
> > > >                 </xsd:complexContent>
> > > >         </xsd:complexType>
> > > >         <xsd:element name="doc">
> > > >                 <xsd:complexType>
> > > >                         <xsd:choice>
> > > >                                 <xsd:element name="elem" type="x:R"/>
> > > >                         </xsd:choice>
> > > >                 </xsd:complexType>
> > > >         </xsd:element>
> > > ></xsd:schema>
> > > >
> > > >
> > > >Thanks.
> > > >Regards,
> > > >Umesh
> > > >
> > > >
> > > >---------------------------------------------------------------------
> > > >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > > >For additional commands, e-mail: c-dev-help@xerces.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > > For additional commands, e-mail: c-dev-help@xerces.apache.org
> > >
> > >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> >For additional commands, e-mail: c-dev-help@xerces.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> For additional commands, e-mail: c-dev-help@xerces.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


Re: load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Michael Glavassevich <mr...@ca.ibm.com>.
The version of Xerces-J in SVN no longer has this limitation for a number 
of common cases (including Umesh's schema). If a complex type meets 
certain conditions [1] element and wildcard particles with 
minOccurs/maxOccurs are processed in constant space/time and are 
represented with a single state in the DFA. I imagine something similar 
could be implemented in Xerces-C.

[1] http://svn.apache.org/viewvc?view=rev&revision=511014

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org

Alberto Massari <am...@datadirect.com> wrote on 03/16/2007 05:02:37 AM:

> At 13.02 16/03/2007 +0530, Umesh Chandak wrote:
> >Hi ,
> >Thanks, It worked this time. But can you tell me why it is happening.
> >what is the problem with the figure 30000.
> >Is this a bug in xerces?
> >If not does it documented some where.
> 
> It's a known limitation of Xerces:
> http://xml.apache.org/xerces-c/schema.html#limitation
> 
> Alberto
> 
> 
> >Thanks.
> >Regards,
> >Umesh
> >On Fri, 2007-03-16 at 08:00 +0100, Alberto Massari wrote:
> > > Hi Umesh,
> > > the reason is the maxOccurs=30000; I would suggest to change it to 
be
> > > unbounded.
> > >
> > > Alberto
> > >
> > > At 12.28 16/03/2007 +0530, Umesh Chandak wrote:
> > > >Hi All,
> > > >I am using the loadGrammar function of class SAX2XMLReaderImpl for
> > > >loadding the grammar of XSD. But it is hanging in class 
DFAContentModel
> > > >in member function calcFollowList. I don't know the reason why it 
is
> > > >hanging.
> > > >Here is the code snippet I am using
> > > >
> > > >const bool schemaFullChecking = true;
> > > >
> > > >SAX2XMLReaderImpl* parser = new
> > > >SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
> > > >Janitor<SAX2XMLReaderImpl> janParser(parser);
> > > >
> > > >parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
> > > >parser->setFeature(XMLUni::fgXercesSchema, true);
> > > >parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
> > > >schemaFullChecking);
> > > >parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
> > > >parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
> > > >parser->setFeature(XMLUni::fgXercesDynamic, true);
> > > >XSDErrorHandler* errorHandler = new XSDErrorHandler();
> > > >Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
> > > >parser->setErrorHandler(errorHandler);
> > > >Grammar* result = parser->loadGrammar(xsdFileName,
> > > >Grammar::SchemaGrammarType, true);
> > > >
> > > >
> > > >I am also giving the xsd file I am using. It is simple xsd file.
> > > >
> > > ><?xml version="1.0"?>
> > > ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > >targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
> > > >xmlns:imp="http://importedXSD">
> > > >         <xsd:complexType name="B">
> > > >                 <xsd:sequence>
> > > >                         <xsd:element name="foo" minOccurs="1" 
> > maxOccurs="1"/>
> > > >                         <xsd:any namespace="##any" minOccurs="0"
> > > > maxOccurs="unbounded"/>
> > > >                 </xsd:sequence>
> > > >         </xsd:complexType>
> > > >         <xsd:complexType name="R">
> > > >                 <xsd:complexContent>
> > > >                         <xsd:restriction base="x:B">
> > > >                                 <xsd:sequence>
> > > >                                         <xsd:element name="foo"
> > > > minOccurs="1" maxOccurs="1"/>
> > > >                                         <xsd:choice minOccurs="1"
> > > > maxOccurs="1">
> > > >                                                 <xsd:element
> > > > name="e1" minOccurs="1" maxOccurs="30000"/>
> > > >                                         </xsd:choice>
> > > >                                 </xsd:sequence>
> > > >                         </xsd:restriction>
> > > >                 </xsd:complexContent>
> > > >         </xsd:complexType>
> > > >         <xsd:element name="doc">
> > > >                 <xsd:complexType>
> > > >                         <xsd:choice>
> > > >                                 <xsd:element name="elem" 
type="x:R"/>
> > > >                         </xsd:choice>
> > > >                 </xsd:complexType>
> > > >         </xsd:element>
> > > ></xsd:schema>
> > > >
> > > >
> > > >Thanks.
> > > >Regards,
> > > >Umesh
> > > >
> > > >
> > > 
>---------------------------------------------------------------------
> > > >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > > >For additional commands, e-mail: c-dev-help@xerces.apache.org
> > >
> > >
> > > 
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > > For additional commands, e-mail: c-dev-help@xerces.apache.org
> > >
> > >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> >For additional commands, e-mail: c-dev-help@xerces.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> For additional commands, e-mail: c-dev-help@xerces.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


Re: load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Alberto Massari <am...@datadirect.com>.
At 13.02 16/03/2007 +0530, Umesh Chandak wrote:
>Hi ,
>Thanks, It worked this time. But can you tell me why it is happening.
>what is the problem with the figure 30000.
>Is this a bug in xerces?
>If not does it documented some where.

It's a known limitation of Xerces:
http://xml.apache.org/xerces-c/schema.html#limitation

Alberto


>Thanks.
>Regards,
>Umesh
>On Fri, 2007-03-16 at 08:00 +0100, Alberto Massari wrote:
> > Hi Umesh,
> > the reason is the maxOccurs=30000; I would suggest to change it to be
> > unbounded.
> >
> > Alberto
> >
> > At 12.28 16/03/2007 +0530, Umesh Chandak wrote:
> > >Hi All,
> > >I am using the loadGrammar function of class SAX2XMLReaderImpl for
> > >loadding the grammar of XSD. But it is hanging in class DFAContentModel
> > >in member function calcFollowList. I don't know the reason why it is
> > >hanging.
> > >Here is the code snippet I am using
> > >
> > >const bool schemaFullChecking = true;
> > >
> > >SAX2XMLReaderImpl* parser = new
> > >SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
> > >Janitor<SAX2XMLReaderImpl> janParser(parser);
> > >
> > >parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
> > >parser->setFeature(XMLUni::fgXercesSchema, true);
> > >parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
> > >schemaFullChecking);
> > >parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
> > >parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
> > >parser->setFeature(XMLUni::fgXercesDynamic, true);
> > >XSDErrorHandler* errorHandler = new XSDErrorHandler();
> > >Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
> > >parser->setErrorHandler(errorHandler);
> > >Grammar* result = parser->loadGrammar(xsdFileName,
> > >Grammar::SchemaGrammarType, true);
> > >
> > >
> > >I am also giving the xsd file I am using. It is simple xsd file.
> > >
> > ><?xml version="1.0"?>
> > ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
> > >xmlns:imp="http://importedXSD">
> > >         <xsd:complexType name="B">
> > >                 <xsd:sequence>
> > >                         <xsd:element name="foo" minOccurs="1" 
> maxOccurs="1"/>
> > >                         <xsd:any namespace="##any" minOccurs="0"
> > > maxOccurs="unbounded"/>
> > >                 </xsd:sequence>
> > >         </xsd:complexType>
> > >         <xsd:complexType name="R">
> > >                 <xsd:complexContent>
> > >                         <xsd:restriction base="x:B">
> > >                                 <xsd:sequence>
> > >                                         <xsd:element name="foo"
> > > minOccurs="1" maxOccurs="1"/>
> > >                                         <xsd:choice minOccurs="1"
> > > maxOccurs="1">
> > >                                                 <xsd:element
> > > name="e1" minOccurs="1" maxOccurs="30000"/>
> > >                                         </xsd:choice>
> > >                                 </xsd:sequence>
> > >                         </xsd:restriction>
> > >                 </xsd:complexContent>
> > >         </xsd:complexType>
> > >         <xsd:element name="doc">
> > >                 <xsd:complexType>
> > >                         <xsd:choice>
> > >                                 <xsd:element name="elem" type="x:R"/>
> > >                         </xsd:choice>
> > >                 </xsd:complexType>
> > >         </xsd:element>
> > ></xsd:schema>
> > >
> > >
> > >Thanks.
> > >Regards,
> > >Umesh
> > >
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > >For additional commands, e-mail: c-dev-help@xerces.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> > For additional commands, e-mail: c-dev-help@xerces.apache.org
> >
> >
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
>For additional commands, e-mail: c-dev-help@xerces.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


Re: load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Umesh Chandak <um...@gs-lab.com>.
Hi ,
Thanks, It worked this time. But can you tell me why it is happening.
what is the problem with the figure 30000.
Is this a bug in xerces?
If not does it documented some where. 

Thanks.
Regards,
Umesh  
On Fri, 2007-03-16 at 08:00 +0100, Alberto Massari wrote:
> Hi Umesh,
> the reason is the maxOccurs=30000; I would suggest to change it to be 
> unbounded.
> 
> Alberto
> 
> At 12.28 16/03/2007 +0530, Umesh Chandak wrote:
> >Hi All,
> >I am using the loadGrammar function of class SAX2XMLReaderImpl for
> >loadding the grammar of XSD. But it is hanging in class DFAContentModel
> >in member function calcFollowList. I don't know the reason why it is
> >hanging.
> >Here is the code snippet I am using
> >
> >const bool schemaFullChecking = true;
> >
> >SAX2XMLReaderImpl* parser = new
> >SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
> >Janitor<SAX2XMLReaderImpl> janParser(parser);
> >
> >parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
> >parser->setFeature(XMLUni::fgXercesSchema, true);
> >parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
> >schemaFullChecking);
> >parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
> >parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
> >parser->setFeature(XMLUni::fgXercesDynamic, true);
> >XSDErrorHandler* errorHandler = new XSDErrorHandler();
> >Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
> >parser->setErrorHandler(errorHandler);
> >Grammar* result = parser->loadGrammar(xsdFileName,
> >Grammar::SchemaGrammarType, true);
> >
> >
> >I am also giving the xsd file I am using. It is simple xsd file.
> >
> ><?xml version="1.0"?>
> ><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
> >xmlns:imp="http://importedXSD">
> >         <xsd:complexType name="B">
> >                 <xsd:sequence>
> >                         <xsd:element name="foo" minOccurs="1" maxOccurs="1"/>
> >                         <xsd:any namespace="##any" minOccurs="0" 
> > maxOccurs="unbounded"/>
> >                 </xsd:sequence>
> >         </xsd:complexType>
> >         <xsd:complexType name="R">
> >                 <xsd:complexContent>
> >                         <xsd:restriction base="x:B">
> >                                 <xsd:sequence>
> >                                         <xsd:element name="foo" 
> > minOccurs="1" maxOccurs="1"/>
> >                                         <xsd:choice minOccurs="1" 
> > maxOccurs="1">
> >                                                 <xsd:element 
> > name="e1" minOccurs="1" maxOccurs="30000"/>
> >                                         </xsd:choice>
> >                                 </xsd:sequence>
> >                         </xsd:restriction>
> >                 </xsd:complexContent>
> >         </xsd:complexType>
> >         <xsd:element name="doc">
> >                 <xsd:complexType>
> >                         <xsd:choice>
> >                                 <xsd:element name="elem" type="x:R"/>
> >                         </xsd:choice>
> >                 </xsd:complexType>
> >         </xsd:element>
> ></xsd:schema>
> >
> >
> >Thanks.
> >Regards,
> >Umesh
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> >For additional commands, e-mail: c-dev-help@xerces.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
> For additional commands, e-mail: c-dev-help@xerces.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


Re: load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Alberto Massari <am...@datadirect.com>.
Hi Umesh,
the reason is the maxOccurs=30000; I would suggest to change it to be 
unbounded.

Alberto

At 12.28 16/03/2007 +0530, Umesh Chandak wrote:
>Hi All,
>I am using the loadGrammar function of class SAX2XMLReaderImpl for
>loadding the grammar of XSD. But it is hanging in class DFAContentModel
>in member function calcFollowList. I don't know the reason why it is
>hanging.
>Here is the code snippet I am using
>
>const bool schemaFullChecking = true;
>
>SAX2XMLReaderImpl* parser = new
>SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
>Janitor<SAX2XMLReaderImpl> janParser(parser);
>
>parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
>parser->setFeature(XMLUni::fgXercesSchema, true);
>parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
>schemaFullChecking);
>parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
>parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
>parser->setFeature(XMLUni::fgXercesDynamic, true);
>XSDErrorHandler* errorHandler = new XSDErrorHandler();
>Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
>parser->setErrorHandler(errorHandler);
>Grammar* result = parser->loadGrammar(xsdFileName,
>Grammar::SchemaGrammarType, true);
>
>
>I am also giving the xsd file I am using. It is simple xsd file.
>
><?xml version="1.0"?>
><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
>xmlns:imp="http://importedXSD">
>         <xsd:complexType name="B">
>                 <xsd:sequence>
>                         <xsd:element name="foo" minOccurs="1" maxOccurs="1"/>
>                         <xsd:any namespace="##any" minOccurs="0" 
> maxOccurs="unbounded"/>
>                 </xsd:sequence>
>         </xsd:complexType>
>         <xsd:complexType name="R">
>                 <xsd:complexContent>
>                         <xsd:restriction base="x:B">
>                                 <xsd:sequence>
>                                         <xsd:element name="foo" 
> minOccurs="1" maxOccurs="1"/>
>                                         <xsd:choice minOccurs="1" 
> maxOccurs="1">
>                                                 <xsd:element 
> name="e1" minOccurs="1" maxOccurs="30000"/>
>                                         </xsd:choice>
>                                 </xsd:sequence>
>                         </xsd:restriction>
>                 </xsd:complexContent>
>         </xsd:complexType>
>         <xsd:element name="doc">
>                 <xsd:complexType>
>                         <xsd:choice>
>                                 <xsd:element name="elem" type="x:R"/>
>                         </xsd:choice>
>                 </xsd:complexType>
>         </xsd:element>
></xsd:schema>
>
>
>Thanks.
>Regards,
>Umesh
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
>For additional commands, e-mail: c-dev-help@xerces.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org


load grammar function of class SAX2XMLReaderImpl is hanging

Posted by Umesh Chandak <um...@gs-lab.com>.
Hi All,
I am using the loadGrammar function of class SAX2XMLReaderImpl for
loadding the grammar of XSD. But it is hanging in class DFAContentModel
in member function calcFollowList. I don't know the reason why it is
hanging.
Here is the code snippet I am using

const bool schemaFullChecking = true;
    
SAX2XMLReaderImpl* parser = new
SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, grammarPool);
Janitor<SAX2XMLReaderImpl> janParser(parser);
 
parser->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
parser->setFeature(XMLUni::fgXercesSchema, true);
parser->setFeature(XMLUni::fgXercesSchemaFullChecking,
schemaFullChecking);
parser->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, false);
parser->setFeature(XMLUni::fgSAX2CoreValidation, true);
parser->setFeature(XMLUni::fgXercesDynamic, true);
XSDErrorHandler* errorHandler = new XSDErrorHandler();  
Janitor<XSDErrorHandler> janErrorHandler(errorHandler);
parser->setErrorHandler(errorHandler);
Grammar* result = parser->loadGrammar(xsdFileName,
Grammar::SchemaGrammarType, true);


I am also giving the xsd file I am using. It is simple xsd file.

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xsdtesting" xmlns:x="http://xsdtesting"
xmlns:imp="http://importedXSD">
	<xsd:complexType name="B">
		<xsd:sequence>
			<xsd:element name="foo" minOccurs="1" maxOccurs="1"/>
			<xsd:any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="R">
		<xsd:complexContent>
			<xsd:restriction base="x:B">
				<xsd:sequence>
					<xsd:element name="foo" minOccurs="1" maxOccurs="1"/>
					<xsd:choice minOccurs="1" maxOccurs="1">
						<xsd:element name="e1" minOccurs="1" maxOccurs="30000"/>
					</xsd:choice>
				</xsd:sequence>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="doc">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element name="elem" type="x:R"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>
  

Thanks.
Regards,
Umesh


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org