index.html 37.2 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><title>XML processor profiles</title><style type="text/css">
code           { font-family: monospace; }

div.constraint,
div.issue,
div.note,
div.notice     { margin-left: 2em; }

ol.enumar      { list-style-type: decimal; }
ol.enumla      { list-style-type: lower-alpha; }
ol.enumlr      { list-style-type: lower-roman; }
ol.enumua      { list-style-type: upper-alpha; }
ol.enumur      { list-style-type: upper-roman; }


div.exampleInner pre { margin-left: 1em;
                       margin-top: 0em; margin-bottom: 0em}
div.exampleOuter {border: 4px double gray;
                  margin: 0em; padding: 0em}
div.exampleInner { background-color: #d5dee3;
                   border-top-width: 4px;
                   border-top-style: double;
                   border-top-color: #d3d3d3;
                   border-bottom-width: 4px;
                   border-bottom-style: double;
                   border-bottom-color: #d3d3d3;
                   padding: 4px; margin: 0em }
div.exampleWrapper { margin: 4px }
div.exampleHeader { font-weight: bold;
                    margin: 4px}
</style><link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WD.css"/></head><body><div class="head"><p><a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width="72"/></a></p>
<h1><a name="title" id="title"/>XML processor profiles</h1>
<h2><a name="w3c-doctype" id="w3c-doctype"/>W3C Working Draft 12 April 2011</h2><dl><dt>This version:</dt><dd>
  <a href="http://www.w3.org/TR/2011/WD-xml-proc-profiles-20110412/">http://www.w3.org/TR/2011/WD-xml-proc-profiles-20110412/</a> 
  </dd><dt>Latest version:</dt><dd><a href="http://www.w3.org/TR/xml-proc-profiles/">http://www.w3.org/TR/xml-proc-profiles/</a></dd><dt>Previous versions:</dt><dd>
 <a href="http://www.w3.org/TR/2010/WD-xml-proc-profiles-20101130/">http://www.w3.org/TR/2010/WD-xml-proc-profiles-20101130/</a>
 <a href="http://www.w3.org/TR/2010/WD-xml-proc-profiles-20101021/">http://www.w3.org/TR/2010/WD-xml-proc-profiles-20101021/</a>
 <a href="http://www.w3.org/TR/2010/WD-xml-proc-profiles-20100518/">http://www.w3.org/TR/2010/WD-xml-proc-profiles-20100518/</a>
</dd><dt>Editors:</dt><dd>Henry S. Thompson, University of Edinburgh <a href="mailto:ht@inf.ed.ac.uk">&lt;ht@inf.ed.ac.uk&gt;</a></dd><dd>Norman Walsh, MarkLogic Corporation <a href="mailto:norman.walsh@marklogic.com">&lt;norman.walsh@marklogic.com&gt;</a></dd></dl><p>This document is also available in these non-normative formats: <a href="xml-proc-profiles.xml">XML</a> and <a href="diff.html">Showing diffs from previous LCWD</a>.</p><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2011 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr/><div>
<h2><a name="abstract" id="abstract"/>Abstract</h2><p>This specification defines several XML processor
profiles, each of which fully determines a data model for any given XML
document.  It is intended as a resource for other specifications, which can by
a single normative reference establish precisely what input processing they require.</p></div><div>
<h2><a name="status" id="status"/>Status of this Document</h2><p><em>This section describes the status of this document at
the time of its publication. Other documents may supersede this
document. A list of current W3C publications and the latest revision
of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a>
at http://www.w3.org/TR/.</em></p><p>This is a public
<a href="http://www.w3.org/2005/10/Process-20051014/tr.html#first-wd">Working Draft</a>
for review by W3C members and other interested parties. This document
is a product of the
<a href="http://www.w3.org/XML/Processing/">XML Processing Model
Working Group</a> which is part of the W3C <a href="http://www.w3.org/XML/Activity">XML Activity</a>.
The English version of this specification is the only
normative version. However, for translations of this document, see
<a href="http://www.w3.org/2003/03/Translations/byTechnology?technology=xproc">http://www.w3.org/2003/03/Translations/byTechnology?technology=xproc</a>.
</p><p>This is a Last Call Working Draft for review by W3C members and other
interested parties. It contains one significant addition to previous drafts: reporting requirements for each profile, specified in terms of a
tabulation and categorization of information supplied by XML processors to
applications.  Once again it is the Working Group's intention, since this specification is not implementable as such,
that no Candidate Recommendation version will be published, and that the next step for this
specification will be to Proposed Recommendation—interested parties please take note and comment accordingly.
</p><p>The effective deadline for comments is 16 May 2011.  Please send comments on this draft to the public mailing list <a href="mailto:public-xml-processing-model-comments@w3.org">public-xml-processing-model-comments@w3.org</a> (public
<a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-comments/">archives</a> are available).</p><p>As this specification is intended for use by other specifications
which themselves define one or more XML languages, the Working Group
particularly welcomes input for other Working Groups who are responsible for
such specifications.</p><p>Publication as a Working Draft does not imply endorsement by
the W3C Membership. This is a draft document and may be updated,
replaced or obsoleted by other documents at any time. It is
inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
February 2004 W3C Patent Policy</a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/38398/status">public
list of any patent disclosures</a> made in connection with the
deliverables of the group; that page also includes instructions for
disclosing a patent. An individual who has actual knowledge of a
patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
6 of the W3C Patent Policy</a>.</p></div><div class="toc">
<h2><a name="contents" id="contents"/>Table of Contents</h2><p class="toc">1 <a href="#background">Background</a><br/>
    1.1 <a href="#terminology">Terminology</a><br/>
2 <a href="#profiles">XML processor profiles</a><br/>
    2.1 <a href="#minimumProfile">The minimum XML processor profile</a><br/>
    2.2 <a href="#basicProfile">The basic XML processor profile</a><br/>
    2.3 <a href="#modestProfile">The modest XML processor profile</a><br/>
    2.4 <a href="#recommendedProfile">The recommended XML processor profile</a><br/>
3 <a href="#infosetClasses">Classes of Information</a><br/>
4 <a href="#invariants">Invariants</a><br/>
    4.1 <a href="#within_profile_invariants">Data model invariants within a given profile</a><br/>
    4.2 <a href="#between_profile_variants">Data model variation between profiles</a><br/>
        4.2.1 <a href="#min_variants">Between minimum and richer profiles</a><br/>
        4.2.2 <a href="#basic_variants">Between basic and richer profiles</a><br/>
        4.2.3 <a href="#modest_variants">Between modest and recommended profiles</a><br/>
5 <a href="#otherProfiles">Other profiles (non-normative)</a><br/>
6 <a href="#conformance">Conformance</a><br/>
</p>
<h3><a name="appendices" id="appendices"/>Appendix</h3><p class="toc">A <a href="#references">References</a><br/>
    A.1 <a href="#normative-references">Normative References</a><br/>
    A.2 <a href="#non-normative-references">Non-normative References</a><br/>
</p></div><hr/><div class="body"><div class="div1">
<h2><a name="background" id="background"/>1 Background</h2><p>The XML specification <a href="#xml">[Extensible Markup Language (XML) 1.0 (Fifth Edition)]</a> defines an XML processor as "a
software module. . .used to read XML documents and provide access to their
content and structure. . .on behalf of another module, called the application."
  XML applications are often defined by building on top of the <a href="#xml-infoset">[XML Information Set]</a> <span>vocabulary </span>or XML data models such as <a href="#xpath">[XML Path Language (XPath) Version 1.0]</a> or <a href="#xpath-datamodel">[XQuery 1.0 and XPath 2.0 Data Model (XDM)]</a>, understood as the output of an XML processor.  Such definitions have suffered to some extent from an uncertainty inherent in using that kind of foundation, in that the mapping XML processors perform from XML documents to data model is not rigid.  Some of this stems from the XML specification itself, which <span>is not always explicit about what information must be passed from processor to application, and which also </span>leaves open the possiblity of reading and interpreting external entities, or not.  <span>Another kind of uncertainty</span> stems from the growth of the XML family of specifications: if the input document includes uses of XInclude, for instance.</p><p>This specification addresses this issue by defining several XML processor
profiles, each of which fully determines a data model for any given XML
document.  It is intended as a resource for other specifications, which can by
a single normative reference establish precisely what input processing they require.</p><p>The profiles defined here are appropriate for processing both XML 1.0 <a href="#xml">[Extensible Markup Language (XML) 1.0 (Fifth Edition)]</a> and XML 1.1 <a href="#xml11">[Extensible Markup Language (XML) 1.1 (Second Edition)]</a> documents.  References to XML or XML Namespaces below should be understood as references to 1.0 or 1.1 as required by the relevant document or application.</p><div class="div2">
<h3><a name="terminology" id="terminology"/>1.1 Terminology</h3><p>[<a name="dt-must" id="dt-must" title="Must, May, etc.">Definition</a>: The key words 
  <b>must</b>, <b>must not</b>, <b>required</b>,
  <b>shall</b>, <b>shall not</b>, <b>should</b>, 
  <b>should not</b>, <b>recommended</b>, <b>may</b>, 
  and <b>optional</b> in this specification are to be interpreted 
  as described in <a href="#RFC2119">[RFC 2119]</a>.]</p><p>The term <b>base URI</b> is used in this specification as it is defined in <a href="#RFC3986">[RFC 3986]</a>.</p></div></div><div class="div1">
<h2><a name="profiles" id="profiles"/>2 XML processor profiles</h2><p>All of the profiles describe the steps necessary
    to construct a data model from a <a href="http://www.w3.org/TR/xml/#dt-wellformed">well-formed</a> and <a href="http://www.w3.org/TR/REC-xml-names/#dt-nwf">namespace well-formed</a> XML document. This specification does not consider documents
that are not namespace well-formed. Documents which are not well-formed are not XML.</p><p>Each profile is defined in terms of comformance requirements
with respect to various XML-family specifications, and in terms of requirements
on the information it provides to applications.  <span>Information provision requirements are</span> specified by
reference to classes of information items and properties, as further defined in <a href="#infosetClasses"><b>3 Classes of Information</b></a>.</p><div class="div2">
<h3><a name="minimumProfile" id="minimumProfile"/>2.1 The minimum XML processor profile</h3><p>The minimum approach to the construction of a data model requires the following:</p><ol class="enumar"><li><p>Processing of the document as <a href="http://www.w3.org/TR/xml/#proc-types">required of conformant
non-validating XML processors</a> without reading any <a href="http://www.w3.org/TR/xml/#dt-extmkpdecl">external markup declarations</a>;</p></li><li><p>Maintenance of the <b>base URI</b> of each element in
conformance with <a href="#xml-base">[XML Base]</a>;</p></li><li><p>Faithful provision of the information in the document
corresponding to information items and properties in classes <a title="" href="#A">A</a>, <a title="" href="#Bprime">B'</a>, <a title="" href="#P">P</a> and <a title="" href="#X">X</a>;</p></li></ol></div><div class="div2">
<h3><a name="basicProfile" id="basicProfile"/>2.2 The basic XML processor profile</h3><p>The basic approach to the construction of a data model requires the following:</p><ol class="enumar"><li><p>Processing of the document as <a href="http://www.w3.org/TR/xml/#proc-types">required of conformant
non-validating XML processors</a> without reading any <a href="http://www.w3.org/TR/xml/#dt-extmkpdecl">external markup declarations</a>;</p></li><li><p>Maintenance of the <b>base URI</b> of each element in
conformance with <a href="#xml-base">[XML Base]</a>;</p></li><li><p>Identification of all <code>xml:id</code> attributes as IDs as
required by <a href="#xml-id">[xml:id Version 1.0]</a></p></li><li><p>Faithful provision of the information in the document
corresponding to information items and properties
in classes <a title="" href="#A">A</a>, <a title="" href="#Bprime">B'</a>, <a title="" href="#P">P</a> and <a title="" href="#X">X</a>;</p></li></ol></div><div class="div2">
<h3><a name="modestProfile" id="modestProfile"/>2.3 The modest XML processor profile</h3><p>The modest approach to the construction of a data model requires the following:</p><ol class="enumar"><li><p>Processing of the document as <a href="http://www.w3.org/TR/xml/#proc-types">required of conformant
non-validating XML processors</a> while reading and processing all <a href="http://www.w3.org/TR/xml/#dt-extmkpdecl">external markup declarations</a>;</p></li><li><p>Maintenance of the <b>base URI</b> of each element in
conformance with <a href="#xml-base">[XML Base]</a>;</p></li><li><p>Identification of all <code>xml:id</code> attributes as IDs as
required by <a href="#xml-id">[xml:id Version 1.0]</a></p></li><li><p>Faithful provision of the information in the document
corresponding to information items and properties
in classes <a title="" href="#A">A</a>, <a title="" href="#B">B</a>
and <a title="" href="#X">X</a>;</p></li></ol></div><div class="div2">
<h3><a name="recommendedProfile" id="recommendedProfile"/>2.4 The recommended XML processor profile</h3><p>The recommended approach to the construction of a data model requires the following:</p><ol class="enumar"><li><p>Processing of the document as <a href="http://www.w3.org/TR/xml/#proc-types">required of conformant
non-validating XML processors</a> while reading and
processing all <a href="http://www.w3.org/TR/xml/#dt-extmkpdecl">external markup declarations</a>;</p></li><li><p>Maintenance of the <b>base URI</b> of each element in
conformance with <a href="#xml-base">[XML Base]</a>;</p></li><li><p>Identification of all <code>xml:id</code> attributes as IDs as
required by <a href="#xml-id">[xml:id Version 1.0]</a></p></li><li><p>Replacement of all <code>include</code> elements in the XInclude
namespace, and namespace, xml:base and xml:lang fixup of the result, as required for
conformance to <a href="#xinclude">[XML Inclusions (XInclude) Version 1.0 (Second Edition)]</a>;</p></li><li><p>Faithful provision of the information in the document
corresponding to information items and properties
in classes <a title="" href="#A">A</a>, <a title="" href="#B">B</a>
and <a title="" href="#X">X</a>.</p></li></ol><p>The following <a href="#xproc">[XProc: An XML Pipeline Language]</a> pipeline implements the <a href="#recommendedProfile"><b>2.4 The recommended XML processor profile</b></a> when executed by a
conformant XProc processor which
</p><ul><li><p>Processes its input as required by point (1) above;</p></li><li><p>Recognizes and preserves the ID type of all <code>xml:id</code> attributes in
conformance with <a href="#xml-id">[xml:id Version 1.0]</a>.</p></li></ul><div class="exampleOuter">
<div class="exampleHeader"><a name="d2e443" id="d2e443"/>Example: XProc pipeline which implements the recommended processor profile</div><div class="exampleInner"><pre>&lt;p:pipeline xmlns:p="http://www.w3.org/ns/xproc"&gt;

  &lt;p:xinclude fixup-xml-base="true" fixup-xml-lang="true"/&gt;

&lt;/p:pipeline&gt;</pre></div></div></div></div><div class="div1">
<h2><a name="infosetClasses" id="infosetClasses"/>3 Classes of Information</h2><p>For the profile definitions above and the invariants below, we
categorize the information expressed in XML documents into a number of
(overlapping) classes.  What follows is a complete tabulation of all the
information items and their properties from <a href="#xml-infoset">[XML Information Set]</a>, annotated
with one or more class labels.</p><dl><dt class="label"><a name="A" id="A"/>Class AClass A</dt><dd><p>Items and properties which <strong>must</strong> be provided by all profiles.</p></dd><dt class="label"><a name="B" id="B"/>Class BClass B</dt><dd><p>Items and properties which <strong>must</strong> be provided by <a href="#modestProfile"><b>2.3 The modest XML processor profile</b></a> and <a href="#recommendedProfile"><b>2.4 The recommended XML processor profile</b></a></p></dd><dt class="label"><a name="Bprime" id="Bprime"/>Class B'Class B'</dt><dd><p>Items and properties which <strong>must</strong> be provided by <a href="#minimumProfile"><b>2.1 The minimum XML processor profile</b></a> and <a href="#basicProfile"><b>2.2 The basic XML processor profile</b></a></p></dd><dt class="label"><a name="P" id="P"/>Class PClass P</dt><dd><p>Items and properties which depend on declarations. 
For <a href="#minimumProfile"><b>2.1 The minimum XML processor profile</b></a> and <a href="#basicProfile"><b>2.2 The basic XML processor profile</b></a>, they will not be provided if the relevant declaration
is in an unprocessed external entity, or is after the first reference to an external entity
which is not processed.</p></dd><dt class="label"><a name="V" id="V"/>Class VClass V</dt><dd><p>Items and properties which will be present for
validating processors, but for which support by <em>non-</em>validating processors is
implementation-defined.  Non-validating processors <strong>should</strong> document whether they
provide this information to applications or not.</p></dd><dt class="label"><a name="X" id="X"/>Class XClass X</dt><dd><p>Items and properties for which support is
implementation-defined.  Processors <strong>should</strong> document whether they
provide this information to applications or not.</p></dd></dl><div class="note"><p class="prefix"><b>Note:</b></p><p>It is the information itself which is being labelled, not the
particular packaging of it implied by the items and properties used in <a href="#xml-infoset">[XML Information Set]</a>.  For example, a data model that exposes the information packaged as <b>Character Information Items</b> in <a href="#xml-infoset">[XML Information Set]</a> as an array of strings is in that regard satisfying requirement (3) of <a href="#minimumProfile"><b>2.1 The minimum XML processor profile</b></a>.</p></div><dl><dt class="label">Document Information ItemDocument Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[children]</td><td><a title="" href="#X">X</a></td></tr><tr><td>[document element]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[notations]</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td>[unparsed entities]</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td>[base URI]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[character encoding scheme]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[standalone]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[version]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[all declarations processed]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd><dt class="label">Element Information ItemElement Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[namespace name]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[local name]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[prefix]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[children]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[attributes]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[namespace attributes]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[in-scope namespaces]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[base URI]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[parent]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd><dt class="label">Attribute Information ItemAttribute Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[namespace name]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[local name]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[prefix]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[normalized value]</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td>[specified]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[attribute type]</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td>[references] to Element Information Items, i.e. for attributes of types IDREF and IDREFS</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td>[references] to Notation and Unparsed Entity Information Items, i.e. for attributes of types ENTITY, ENTITIES and NOTATION</td><td><a title="" href="#X">X</a></td></tr><tr><td>[owner element]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd><dt class="label">Processing Instruction Information ItemProcessing Instruction Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[target]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[content]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[base URI]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[notation]</td><td><a title="" href="#X">X</a></td></tr><tr><td>[parent]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd><dt class="label">Unexpanded Entity Reference Information ItemUnexpanded Entity Reference Information Item</dt><dd><div class="note"><p class="prefix"><b>Note:</b></p><p>This type of information item will not occur at all if <code>standalone="yes"</code>
</p></div><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#Bprime">B'</a></td></tr><tr><td><em>all properties</em></td><td><a title="" href="#Bprime">B'</a></td></tr></tbody></table></dd><dt class="label">Character Information ItemCharacter Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[character code]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[element content whitespace]</td><td><a title="" href="#V">V</a></td></tr><tr><td>[parent]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd><dt class="label">Comment Information ItemComment Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[content]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[parent]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd><dt class="label">Document Type Declaration Information ItemDocument Type Declaration Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#X">X</a></td></tr><tr><td><em>all properties</em></td><td><a title="" href="#X">X</a></td></tr></tbody></table></dd><dt class="label">Unparsed Entity Information ItemUnparsed Entity Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td><em>all properties</em></td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr></tbody></table></dd><dt class="label">Notation Information ItemNotation Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr><tr><td><em>all properties</em></td><td><a title="" href="#B">B</a>, <a title="" href="#P">P</a></td></tr></tbody></table></dd><dt class="label">Namespace Information ItemNamespace Information Item</dt><dd><table width="100%"><col width="30%" span="1"/><tbody><tr><td>the item itself</td><td><a title="" href="#A">A</a></td></tr><tr><td>[prefix]</td><td><a title="" href="#A">A</a></td></tr><tr><td>[namespace name]</td><td><a title="" href="#A">A</a></td></tr></tbody></table></dd></dl></div><div class="div1">
<h2><a name="invariants" id="invariants"/>4 Invariants</h2><p>Data models constructed in conformance with one of the profiles defined above will
be guaranteed to share certain properties.  The following sub-sections describe
this in terms of invariants with respect to the information available in the
data model.</p><div class="div2">
<h3><a name="within_profile_invariants" id="within_profile_invariants"/>4.1 Data model invariants within a given profile</h3><p>Any two data models which are both constructed in conformance with the
<em>same</em> profile from a given namespace-well-formed XML
document will have
exactly the same information with respect to the information items and
properties  which
that profile is required to faithfully provision in the data model.</p></div><div class="div2">
<h3><a name="between_profile_variants" id="between_profile_variants"/>4.2 Data model variation between profiles</h3><p>When two data models are constructed in conformance with the
two <em>different</em> profiles from a given namespace-well-formed XML
document, the information contained therein will in some cases (depending on
the specifics of the document in question) differ with repect to the following information items and
properties (leaving aside the items and
properties classified as implementation-defined above):</p><div class="div3">
<h4><a name="min_variants" id="min_variants"/>4.2.1 Between minimum and richer profiles</h4><dl><dt class="label">Attribute Information ItemsAttribute Information Items</dt><dd><p>
[normalized value],
[attribute type],
[references]—These properties may vary for <code>xml:id</code> attributes
</p></dd></dl><p>And all the differences listed in the next two sections.</p></div><div class="div3">
<h4><a name="basic_variants" id="basic_variants"/>4.2.2 Between basic and richer profiles</h4><dl><dt class="label">Element Information ItemsElement Information Items</dt><dd><p>Entirely, in that where a basic processor reports an Unexpanded Entity
Reference, richer ones will report the entity expansion, which may be or
include entire elements.</p></dd><dt class="label">Attribute Information ItemsAttribute Information Items</dt><dd><p>Entirely, for the same reason, or, just with respect to [normalized value],
[specified],
[attribute type] and
[references] where a basic processor has not processed the relevant
declaration, but a richer one has.</p></dd><dt class="label">Processing Instruction Information ItemsProcessing Instruction Information Items</dt><dd><p>Entirely, per the Element case above</p></dd><dt class="label">Unexpanded Entity Reference Information ItemsUnexpanded Entity Reference Information Items</dt><dd><p>Entirely, in the opposite sense to the Element case above</p></dd><dt class="label">Character Information ItemsCharacter Information Items</dt><dd><p>Entirely, per the Element case above</p></dd><dt class="label">Comment Information ItemsComment Information Items</dt><dd><p>Entirely, per the Element case above</p></dd><dt class="label">Namespace Information ItemsNamespace Information Items</dt><dd><p>Entirely, per the Element case above</p></dd></dl><p>And all the differences listed in the next section.</p></div><div class="div3">
<h4><a name="modest_variants" id="modest_variants"/>4.2.3 Between modest and recommended profiles</h4><dl><dt class="label">Element Information ItemsElement Information Items</dt><dd><p>Entirely, in that where a modest processor reports an
<code>xinclude</code> Element, a recommended Processor will report the result of
XInclude processing, which may be or
include entire elements.</p></dd><dt class="label">Attribute Information ItemsAttribute Information Items</dt><dd><p>Entirely, for the same reason</p></dd><dt class="label">Processing Instruction Information ItemsProcessing Instruction Information Items</dt><dd><p>Entirely, for the same reason</p></dd><dt class="label">Unexpanded Entity Reference Information ItemsUnexpanded Entity Reference Information Items</dt><dd><p>Entirely, for the same reason</p></dd><dt class="label">Character Information ItemsCharacter Information Items</dt><dd><p>Entirely, for the same reason</p></dd><dt class="label">Comment Information ItemsComment Information Items</dt><dd><p>Entirely, for the same reason</p></dd><dt class="label">Namespace Information ItemsNamespace Information Items</dt><dd><p>Entirely, for the same reason</p></dd></dl></div></div></div><div class="div1">
<h2><a name="otherProfiles" id="otherProfiles"/>5 Other profiles (non-normative)</h2><p>The profiles defined here, particularly the <a href="#recommendedProfile"><b>2.4 The recommended XML processor profile</b></a>, can be used as a starting point for the definition of further profiles.  For example, the media type registrations for stylesheet languages applicable to XML such as <code>application/xslt+xml</code> or <code>text/css</code> might define a profile specifying appropriate <code>&lt;?xml-stylesheet type="[their media type]" . . .?&gt;</code> processing in addition to the processing required by <a href="#recommendedProfile"><b>2.4 The recommended XML processor profile</b></a>.</p></div><div class="div1">
<h2><a name="conformance" id="conformance"/>6 Conformance</h2><p>Conformance is a matter for any specification which references this one
to mandate, expressed in terms such as "Conforming implementations
<strong>must</strong> construct input data models from XML documents as
required by the <a href="http://www.w3.org/TR/xml-proc-profiles/#recommendedProfile">recommended
XML processor profile</a>."</p></div></div><div class="back"><div class="div1">
<h2><a name="references" id="references"/>A References</h2><div class="div2">
<h3><a name="normative-references" id="normative-references"/>A.1 Normative References</h3><dl><dt class="label"><a name="xml-infoset" id="xml-infoset"/>XML Information Set</dt><dd>
    <a href="http://www.w3.org/TR/xml-infoset/"><cite>XML Information Set</cite></a>,
    World Wide Web Consortium.  Most recent edition (the second) is dated
04 Feb 2004, John Cowan and Richard Tobin, Editors.
    The <a href="http://www.w3.org/TR/xml-infoset/">latest version</a>
    is available at http://www.w3.org/TR/xml-infoset/.
  </dd><dt class="label"><a name="RFC2119" id="RFC2119"/>RFC 2119</dt><dd>
  <a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>RFC 2119: Key words for use in RFCs to Indicate Requirement Levels</cite></a>.
  <em>Internet Engineering Task Force, 1997.</em>
</dd><dt class="label"><a name="RFC3986" id="RFC3986"/>RFC 3986</dt><dd>
  <a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>RFC 3986: Uniform Resource Identifier (URI): Generic Syntax</cite></a>.
  <em>Internet Engineering Task Force, 2005.</em>
</dd><dt class="label"><a name="xproc" id="xproc"/>XProc: An XML Pipeline Language</dt><dd>
     <a href="http://www.w3.org/TR/xproc/"><cite>XProc: An XML Pipeline Language</cite></a>,
     Norman Walsh, Alex Milowski, and Henry S. Thompson, Editors.
     World Wide Web Consortium, 9 March 2010.
     This version is http://www.w3.org/TR/2010/REC-xproc-20100309/.
     The <a href="http://www.w3.org/TR/xproc/">latest version</a>
     is available at http://www.w3.org/TR/xproc/.
   </dd><dt class="label"><a name="xml-id" id="xml-id"/>xml:id Version 1.0</dt><dd>
    <a href="http://www.w3.org/TR/xml-id/"><cite>xml:id Version 1.0</cite></a>,
    Norman Walsh, Daniel Veillard, and Jonathan Marsh, Editors.
    World Wide Web Consortium, 09 Sep 2005.
    This version is http://www.w3.org/TR/2005/REC-xml-id-20050909/.
    The <a href="http://www.w3.org/TR/xml-id/">latest version</a>
    is available at http://www.w3.org/TR/xml-id/.
  </dd><dt class="label"><a name="xinclude" id="xinclude"/>XML Inclusions (XInclude) Version 1.0 (Second Edition)</dt><dd>
    <a href="http://www.w3.org/TR/xinclude/"><cite>XML Inclusions (XInclude) Version 1.0 (Second Edition)</cite></a>,
    David Orchard, Jonathan Marsh, and Daniel Veillard, Editors.
    World Wide Web Consortium, 15 Nov 2006.
    This version is http://www.w3.org/TR/2006/REC-xinclude-20061115/.
    The <a href="http://www.w3.org/TR/xinclude/">latest version</a>
    is available at http://www.w3.org/TR/xinclude/.</dd><dt class="label"><a name="xml" id="xml"/>Extensible Markup Language (XML) 1.0 (Fifth Edition)</dt><dd>
     <a href="http://www.w3.org/TR/xml/"><cite>Extensible Markup Language (XML) 1.0 (Fifth Edition)</cite></a>,
     Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, <em>et. al.</em>, Editors.
     World Wide Web Consortium, 28 Nov 2008.
     This version is http://www.w3.org/TR/2008/REC-xml-20081126/.
     The <a href="http://www.w3.org/TR/xml/">latest version</a>
     is available at http://www.w3.org/TR/xml/.
   </dd><dt class="label"><a name="xml11" id="xml11"/>Extensible Markup Language (XML) 1.1 (Second Edition)</dt><dd>
     <a href="http://www.w3.org/TR/xml11/"><cite>Extensible Markup Language (XML) 1.1 (Second Edition)</cite></a>,
     Tim Bray, John Cowan, Jean Paoli, <em>et. al.</em>, Editors.
     World Wide Web Consortium, 16 Aug 2006.
     This version is http://www.w3.org/TR/2006/REC-xml11-20060816/.
     The <a href="http://www.w3.org/TR/xml11/">latest version</a>
     is available at http://www.w3.org/TR/xml11/.
   </dd><dt class="label"><a name="xml-names" id="xml-names"/>Namespaces in XML 1.0 (Third Edition)</dt><dd>
      <a href="http://www.w3.org/TR/xml-names/"><cite>Namespaces in
XML 1.0 (Third Edition)</cite></a>, Tim Bray, Dave Hollander, Richard
Tobin, and Andrew Layman, Editors. World Wide Web Consortium,
16 Aug 2006. This version is
http://www.w3.org/TR/2006/REC-xml-names-20060816/. The <a href="http://www.w3.org/TR/xml-names/">latest version</a> is available
at http://www.w3.org/TR/xml-names/.</dd><dt class="label"><a name="xml-names11" id="xml-names11"/>Namespaces in XML 1.1 (Second Edition)</dt><dd>
      <a href="http://www.w3.org/TR/xml-names11/"><cite>Namespaces in XML 1.1 (Second Edition)</cite></a>, Tim Bray, Dave Hollander, Andrew Layman, and Richard Tobin, Editors. World Wide Web Consortium, 16 Aug 2006. This version is http://www.w3.org/TR/2006/REC-xml-names11-20060816/. The <a href="http://www.w3.org/TR/xml-names11/">latest version</a> is available at http://www.w3.org/TR/xml-names11/.</dd><dt class="label"><a name="xml-base" id="xml-base"/>XML Base</dt><dd>
     <a href="http://www.w3.org/TR/xmlbase/"><cite>XML Base (Second Edition)</cite></a>,
     Jonathan Marsh, Editor. World Wide Web Consortium, 28 January 2009.
     This version is http://www.w3.org/TR/2001/REC-xmlbase-20090128/.
     The <a href="http://www.w3.org/TR/xmlbase/">latest version</a>
     is available at http://www.w3.org/TR/xmlbase/.
   </dd></dl></div><div class="div2">
<h3><a name="non-normative-references" id="non-normative-references"/>A.2 Non-normative References</h3><dl><dt class="label"><a name="xpath" id="xpath"/>XML Path Language (XPath) Version 1.0</dt><dd>
     <a href="http://www.w3.org/TR/xpath/"><cite>XML Path Language (XPath) Version 1.0</cite></a>,
     James Clark and Steven DeRose, Editors.
     World Wide Web Consortium, 16 Nov 1999.
     This version is http://www.w3.org/TR/1999/REC-xpath-19991116/.
     The <a href="http://www.w3.org/TR/xpath/">latest version</a>
     is available at http://www.w3.org/TR/xpath/.
   </dd><dt class="label"><a name="xpath-datamodel" id="xpath-datamodel"/>XQuery 1.0 and XPath 2.0 Data Model (XDM)</dt><dd>
     <a href="http://www.w3.org/TR/xpath-datamodel/"><cite>XQuery 1.0 and XPath 2.0 Data Model (XDM)</cite></a>,
     Ashok Malhotra, Jonathan Marsh, Norman Walsh, <em>et. al.</em>, Editors.
     World Wide Web Consortium, 21 Nov 2006.
     This version is http://www.w3.org/TR/2006/PR-xpath-datamodel-20061121/.
     The <a href="http://www.w3.org/TR/xpath-datamodel/">latest version</a>
     is available at http://www.w3.org/TR/xpath-datamodel/.
   </dd></dl></div></div></div></body></html>