This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 4622 - [XSLT 2.0] unparsed-entity-uri - absolute or relative?
Summary: [XSLT 2.0] unparsed-entity-uri - absolute or relative?
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: Data Model 1.0 (show other bugs)
Version: Recommendation
Hardware: PC Windows XP
: P2 normal
Target Milestone: ---
Assignee: Anders Berglund
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-11 08:39 UTC by Michael Kay
Modified: 2008-09-16 19:58 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2007-06-11 08:39:39 UTC
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.
Comment 1 Michael Kay 2007-06-21 16:59:56 UTC
The XSL WG discussed this on 21 Jun 2007 and agreed to bring the proposal to the imminent joint F2F meeting under the Data Model agenda.
Comment 2 Sharon Adler 2007-07-17 16:48:17 UTC
For "housekeeping" the following is the snipped of Joint minutes on 4622:

J3.1.2 Bugzilla Bug 4622, [XSLT 2.0] unparsed-entity-uri - absolute or
relative?
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4622

Suggested resolution has been accepted. Construction from PSVI may be affected. XSLT will be discussing it on Friday and editor to write a proposal.
Comment 3 Sharon Adler 2007-10-10 20:58:15 UTC
This was discussed at XSLT meeting at Microsoft on 10/10/07.  ALB took the action item to draft proposed text for the Data Model errata document based on the approach outlined in comment#0 by Mike Kay.    ETA for draft text is 18 October 2007.  Will be marked "resolved" when proposed text is finally accepted.
Comment 4 Anders Berglund 2007-12-06 19:28:21 UTC
The XSL WG approved 2007-12-06 the following text to add in 5.17.

The dm:unparsed-entity-system-id accessor returns the system identifier
of an unparsed external entity declared in the specified document.
(inserted text:)
The value is an absolute URI, and is obtained by resolving the [system
identifier] of the unparsed entity information item against the
[declaration base URI] of the same item.
(end of inserted text)
If no entity with the name specified in $entityname exists, or if the
entity is not an external unparsed entity, the empty sequence is
returned.