[
Lists Home |
Date Index |
Thread Index
]
- From: Jay Sachs <jay@avacet.com>
- To: xml-dev@xml.org
- Date: Fri, 04 Aug 2000 11:26:51 -0400
Norman Walsh wrote:
>
> It's possible that the following question is concretely answered
> somewhere, in which case a simple whack on the head would be
> appreciated. :-)
>
> Suppose I attempt to parse a document: http://foo.bar/baz.dtd and that
> attempt results in a redirect to http://moo.goo/boo.dtd. RFC2396 makes it
> clear that the resulting base URI is http://moo.goo/boo.dtd:
>
> 5.1.3. Base URI from the Retrieval URI
>
> [...] Note that if the retrieval was the
> result of a redirected request, the last URI used (i.e., that which
> resulted in the actual retrieval of the document) is the base URI.
>
> What isn't well defined, AFAICT, is what "redirected request" really
> means. Suppose that my parser has an SAX entityResolver installed and
> the entity resolver (through means that I don't think are important to
> this question) decides to perform the redirection. What is the base
> URI of the resulting document?
I'd think the first thing to determine is whether an EntityResolver
"redirects" anything at all. I'm not aware of a normative reference for
EntityResolvers in the abstract. Is there such a thing? The Javadoc for
the SAX API talks about "resolving external entities". "Resolution" in
my mind is distinct from and does not imply "redirection". It does
mention in one of several example uses that EntityResolvers can be used
"... to redirect system identifiers to local URIs ..." but I don't think
this implies that the EntityResolver should be construed as performing
redirection.
> To make things concrete, suppose I have a document with a DOCTYPE
> declaration that references http://foo.bar/baz.dtd (and I'm doing a
> validating parse). The parser attempts to open http://foo.bar/baz.dtd,
> and the entity resolver opens and returns http://moo.goo/boo.dtd
> instead.
>
> Subsequently, the parser encounters a relative URI "somefile.ent" in
> the DTD. It must calculate an absolute URI in order to open it.
>
> Is the resulting absolute URI "http://foo.bar/somefile.ent" or
> "http://moo.goo/somefile.ent"? Or is there not a definitive answer?
I'd say that it resolves to "http://foo.bar/somefile.net". It's up to
the EntityResolver to do the same redirection-like behavior if that's
what's it is intended to do.
jay
|