I'm running XML4J_3.0.0EA3 under OS/2 Warp 4 with the 19991026 1.1.8 JDK. If I enter the following:
cd d:\xml4j\data java org.apache.xerces.domx.XGrammarWriter -d personal.xml I get the following exception: java.lang.NullPointerException at org.apache.xerces.parsers.DOMParser.getFirstChildElement(DOMParser.java:2438) at org.apache.xerces.parsers.DOMParser.elementDecl(DOMParser.java:1434) at org.apache.xerces.validators.dtd.DTDValidator.addElementDecl(DTDValidator.java:1679) at org.apache.xerces.framework.XMLDTDScanner.scanElementDecl(XMLDTDScanner.java:1711) at org.apache.xerces.framework.XMLDTDScanner.scanDecls(XMLDTDScanner.java:1382) at org.apache.xerces.validators.dtd.DTDValidator.scanDoctypeDecl(DTDValidator.java:444) at org.apache.xerces.framework.XMLParser.scanDoctypeDecl(XMLParser.java:2002) at org.apache.xerces.framework.XMLDocumentScanner$PrologDispatcher.dispatch(Compiled Code) at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381) at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1129) at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1168) at org.apache.xerces.domx.XGrammarWriter.main(XGrammarWriter.java:149) error: Error parsing document (personal.xml). java.lang.NullPointerException at java.io.Writer.write(Writer.java:108) at java.io.PrintStream.write(PrintStream.java:248) at java.io.PrintStream.print(PrintStream.java:388) at java.io.PrintStream.println(PrintStream.java:507) at java.lang.Throwable.printStackTrace(Throwable.java:134) at org.apache.xerces.domx.XGrammarWriter.main(XGrammarWriter.java:155) As shipped, you only get the last exception since a "catch" clause in XGrammarWriter is being passed a null exception as a parameter. The full stacktrace requires recompiling org.apache.xerces.framework.XMLParser with PRINT_EXCEPTION_STACK_TRACE set to true. If I use PERSONAL-SCHEMA.XML, I get the following exception: <?xml encoding="UTF-8"?> <!-- Grammar referenced in document: "personal-schema.xml" --> <!ELEMENT personnel (person+)> <!ATTLIST personnel xmlns CDATA #IMPLIED> <!ELEMENT family (#PCDATA)> <!ELEMENT given (#PCDATA)> <!ELEMENT name family,given?> error: Error parsing document (personal-schema.xml). java.lang.NullPointerException at org.apache.xerces.domx.XGrammarWriter.printElementDeclContentModel(XGrammarWriter.java:485) at org.apache.xerces.domx.XGrammarWriter.printElementDecl(XGrammarWriter.java:466) at org.apache.xerces.domx.XGrammarWriter.printGrammar(XGrammarWriter.java:317) at org.apache.xerces.domx.XGrammarWriter.main(XGrammarWriter.java:151) Doing the same thing with the -x switch (for SCHEMA output) works fine...
