Yes Prashant. It does help a lot.
One more question: hou is the system ID set? Is it via the XML?
Lydie.
-----Original Message-----
From: Prashant [mailto:[EMAIL PROTECTED]]
Sent: Friday, September 22, 2006 10:39
To: [email protected]
Subject: Re: Trying to validate XML files using several XSD
Decoker, Lydie (Lydie) wrote:
Hello!
I have corrected my target namespace errors in my diffents xsd files.
Now when I try to validate my XML file, I got errors like:
schema_reference.4: Failed to read schema document 'RIRName.xsd',
because 1) could not find the document; 2) the document could not be
read; 3) the root element of the document is not <xsd:schema>.
If I use an EntityResolver, this error will not occur again. What I
did:
public InputSource resolveEntity(String publicId, String
systemId) throws SAXException, IOException {
if (systemId.endsWith("Order_L_0_96.xsd")) {
return new
InputSource(System.getProperty("schemaLocation").concat(File.separator).
concat("Order_L_0_96.xsd"));
} else if (systemId.endsWith("WISkeletons.xsd")) {
return new
InputSource(System.getProperty("schemaLocation").concat(File.separator).
concat("WISkeletons.xsd"));
}
return null;
}
Now I would prefer to avoid to hard-code such an information. Is the
catalog a good solution?
If hard-coding the Schema name does not please your aesthetics, you
could very well maintain the mappings between the xsd to local URI like
this:
#Properties file that maintains mapping between xsd, local URI.
Order_L_0_96.xsd=schemas/Order_L_0_96.xsd
WISkeletons.xsd=schemas/WISkeletons.xsd
You then put 'schemas' in the classpath, then your implementation of
EntityResolver will get the bytes by using
Classloader.getResourceAsStream().
This is infact what Catalog[1] does for you. You have to externalize the
mappings between the system Id to local URI to an XML file.
Hope this helps
-Prashant
[1]:http://www.oasis-open.org/committees/entity/spec-2001-08-06.html#d0e
533
Lydie.
-----Original Message-----
From: Prashant [mailto:[EMAIL PROTECTED]]
Sent: Thursday, September 21, 2006 16:50
To: [email protected]
Subject: Re: Trying to validate XML files using several XSD
Are you talking about OASIS Catalog ?
http://www.oasis-open.org/committees/entity/
I think Catalog is just a standardized way of writing an
EntityResolver.
OASIS needs you to produce a standard XML that maps the public Ids to
local URIs. By using this method you simply would use library supplied
implementation of EntityResolve like OASISEntityResolver that
understands the Catalog XML.
Because Catalog is a standardized way, it will come in handy if you
were to use tools like <xslt> task of ANT.
Hope this helps.
-Prashant
---------------------------------------------------------------------
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]