W3C XInclude CR Issues

Inside: Issue summary | State description | Decision cycle description | Issue details (Validate data)

List and dispositions of issues recorded against the third XInclude Candidate Recommendation.

Status of this Document

This document is a live document and can change at any time, in particular to update the status of issues may change over time (hopefully for the better).

Issue summary (13 issues)

Reformat summary with options:
Expert mode options
Hide columns:
Hide issues by type:
Hide issues by state:
Hide issues by acknowledgment:

Other views: types | states | concerning | reviewers | open actions

Changes between dates (YYYY-MM-DD) and [Optional]

For maintainers: new issue data | new issues list data

Color key: error warning note

Id:Title StateTypeAck.
xi-0 : Language attributesdeclinedrequestNo reply from reviewer
xi-1 : Fragment identifiers must not be used.declinedclarificationNo reply from reviewer
xi-2 : Syntactically incorrect IRIs in href attributesdeclinedclarification
xi-3 : Re: XML Schema WG Comments on Last Call DraftdeclinededitorialAgreement
xi-4 : examples of xpointer attribute useagreededitorialAgreement
xi-5 : Handling unrecognized xpointer schemesagreededitorialNo reply from reviewer
xi-6 : xml:lang=""declinededitorialNo reply from reviewer
xi-7 : xml:lang when replacing the root elementagreededitorialNo reply from reviewer
xi-8 : Case insensitive comparison of xml:lang valuesagreederrorNo reply from reviewer
xi-9 : Editorial: must not vs. fatal erroragreederrorNo reply from reviewer
xi-10 : URIs that end in # but don't have fragment IDsagreedclarificationAgreement
xi-11 : minor remark regarding appendix cagreededitorialNo reply from reviewer
xi-12 : xml:lang implementation reportdeclinedrequest

State description

Decision cycle description

Issue details

xi-0: Language attributes [link to this issue]

I understand the point of the language retention in the new draft. I 
haven't implemented it yet, but I don't expect it to be too hard. I'm 
not sure how useful this will be in practice, but it doesn't feel 
like it will hurt too much.

I do wonder, however, why you felt it necessary to add a new Infoset 
property here? Unlike the included sets property, this is not 
directly related to the functionality of XInclude. It is something 
that could have been added to the original Infoset spec, and wasn't. 
Sneaking it in here doesn't feel right.  There are a few of other 
issues with this:

1. As far as I know no API or tool provides specific support for 
this. i.e. there's no getLanguage call in DOM, or XOM, or XSLT. 
Everyone just reads the xml:lang attributes if they need to know this.

2. Adding language as an infoset property in addition to the xml:lang 
attribute opens up the possibility that these could get out of sync. 
That's a big enough problem in the Infoset already without adding to 
it here.

I suggest simply removing all the verbiage about the [language] 
property and simply defining this in terms of an xml:lang attribute 
information item. I don't think this would have any practical affect 
on implementations, but it would make the spec smaller, simpler, and 
cleaner.

Transition history

raised on 14 Apr 2004 by Elliotte Rusty Harold (elharo@metalab.unc.edu)
declined on 2 Jun 2004

Describe xml:lang in infoset terms in XInclude for now. Possibly we'll revisit making it more general later.

Acknowledgment cycle
announced by group on 14 Apr 2004

xi-1: Fragment identifiers must not be used. [link to this issue]

Section 3.1 states, "Fragment identifiers must not be used" (in URIs 
in href attributes. OK. However, what happens if one is used? Is this 
a fatal error? Should the processor just ignore it? I think this 
should be spelled out. I think my preferred solution would be a 
non-fatal error. IN fact, maybe this should instead read something 
like. "XInclude processors must not use the fragment identifier in 
the uRI if one is present."

Transition history

raised on 14 Apr 2004 by Elliotte Rusty Harold (elharo@metalab.unc.edu)
declined on 2 Jun 2004

Add something along the lines of: "syntactically invalid IRIs should be reported as a fatal error, but in some implementations it may not be practical to distinguish it from a resource error."

Acknowledgment cycle
announced by group on 14 Apr 2004

xi-2: Syntactically incorrect IRIs in href attributes [link to this issue]

I wish there were a publicly accessible issues list/bug database, 
because I could swear I've raised this before; but looking through 
the archives I don't find it.

What should a processor do in the case where the href attribute 
contains a string which is not a legal IRI reference? For instance, 
it includes bad hexadecimal escape sequences?

In particular is this a resource error or a fatal error? I don't find 
any language in the current CR that's clearly on point. I suspect 
this is covered under:

Resources that are unavailable for any reason (for example the 
resource doesn't exist, connection difficulties or security 
restrictions prevent it from being fetched, the URI scheme isn't a 
fetchable one, the resource is in an unsupported encoding, or the 
resource is determined through implementation-specific mechanisms not 
to be XML) result in a resource error. Resources that contain 
non-well-formed XML result in a fatal error.

But I'm not sure. Clarification in the spec would be useful.

Consistency with XPointer syntax errors, which are recognized as 
resource errors, also suggests these should be resource errors.

Transition history

raised on 15 May 2004 by Elliotte Rusty Harold (elharo@metalab.unc.edu)
declined on 2 Jun 2004

Add something along the lines of: "syntactically invalid IRIs should be reported as a fatal error, but in some implementations it may not be practical to distinguish it from a resource error."

Acknowledgment cycle
announced by group on 9 Jun 2004
objection from reviewer on 9 Jun 2004
objection maintained by group on 18 Aug 2004

xi-3: Re: XML Schema WG Comments on Last Call Draft [link to this issue]

> From: Jonathan Marsh <jmarsh@microsoft.com>
> Date: Mon, 29 Mar 2004 13:19:48 -0800
> To: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>
> Cc: "Ashok Malhotra" <ashokma@microsoft.com>, <www-xml-xinclude-comments@w3.org>, <w3c-xml-schema-ig@w3.org>
>
> The XML Core WG has accepted your request to provide a place for the
> xi:include elements in the resulting infoset.  Here is a draft of the
> significant part of the text I'm proposing to replace the Boolean
> [included] property:
>
> --------------
> The inclusion history of each top-level included item is recorded in the
> extension property [include history]. The [include history] property is
> a list of element information items, representing the xi:include
> elements for recursive levels of inclusion. If an [include history]
> property already appears on a top-level included item, the xi:include
> element information item is prepended to the list. If no [include
> history] property exists, then this property is added with the single
> value of the xi:include element information item.
> --------------
>
> We note that we don't expect to see implementation fully exposing this
> property in our upcoming CR, but that's no worse a match with current
> implementations than the previous [included] property.

Thank you for your reply to our further request [1], we appologize for the delay in responding.  The working has discussed this response and are happy with the result.

Some members of the WG noted, however, that the term "already" in the sentence "If an [include history] property already appears on a top-level included item..." above implies a time axis in the construction of the result infoset.  That is, if a includes b includes c, which include happens first?  We appologize if this aspect is covered elsewhere in the XInclude CR [2] but a quick perusal of section 4 Processing Model [3] did not turn anything up.  

While it is not necessary to address the above in order to satisfy the Schema WG in response to our previous comments you might want to consider addressing it to prevent future questions of this nature.

thank you,

pvb (for the XML Schema WG)

[1] http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2004Feb/0021.html
[2] http://www.w3.org/TR/2004/CR-xinclude-20040413
[3] http://www.w3.org/TR/2004/CR-xinclude-20040413/#processing

p.s. For the record, our original comment on the Last Call is here [4] and your response to that comment is here [5]

[4] http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2004Jan/0015.html
[5] http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2004Feb/0011.html

Transition history

raised on 24 May 2004 by Biron,Paul V (Paul.V.Biron@kp.org)
declined on 16 Jun 2004

The use of "already" does not seem ambiguous enough, here or elsewhere in the document, to warrant a change at this point.

Acknowledgment cycle
announced by group on 7 Jul 2004
agreement by reviewer on 8 Jul 2004

xi-4: examples of xpointer attribute use [link to this issue]

It would be _very_ helpful to see examples which use the normative
XPointer mechanisms, i.e. shorthand pointers and element() scheme
pointers.

Transition history

raised on 3 Jun 2004 by Henry S. Thompson (ht@inf.ed.ac.uk)
agreed on 9 Jun 2004

will add an example that uses barenames and the element scheme().

Acknowledgment cycle
announced by group on 9 Jun 2004
agreement by reviewer on 9 Jun 2004

xi-5: Handling unrecognized xpointer schemes [link to this issue]

I've probably said this before, but as there's no publicly accessible 
issues list and I don't see it in the archives, so I'll say it again in 
case I haven't.

The current candidate rec is insufficiently clear on what an 
implementation should do when encountering an unrecognized XPointer 
scheme in an xpointer attribute, and there's no additional recognized 
XPointer scheme to fall back on. In my case thie issue is xpointer() 
schemes, but it could also be xpath1() scheme or other custom schemes. 
Is this a resource error? a fatal error? Should the processor simply 
ignore the xpointer attribute?

The spec says, "A syntax error in the XPointer is a resource error 
<http://www.w3.org/TR/xinclude/#dt-resource-error>." However, this is 
not a syntax error, even though it is an error according to section 3.3 
of the XPointer framework.

Transition history

raised on 4 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
agreed on 9 Jun 2004

Remove the word "syntax" from "syntax error".

Acknowledgment cycle
announced by group on 7 Jul 2004

xi-6: xml:lang="" [link to this issue]


I'm working on implementing xml:lang handling in XOM for XInclude. One 
thing strikes me as very funny. Suppose I have a document written in 
English that uses xml:lang="en" on its root element. Suppose this 
document includes another doucment also written in English that does 
not, however, use any xml:lang attributes. The inclusion process will 
create lots of unnecessary and indeed misleading xml:lang="" attributes. 
This seems unnecessarily confusing.

Furthermore, the addition of extra xml:lang attributes in unpexpected 
places may mess up validation, since most schema languages require these 
attributes to be declared like any others.

I still prefer giving no special treatment to xml:lang compared to any 
other attribute.

--
Elliotte Rusty Harold

Transition history

raised on 4 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
declined on 16 Jun 2004

xml:lang="" attributes in this situation are by design. XInclude provides no feature for changing language information during inclusion, only for preserving it.

Acknowledgment cycle
announced by group on 7 Jul 2004

xi-7: xml:lang when replacing the root element [link to this issue]

Section 4.5.6 of the CR states:

Each */element information item/* in the top-level included items 
<http://www.w3.org/TR/xinclude/#dt-top-level-included-items> which has a 
different value of *[language]* than its include parent 
<http://www.w3.org/TR/xinclude/#dt-include-parent> has an */attribute 
information item/* added to its *[attributes]* property. This attribute 
has the following properties:

What if the include parent is a document, not an element? in other 
words, what if the root element is an xi:include element? The current 
language suggests that no xml:lang attribute would be added in this 
case, but I doubt that's the intent.

Transition history

raised on 4 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
agreed on 16 Jun 2004

Fix it to make sure the language is propagated in this case.

Acknowledgment cycle
announced by group on 9 Jul 2004

xi-8: Case insensitive comparison of xml:lang values [link to this issue]

This is an important point but one that's easy to fix. According to RFC 
3066, language "tags are to be treated as case insensitive; there exist conventions for capitalization of some of them, but these should not be taken to carry meaning." However, this is not consistent with language fixup in the XInclude CR which states, "Each element information item in the top-level included items <http://www.w3.org/TR/xinclude/#dt-top-level-included-items> which has a different value of [language] than its include parent <http://www.w3.org/TR/xinclude/#dt-include-parent> has an attribute information item added to its [attributes] property"

This should be rewritten to make it clear that this comparison is case insensitive.
fr-ca and FR-CA are the same thing, for example. 

Transition history

raised on 4 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
agreed on 16 Jun 2004

Perform the comparison in a case-insensitive manner (and create languages as specified in the included document, leaving its case alone).

Acknowledgment cycle
announced by group on 9 Jul 2004

xi-9: Editorial: must not vs. fatal error [link to this issue]

Section 3.1 states:

Fragment identifiers must not <http://www.w3.org/TR/xinclude/#dt-must> 
be used.

However, section 6.2 states:

An application conforms to XInclude if it:

    *

      supports [XML 1.0] <http://www.w3.org/TR/xinclude/#XML>,
      [Namespaces in XML] <http://www.w3.org/TR/xinclude/#XMLNS>, the
      [XML Information Set] <http://www.w3.org/TR/xinclude/#XMLIS>, [XML
      Base] <http://www.w3.org/TR/xinclude/#XMLBase>, the [XPointer
      Framework] <http://www.w3.org/TR/xinclude/#XPCore>, and the
      [XPointer element() scheme] <http://www.w3.org/TR/xinclude/#XPElement>

    *

      stops processing when a fatal error
      <http://www.w3.org/TR/xinclude/#dt-error> is encountered.

    *

      observes the mandatory conditions (must
      <http://www.w3.org/TR/xinclude/#dt-must>) set forth in this
      specification, and for any optional conditions (should
      <http://www.w3.org/TR/xinclude/#dt-must> and may
      <http://www.w3.org/TR/xinclude/#dt-must>) it chooses to observe,
      observes them in the way prescribed

    *

      performs markup conformance testing according to all the
      conformance constraints appearing in this specification.

It seems to me that "must nots" and musts are intended to apply to 
processor behavior, whereas fatal errors normally describe document 
content. If this interpretation is correct, I think the "must not" in 
3.1.1 should instead be a fatal error. e.g.

It is a fatal error if a fragment identifier is used in the value of an 
href attribute.

If my interpretation of section 3.1 is not correct, and this is not a 
fatal error, then I would request that the spec further elaborate on 
what implementations are supposed to do when encountering a fragment ID 
in an href attribute.

Transition history

raised on 6 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
agreed on 23 Jun 2004

Already agreed to clarify fragment ids are a _fatal error_.

Acknowledgment cycle
announced by group on 5 Jul 2004

xi-10: URIs that end in # but don't have fragment IDs [link to this issue]

As I read RFC 2396, in a URI such as http://www.example.com/index.xml#name
the fragment identifier is "name". The sharp sign is not included in the 
fragment ID.

Section 3.1 of the XInclude CR says that fragment IDs must not be used 
in href attributes. However, is this legal?

<xi:include href="http://www.example.com/index.xml#"/>

My current reading of the spec is that this is legal. But should it be?

Transition history

raised on 6 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
agreed on 23 Jun 2004

URIs ending in # have an empty fragment, per the productions in 2396. We'll add a note clarifying that this is an error.

Acknowledgment cycle
announced by group on 12 Jul 2004
agreement by reviewer on 12 Jul 2004

xi-11: minor remark regarding appendix c [link to this issue]

hello.

in the xinclude cr document, appendix c uses the phrase "The infoset
resulting from resolving inclusions on this document is the same as that
of the following document" for examples 1 through 4. as i understand it,
the [language] property is optional, but the [include history] property
is mandatory. so, technically speaking, the infoset of the serialization
is not the (exact) same as that of the resolved inclusion. at least
that's what i think...

Transition history

raised on 7 Jun 2004 by Erik Wilde (net.dret@dret.net)
agreed on 23 Jun 2004

Add language explaining that the infoset is not quite the same due to include history.

Acknowledgment cycle
announced by group on 12 Jul 2004

xi-12: xml:lang implementation report [link to this issue]

Implementing the handling of xml:lang according to the latest CR is 
proving to be much more painful than I expected. It's doable, but it's 
going to require some nasty hacks. The big problem seems to occur 
whenever the XPointer implementation is decoupled from the XInclude 
implementation. The XInclude implementation knows what the current 
language is into which the nodes will be embedded but the XPointer 
implementation probably does not know this. Therefore the XPointer 
implementation cannot decide whether or not to add an xml:lang attribute 
to the nodes it returns because it doesn't know whether or not these are 
redundant. It might be a little easier to implement if the the XInclude 
implementation were allowed to add redundant xml:lang attributes rather 
than only ones that changed the language in effect. But overall, I'd 
really just prefer this language annotation to be dropped completely.

Transition history

raised on 5 Jun 2004 by Elliotte Harold (elharo@metalab.unc.edu)
declined on 23 Jun 2004

Inheritance is an important characteristic of xinclude (not just with xml:lang), and we don't think we can remove xml:lang at this time.

Acknowledgment cycle
announced by group on 12 Jul 2004
objection from reviewer on 12 Jul 2004
objection maintained by group on 18 Aug 2004

Maintained by XML Core Working Group.

Last update: $Date: 2004/09/17 15:53:54 $


This page was generated as part of the Extensible Issue Tracking System (ExIT)