[Bug 4622] [XSLT 2.0] unparsed-entity-uri - absolute or relative?

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

           Summary: [XSLT 2.0] unparsed-entity-uri - absolute or relative?
           Product: XPath / XQuery / XSLT
           Version: Recommendation
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 2.0
        AssignedTo: mike@saxonica.com
        ReportedBy: mike@saxonica.com
         QAContact: public-qt-comments@w3.org


I am raising this as an XSLT 2.0 issue, though it is really a data model issue
in an area of XDM that only affects XSLT. It derives from bug 724 agains the
XSLT test suite (member-only), which in turn relates to a thread on the
xsl-list at mulberrytech.com entitled "Problems with Entities", started by Jeff
Sese, which took place on 31 Jan 2007:

http://www.biglist.com/lists/xsl-list/archives/200701/msg00750.html

In XSLT 1.0, it was stated in section 3.3: if the system identifier [of an
unparsed entity] is a relative URI, it must be resolved into an absolute URI
using the URI of the resource containing the entity declaration as the base
URI. Thus, the unparsed-entity-uri() function would always return an absolute
URI. 

This provision seems to have been lost in XSLT 2.0.

XSLT 2.0 defines unparsed-entity-uri() in terms of the
dm:unparsed-entity-system-id accessor in XDM. XDM says of this accessor:
"Returns the system identifier of the specified unparsed entity or the empty
sequence if no such entity exists." In building from an infoset, this property
is derived from the [system identifier] of the [unparsed entities] information
item, which is defined in Infoset as "[system identifier] The system identifier
of the entity, as it appears in the declaration of the entity, without any
additional URI escaping applied by the processor."

I think the correct resolution of this is to change XDM to say (a) in defining
the property, that it is an absolute URI, and (b) in constructing from an
Infoset, that the value of the property is obtained by resolving the [system
identifier] of the unparsed entity information item against the [declaration
base URI] of the same item.

Received on Monday, 11 June 2007 08:39:43 UTC