This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Which parser is used when document() is called?
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 2 Apr 2002 18:18:00 +0100
- Subject: RE: [xsl] Which parser is used when document() is called?
- Reply-to: xsl-list at lists dot mulberrytech dot com
You might find that Xalan uses the parser given by the
javax.xml.parsers.SAXParserFactory system property; on the other hand, to
use that you have to implement a SAXParser rather than merely an XMLReader.
The URIResolver technique is probably better and more portable. You can find
URIResolver in the JAXP documentation.
Something like:
transformer.setURIResolver(new UserURIResolver());
...
public static class UserURIResolver implements URIResolver {
public Source resolve(String href, String base)
throws TransformerException {
if (href.endsWith(".xxx")) {
try {
URL url = new URL(new URL(base), href);
SAXSource ss = new SAXSource();
ss.setSystemId(url.toString());
ss.setXMLReader(new MyOwnParser());
return ss;
} catch ...
} else {
return null;
}
}
}
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of
> Jakub.Valenta@Deio.net
> Sent: 02 April 2002 17:42
> To: xsl-list@lists.mulberrytech.com
> Subject: RE: [xsl] Which parser is used when document() is called?
>
>
>
> Hi Michael,
>
> in my case I use Xalan as an XSLT processor and my 100% home
> grown parser
> (it just implements XMLReader), which takes delimiter text
> and makes simple
> conversion to SAX events.
>
> /* my factory which returns my implementation of XMLReader */
> XMLReader myParser = ParserFactory.getParser(config);
> InputSource input = new InputSource(new StringReader(data));
>
> SAXSource source = new SAXSource(myParser , input);
> StreamResult result = new StreamResult(new File("g:
> \\dev\\parsers\\test\\result.xml"));
>
> transformer.transform(source, result);
>
> If I start the XSLT processor like this, it has reference only to my
> proprietary parser (No to any xerces, or crimson), so then if
> I'll have
> some "documnet()" call in the XSLT style sheet will it use
> the same parser
> which I specified in SAXSource() (it mean my parser), or what?
>
> I just think that it has to call my parser since it does not
> know about any
> other (I didn't provide instance of any other parser), but I
> am not sure.
>
> btw: what is the URIResolver?
>
> br,
>
> Jakub
>
>
>
>
>
> "Michael Kay" <michael.h.kay@ntlworld.com>@lists.mulberrytech.com on
> 04/02/2002 05:00:22 PM
>
> Please respond to xsl-list@lists.mulberrytech.com
>
> Sent by: owner-xsl-list@lists.mulberrytech.com
>
>
> To: <xsl-list@lists.mulberrytech.com>
> cc:
>
> Subject: RE: [xsl] Which parser is used when document() is called?
>
> If you are using a JAXP-conformant processor, then you can
> set the parser
> from the URIResolver that is called when document() is called.
>
> The details for this kind of question depend very much on
> which product you
> are using!
>
> Michael Kay
> Software AG
> home: Michael.H.Kay@ntlworld.com
> work: Michael.Kay@softwareag.com
>
> > -----Original Message-----
> > From: owner-xsl-list@lists.mulberrytech.com
> > [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of
> > Jakub.Valenta@Deio.net
> > Sent: 02 April 2002 11:47
> > To: XSL-List@lists.mulberrytech.com
> > Subject: [xsl] Which parser is used when document() is called?
> >
> >
> > Hi all,
> > I am doing some text to xml conversion, and I have build my
> > own SAX-like
> > parser which I use as a source for XSLT. It works just fine,
> > but now I would like to use the document() function in my
> > xslt and I would
> > like it to use my parser again sine I want to include file which is
> > textual (so the parser should conver it to xml).
> >
> > So does anyone know which parser is used for document()
> > calls? is it the
> > same one which is used to parse the main document (then I am
> > save) or is it
> > always some
> > default parser (the I have troubles?).
> >
> > br,
> >
> > Jakub
> >
> >
> > XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list