Subjects
Home
VOTE Move XML Commons to Xerces
Commented: (XERCESJ 589) Bug with pattern restriction on long strings
: Xerces J 2 8 1 Release on Wednesday, September 13th
: Xerces J 2 9 0 Release on Wednesday, November 22nd
Commented: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1178) Error getting prefix for an attribute with no n
Updated: (XERCESJ 1244) XMLSchemaValidator does not contribute element 's
Some consideration about the xerces DOM implementation
Updated: (XERCESJ 1066) Restriction+choice+substitutionGroup error
Commented: (XERCESJ 1227) Poor performance / OutOfMemoryError for sequenc
retain exception stack traces
Updated: (XERCESJ 1193) NPE or hang when parsing using the "continue afte
Future of NekoHTML
Commented: (XERCESJ 1203) NPE in XMLDTDProcessor
DOM Level 3 APIs for Xalan J and a new Xalan release (2 7 1)
: xml commons external 1 3 04 Release on Wednesday, November 22nd
Commented: (XERCESJ 1247) Incorrect location information on SAX when usin
XInclude exceptions how to mirror Xerces J functionality into Xerces C++?
First proposal on SoC project "Add support for the StAX (JSR 173) cursor API
: xml commons resolver 1 2 Release on Wednesday, November 22nd
Typo in RangeToken java Please check
Validator features
java lang ClassCastException when adopting Node
using the org apache xerces impl xs identity package
Updated: (XERCESJ 1257) buffer overflow in UTF8Reader for characters out
Problem with ref attributes and schema validation
Updated: (XERCESJ 122) XMLSchemaValidator does not contribute element 's d
Performance problem under load Xerces with Weblogic 9 x
remove ignored memory allocation
Commented: (XERCESJ 1177) SAXXMLStreamReader doesn 't always report namesp
Commented: (XERCESJ 977) Null pointer exception during DOM parsing
Commented: (XERCESJ 1197) Code cleanup for org apache xml serialize
Commented: (XERCESJ 1201) Initial contribution for StAX Event API
Updated: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special c
Commented: (XERCESJ 1199) SAXXMLStreamReader should attempt to register a
Commented: (XERCESJ 1061) Regex "$ " and "^ " characters treated as special
Updated: (XERCESJ 589) Bug with pattern restriction on long strings
StackOverflow
xerces Range unnecessarily not garbage collectable if not detached
Updated: (XERCESJ 1178) Error getting prefix for an attribute with no nam
Bug in xs:redefine
Commented: (XERCESJ 1204) Can not set XMLEntityResolver for LSParser
Updated: (XERCESJ 1253) Prototype for SoC2007 project "Add support for th
Updated: (XERCESJ 1259) Add SteamFilter Function to SoC2007 project "Add
Assigned: (XERCESJ 444) SAXException thrown by EntityResolver is reported
Google Summer of Code 2007
Xerces J and XInclude relative path issue
Assigned: (XERCESJ 206) Stack overflow when using a schema validation
Commented: (XERCESJ 1215) Restrictions involving two levels of substituti
Closed: (XERCESJ 1203) NPE in XMLDTDProcessor
non overriding equals methoda
Resolved: (XERCESJ 1079) invalid value returned for TOTALDIGITS facet in
Xerces AS3 port
Updated: (XERCESJ 325) Regular Expression; Pattern "| " clause order de
Updated: (XERCESJ 1196) Javadoc generation fails on Java SE 5 0
Closed: (XERCESJ 1202) DTD validation on XIncluded documents when the sch
Created: (XERCESJ 1124) Nonspecific schema error message
a bug in xerces
Updated: (XERCESJ 1201) Initial contribution for StAX Event API
Closed: (XERCESJ 1254) Empty uris in targetNamespace attribute not report
Links
Home
Oracle database error code
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
XMLGrammarBuilder sample

XMLGrammarBuilder sample

2004-03-04       - By Wax, Ed

I'm having trouble with one of the sample programs that comes with he xerces-j
2.6.2 distribution.  It is:
~xerces/samples/xni/XMLGrammarBuilder.java

As distributed, it will preparse multiple XSD files (grammars).  I have an XSD
file with an intentional bug.  If I specify that XSD file as the first one to
preparse, the error will be reported.  However, if I specify a valid XSD file
first and then the one with the bug, the error will not be reported.  Is there
a method to "reset" things?

Here's the block of code that preparses the specified grammars (XSD files):

  ...
  // parse the grammar...
  try {
    if (isDTD) {
      for (i = 0; i < externalDTDs.size(); i++) {
        Grammar g = preparser.preparseGrammar(
          XMLGrammarDescription.XML_DTD,
          stringToXIS((String)externalDTDs.elementAt(i)));
        // we don't really care about g; grammarPool will take care of everything.
      }
    } else { // must be schemas!
      for (i = 0; i < schemas.size(); i++) {
        Grammar g = preparser.preparseGrammar(
          XMLGrammarDescription.XML_SCHEMA,
          stringToXIS((String)schemas.elementAt(i)));
        // we don't really care about g; grammarPool will take care of everything.
      }
    }
  } catch (Exception e) {
    e.printStackTrace();
    System.exit(1);
  }
  ...

Regards,
Ed

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6249.1">
<TITLE>XMLGrammarBuilder sample</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Tahoma">I'm having trouble with one of the sample
programs that comes with he xerces-j 2.6.2 distribution.&nbsp; It is:</FONT>

<BR><FONT SIZE=2 FACE="Tahoma">~xerces/samples/xni/XMLGrammarBuilder.java</FONT>
</P>

<P><FONT SIZE=2 FACE="Tahoma">As distributed, it will preparse multiple XSD
files (grammars).&nbsp; I have an XSD file with an intentional bug.&nbsp; If I
specify that XSD file as the first one to preparse, the error will be reported.
&nbsp; However, if I specify a valid XSD file first and then the one with the
bug, the error will not be reported.&nbsp; Is there a method to &quot;reset
&quot; things?</FONT></P>

<P><FONT SIZE=2 FACE="Tahoma">Here's the block of code that preparses the
specified grammars (XSD files):</FONT>
</P>
<UL>
<P><FONT SIZE=2 FACE="Courier New">...</FONT>

<BR><FONT SIZE=2 FACE="Courier New">// parse the grammar...</FONT>

<BR><B><FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">try</FONT></B><FONT SIZE
=2 FACE="Courier New"> {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B> <FONT COLOR="#7F0055" SIZE=2
FACE="Courier New">if</FONT></B><FONT SIZE=2 FACE="Courier New"> (isDTD) {<
/FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;<B> <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">for</FONT></B>
<FONT SIZE=2 FACE="Courier New"> (i = 0; i &lt; externalDTDs.size(); i++) {<
/FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE=
"Courier New">Grammar g = preparser.preparseGrammar(</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">XMLGrammarDescription.XML_DTD
, </FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">stringToXIS((String
)externalDTDs.elementAt(i)));</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#3F7F5F"
SIZE=2 FACE="Courier New">// we don't really care about g; grammarPool will
take care of everything.</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT SIZE=2 FACE="Courier New">}</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2
FACE="Courier New">}</FONT><FONT SIZE=2 FACE="Courier New"></FONT><B> <FONT
COLOR="#7F0055" SIZE=2 FACE="Courier New">else</FONT></B><FONT SIZE=2 FACE=
"Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">{</FONT>
<FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="#3F7F5F" SIZE=2 FACE=
"Courier New">// must be schemas!</FONT>

<BR><B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp
;&nbsp;&nbsp; <FONT COLOR="#7F0055" SIZE=2 FACE="Courier New">for</FONT></B>
<FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE=
"Courier New">(i</FONT><FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="
#000000" SIZE=2 FACE="Courier New">=</FONT><FONT SIZE=2 FACE="Courier New"> <
/FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">0;</FONT><FONT SIZE=2 FACE
="Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">i</FONT>
<FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE=
"Courier New">&lt;</FONT><FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="
#000000" SIZE=2 FACE="Courier New">schemas.size();</FONT><FONT SIZE=2 FACE=
"Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">i++)</FONT
><FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE=
"Courier New">{</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000"
SIZE=2 FACE="Courier New">Grammar</FONT><FONT SIZE=2 FACE="Courier New"> </FONT
><FONT COLOR="#000000" SIZE=2 FACE="Courier New">g</FONT><FONT SIZE=2 FACE=
"Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">=</FONT>
<FONT SIZE=2 FACE="Courier New"> </FONT><FONT COLOR="#000000" SIZE=2 FACE=
"Courier New">preparser.preparseGrammar(</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New"
>XMLGrammarDescription.XML_SCHEMA,</FONT><FONT SIZE=2 FACE="Courier New"> </FONT
>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">stringToXIS(
(String)schemas.elementAt(i)));</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#3F7F5F"
SIZE=2 FACE="Courier New">// we don't really care about g; grammarPool will
take care of everything.</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">}</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2
FACE="Courier New">}</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">} catch (Exception e) {<
/FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2
FACE="Courier New">e.printStackTrace();</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2
FACE="Courier New">System.exit(1);</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">}</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">...</FONT>
</P>
</UL>
<P><FONT COLOR="#000000" SIZE=2 FACE="Tahoma">Regards,</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Tahoma">Ed</FONT>
</P>

</BODY>
</HTML>