Re: xml-stylesheet base resource identifier

* Henry S. Thompson wrote:
>So, please, as slowly and explicitly as possible, help me follow the
>steps, because I'm still not seeing why any change is required.

Because I say so. This should be entirely sufficient unless the group
can conclusively demonstrate something else; in the discussion so far,
we saw the exact opposite: you and Daniel provided mutually exclusive
answers to the question at hand.

>The reference to RFC 2396 is _only_ for the purposes of discussing
>same-document references.  For better or worse, the _only_ reference
>which addresses your question is the one to HTML 4.0.  So the _only_
>place we need look for an answer is in HTML 4.0, right?.

Well, Daniel proposed:

  Your initial question is the definition of the base for href in an 
  xml-stylesheet. xml:base can't be involved. xml-stylesheet reference
  normatively RFC2396 which tells you what the base is in that context.

I certainly agree that RFC 2396 is irrelevant here.

>OK, so stipulate that only the *XML Stylesheet* REC applies -- why
>doesn't _its_ reference to HTML 4.0 for the semantics of 'href' tell
>us what we need to know?

Here is another example of how that is insufficient:

  <?xml version='1.0'?>
  <xi:include
    xpointer = "xpointer(//node())"
    xmlns:xi = "http://www.w3.org/2001/XInclude"
    parse    = "xml"
    href     = "..."
  />

With the included document being:

  <?xml version='1.0'?>
  <?xml-stylesheet href="..."?>
  <html xml:base='...' ...>
    <head ...>
      <base .../>
  ...

I can cite over a dozen of reasonable interpretations of the various
specifications involved as to how the relative style sheet resource
identifier reference should be resolved, many more if you consider
that there could be additional protocol information, different XHTML
versions, and other things involved. This is greatly aided by several
errors on the specifications involved, for example, XML Base states:

  The base URI of a document entity or an external entity is
  determined by RFC 2396 rules, namely, that the base URI is the
  URI used to retrieve the document entity or external entity.

which contradicts RFC 2396 and depending how you read XML Infoset
and the XML Recommendations, those aswell.

>Maybe it would help if I saw the definition you'd like to see added --
>could you draft a suggested corrigendum?

Text to the effect of the following would address my concern:

  The base resource identifier of the processing instruction is the
  value of its [base URI] Infoset property or, if this value is un-
  defined or unknown, the base resource identifier of the document
  that contains it. Relative references must be processed as defined
  by IETF STD 66.

Where it might be wise to add

  ... unknown (for example, if the application does not process the
  document that includes the processing instruction in terms of the
  Infoset)

This assumes that the base resource identifier of any "XML Document"
is well-defined. There exists a possibility that this is not the case
depending on how you read the XML and XML Infoset specifications. I
do not care much about this possibility at this point, however.

Well, there is this other problem that this definition is incompatible
with DOM Level 3 Core in so far as that ProcessingInstruction.baseURI
will not reflect the base uri of the processing instruction, but this
is a genuine incompatibility between the Infoset and the DOM. Fixing
that is somewhat out of scope here, of course.
-- 
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/ 

Received on Monday, 2 October 2006 15:33:30 UTC