This kind of error happens when some of the property/message files are
missing. Are you using jars from Xerces binary, or building the classes
from the source code?
Sandy Gao
Software Developer, IBM Canada
(1-905) 413-3255
[EMAIL PROTECTED]
[EMAIL PROTECTED]
.sprint.com To: [EMAIL PROTECTED]
cc:
10/07/2002 02:38 Subject: RE: Re: AW: Not an
FAQ: still unable to validate against XSD
PM
Please respond to
xerces-j-user
I'm having a bit of the same, yet _not_ resolved...even when I added
the setFeature() methods as within your email.
Am I possibly using the wrong base class?
I'm using:
Xerces 2.2.0
Java2 SDK 1.3.1
I keep getting the Exception: java.lang.ExceptionInInitializerError
Code and output follows...
Here's my code:
import org.xml.sax.*;
import org.xml.sax.helpers.*;
...
import javax.xml.parsers.*;
import org.apache.xerces.jaxp.*;
public abstract class TypeHandler extends DefaultHandler
{
...
private static final String FLAG_VALIDATE =
"http://xml.org/sax/features/validation";
private static final String FLAG_SCHEMA =
"http://apache.org/xml/features/validation/schema";
static final String JAXP_SCHEMA_LANGUAGE =
"http://java.sun.com/xml/jaxp/properties/schemaLanguage";
static final String W3C_XML_SCHEMA =
"http://www.w3.org/2001/XMLSchema";
protected static String schemaSource;
static final String JAXP_SCHEMA_SOURCE =
"http://java.sun.com/xml/jaxp/properties/schemaSource";
public void parse( String filename ) throws java.io.IOException,
org.xml.sax.SAXException, org.xml.sax.SAXParseException
{
try
{
log.debug( "file:" + filename );
InputStream in = new BufferedInputStream(new
FileInputStream( filename ));
InputSource source = new InputSource( in );
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware( true );
spf.setValidating( true );
SAXParser sp = spf.newSAXParser();
sp.getXMLReader().setFeature(FLAG_VALIDATE, true);
sp.getXMLReader().setFeature(FLAG_SCHEMA, true);
//sp.setProperty(
org.apache.xerces.jaxp.JAXPConstants.JAXP_SCHEMA_LANGUAGE,
org.apache.xerces.jaxp.JAXPConstants.W3C_XML_SCHEMA );
//sp.setProperty(
org.apache.xerces.jaxp.JAXPConstants.JAXP_SCHEMA_SOURCE,
"file://c:/!dev/omni/xsd/IesVendor.xsd" );
log.info( "parse started." );
sp.parse( source, this );
log.info( "parse complete." );
}
catch( Throwable t )
{
log.warn( t.toString() );
t.printStackTrace();
}
}
}
Here's the output:
...
4216 INFO [main] (TypeHandler.java:95) - parse started.
7741 WARN [main] (TypeHandler.java:107) -
java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError: java.lang.RuntimeException:
internal error
at
org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl.applyFacets1(XSSimpleTypeD
ecl.java:554)
at
org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl.createBuiltInTypes(Sche
maDVFactoryImpl.java:334)
at
org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl.<clinit>(SchemaDVFactor
yImpl.java:80)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at
org.apache.xerces.impl.dv.SchemaDVFactory.getInstance(SchemaDVFactory.ja
va:106)
at
org.apache.xerces.impl.dv.SchemaDVFactory.getInstance(SchemaDVFactory.ja
va:90)
at
org.apache.xerces.impl.xs.SchemaGrammar$BuiltinSchemaGrammar.<init>(Sche
maGrammar.java:155)
at
org.apache.xerces.impl.xs.SchemaGrammar.<clinit>(SchemaGrammar.java:629)
at
org.apache.xerces.impl.xs.XMLSchemaValidator.<init>(XMLSchemaValidator.j
ava:1062)
at
org.apache.xerces.parsers.StandardParserConfiguration.configurePipeline(
StandardParserConfiguration.java:225)
at
org.apache.xerces.parsers.DTDConfiguration.reset(DTDConfiguration.java:6
23)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:4
98)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:5
81)
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java
:1175)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at
com.sprint.ltd.nida.omni.types.TypeHandler.parse(TypeHandler.java:96)
at com.sprint.ltd.nida.omni.OmniLoader.main(OmniLoader.java:113)
Thank you in advance.
Thank you.
> -----Original Message-----
> From: lane [mailto:[EMAIL PROTECTED]
> Sent: Monday, October 07, 2002 10:37 AM
> To: xerces-j-user
> Cc: lane
> Subject: Re: AW: Not an FAQ: still unable to validate against XSD
>
>
> I apologize if my previous message ends up making it, since it's
> essentially the same. My SMTP has no record of sending it.
>
> I am having basically the same problem, with the exception that I am
> using the DocumentBuilder so I can create DOM trees. As far as I can
> tell, there is no setProperty method, so I cannot use this fix to at
> least get *somewhere*.
>
> Regardless if this hack clears up the symptoms or not, I do
> not accept
> this as a valid fix. The fact remains that referencing an
> namespace-using schema in a normal document-based manor causes the
> schema not to be processed correctly. My test example that does not
> work is as follows:
>
> Schema:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema
> targetNamespace="http://schemas.gridforum.org/gridServices/rsl"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:rsl="http://schemas.gridforum.org/gridServices/rsl"
> xmlns="http://schemas.gridforum.org/gridServices/rsl"
> version="0.2">
>
> <xsd:element name="rsl" type="rslType"/>
>
> <xsd:complexType name="rslType">
> <xsd:sequence>
> <xsd:element name="job" type="xsd:string" minOccurs="0"/>
> </xsd:sequence>
> </xsd:complexType>
>
> </xsd:schema>
>
>
> Document:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <rsl
> xmlns:rsl="http://schemas.gridforum.org/gridServices/rsl"
> xmlns="http://schemas.gridforum.org/gridServices/rsl"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="
> http://schemas.gridforum.org/gridServices/rsl
> schema/test.xsd">
> <job> Jobby Job Job </job>
> </rsl>
>
>
> Xerces code:
>
> DocumentBuilder xmlParser = null;
> try {
> parserFactory = DocumentBuilderFactory.newInstance();
> parserFactory.setNamespaceAware(true);
> parserFactory.setValidating(true);
> xmlParser = parserFactory.newDocumentBuilder();
> xmlParser.setErrorHandler(this);
> } catch
> (javax.xml.parsers.ParserConfigurationException pce) {
> logger.error("problem getting parser factory
> instance", pce);
> return null;
> }
>
> BufferedReader bufferedReader = new BufferedReader(xmlReader);
> return xmlParser.parse(new InputSource(bufferedReader));
>
> I would really appreciate any help on this since my project is
> essentially stalled until I get this working.
>
> Thanks,
> Peter
>
>
>
>
>
> Amthauer, Heiner wrote:
> > Hi!
> >
> > Finally, I found a way to get it work. By setting the
> namespace-feature to
> > true and setting the XSD definition with the
> >
> http://apache.org/xml/properties/schema/external-noNamespaceSc
> hemaLocation
> > property, the parser actually validates using my schema defintion.
> >
> > Thanx for your efforts.
> >
> > greetings
> > Heiner
> >
> >
> > -----Urspr�ngliche Nachricht-----
> > Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > Gesendet am: Montag, 7. Oktober 2002 16:32
> > An: [EMAIL PROTECTED]
> > Betreff: Re: Not an FAQ: still unable to validate against XSD
> >
> > Have you tried turning on namespace?
> (SAXParserFactory#setNamespaceAware)
> >
> > Sandy Gao
> > Software Developer, IBM Canada
> > (1-905) 413-3255
> > [EMAIL PROTECTED]
> >
> >
> >
> >
> >
> > "Amthauer, Heiner"
> >
> > <[EMAIL PROTECTED] To:
> "'Xerces'"
> > <[EMAIL PROTECTED]>
> > ystems.com> cc:
> >
> > Subject:
> Not an FAQ:
> > still unable to validate against XSD
> > 10/07/2002 06:04 AM
> >
> > Please respond to
> >
> > xerces-j-user
> >
> >
> >
> >
> >
> >
> >
> >
> > Hi there!
> >
> > I'm still unable to validate my xml file against an XSD.
> Here ist the code,
> > I use to load the file via SAX, using XERCES 2.0 (JRE1.3.1):
> >
> > private static final String FLAG_VALIDATE =
> > "http://xml.org/sax/features/validation";
> > private static final String FLAG_SCHEMA =
> > "http://apache.org/xml/features/validation/schema";
> >
> > private SAXParserFactory factory = null;
> > private org.xml.sax.SAXParser saxParser = null;
> >
> > ...
> > factory = SAXParserFactory.newInstance();
> > ...
> > saxParser = factory.newSAXParser();
> > ...
> >
> saxParser.getXMLReader().setFeature(FLAG_VALIDATE, true);
> > saxParser.getXMLReader().setFeature(FLAG_SCHEMA, true);
> > saxParser.parse(new File(file), this);
> > ...
> >
> > This always gives me an error saying "cvc-elt.1: Cannot find the
> > declaration
> > of element 'whatever'".
> >
> > Since then, I've tried to use an EntityResolver for loading
> the XSD. I've
> > started with writing a little test code for the
> EntryResolver like this:
> >
> > public class SAXEntityResolver implements EntityResolver {
> >
> > public InputSource resolveEntity(String publicID,
> String systemID)
> > throws SAXException, IOException {
> > System.out.println(publicID+", "+systemID);
> > return null;
> > }
> >
> > }
> >
> > ...
> >
> > private static final String FLAG_VALIDATE =
> > "http://xml.org/sax/features/validation";
> > private static final String FLAG_SCHEMA =
> > "http://apache.org/xml/features/validation/schema";
> >
> > private SAXParserFactory factory = null;
> > private SAXParser saxParser = null;
> >
> > ...
> > factory = SAXParserFactory.newInstance();
> > ...
> > saxParser = factory.newSAXParser();
> > ...
> >
> saxParser.getXMLReader().setFeature(FLAG_VALIDATE, true);
> > saxParser.getXMLReader().setFeature(FLAG_SCHEMA, true);
> > saxParser.getXMLReader().setEntityResolver(new
> > SAXEntityResolver());
> > saxParser.parse(new File(file), this);
> > ...
> >
> > In result, my programm still reads the xml file with the
> same error as
> > before. The println() in the EntityResolver is never reached.
> >
> > I woulde really appreciate any help on this. Next on
> schedule is testing
> > and
> > I'm still unable to validate the xml file. Btw., loading
> the file with any
> > other XML/XSD aware application works fine.
> >
> > regards
> > Heiner
> >
> >
> > ---------------------------------------------------------------
> > Dipl. Ing. Heiner Amthauer
> >
> > T-Systems GEI GmbH
> >
> > Hausanschrift: Magirusstr. 39/1, 89077 Ulm
> > Postanschrift: Postfach 20 64, 89010 Ulm
> > Telefon: +49 ( 731) 9344-4422
> > Telefax: +49 (731) 9344-4409
> > Mobil: +49 (1 78) 4269335
> > E-Mail: [EMAIL PROTECTED]
> > Internet: http://www.t-systems.com
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]