Entity and classpath

C

cochrane68

I'm trying to access an XML snippet based on the classpath. I know how
to use a snippet based on the absolute path of a file using:

<!DOCTYPE project [
<!ENTITY test SYSTEM "file:C:\Documents and
Settings\chris\Desktop\test2.xml">
]>

However, this is going to be used as part of a J2EE application, and I
need a way to access an XML snippet based on the classpath. So my
DOCTYPE declaration would look something like:

<!DOCTYPE project [
<!ENTITY test SYSTEM "resource:test2.xml">
]>

Is there anyway to do this directly in the XML, or does XML have no
concept of a classpath?
 
P

Philippe Poulard

I'm trying to access an XML snippet based on the classpath. I know how
to use a snippet based on the absolute path of a file using:

<!DOCTYPE project [
<!ENTITY test SYSTEM "file:C:\Documents and
Settings\chris\Desktop\test2.xml">
]>

However, this is going to be used as part of a J2EE application, and I
need a way to access an XML snippet based on the classpath. So my
DOCTYPE declaration would look something like:

<!DOCTYPE project [
<!ENTITY test SYSTEM "resource:test2.xml">
]>

Is there anyway to do this directly in the XML, or does XML have no
concept of a classpath?

XML has no concept of classpath, but it has a concept of entity resolver

with java, you just have to provide an implementation of the interface
org.xml.sax.EntityResolver that has a single method ; if it returns
null, the parsers will try to resolve the external identifier by its
own, otherwise (the case where the system identifier starts with
"resource:") you have to supply yourself the resource

to plug this entity resolver to the XML parser, refer to
javax.xml.parsers.DocumentBuilder or to org.xml.sax.XMLReader

--
Cordialement,

///
(. .)
-----ooO--(_)--Ooo-----
| Philippe Poulard |
-----------------------
 
M

Martin Honnen

However, this is going to be used as part of a J2EE application, and I
need a way to access an XML snippet based on the classpath. So my
DOCTYPE declaration would look something like:

<!DOCTYPE project [
<!ENTITY test SYSTEM "resource:test2.xml">
]>

Is there anyway to do this directly in the XML, or does XML have no
concept of a classpath?

A Java class path? No, XML is not Java specific.
If you are using Java tools/APIs then you need to build your own
implementation of the interface org.xml.sax.EntityResolver I think.
But chances are someone in a group or forum about J2EE knows more about
that and might even be able to point you to existing implementations if
that resource: URL is common use there.
 
C

cochrane68

That's what I thought, but hoping there was an easier way. Thanks for
the responses!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,045
Latest member
DRCM

Latest Threads

Top