I am having a problem validating personal.xml as found in the xerces
distribution for java.
Although this file produces no errors using sun's jaxp parser, the
org.apache.xerces.parsers.SAXParser gives me the following error -- every
element fails. I can't see anything wrong with personal.xml.
******** PARSE ERROR ********
org.xml.sax.SAXParseException: Document root element "personnel", must match
DOCTYPE root "personnel".
Entity id (Public) = null
Entity id (System) = file:/d:/xerces/103/data/personal.xml
(line,col) = (3, 12)
*****************************
******** PARSE ERROR ********
org.xml.sax.SAXParseException: The content of element type "name" must match
"((family,given)|(given,family))".
Entity id (Public) = null
Entity id (System) = file:/d:/xerces/103/data/personal.xml
(line,col) = (6, 61)
*****************************
and so on ...
here's my setup. ( the handlers simply print out a message and call the
default handler )
static final String features[] = new String[]
{
"http://xml.org/sax/features/validation",
"http://xml.org/sax/features/external-general-entities",
"http://xml.org/sax/features/external-parameter-entities",
"http://xml.org/sax/features/namespaces",
"http://apache.org/xml/features/validation/dynamic",
"http://apache.org/xml/features/validation/default-attribute-values",
"http://apache.org/xml/features/validation/validate-content-models",
"http://apache.org/xml/features/validation/validate-datatypes",
"http://apache.org/xml/features/validation/warn-on-duplicate-attdef",
"http://apache.org/xml/features/validation/warn-on-undeclared-elemdef",
"xxxhttp://apache.org/xml/features/allow-java-encodings",
"xxxhttp://apache.org/xml/features/continue-after-fatal-error",
"http://xml.org/sax/features/namespace-prefixes",
"xxxhttp://xml.org/sax/features/string-interning"
};
public Test( String filename )
throws Exception
{
XMLReader reader =
XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
for ( int i=0;i<features.length; i++ )
{
if ( !features[i].startsWith("xxx") )
{
try
{
reader.setFeature( features[i], true );
}
catch ( SAXNotRecognizedException nrx )
{
System.out.println( nrx.toString() );
}
catch ( SAXNotSupportedException nsx )
{
System.out.println( nsx.toString() );
}
}
}
reader.setDTDHandler( new TestDTDHandler( reader.getDTDHandler() ) );
reader.setErrorHandler( new TestErrorHandler( System.out ) );
reader.setContentHandler( new
estContentHandler( reader.getContentHandler() ) );
reader.setEntityResolver( new
estEntityResolver( reader.getEntityResolver() ) );
reader.parse( filename );
....