<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/XML/2000/06spec/xmlspec-v20.xslt"?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification Version 2.0//EN"
                      "/XML/1998/06/xmlspec-v21.dtd" [
<!ENTITY year "2000">
<!ENTITY month "October">
<!ENTITY MM "10">
<!ENTITY day "26">
<!ENTITY MMDD "&MM;&day;">
<!ENTITY includens "xinclude">
<!ENTITY includensuri "http://www.w3.org/1999/XML/xinclude">
<!ENTITY internalXInclude "http://www.w3.org/XML/Group/&year;/&MM;/WD-xinclude-&year;&MMDD;">
<!ENTITY externalXInclude "http://www.w3.org/TR/&year;/WD-xinclude-&year;&MMDD;">
<!ENTITY XInclude "&externalXInclude;">

<!-- DTD Extensions -->
<!ENTITY % local.list.class "|options-list">
<!ELEMENT options-list (item+)>
<!ATTLIST options-list
          diff    (chg|add|del|off) #IMPLIED          role    NMTOKEN           #IMPLIED          id      ID                #IMPLIED
          spacing (normal|compact)  #IMPLIED>
<!ATTLIST resolution          href    CDATA             #IMPLIED>
]>
<spec>
<header>
  <title>XML Inclusions (XInclude)</title>
  <version>Version 1.0</version>
  <w3c-designation>xinclude-&year;&MMDD;</w3c-designation>
  <w3c-doctype>W3C Working Draft</w3c-doctype>
  <pubdate><day>&day;</day><month>&month;</month><year>&year;</year></pubdate>
  <publoc>
   <loc href="&XInclude;">&XInclude;</loc>
   <loc role="available-format" href="&XInclude;/Overview.html">HTML</loc>
   <loc role="available-format" href="&XInclude;/Overview.xml">XML</loc>
  </publoc>
  <latestloc>
   <loc href="http://www.w3.org/TR/xinclude">http://www.w3.org/TR/xinclude</loc>
  </latestloc>
  <prevlocs>
   <loc href="http://www.w3.org/TR/2000/WD-xinclude-20000717">http://www.w3.org/TR/2000/WD-xinclude-20000717</loc>
   <!--loc href="http://www.w3.org/TR/2000/WD-xinclude-20000322">http://www.w3.org/TR/2000/WD-xinclude-20000322</loc-->
   <!--loc href="http://www.w3.org/TR/1999/NOTE-xinclude-19991123">http://www.w3.org/TR/1999/NOTE-xinclude-19991123</loc-->
  </prevlocs>
  <authlist>
  <author>
    <name>Jonathan Marsh</name>
    <affiliation>Microsoft</affiliation>
    <email href="mailto:jmarsh@microsoft.com">jmarsh@microsoft.com</email>
  </author>
  <author>
    <name>David Orchard</name>
    <affiliation>Jamcracker</affiliation>
    <email href="mailto:dorchard@jamcracker.com">dorchard@jamcracker.com</email>
  </author>
  </authlist>

  <status>
    <p>The <loc href="http://www.w3.org/XML/Activity#core-wg">XML Core Working
    Group</loc>, with this &year;&#160;&month;&#160;&day; XInclude
    working draft, invites comment on this specification.</p>

    <p>The W3C Membership and other interested parties are invited to review
    the specification, provide comment, and report early implementation 
    experience. The area of work covered by this specification was outlined 
    in the XML Inclusion Proposal (XInclude), W3C Note of 23 November 1999 
    <bibref ref="XInclude-note"/>. The purpose of publishing this draft is 
    to update the community on our progress in this area and to solicit 
    feedback on the current draft. It should be noted that the WG plans to 
    take this specification to a Last Call review in the near future.</p>

    <p>While the WG has decided to publish this working draft, <loc 
    href="#open-issues">outstanding issues</loc> remain as noted in 
    the draft.  Based on feedback from the user community, this draft
    has returned to the element-based syntax of the March 22nd working
    draft.</p>

    <p>Comments on this document should be sent to
    <loc href="mailto:www-xml-xinclude-comments@w3.org">www-xml-xinclude-comments@w3.org</loc>, 
    which is
    <loc href="http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/">publicly archived</loc>. 
    While we welcome implementation experience reports, the 
    <loc href="http://www.w3.org/XML/Activity#core-wg">XML Core Working 
    Group</loc> will not allow early implementation to constrain its ability 
    to make changes to this specification prior to final release.</p>
    
    <p>It is inappropriate to use W3C Working Drafts as reference material 
    or to cite them as other than "work in progress". A list of current W3C 
    working drafts can be found at 
    <loc href="http://www.w3.org/TR/">http://www.w3.org/TR/</loc>.</p>

  </status>

  <abstract>
    <p>This document specifies a processing model and syntax for general 
    purpose inclusion.  Inclusion is accomplished by merging a 
    number of XML Infosets into a single composite Infoset.  Specification 
    of the XML documents (infosets) to be merged and control over the 
    merging process is expressed in XML-friendly syntax (elements, attributes, 
    URI References).</p>
  </abstract>

  <langusage>
    <language id="EN">English</language>
  </langusage>
  <revisiondesc>
    <slist>
      <sitem>February 28, 2000: First Working Draft.</sitem>
      <sitem>July 5, 2000: Second Working Draft.</sitem>
    </slist>
  </revisiondesc>

</header>

<body>
<div1 id="intro">
  <head>Introduction</head>

  <p>Many programming languages provide an inclusion mechanism to 
  facilitate modularity.  Markup languages also often have need of 
  such a mechanism.  This proposal introduces a generic mechanism
  for merging XML documents (as represented by their information sets)
  for use by applications that need such a facility.  The syntax 
  leverages existing XML constructs - elements, attributes, and URI 
  references.</p>
  
  <p>The requirements used to guide the development of XInclude
  may be found in the XML Inclusion Proposal W3C Note of 23 November 1999 
  <bibref ref="XInclude-note"/>.</p>
  
  <div2>
    <head>Relationship to XLink</head>
  
    <p>XInclude differs from the linking features described in the XML 
    Linking Language <bibref ref="XLink"/>, specifically links with the 
    attribute value <code>show="embed"</code>.  Such links provide
    a media-type independent syntax for indicating that a resource
    is to be embedded graphically within the display of the document.
    XLink does not specify a specific processing model, but simply
    facilitates the detection of links and recognition of associated 
    metadata by a higher level application.</p>
    
    <p>XInclude, on the other hand, specifies a media-type specific
    (XML into XML) transformation.  It defines a specific processing
    model for merging information sets.  XInclude processing occurs
    at a low level, often by a generic XInclude processor which makes 
    the resulting information set available to higher level 
    applications.</p>
    
    <p>Simple node inclusion as described in this specification 
    differs from transclusion, which preserves contextual 
    information such as style.</p>
  </div2>
  
  <div2>
    <head>Relationship to XML External Entities</head>
  
    <p>There are a number of differences between XInclude and
    XML external entities <bibref ref="XML"/> which make them 
    complementary technologies.</p>
    
    <p>Processing of external entities (as with the rest of DTDs)
    occurs at parse time.  XInclude operates on information sets 
    and thus is orthogonal to parsing.</p>

    <p>Declaration of external entities requires a DTD or internal subset.
    This places a set of dependencies on inclusion, for instance, the syntax
    for the DOCTYPE declaration requires that the document element be named - 
    clearly orthogonal to inclusion in many cases.  Validating parsers
    must have a complete content model defined.  XInclude is orthogonal 
    to validation and the name of the document element.</p>

    <p>External entities provide a level of indirection - the external
    entity must be declared and named, and separately invoked.
    XInclude uses direct references.  Applications which generate 
    XML output incrementally can benefit from not having to pre-declare 
    inclusions.</p>

    <p>The syntax for an internal subset is cumbersome to many authors
    of simple well-formed XML documents.  XInclude syntax is based on
    familiar XML constructs.</p>
    
<!-- (Provisionally removed)
    <p>Note also that XInclude together with XPointer <bibref ref="XPointer"/>
    can replace certain forms of internal entities, although XInclude 
    syntax is not optimized for this purpose.</p>
-->
  </div2>

  <div2>
    <head>Relationship to DTDs</head>
  
    <p>XInclude defines no relationship to DTD validation.  XInclude
    describes an infoset-to-infoset transformation and not a change
    in XML 1.0 parsing behavior.  XInclude does not define a
    mechanism for DTD validation of the resulting infoset.</p>
  </div2>

  <div2>
    <head>Relationship to XML Schemas</head>
  
    <p>XInclude defines no relationship to the augmented infosets
    produced by applying an XML Schema.  Such an augmented infoset
    can be supplied as the input infoset, or such augmentation may
    be applied to the infoset resulting from the inclusion.</p>
  </div2>

  <div2>
    <head>Relationship to Grammar-Specific Inclusions</head>
  
    <p>Special-purpose inclusion mechanisms have been introduced
    into specific XML grammars.  XInclude provides a generic mechanism 
    for recognizing and processing inclusions, and as such can offer
    a simpler overall authoring experience, greater performance, and 
    less code redundancy.</p>
  </div2>
</div1>

<div1>
  <head>Terminology</head>
  
  <p><termdef id="dt-must" term="Must, May, etc.">The key words 
  <term>must</term>, <term>must not</term>, <term>required</term>,
  <term>shall</term>, <term>shall not</term>, <term>should</term>, 
  <term>should not</term>, <term>recommended</term>, <term>may</term>, 
  and <term>optional</term> in this specification are to be interpreted 
  as described in <bibref ref="RFC2119"/>.</termdef></p>
  
</div1>

<div1 id="processing">
  <head>Processing Model</head>

  <p>Inclusion as defined in this document is a specific type of 
  XML Information Set <bibref ref="XMLIS"/> transformation.</p>
  
  <p><termdef id="dt-source-infoset" term="source infoset">The 
  input for the inclusion transformation consists of a <term>source 
  infoset</term></termdef>.
  <termdef id="dt-result-infoset" term="result infoset">The output,
  called the <term>result infoset</term>, is a new infoset which 
  merges the source infoset with the infosets of resources identified 
  by URI references appearing in include elements</termdef>.  Thus a 
  mechanism to resolve URIs and return the identified resources as 
  infosets is assumed.  Well-formed XML entities that do not have 
  defined infosets (e.g. an external entity file with multiple 
  top-level elements) are outside the scope of this specification, 
  either for use as a <termref def="dt-source-infoset">source 
  infoset</termref> or the <termref def="dt-result-infoset">result 
  infoset</termref>.</p>

  <p>Inclusion is indicated by the presence of 
  <termref def="dt-include-element">include elements</termref>
  in the source infoset.
  <termdef id="dt-include-element" term="include element">An
  <term>include element</term> is any element matching the 
  syntactic requirements set forth in this specification.</termdef>
  <termdef id="dt-included-items" term="included items">The  
  information items located by the include element's URI reference
  are called the <term>included items</term></termdef>.  The 
  <termref def="dt-result-infoset">result infoset</termref> is 
  essentially a copy of the <termref def="dt-source-infoset">source 
  infoset</termref>, with each
  <termref def="dt-include-element">include element</termref>,
  replaced by its corresponding
  <termref def="dt-included-items">included items</termref>.</p>
    
  <div2>
    <head>The Include Location</head>

    <p>The value of the <att>href</att> attribute is interpreted as
    a URI reference. The set of characters allowed in an <att>href</att> 
    attribute is the same as for XML, namely <bibref ref="Unicode"/>. 
    However, some Unicode characters are disallowed from URI references, 
    and thus processors <termref def="dt-must">must</termref> encode and 
    escape these characters to obtain a valid URI reference from the
    attribute value.</p>

    <p>The disallowed characters include all non-ASCII characters, 
    plus the excluded characters listed in Section 2.4 of 
    <bibref ref="RFC2396"/>, except for the number sign (#) and percent 
    sign (%) characters and the square bracket characters re-allowed 
    in <bibref ref="RFC2732"/>.  Disallowed characters 
    <termref def="dt-must">must</termref> be escaped as follows:</p>

    <olist>
      <item><p>Each disallowed character is converted to UTF-8 <bibref ref="RFC2279"/>
        as one or more bytes.</p></item>
      <item><p>Any octets corresponding to a disallowed character are escaped 
        with the URI escaping mechanism (that is, converted to %HH, where HH 
        is the hexadecimal notation of the byte value).</p></item>
      <item><p>The original character is replaced by the resulting character
        sequence.</p></item>
    </olist>

    <p>The base URI for relative URIs is the base URI of the 
    <termref def="dt-include-element">include element</termref> as 
    specified in XML Base <bibref ref="XMLBase"/>.
    <termdef id="dt-include-location" term="include location">The 
    URI resulting from resolution to absolute URI form is called 
    the <term>include location</term>.</termdef></p>
  </div2>
  
  <div2>
    <head>Included Items when parse="xml"</head>

    <p>When <code>parse="xml"</code>, the 
    <termref def="dt-include-location">include location</termref>
    is dereferenced and the resource is fetched.  
    This resource is treated as an XML resource, and is parsed into 
    an information set.
    <termdef id="dt-acquired-infoset" term="acquired infoset"><termref def="dt-include-element">Include 
    elements</termref> in this infoset are recursively processed
    to create the <term>acquired infoset</term>.</termdef></p>
    
    <issue id="XInclude-70-time-dependent-resources">
      <p>URIs accessed at different times (say, during an "XInclude 
      run" on two identical include elements in the same document) 
      may produce different results.  Do we need to say anything 
      about this?</p>
    </issue>
    
    <p>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, or a syntax error in an XPointer)
    result in an error. Resources that contain non-well-formed XML 
    result in an error.</p>

    <issue id="XInclude-58-invalid-xml">
      <p>This implies the use of a non-validating parser, or at least
      makes no provision for surfacing of validation errors.  Is this 
      underspecified?</p>
    </issue>
    
    <p>The fragment part of the URI reference is interpreted as
    an XPointer <bibref ref="XPointer"/> when <code>parse="xml"</code>.
    The XPointer indicates that a subresource, or part of the
    acquired resource, is the target for inclusion.</p>
    
    <issue id="XInclude-68-mime-xpointer">
      <p>When are XPointers allowed?  When the resource is of type
      text/xml or application/xml?  Or when parse="xml"?</p>
    </issue>

    <issue id="XInclude-69-non-xpointer-fragments">
      <p>What is the behavior of fragments for non-XML resources?
      Do we ignore fragments which aren't XPointers or do we
      throw an error?</p>
    </issue>

    <p>The set of <termref def="dt-included-items">included items</termref>
    is derived from the <termref def="dt-acquired-infoset">acquired
    infoset</termref> as follows:</p>
    
    <div3>
      <head>Document Information Items</head>
      
      <p>An <termref def="dt-include-location">include location</termref>
      might identify the document node (for instance, a URI reference
      without an XPointer, or an XPointer specifically locating the
      document root.  In this case, the set of 
      <termref def="dt-included-items">included items</termref> is 
      the <emph role="infoset-property">children</emph> of the <termref def="dt-acquired-infoset">acquired
      infoset's</termref> document information item, except for the 
      document type declaration information item child, if one 
      exists.</p>
      
      <issue id="XInclude-60-top-level-whitespace">
        <p>The Infoset does not provide for whitespace
        outside the document element to be preserved.  Accordingly, this
        whitespace will be stripped by XInclude.  If this isn't
        desirable, the Infoset will have to make provision to
        expose the whitespace.</p>
      </issue>
      
      <issue id="XInclude-61-wrap-document">
        <p>Do we wrap this in a document entity to
        preserve base URI and charset?  What is the relationship
        between the document information item and the document
        entity?  The minimal infoset doesn't have to have a document
        entity.</p>
      </issue>
      
      <ednote><edtext>Add example of ignorable and non-ignorable whitespace.</edtext></ednote>

      <issue id="XInclude-56-doctype">
        <p>You don't state (as far as I could tell) what should happen to
        doctype nodes in included documents. 
        [Donald Ball <loc href="http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Jul/0014.html">http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Jul/0014.html</loc>].</p>
      </issue>
       
    </div3>
    
    <div3>
      <head>Multiple Nodes</head>
      
      <p>An <termref def="dt-include-location">include location</termref>
      with an XPointer might identify a subresource that consists of 
      more than a single node.  In this case the set of
      <termref def="dt-included-items">included items</termref> is the
      set of information items from the 
      <termref def="dt-acquired-infoset">acquired infoset</termref> 
      corresponding to the nodes referred to by the XPointer, in the 
      order in which they appear in the acquired infoset.</p>
      
      <p>If the document element in the source infoset is an 
      include element, it is an error to attempt to replace it with 
      more than a single element.</p>

    </div3>

    <div3>
      <head>Range Locations</head>
      
      <p>An <termref def="dt-include-location">include location</termref>
      with an XPointer might identify a location set that represents 
      a range or a set of ranges.</p>
      
      <p>Each range corresponds to a set of information items in the
      <termref def="dt-acquired-infoset">acquired infoset</termref>.
      <termdef term="selected" id="dt-selected">An information item 
      is said to be <term>selected</term> by a range if it occurs 
      after (in document order) the starting point of the range and 
      before the ending point of the range.</termdef>
      <termdef term="partially selected" id="dt-partially-selected">An 
      information item is said to be <term>partially selected</term> by 
      a range if it contains only the starting point of the range, or 
      only the ending point of the range.</termdef>  By definition, a 
      character information item cannot be
      <termref def="dt-partially-selected">partially selected</termref>.</p>
      
      <p><termdef id="dt-potentially-included" term="potentially included">An information item is 
      <term>potentially included</term>
      if it is either selected <termref def="dt-selected">selected</termref> 
      or <termref def="dt-partially-selected">partially selected</termref> 
      by the range.</termdef>  The <emph role="infoset-property">children</emph> property of 
      <termref def="dt-selected">selected</termref> information items 
      is not modified.  The <emph role="infoset-property">children</emph> property of 
      <termref def="dt-partially-selected">partially selected</termref> 
      information items is the set of information items that are 
      in turn either <termref def="dt-selected">selected</termref> or
      <termref def="dt-partially-selected">partially selected</termref>,
      and so on.</p>
      
      <p>The set of <termref def="dt-included-items">included items</termref> 
      is the union, in document order with duplicates removed, of the
      <termref def="dt-potentially-included">potentially included</termref>
      information items corresponding to each range.</p>
      
    </div3>

    <div3>
      <head>Element, Cmment, and Processing Instruction Information Items</head>

      <p>An <termref def="dt-include-location">include location</termref>
      that contains an XPointer might identify an element node, a
      comment node, or a processing instruction node, respectively
      representing an element information item, a comment information
      item, or a processing instruction information item. In this case 
      the set of <termref def="dt-included-items">included items</termref>
      consists of the information item corresponding to the element, 
      comment, or processing instrution node in the 
      <termref def="dt-acquired-infoset">acquiring infoset</termref>.</p>
    </div3>

    <div3>
      <head>Attribute and Namespace Declaration Information Items</head>
      <p>An <termref def="dt-include-location">include location</termref>
      that contains an XPointer might identify an attribute node or
      a namespace node.  Identifying such a node is an error.</p>
    </div3>
  
    <div3>
      <head>Encodings</head>
      <p>Note that the character encodings of the including and included
      resources can be different.  This does not affect the resulting
      infoset, but may need to be taken into account during any subsequent
      serialization.</p>
      
      <issue id="XInclude-67-determining-encoding">
        <p>When a document is fetched using HTTP, it may have an encoding
        value in the HTTP header.  When a document that is fetched by
        that or any other means is an XML document, it may (but need not)
        contain an &lt;?xml?&gt; declaration specifying an encoding.  But if
        a document is fetched by nfs:, afs:, file:, ftp:, and does not
        contain an &lt;?xml ... encoding='...'?&gt; declaration or is to be
        included as text, what encoding does it use?</p>
        
        <p>There is a clear need for xinclude:encoding
 	      The value of this attribute is an EncName as defined in
 	      XML 1.0 spec., section 4.3.3, rule [81], specifying how
 	      the resource is to be translated.
        [<loc href="http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Jul/0021.html">http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Jul/0021.html</loc>]</p>
      </issue>
    </div3>

    <div3>
      <head>Inclusion Loops</head>

      <p>When recursively processing an <termref def="dt-include-element">include 
      element</termref>, it is an error to process an include element 
      with an <termref def="dt-include-location">include location</termref>
      that has already been processed in the inclusion chain.</p>
      
      <issue id="XInclude-59-include-location-simplification">
        <p>This reuses the definition of 'include location', which is
        both absolutized and canonicalized.  We previously decided only
        absolutization was necessary.  Is character escaping harmful
        in this case?  It simplifies the spec...</p>
      </issue>
        
      <p>In other words, the following are all legal:</p>
        
      <ulist>
        <item><p>An include element with a <code>parse="text"</code> 
          attribute <termref def="dt-must">may</termref> reference the 
          document containing the include element.</p></item>
        <item><p>An include element <termref def="dt-must">may</termref> 
          identify a different part of the same local resource.</p></item>
        <item><p>Two non-nested include elements <termref def="dt-must">may</termref> 
          identify a resource which itself contains an include element.</p></item>
      </ulist>

      <p>The following are illegal:</p>
        
      <ulist>
        <item><p>An include element with a <code>parse="xml"</code>
          (or no specified parse value) pointing to itself or any 
          ancestor thereof.</p></item>
        <item><p>An include element pointing to any include
          element or ancestor thereof which has already been processed 
          at a higher level.</p></item>
      </ulist>

    </div3>

  </div2>

  <div2>
    <head>Included Items when parse="text"</head>
    
    <p>When <code>parse="text"</code>, the 
    <termref def="dt-include-location">include location</termref>
    is dereferenced and the resource is fetched.  This resource is
    treated as a plain text resource.</p>
    
    <p><termdef id="dt-selected-range" term="selected range">A range 
    of characters (the <term>selected range</term>) may be identified
    by a fragment identifier.</termdef>  The syntax of the fragment 
    identifier is interpreted using the syntax of the fragment 
    identifier for the media type text/plain.  In the absence of a 
    fragment identifier, the <termref def="dt-selected-range">selected 
    range</termref> contains all the characters in the document.</p>
    
    <note>
      <p>There is currently no standard defining fragment identifiers
      for the media type text/plain.  So it is currently an error
      to specify a fragment identifier when <code>parse="text"</code>.</p>
    </note>
    
    <p>The set of characters in the <termref def="dt-selected-range">selected 
    range</termref> is converted to a set of
    <termref def="dt-included-items">included items</termref> as
    follows:</p>
    
    <ulist>
      <item>
        <p>An entity start marker information item.  The <emph role="infoset-property">entity</emph>
        property is set to an <emph role="info-item">entity declaration information item</emph> 
        with the following property values:</p>
        <ulist>
          <item><p><emph role="infoset-property">entity type</emph> is "external general entity".</p>
            <issue id="XInclude-66-entity-type">
              <p>This seems a bit untrue.  Should we define a new
              type of entity instead of reusing an old one?</p>
            </issue>
          </item>
          <item><p><emph role="infoset-property">name</emph> is null.</p></item>
          <item><p><emph role="infoset-property">system identifier</emph> is the <termref def="dt-include-location">include 
            location</termref> for the include.</p></item>
          <item><p><emph role="infoset-property">public identifier</emph> is null.</p></item>
          <item><p><emph role="infoset-property">base URI</emph> is the <termref def="dt-include-location">include 
            location</termref> for the include.</p></item>
          <item><p><emph role="infoset-property">notation</emph> is null. </p></item>
          <item><p><emph role="infoset-property">content</emph> is null. </p></item>
          <item><p><emph role="infoset-property">charset</emph> The name of the character encoding in which
            the entity is expressed. </p>
            <issue id="XInclude-62-text-encoding">
              <p>How is the encoding determined for text?  We don't want
              to look inside the text for a format-specific indication.  Is it
              adequate to state "This property is derived from a MIME 
              header"?</p>
            </issue>
          </item>
        </ulist>
      </item>
      <item>
        <p>For each character in the <termref def="dt-selected-range">selected range</termref>,
        a <emph role="info-item">character information item</emph> is created.  The <emph role="infoet-property">character code</emph> 
        is set to the character code representing the character in
        ISO 10646 encoding.  The <emph role="infoset-property">element content whitespace</emph> flag 
        is set to false.</p>
      </item>
      <item>
        <p>An <emph role="info-item">entity end marker information item</emph>.  The <emph role="infoset-property">entity</emph>
        property is set to the <emph role="infoset-property">entity</emph> property of the corresponding
        entity start marker.</p>
      </item>
    </ulist>
    
    <p>Resources that resolve to something other than text when 
    <code>parse="text"</code> result in an error.</p>

    <issue id="XInclude-45-fail-text">
      <p>It is easy to see how to fail a non-xml resource - it's not
      well-formed. Is there a similarly well-defined mechanism for 
      determining the success of a parse="text" inclusion?  Or do
      we need to rely on the media type text/*?  (We intentionally
      don't rely on text/xml, as we want to enable things like
      image/svg.)</p>
    </issue>

  </div2>
  
  <div2>
    <head>Creating the Result Infoset</head>
    
    <p>The result infoset is a copy of the source infoset,
    with each include element replaced as follows:</p>
    
    <p>The information item for the include element is found.
    <termdef id="dt-include-parent" term="include parent">The
    <emph role="infoset-property">parent</emph> property of this item refers to an information
    item called the <term>include parent</term>.</termdef>
    The <emph role="infoset-property">children</emph> property of the 
    <termref def="dt-include-parent">include parent</termref>
    is modified by removing the include element information item
    from it.  In place of the include element, the following 
    information items are inserted in order:</p>
    
    <ulist>
      <item>
        <p>An <termref def="dt-include-start-marker">Include Start 
        Marker</termref> information item.  The <emph role="infoset-property">parent</emph> property 
        of this item is set to the 
        <termref def="dt-include-parent">include parent</termref>.  
        The <emph role="infoset-property">include element</emph> property is set to the information
        item representing the include element.</p>
      </item>
      <item>
        <p>The <termref def="dt-included-items">included items</termref>.
        The <emph role="infoset-property">parent</emph> property of each included item is set to the
        <termref def="dt-include-parent">include parent</termref>.</p>
      </item>
      <item>
        <p>An <termref def="dt-include-end-marker">Include End 
        Marker</termref> information item.  The <emph role="infoset-property">parent</emph> property 
        of this item is set to the 
        <termref def="dt-include-parent">include parent</termref>.  
        The <emph role="infoset-property">include element</emph> property is set to the information
        item representing the include element.</p>
      </item>
    </ulist>    

    <p>Iintra-document references within include elements 
    <termref def="dt-must">must</termref> be resolved against the 
    source infoset.  The effect of this is that the order in which 
    include elements are processed does not affect the result.</p>
    
    <p>In the following example, the second include always points to 
    the first &lt;&includens;:include&gt; element and not to itself,
    regardless of the order in which the includes are processed.</p>
    
    <eg>&lt;x xmlns:xinclude="&includensuri;"&gt;
  &lt;&includens;:include href="something.xml"/&gt;
  &lt;&includens;:include href="#xpointer(x/&includens;:include[1])"
             parse="text"/&gt;
&lt;/x&gt;</eg>
  
    <issue id="XInclude-57-sax">
      <p>In section 3.1 you
      state that internal xpointer references must be resolved against the
      original source document. That's not so hard to do in DOM (though
      expensive if you do it merely by cloning the original document) but I
      think it's going to be quite tricky to do it in SAX.
      [Donald Ball <loc href="http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Jul/0014.html">http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Jul/0014.html</loc>].</p>
    </issue>

    <issue id="XInclude-36-infoset-entities">
      <p>The infoset exposes entity information items
      <loc href="http://www.w3.org/TR/xml-infoset#infoitem.entity">http://www.w3.org/TR/xml-infoset#infoitem.entity</loc>.
      XInclude does not define whether entity information items are copied via
      the infoset or not.</p>
      <options-list>
        <item><p>Leave unspecified.</p></item>
        <item><p>Specify that entities are copied from infoset to infoset.</p></item>
        <item><p>Specify that entities are not copied from infoset to infoset.</p></item>
      </options-list>
    </issue>

    <issue id="XInclude-55-entity-fixup">
      <p>But it occurs to me that if entity start/ends are preserved by
      xinclusion, then dummy entity start/end items should be inserted
      around the included nodes to ensure that they are balanced (in the
      same way that unbalanced element structure gets fixed up). 
      [Richard Tobin: <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0017.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0017.html</loc>
      (W3C Members only)]</p>
    </issue>
  
    <div3>
      <head>Properties Preserved by the Infoset</head>
      
      <p>As an infoset transformation, XInclude operates on the
      logical structure of XML documents, not on their text
      serialization.  All properties of an information item
      other than those specifically modified by this proposal
      are preserved during inclusion.</p>
      
      <div4>
        <head>Namespace Declarations</head>
        <p>A source infoset might contain <emph role="info-item">namespace declaration information items</emph>.  
        The namespace URI property is considered to
        be part of the <emph role="info-item">element information item</emph>, and merging infosets 
        preserves the namespace of the item.  This can result in a 
        different result than a simple cut and paste of XML text source.  
        A serialized result infoset might contain additional 
        namespace declarations when including a sub-resource.</p>
      
        <p>For example, the following document:</p>

<eg><![CDATA[<foo xmlns:x="uri1">
 <xinclude:include href="common.xml#xptr(a/b)"/>
</foo>]]></eg>

        <p>including a node from common.xml:</p>

<eg><![CDATA[<a xmlns:x="uri2">
  <b>
    <x:a/>
  </b>
</a>]]></eg>

        <p>results in a document that could be serialized as:</p>

<eg><![CDATA[<foo xmlns:x="uri1">
  <b xmlns:x="uri2">
    <x:a/>
  </b>
</foo>]]></eg>

        <p>This differs from a text-level copy and paste in that it 
        retains the integrity of the items from the uri2 namespace.  
        A straight copy and paste could result in either the remapping 
        of element names to an unintended namespace, or a document that 
        is not well-formed with respect to namespaces.</p>

        <p>Serialization, and specifically where additional namespace
        declarations might appear, is not constrained by this 
        specification.</p>

        <issue id="XInclude-52-infoset-properties">
          <p>We specifically say that the namespace name property of an 
          element is preserved when the infosets are merged.  What about 
          the in-scope namespaces property?  This seems to be needed so that 
          qnames in the included nodes can be resolved.  What about the 
          "declared namespaces" property?  More generally, should there be 
          a list of infoset properties that must be preserved or deleted?</p>
        </issue>

        <issue id="XInclude-63-accidental-scoping">
          <p>If we preserve the in-scope namespaces property, we may encounter
          the situation where an element has fewer in-scope namespaces than its
          parent.  There is no syntax for "undeclaring" namespaces.  If a result
          infoset is serialized and then reparsed, it will not be identical to
          the original result infoset.  On the other hand, it is unlikely 
          (impossible) that any of the extra in-scope namespaces will 
          actually be referred to within the included context.  Are there 
          any situations where this information is harmful?</p>
        </issue>
      </div4>

      <div4>
        <head>Base URI</head>

        <p>The base URI property of the acquired infoset is not changed as 
        a result of merging the infoset, and remains unchanged after merging.
        Thus relative URI references in the included infoset resolve to the same
        URI despite being included into a document with a potentially
        different base URI in effect.  A serialized result infoset may
        need to add <att>xml:base</att> attributes to indicate this fact.</p>
      </div4>
    </div3>

  </div2>

  <div2>
    <head>Infoset Extensions</head>
    
    <div3>
      <head>Include Start Marker</head>
      
      <p><termdef id="dt-include-start-marker" term="include start marker">An 
      <term>include start marker</term> information item marks the start
      of a set of information items resulting from an inclusion.</termdef></p>

      <p>An <termref def="dt-include-start-marker">include start 
      marker</termref> information item has the following properties:</p>

      <glist>
        <gitem>
          <label><emph role="infoset-property">include element</emph></label>
          <def><p>The <emph role="info-item">element information item</emph> representing the
          <termref def="dt-include-element">include element</termref>
          causing the inclusion.</p></def>
        </gitem>
        <gitem>
          <label><emph role="infoset-property">parent</emph></label>
          <def><p>The <emph role="info-item">element information item</emph> which contains this 
          information item in its <emph role="infoset-property">children</emph> property.</p></def>
        </gitem>
      </glist>
    </div3>
    
    <div3>
      <head>Include End Marker</head>
      <p><termdef id="dt-include-end-marker" term="include end marker">An 
      <term>include end marker</term> information item marks the end
      of a set of information items resulting from an inclusion.</termdef></p>

      <p>An <termref def="dt-include-end-marker">include end 
      marker</termref> information item has the same properties as
      an <termref def="dt-include-start-marker">include start 
      marker</termref>.  The values of these properties is the same
      as those of the corresonding <termref def="dt-include-start-marker">include 
      start marker</termref>.</p>
    </div3>
  </div2>

</div1>
 
<div1 id="syntax">
  <head>Syntax</head>

  <p>XInclude defines a namespace associated with the URI 
  <loc href="&includensuri;">&includensuri;</loc>.  For convenience 
  the prefix "&includens;" is used within this specification
  to indicate this namespace URI.</p>

  <p>The XInclude namespace contains a single element,
  <code>&includens;:include</code>, which serves as the
  <termref def="dt-include-element">include element</termref>.
  This element has the following attributes:</p>

  <glist>
    <gitem>
      <label>href</label>
      <def><p>A URI Reference indicating the location of the resource 
        to include.  This attribute is required.</p></def>
    </gitem>

    <gitem>
      <label>parse</label>
      <def><p>An enumeration specifying whether or not to include the 
        resource as parsed XML or as text.  A value of "xml" indicates 
        that the resource <termref def="dt-must">must</termref> be 
        parsed as XML and the infosets merged.  A value of "text" 
        indicates that the resource <termref def="dt-must">must</termref> 
        be included as the contents of a text node.  This attribute
        is optional.</p>
        
        <issue id="XInclude-64-no-parse-attribute">
          <p><loc href="http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Aug/0000.html">
          http://lists.w3.org/Archives/Public/www-xml-xinclude-comments/2000Aug/0000.html</loc>:
          If xinclude:parse is optional, please be more explicit about what
          the default value is (now it's only specified in the DTD fragment).</p>
          
          <p>Suggested resolution:  Add 'When omitted, the value of 
          "xml" is implied (even in the absence of a default value 
          declaration).  Values other than "xml" and "parse" are errors.'</p>
        </issue>
      </def>
    </gitem>

    <gitem>
      <label>id</label>
      <def><p>The ID of this element.  This attribute is provided for
        convenience in addressing the include element.  For the id attribute
        to be recognized as of type ID, it must be so declared, for example,
        in a DTD.  This attribute is optional.</p>
      
        <issue id="XInclude-65-id-attribute">
          <p>As part of the return to element syntax, I re-introduced the ID
          attribute.  Is this OK?</p>
        </issue>
      </def>
    </gitem>

  </glist>
  
  <p>Attributes from other namespaces may be placed on the
  <code>&includens;:include</code> element.  Unqualified attribute
  names are reserved for future versions of this specification.</p>
  
  <p>The content of the <code>&includens;:include</code> element is
  not defined by this specification.</p>
  
  <p>The following DTD fragment illustrates a sample declaration for 
  the <code>&includens;:include</code> element:</p>
  
<eg>&lt;!ELEMENT include EMPTY&gt;
&lt;!ATTLIST &includens;:include
    xmlns:&includens; "&includensuri;"  #FIXED
    href           CDATA               #REQUIRED
    parse          (xml|text)          "xml"
    id             ID                  #IMPLIED
&gt;</eg>
   
  <issue id="XInclude-31-which-namespace">
    <p>The authors suggest that the <code>xml:</code> namespace should be 
    the namespace of the include element.  The use of the xml: namespace 
    allows all xml documents to reference the inclusion mechanism without 
    requiring additional namespace declarations to support inclusion.  As 
    inclusion is useful to most or all xml vocabularies, we suggest that 
    it is reasonable to add to the xml: namespace.</p>
      
    <options-list>
      <item><p>keep a separate namespace</p></item>
      <item><p>use the xml namespace. (Editors recommendation)</p></item>
    </options-list>
  </issue>
          
  <issue id="XInclude-71-versioning">
    <p>What is our versioning strategy?  Do we need features now,
    for example a version attribute, to enable XInclude 2.0?</p>
  </issue>
          
</div1>

<div1 id="conformance">
  <head>Conformance</head>

  <div2>
    <head>Markup Conformance</head>
    <p>An <emph role="info-item">element information item</emph> is XInclude-conformant if it 
    meets the syntactic requirements for include
    elements defined in this specification.  This specification
    imposes no particular constraints on DTDs; conformance applies
    only to elements and attributes.</p>
  </div2>
  
  <div2>
    <head>Application Conformance</head>
    <p>An application conforms to XInclude if it:</p>
    <ulist>
      <item><p>supports XML 1.0, XML Namespaces, the XML Information Set,
        and XML Base</p></item>
      <item><p>observes the mandatory conditions 
        (<termref def="dt-must">must</termref>) set forth in this 
        specification, and for any optional conditions
        (<termref def="dt-must">should</termref> and 
        <termref def="dt-must">may</termref>) it chooses to observe, observes 
        them in the way prescribed</p></item>
      <item><p>performs markup conformance testing according to all the
        conformance constraints appearing in this specification.</p></item>
    </ulist>

  </div2> 

</div1>
</body>

<back>
<div1 id="references">
<head>References</head>

<blist>
<bibl id="RFC2119" key="IETF RFC 2119" href="http://www.ietf.org/rfc/rfc2119.txt">
  <titleref href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119: Key words for use in RFCs to Indicate Requirement Levels</titleref>.
  Internet Engineering Task Force, 1997.
</bibl>

<bibl id="RFC2279" key="IETF RFC 2279" href="http://www.ietf.org/rfc/rfc2279.txt">
  <titleref href="http://www.ietf.org/rfc/rfc2279.txt">RFC 2279: UTF-8, a transformation format of ISO 10646</titleref>.
  Internet Engineering Task Force, 1998.
</bibl>

<bibl id="RFC2396" key="IETF RFC 2396" href="http://www.ietf.org/rfc/rfc2396.txt">
  <titleref href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396: Uniform Resource Identifiers</titleref>.
  Internet Engineering Task Force, 1995.
</bibl>

<bibl id="RFC2732" key="IETF RFC 2732" href="http://www.ietf.org/rfc/rfc2732.txt">
  <titleref href="http://www.ietf.org/rfc/rfc2732.txt">RFC 2732: Format for Literal IPv6 Addresses in URL's</titleref>.
  Internet Engineering Task Force, 1999.
</bibl>

<bibl id="Unicode" key="Unicode" href="http://www.unicode.org/unicode/standard/standard.html">
  The Unicode Consortium.
  <titleref href="http://www.unicode.org/unicode/standard/standard.html">The Unicode Standard.</titleref>
</bibl>

<bibl id="XML" key="XML" href="http://www.w3.org/TR/REC-xml">
  Tim Bray, Jean Paoli, and C.M. Sperberg-McQueen, editors. 
  <titleref href="http://www.w3.org/TR/REC-xml">Extensible Markup Language (XML) 1.0.</titleref>
  World Wide Web Consortium, 1998.
</bibl> 

<bibl id="XMLBase" key="XML Base" href="http://www.w3.org/TR/xmlbase">
  Jonathan Marsh, editor.
  <titleref href="http://www.w3.org/TR/xmlbase">XML Base</titleref>.
  World Wide Web Consortium, 1999.
</bibl>

<bibl id="XMLIS" key="XML Infoset" href="http://www.w3.org/TR/xml-infoset">
  John Cowan and David Megginson, editors.
  <titleref href="http://www.w3.org/TR/xml-infoset">XML Information Set</titleref>.
  World Wide Web Consortium, 1999.
</bibl>

<bibl id="XMLNS" key="XML Names" href="http://www.w3.org/TR/REC-xml-names/">
  Tim Bray, Dave Hollander, and Andrew Layman, editors.
  <titleref href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</titleref>.
  Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999.
</bibl>

<bibl id="XPointer" key="XPointer" href="http://www.w3.org/TR/xptr">
  Steve DeRose, Ron Daniel, Eve Maler, editors.
  <titleref href="http://www.w3.org/TR/xptr">XML Pointer Language (XPointer)</titleref>.
  World Wide Web Consortium, 1999.
</bibl>

</blist>
</div1>

<inform-div1>
<head>References</head>

<blist>
<bibl id="XInclude-note" key="XInclude" href="http://www.w3.org/TR/1999/NOTE-xinclude-19991123">
  Jonathan Marsh, David Orchard, editors. 
  <titleref href="http://www.w3.org/TR/1999/NOTE-xinclude-19991123">XML Inclusion Proposal (XInclude).</titleref>
  World Wide Web Consortium, 1999.
</bibl>
<bibl id="XLink" key="XLink" href="http://www.w3.org/TR/xlink/">
  Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. 
  <titleref href="http://www.w3.org/TR/xlink/">XML Linking Language (XLink).</titleref>
  World Wide Web Consortium, 2000.
</bibl>
</blist>

</inform-div1>

<inform-div1 id="examples">
<head>Examples</head>
<div2>
  <head>Basic Inclusion Example</head>
  
  <p>The following XML document contains an include element 
  which points to an external document.</p>

<eg><![CDATA[<?xml version='1.0'?>
<document xmlns:xinclude="http://www.w3.org/1999/XML/xinclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xinclude:include href="disclaimer.xml"/>
</document>]]></eg>

  <p>disclaimer.xml contains:</p>
  
<eg><![CDATA[<?xml version='1.0'?>
<disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>]]></eg>

  <p>The infoset resulting from resolving inclusions on this document
  could be serialized as:</p>

<eg><![CDATA[<?xml version='1.0'?>
<document xmlns:xinclude="http://www.w3.org/1999/XML/xinclude">
  <p>120 Mz is adequate for an average home user.</p>
  <disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
</document>]]></eg>

</div2>

<div2>
  <head>Range Inclusion Example</head>
  <p>The following illustrates the results of including a range
  specified by an XPointer.</p>

<eg><![CDATA[<?xml version='1.0'?>
<document>
  <p>The relevant excerpt is:</p>
  <quotation>
    <xinclude:include xmlns:xinclude="http://www.w3.org/1999/XML/xinclude"
       href="source.xml#xpointer(string-range(chapter/p[1],'Sentence 2') to 
                                 string-range(chapter/p[2]/i,'3.',0,11))"/>
  </quotation>
</document>]]></eg>

  <p>source.xml contains:</p>

<eg><![CDATA[<chapter>
  <p>Sentence 1.  Sentence 2.</p>
  <p><i>Sentence 3.  Sentence 4.</i>  Sentence 5.</p>
</chapter>]]></eg>

  <p>The infoset resulting from resolving inclusions on this document
  could be serialized as:</p>
  
<eg><![CDATA[<?xml version='1.0'?>
<document>
  <p>The relevant excerpt is:</p>
  <quotation>
    <p>Sentence 2.</p>
  <p><i>Sentence 3.</i></p>
  </quotation>
</document>]]></eg>

</div2>

<div2>
  <head>Textual Inclusion Example</head>
  <p>The following XML document includes a "working example" into
  a document.</p>

<eg><![CDATA[<?xml version='1.0'?>
<document xmlns:xinclude="http://www.w3.org/1999/XML/xinclude">
  <p>The following is the source of the "data.xml" file:</p>
  <example><xinclude:include href="data.xml" parse="text"/></example>
</document>]]></eg>

  <p>data.xml contains:</p>
  
<eg><![CDATA[<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Sheilds]]]]><![CDATA[></item>
</data>]]></eg>

  <p>The infoset resulting from resolving inclusions on this document
  could be serialized as:</p>
  
<eg><![CDATA[<?xml version='1.0'?>
<document xmlns:xinclude="http://www.w3.org/1999/XML/xinclude">
  <p>The following is the source of the "data.xml" file:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Sheilds]]&gt;&lt;/item&gt;
&lt;/data&gt;</example>
</document>]]></eg>

</div2>
</inform-div1>

<inform-div1 id="open-issues">
  <head>Open Issues List</head>
  
  <p>A tabulation of open issues flagged above follows:</p>

  <issue id="XInclude-72-next-number" status="closed">
    <p>Dummy issue used to record the next unused issue number.</p>
  </issue>
        
  <!-- resolved issues follow -->
  <issue id="XInclude-02-base-uri-syntax" status="closed">
    <p>A reserialised document will lose the base URL information; 
    do we need an [&includens;:base-url] attribute that can be added 
    to any element? [Richard Tobin]</p>
    <options-list>
      <item><p>This is a serialization issue that can be handled with xml:base.
        Wait and see how xml:base is integrated into the Infoset before revisiting
        this one.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0010.html">
      <p>Serialization is out of scope, close the issue with no change.</p>
    </resolution>
  </issue>

  <issue id="XInclude-03-nesting-optimization" status="closed">
    <p>The proposal implies that the destination documents are knitted before
    inclusion, which we agree is the right behaviour, but we need some way
    to optimise this (including an element which doesn't have any links in
    it, but is in a document which does, should not require following all
    the links in that document). [Richard Tobin]</p>
    <options-list>
      <item><p>Indicate that such optimization is allowed. (Editors recommendation)</p></item>
      <item><p>Indicate that such optimization must be performed - otherwise there
      may be subtle interoperability problems - for instance, including a subresource
      in a document that contains an illegal include.  A processor with no optimization
      will report an error, an optimized one won't.</p></item>
      <item><p>Do nothing - draft is clear enough.</p></item>
    </options-list>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0474.html">
      <p>Split into issues XInclude-50-processing-model and XInclude-51-nesting-switch.</p>
    </resolution>
  </issue>
          
  <issue id="XInclude-05-steps-violation" status="closed">
    <p>Do we leave remaining &includens;:includes alone at that point 
    or do we signal an error if any remain?  In other words, is this 
    an assertion of the max depth, or the definition of the max depth?</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>Remove the steps attribute.</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-06-shortcut-syntax" status="closed">
    <p>Should we investigate a shorthand for inclusion?  The syntax 
    for entity references is minimal (although the overhead of a DTD 
    is not), and may provide a model.</p>
      
    <p>David Orchard: External entites allow the definition and then 
    use of a resource, currenty defined in XML 1.0 DTDs.  A proposal 
    to combine XInclude and entities could involve the creation of 
    a Locator element that specifies a name and an href.  Similar to 
    the include-indirection-using-locators issue, &includens;:include 
    could add the attribute of eref (entityname) that specifies the
    name of a Locator element.  This would be used instead of href 
    when eref was present.  Then parse and steps are used as normal.
    &amp;name; means steps="1" and parse="xml", ie &amp;name; is short 
    for &lt;&includens;:include steps="1" parse="xml" ename="name"&gt;.
    This involves changing the xml 1.0 specification for name 
    references.</p>
   
    <p>Paul Prescod notes [<loc href="http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html">http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html</loc>
    (W3C Members only)]:
    "You guys are in the same jam as the XML Schema people. You have 
    to decide what level you want to work at and live with it. If you 
    are working on infosets then &amp;foo; syntax is long past resolved
    (or reported as an error) unless you are going to go in and hack 
    the XML 1.0 specification."</p>
      
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>No shortcut syntax needed.</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-07-steps-redundant" status="closed">
    <p>Do you want to outlaw (section 3.3.1) apparent recursion that 
    is in fact prevented by the steps attribute? It would be nice to 
    be able to use circular links to build circular data structures. 
    [Richard Tobin]</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>Remove the steps attribute.</p>
    </resolution>
  </issue>
      
  <issue id="XInclude-08-internationalization" status="closed">
    <p>Do we need to specify anything about merging documents with different character sets?
    For instance, what about merging a Japanese doc with an US-ASCII doc?  Or does the
    Infoset already imply normalization into Unicode?</p>
      
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0252.html">
      <p>No action needed, consider editorial improvements.</p>
    </resolution>
  </issue>
        
  <issue id="XInclude-09-include-children-syntax" status="closed">
    <p>Should we have a simpler mechanism for including
    the children of the identified node?  This would be especially useful for simulating
    text entities:</p>
          
    <eg><![CDATA[<entity-declaration id="nbsp">&#160;</entity-declaration>
    <include xinclude:href="#xptr(id('nbsp')/text())"/>]]></eg>
        
    <p>Could be instead specified by something like:</p>
    <eg><![CDATA[<xinclude:include href="#nbsp" children-only="yes"/>]]></eg>
    <p>or</p>
    <eg><![CDATA[<xinclude:include-children href="#nbsp"/>]]></eg>
      
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0252.html">
      <p>No simpler mechanism needed.</p>
    </resolution>
  </issue>    

  <issue id="XInclude-10-whitespace" status="closed">
    <p>Are there any tricky whitespace issues to consider?</p>
    <options-list>
      <item><p>No known issue here - close it. (Editors recommendation)</p></item>
      <item><p>Clarify what the issues may be.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0376.html">
      <p>As long as we don't say anything about whitespace, there seems to
      be no issues at the Infoset level.</p>
    </resolution>
  </issue>

  <issue id="XInclude-11-fragments" status="closed">
    <p>XSLT transformations can operate on document fragments.  
    Should we expand our scope to include fragments as well?</p>
    <options-list>
      <item><p>No such thing as an infoset fragment, is there?  Close this
      issue without doing anything. (Editors recommendation)</p></item>
      <item><p>Indicate that inclusion can be applied to an entire
      infoset, or a portion of an infoset, including arbitrary fragments.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0376.html">
      <p>Drop issue with no action--that is, adopt option 1.</p>
    </resolution>
  </issue>
      
  <issue id="XInclude-12-ignore-attributes" status="closed">
    <p>Should attempted inclusion of attributes be ignored instead 
    of generating an error?</p>
    <options-list>
      <item><p>Yes, they should be ignored.</p></item>
      <item><p>No - current error behavior is best. (Editors recommendation)</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0010.html">
      <p>Option 2 - no change.  Make the wording a bit more generic to
      cover namespace nodes as well.</p>
    </resolution>
  </issue>

  <issue id="XInclude-13-substring-inclusion" status="closed">
    <p>Should we support inclusion of arbitrary ranges?  What about 
    simple text substrings?</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0252.html">
      <p>Since substring is just one kind of range (see issue 24), we will 
      support substrings.</p>
    </resolution>
  </issue>
	  
  <issue id="XInclude-14-exposing-base-url" status="closed">
    <p>Should exposure of base URI information be required?  It appears 
    necessary for applications that wish to operate on URIs in the 
    result.</p>
    <options-list>
      <item><p>xml:base provides for this information to be surfaced in
      a generic way.  No more is necessary. (Editors recommendation)</p></item>
      <item><p>Mandate that base URI information is surfaced in some way
      by applications of XInclude infosets.</p></item>
    </options-list>
    <resolution>
      <p>Obsolete issue - irrelevant considering XML Base and Infoset
      changes.</p>
    </resolution>
  </issue>

  <issue id="XInclude-15-validation-relationship" status="closed">
    <p>I do not believe that XInclude should hard-code its relationship 
    to schema validation. If I want to write an application that does 
    inclusion and then validates the resulting document, I should be 
    allowed to. [Paul Prescod: <loc href="http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html">http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html</loc>
    (W3C Members only)]</p>
    <options-list>
      <item><p>Remove the hard-coded relationship to schema validation.  The
        relationship of validation and an infoset is outside the scope of
        XInclude. (Editors recommendation)</p></item>
      <item><p>Do nothing - current relationship is adequate.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0314.html">
      <p>Option 1.</p>
    </resolution>
  </issue>

  <issue id="XInclude-16-dtd-validation" status="closed">
    <p>Technically speaking, XInclude inclusion *cannot* occur before DTD
    validation. DTD validation is done by the XML processor: by definition
    it is accomplished before an information set is created. If you want
    DTD-syntax validation that works on information sets the you need to
    specify it yourself as the HyTime people did. SGML and XML just do not
    support it natively.
    [Paul Prescod: <loc href="http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html">http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html</loc>
    (W3C Members only)]</p>
      
    <p>From Ben Trafford: Couldn't you guys define a normative addition 
    to the internal subset that would allow for XInclude validation, and 
    then state than an XInclude-aware processor makes this addition
    to the infoset based on the parsing of the internal subset? Basically, 
    a 'virtual internal subset'.</p>
      
    <options-list>
      <item><p>Remove mention of DTD validation (other than perhaps a note that
        DTD processing occurs during creation of an infoset and thus is past
        before inclusion processing occurs. (Editors recommendation)</p></item>
      <item><p>Define a variant of DTD validation that works on infosets 
        so that inclusion can occur before DTD validation.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0314.html">
      <p>Option 1.</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-17-id-validation-redundant" status="closed">
    <p>ID validation is merely a schema validation issue and should 
    not be separated out as its own "point."
    [Paul Prescod: <loc href="http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html">http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0211.html</loc>
    (W3C Members only)]</p>
    <options-list>
      <item><p>Remove the ID section completely.</p></item>
      <item><p>Describe (informatively) how IDs behave under inclusion.</p></item>
    </options-list>
      
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0402.html">
      <p>Option 1: remove the ID section.</p>
    </resolution>
  </issue>

  <issue id="XInclude-18-role-syntax" status="closed">
    <p>Should the syntax be expressed instead through a qualified 
    role value? [Paul Prescod in <loc href="http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0209.html">http://lists.w3.org/Archives/Member/w3c-xml-linking-ig/1999Aug/0209.html</loc>
    (W3C Members only)]</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>XInclude and XLink are different things.  XInclude merges infosets,
      XLink relates separate infosets.  Keep the separate syntax/namespace.</p>
    </resolution>
  </issue>  

  <issue id="XInclude-19-role-syntax-2" status="closed">
    <p>It would also be possible for it to be a completely different 
    [xlink:type] value, making it clearer that other XLink attributes 
    were not relevant. [Richard Tobin]</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>XInclude and XLink are different things.  XInclude merges infosets,
      XLink relates separate infosets.  Keep the separate syntax/namespace.</p>
    </resolution>
  </issue>

  <issue id="XInclude-21-steps-utility" status="closed">
    <p>The steps attribute is included to allow a parser to protect 
    itself from combinatorial explosion of includes.  Should steps 
    be removed because it cannot solve the combinatorial include 
    problem?  It was pointed out in the XML Link face to face meeting 
    that steps may be an incorrect mechanism for to solve this problem.  
    This issue is that an author will probably want to specify steps="*" 
    for any and all nodes and inclusion, or the author will want to 
    specify steps="1" to simply include the next set of nodes.  It 
    will be very difficult for an author to know the correct level 
    of steps to prevent inclusion exposion.  A separate mechanism 
    must be used by an include processor to allow protection from 
    this case.</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>Remove the steps attribute.</p>
    </resolution>
  </issue>

  <issue id="XInclude-22-document-element" status="closed">
    <p>Should something other than ignoring the document element 
    declaration be performed on document nodes?</p>
    <options-list>
      <item><p>No known issue here - close it. (Editors recommendation)</p></item>
      <item><p>Clarify what the issues may be.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0376.html">
      <p>Use infoset terminology (i.e., "does not include the document 
      info item"); igore the document type info item.</p>
    </resolution>
  </issue>
      
  <issue id="XInclude-23-include-indirection-using-locators" status="closed">
    <p>An advantage of XML 1.0 external entities is that external 
    references may be defined and then re-used.  Include could be 
    augmented by the same notion of defining external entities and 
    then consumption by include elements.  A locator element could 
    specify a remote resource using an href attribute and named by 
    a name attribute.  An include element could use an eref attribute 
    instead of an href.  The eref on the include would match the name 
    attribute of the locator element.  While it is possible for include 
    to specify the href attribute via an xpointer expression, include 
    does not currently allow a dereference of the resulting attribute.
    Example: <code>&lt;locator href="xyz" name="abc"/&gt;&lt;include
    eref="abc"/&gt;</code></p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0315.html">
      <p>Show how this can be done without any new syntax.</p>
    </resolution>
  </issue>
  
	<issue id="XInclude-24-range-inclusions" status="closed">
	  <p>When the href attribute specifies a range, should the range 
	  nodes be included in order or should ranges be disallowed.</p>
	  <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0252.html">
      <p>Allow all ranges, must do some balancing process as in the DOM.</p>
    </resolution>
  </issue>
	    
  <issue id="XInclude-25-included-node-attribute" status="closed">
    <p>Should an XInclude processor expose attribute(s) indicating 
    whether a node was included or not?  If so, should any relevent 
    inclusion information be present, such as include href, steps 
    and parse.</p>
    <options-list>
      <item><p>Provide an attribute or infoset item indicating that
        inclusion was performed.</p></item>
      <item><p>Provide attributes or infoset item encompassing all of the
        inclusion details.</p></item>
      <item><p>Do nothing - this information is available in the original
        infoset which is good enough. (Editors recommendation)</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0376.html">
      <p>Though various people felt something like this would
      have advantages, we had consensus not to have such an attribute.
      (Adopt option 3.)</p>
    </resolution>
  </issue>

  <issue id="XInclude-26-cdata-inclusion" status="closed">
	  <p>Should we support the inclusion of characters within a CDATA 
	  section?</p>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0252.html">
      <p>If this is about whether we need to worry about the fact that we
      can't do an xinclude from within a cdata section, we decided we
      didn't need to worry about this--issue closed, nothing to do.</p>
          
      <p>If this is about having an xinclude pointing into the middle of
      a cdata section, we decided this was just issue 13, so it's resolved,
      and issue 26 is closed.</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-27-schema" status="closed">
    <p>Are there any requirements in particular that the Schema WG has 
    of XInclude?  For instance, Schema has a facility for mapping included
    documents to the including document's namespace instead.  We could
    provide this feature as well.</p>
    <options-list>
      <item><p>Add a preserve-namespace attribute that specifies namespace 
        results.</p></item>
      <item><p>Formally ask Schema what requirements they have, perhaps 
        setting up a Core/Schema liason.</p></item>
      <item><p>Both 1 and 2.</p></item>
      <item><p>Close this issue in absence of specific input from the Schema
        WG.</p></item>
    </options-list>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0402.html">
      <p>Option 4: close the issue.</p>
    </resolution>
  </issue>
    
  <issue id="XInclude-28-document-level-switch" status="closed">
    <p>Ben Trafford: The example used to switch between the processors 
    is fine as programming code, but how could someone specifically 
    make a request within the document to activate the inclusion 
    mechanism? I'm envisioning people using an XInclude-aware processor, 
    that only processes the inclusions when requested to (via a 
    stylesheet mechanism seems the most obvious way to me).</p>
    <options-list>
      <item><p>Whether to process includes or not is a property of a document
        instance and syntax to control this should be developed.</p></item>
      <item><p>Whether to process includes or not is a property of a processor,
        and no document-level syntax should be developed. (Editors recommendation)</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0376.html">
      <p>This is an API issue.  Drop this issue--that is, adopt option 2.</p>
    </resolution>
  </issue>

  <issue id="XInclude-29-add-id-attribute" status="closed">
    <p>Should an id attribute be added to XInclude?  If so, how is it given
    the ID datatype? [Paul Grosso in 
    <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0290.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0290.html</loc>
    (W3C Members only)]</p>
    <options-list>
      <item><p>Add the ID attribute, with a magic application of the ID datatype.</p></item>
      <item><p>Add the ID attribute, using existing mechanisms (DTD) to apply the ID datatype.</p></item>
      <item><p>Authors are free to add their own attributes (issue 30) and so we
        don't need to do anything. (Editors recommendation)</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0495.html">
      <p>Much discussion, straw poll leaning towards adding it; chair called
      for objections to adding it; Connolly, Maler object; it will be added to
      the next draft (ACTION to the editors to do so).</p>
    </resolution>
  </issue>

  <issue id="XInclude-30-allow-other-attributes" status="closed">
    <p>Should the permission to add non-XInclude attributes such as ID be 
    made explicit? [John Cowen in 
    <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0292.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0292.html</loc>
    (W3C Members only)]</p>
    <options-list>
      <item><p>Make the permission to add non-XInclude attributes explicit. (Editors recommendation)</p></item>
      <item><p>Revoke permission to add non-XInclude attributes.</p></item>
      <item><p>The permission to add non-XInclude attributes implication is adequate.</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">
      <p>Split into a number of subissues (37,38,39,40).</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-32-include-attributes" status="closed">
    <p>Currently, it is not possible to set the value of an attribute through
    an include mechanism.  This make it difficult to generate XLinks for example.
    Should a mechanism be developed to include text as attribute values?</p>
        
    <eg><![CDATA[source:
  <x>
    <uri>theUri</uri>
    <link xmlns:xlink="...">
      <xinclude:include href="#xpointer(x/uri/text())"
         as-an-attribute-named="xlink:href"/>
    </link>
  </x>
result:
  <x>
    <uri>theUri</uri>
    <link xlink:href="theURI" xmlns:xlink="..."/>
  </x>]]></eg>
    <options-list>
      <item><p>Develop a proposal along the lines of the example above. (Editors recommendation)</p></item>
      <item><p>Develop some other mechanism to provide this functionality.</p></item>
      <item><p>Don't provide this capability. (status quo)</p></item>
    </options-list>
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">
      <p>Option 3. The syntax is messy.  Is it really a requirement to be 
      able to "include into" the value of an attribute?  You can't do that
      with XML 1.0 and (external) entity references.  No clear use cases.</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-33-atribute-only-syntax" status="closed">
    <p>XInclude requires an XML element.  This has implications for re-use in
    other vocabularies.  It may be advantageous to have an attribute only
    syntax for XInclude to allow vocabularies the ability to create
    their own include elements.  XLink, faced with a similar problem,
    chose to only support an attribute-based syntax.</p>
      
    <options-list>
      <item><p>add an an attribute-based syntax variant</p></item>
      <item><p>provide only an attribute-based syntax</p></item>
      <item><p>do nothing</p></item>
    </options-list>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0402.html">
      <p>Option 2: move to attribute-based syntax.</p>
    </resolution>
  </issue>
          
  <issue id="XInclude-34-cdata-breaking" status="closed">
    <p>The above implies one way to split a CDATA section into parts, but
    other ways exist, e.g. splitting ]-]&gt; instead of ]]-&gt;.  Do we
    want to mandate a specific split point?</p>
    <options-list>
      <item><p>yes, mandate a specific splitting algorithm</p></item>
      <item><p>no, indicate that this is implementation-specific</p></item>
      <item><p>leave it vague</p></item>
      <item><p>drop parse="cdata" making this issue obsolete</p></item>
    </options-list>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0402.html">
      <p>Option 4: remove parse="cdata".</p>
    </resolution>
  </issue>
  
  <issue id="XInclude-35-multiple-cdata-nodes" status="closed">
    <p>It is unclear whether this is necessary.  The CDATA start and end markers
    can be inserted around the include, and since the resource is acquired as
    text, there isn't really any necessity to double escape these.  In any case
    the normative description should be worded in terms of CDATA markers.</p>
    <options-list>
      <item><p>allow multiple cdata sections to result from the include</p></item>
      <item><p>preclude multiple cdata sections from resulting from the include</p></item>
      <item><p>make it implementation-dependent</p></item>
      <item><p>don't say anything - this is a serialization issue</p></item>
      <item><p>do nothing - bogus issue</p></item>
      <item><p>drop parse="cdata" making this issue obsolete</p></item>
    </options-list> 

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0402.html">
      <p>Option 6: remove parse="cdata".</p>
    </resolution>
  </issue>

  <issue id="XInclude-37-allow-other-prefixed-attributes" status="closed">
    <p>What if anything do we say about allowing other attributes from
    other namespaces on xinclude elements? [Subissue of XInclude30
    <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html</loc>
    (W3C Members only)]</p>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">
      <p>We will say that qualified attributes are allowed.</p>
    </resolution>
  </issue>

  <issue id="XInclude-38-allow-other-unprefixed-attributes" status="closed">
    <p>What if anything do we say about not allowing unprefixed attributes
    on xinclude elements?  and do we require an error message for such? 
    [Subissue of XInclude30
    <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html</loc>
    (W3C Members only)]</p>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">
      <p>We will say that unqualified attributes not explicitly mentioned in
      the xinclude spec are not allowed (but conforming implementations
      need not check for such and issue error messages).</p>
    </resolution>
  </issue>

  <issue id="XInclude-39-allow-xmlns-attributes" status="closed">
    <p>What if anything do we say about allowing xmlns "attributes" 
    on xinclude elements?  [Subissue of XInclude30
    <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html</loc>
    (W3C Members only)]</p>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">
      <p>Nothing need be said, but we leave it to the editors to decide
      just what/how to say in this area.</p>
    </resolution>
  </issue>

  <issue id="XInclude-40-allow-id-attribute" status="closed">
    <p>Do we add an optional id attribute (in the xinclude namespace) to
    the xinclude element?  If not, what if anything do we say about id
    attributes on xinclude elements?  [Subissue of XInclude30
    <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html">http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JanMar/0424.html</loc>
    (W3C Members only)]</p>

    <options-list>
      <item><p>add an optional attribute named "id"</p></item>
      <item><p>don't, users who want ids must place it in a different namespace</p></item>
    </options-list>

    <resolution href="#XInclude29-add-id-attribute">
      <p>Duplicate.</p>
    </resolution>
  </issue>

  <issue id="XInclude-41-enforce-markup-conformance" status="closed">
    <p>XLink specifies a conformance constraint that an application
    must "performs markup conformance testing according to all the 
    conformance constraints appearing in this specification."  Should
    XInclude include a similar constraint?</p>
        
    <options-list>
      <item><p>yes, add this as a conformance criterion.</p></item>
      <item><p>no.</p></item>
    </options-list>
      
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0443.html">
      <p>Option 1 - Yes.</p>
    </resolution>
  </issue>
 
  <issue id="XInclude-42-enforce-encoding-handling" status="closed">
    <p>Earlier versions stated that "An XInclude processor must be able to merge documents in
    any mix of encodings that they would otherwise support in 
    isolation."  This doesn't make sense on the infoset level.
    Do we want to enforce this in some other way?</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0443.html">
      <p>No.  Issue dropped.</p>
    </resolution>
  </issue>

  <issue id="XInclude-43-infoset-core-required" status="closed">
    <p>Is such a normative reference to the Infoset "core" appropriate?
    In sync with language in the Infoset?</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0010.html">
      <p>Closed as subsumed by issue 52.</p>
    </resolution>
  </issue>

  <issue id="XInclude-44-preserve-include-element" status="closed">
    <p>We could preserve this information rather trivially, by describing
    an Infoset addition.  For instance, a property [include-element] defined
    to contain the element information item for the include element
    in the original infoset.  Applications unaware of this property
    would treat the inclusion as transparent, applications aware of this
    property could use it to (e.g. editors) switch between included
    and non-included "views" of the document.
    I don't see any harm in providing such an optional property.</p>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0173.html">
      <p>Accept Jonathan's <loc href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0123.html">proposal</loc>.</p>
    </resolution>
  </issue>

  <issue id="XInclude-46-compare-uris" status="closed">
    <p>(Oh no not again!) Is the literal value of the URI Reference
    compared, or its absolutized and escaped version?</p>
        
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0173.html">
      <p>We need to absolutize (but not canonicalize) URIs to detect 
      infinite loops.</p>
    </resolution>
  </issue>

  <issue id="XInclude-47-support-external-entity" status="closed">
    <p>Do we also want to accept external entity files, e.g. documents
    with more than one top-level element?  If so we should make this
    clear.</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0010.html">
      <p>No, we will not define an infoset for an external entity.  Editor
      to add some wording pointing this out.</p>
    </resolution>
  </issue>
      
  <issue id="XInclude-48-drop-id" status="closed">
    <p>There is no need for the id attribute in the attribute-based
    syntax.  OK to drop it?</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0443.html">
      <p>ID attribute dropped.</p>
    </resolution>
  </issue>

  <issue id="XInclude-49-requirements" status="closed">
    <p>Do requirements belong in this document any longer?</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0010.html">
      <p>Remove them from this doc and point to the requirements
      in the NOTE (which haven't changed).</p>
    </resolution>
  </issue>

  <issue id="XInclude-50-processing-model" status="closed">
    <p>XInclude currently incompletely defines a processing model for 
    dealing with inclusions in destination documents.  This does not 
    appear to be sufficient, and is opened by issue #3.</p>

    <options-list>
      <item><p>Create an XML Processing model that defines the interactions 
        between some or all of XInclude, XPointer, XML Schema, DTD validation,
        XSLT, XML Query, XML Packaging and URI references.</p></item>
      <item><p>Specify nothing about an XML Processing model.  XInclude does 
        not say whether destination documents are knitted before or after 
        inclusion.</p></item>
      <item><p>Specify a minimal subset of the XML Processing model necessary 
        for XInclude.  Destination documents are included after they have 
        had their xincludes processed.  There is no mention of the 
        relationship between xinclude and other infoset to infoset 
        transformations, ie XML Schema, XSLT. [David Orchard preference].</p></item>
    </options-list>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0474.html">
      <p>Option 3.  This says that the xinclude model is expansion "as if" 
      the included document has had all its xincludes expanded (in a "bottom 
      up" fashion).</p>
    </resolution>
  </issue>

  <issue id="XInclude-51-nesting-switch" status="closed">
    <p>Should there be a syntax for turning off nested inclusions?  In some cases
    this can be used as an optimization hint.</p>
    <options-list>
      <item><p>Provide a switch for turning nested inclusions on and off.</p></item>
      <item><p>Provide a switch used to assert that nested inclusions need not
        be performed to acheive the correct result.</p></item>
      <item><p>Provide no such switch.</p></item>
    </options-list>

    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000AprJun/0474.html">
      <p>Option 3 - nothing.</p>
    </resolution>
  </issue>

  <issue id="XInclude-53-parse-text-fragments" status="closed">
    <p>Presumably a URI reference for an include with parse="text" should
    not be allowed to contain a fragment (xpath), since there is no
    infoset, just a collection of character items.  Or do we want to
    allow ranges of characters from a text file?  This seems be getting
    into the same area as infosets-from-external-entities.</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0372.html">
      <p>When parse=text (regardless of the media type of the retrieved 
      resource), we will treat the resource as text/plain and therefore 
      the fragment id is as defined by the text/plain media type.
      Note: since currently there is no defined fragment id syntax for
      the text/plain media type, it is (currently) an error to have a 
      fragment identifier when parse=text.</p>
    </resolution>
  </issue>

  <issue id="XInclude-54-syntax" status="closed">
    <p>Previous working drafts employed an element in the XInclude namespace
    as an include element.  This draft employs an attribute-based syntax.
    The WG plans to revisit this issue and encourages public input on this
    issue.</p>
    
    <resolution href="http://lists.w3.org/Archives/Member/w3c-xml-core-wg/2000JulSep/0247.html">
      <p>Return to element syntax.</p>
    </resolution>
  </issue>

</inform-div1>
</back>
</spec>
