[Bug 3416] [XQuery] Base URI of a constructed element

http://www.w3.org/Bugs/Public/show_bug.cgi?id=3416

           Summary: [XQuery] Base URI of a constructed element
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XQuery
        AssignedTo: chamberl@almaden.ibm.com
        ReportedBy: mike@saxonica.com
         QAContact: public-qt-comments@w3.org


In XQuery, the rules for the base URI of a newly constructed element (3.7.1.3
clause 5b and 3.7.3.1 clause 4b) say: 

base-uri is taken from the first of the following sources that exists:

   1. the value of the constructed node's attribute named xml:base, if this
attribute exists;
   2. base URI in the static context.

This differs from the equivalent rule in XSLT, which is (last paragraph of
11.2): "The base URI of the new element is copied from the base URI of the
xsl:element instruction in the stylesheet, unless the content of the new
element includes an xml:base attribute, in which case the base URI of the new
element is the value of that attribute, resolved (if it is a relative URI)
against the base URI of the xsl:element instruction in the stylesheet."

I think the XSLT rule is the right one, because it caters for xml:base being a
relative URI (which is common, and useful).

But I think the rule should also reference XML Base to ensure that the
processing of the xml:base attribute is consistent with the rules of that
specification. For example, XML Base mandates percent-escaping of special
characters. Currently this will be done for a document constructed from an
Infoset, but not for a document constructed by a query.

Proposed replacement text:

base-uri is taken from the base URI in the static context, unless the
constructed node has an attribute named xml:base, in which case the base-uri is
the value of this attribute, resolved if it is relative against the base URI in
the static context. The xml:base attribute is processed as described in [XML
Base]: for example, certain special characters are percent-encoded.

Received on Friday, 30 June 2006 11:18:10 UTC