Thanks for the reply. How can it possibly know the fully resolved
system id if I don't tell it where the xml came from? It looks like all
it does is assume that it's in the current working directory.
Is there any way to get the base URI? Looking through the mailing list
archives, it doesn't seem like anyone knows how, if there is a way. Are
there any plans to make use of something like the Xerces XMLEntityResolver?
Thanks again!
Kelly
David Bertoni wrote:
Kelly Graus wrote:
Thank you for the response. I apologize for posting in the incorrect
list.
I am using the C++ processor, not Java. And yes, I meant
XSLTInputSource - it was the end of a very long day!
I was just using std::stringstream as a first attempt to get it
working. I will implement something more efficient once I figure out
the rest of the problems (I was thinking of deriving a class from
istream, unless you have any better suggestions).
Deriving from istream is one way to do it, but that's a pretty
complicated endeavor. Take a look at the sample applications, and
you'll find there are several easier and probably more efficient ways
to do it.
I'm having a small problem with the EntityResolver class. I have
created a custom EntityResolver, and called the setEntityResolver
function on the XalanTransformer. Then I create an XSLTInputSource
object with a std::stringstream containing the first xslt document
(again, just until I implement a custom stream that directly
interfaces with our stream classes). Then I call compileStylesheet
on the XalanTransformer, which causes my EntityResolver to be
called. However, the systemId that is passed in has the current
working directory prepended to it (the publicId is NULL).
Is this the correct behavior? It seems like it should be the job of
my EntityResolver to do any resolving if necessary. Am I just using
it incorrectly?
Yes, that's correct behavior. The parser is provided the
fully-resolved system ID of the entity it's looking for.
Dave