<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type="text/xsl" href="xmlspec.xsl"?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN" "xmlspec.dtd" [
	<!ENTITY day "13">
	<!ENTITY monthno "11">
	<!ENTITY month "November">
	<!ENTITY W3C-path "http://www.w3.org/TR/2002/">
	<!ENTITY abstract 'The XPointer &scheme-phrase; is intended to be used with the XPointer Framework <bibref ref="xptr-framework"/> to allow correct interpretation of namespace prefixes in pointers, for instance, namespace-qualified scheme names and namespace-qualified element or attribute names appearing within scheme data.'>
	<!ENTITY doctype "PR">
	<!ENTITY shortname "xptr-&schemename;">
	<!ENTITY isodate "&year;&monthno;&day;">
	<!ENTITY schemename "xmlns">
	<!ENTITY scheme-phrase "<code>&schemename;()</code> scheme">
	<!ENTITY year "2002">
	<!ENTITY media-types "one of <code>text/xml</code>, 
<code>application/xml</code>, 
<code>text/xml-external-parsed-entity</code>,
or <code>application/xml-external-parsed-entity</code>">
	<!ENTITY xptr-framework-file "&W3C-path;&doctype;-xptr-framework-&isodate;/">
	<!ENTITY XML "http://www.w3.org/TR/REC-xml">
	<!ENTITY XMLNames "http://www.w3.org/TR/REC-xml-names/">
]>
<spec w3c-doctype="pr" status="final">
	<header>
		<title>XPointer &schemename;() Scheme</title>
		<w3c-designation>&doctype;-&shortname;-&isodate;</w3c-designation>
		<w3c-doctype>W3C Proposed Recommendation</w3c-doctype>
		<pubdate>
			<day>&day;</day>
			<month>&month;</month>
			<year>&year;</year>
		</pubdate>
		<publoc>
			<loc href="&W3C-path;&doctype;-&shortname;-&isodate;/">&W3C-path;&doctype;-&shortname;-&isodate;/</loc>
 			</publoc>
		<altlocs>
			<loc href="&W3C-path;&doctype;-&shortname;-&isodate;/xptr-xmlns.xml">XML</loc>
		</altlocs>
		<latestloc>
			<loc href="http://www.w3.org/TR/&shortname;/">http://www.w3.org/TR/&shortname;/</loc>
		</latestloc>
		<prevlocs>
			<loc href="http://www.w3.org/TR/2002/WD-xptr-xmlns-20020710/">http://www.w3.org/TR/2002/WD-xptr-xmlns-20020710/</loc>
<!--
			<loc href="http://www.w3.org/TR/2001/CR-xptr-20010911/">http://www.w3.org/TR/2001/CR-xptr-20010911/</loc>
-->
		</prevlocs>
		<authlist>
			<author>
				<name>Steven J. DeRose</name>
				<email href="mailto:sderose@acm.org">sderose@acm.org</email>
			</author>
			<author>
				<name>Ron Daniel Jr.</name>
				<email href="mailto:rdaniel@taxonomystrategies.com">rdaniel@taxonomystrategies.com</email>
			</author>
			<author>
				<name>Eve Maler</name>
				<affiliation>Sun Microsystems</affiliation>
				<email href="mailto:eve.maler@sun.com">eve.maler@sun.com</email>
			</author>
			<author>
				<name>Jonathan Marsh</name>
				<affiliation>Microsoft</affiliation>
				<email href="mailto:jmarsh@microsoft.com">jmarsh@microsoft.com</email>
			</author>
		</authlist>
		<abstract>
			<p>&abstract;</p>
		</abstract>
		<status>
			<p>This document is a <loc href="http://www.w3.org/Consortium/Process-20010719/#RecsPR">Proposed Recommendation (PR)</loc> of the W3C.	This document has been produced by the <loc href="http://www.w3.org/XML/Linking">W3C XML Linking Working Group</loc> as part of the <loc href="http://www.w3.org/XML/Activity">XML Activity</loc>.  It is intended to address a subset of the original <loc href="http://www.w3.org/TR/NOTE-xptr-req">XPointer requirements</loc>, and to serve as a possible part of a recommendation to the IETF for a fragment identifier syntax for the XML Mime types.</p>
			<p>W3C Advisory Committee Members are invited to send formal review comments to the W3C Team until 13 December 2002 at <loc href="mailto:team-xptr-review@w3.org">team-xptr-review@w3.org</loc>.  The public is invited to send comments to the public mailing list <loc href="mailto:www-xml-linking-comments@w3.org">www-xml-linking-comments@w3.org</loc> (<loc href="http://lists.w3.org/Archives/Public/www-xml-linking-comments/">archive</loc>). After the review the Director will announce the document's disposition. This announcement should not be expected sooner than 14 days after the end of the review.</p>
			<p>This document is based upon the <loc href="http://www.w3.org/TR/2001/CR-xptr-20010911/">XPointer Candidate Recommendation</loc> published on 11 September 2001.  Feedback received during that review and a lack of a sufficient number of complete implementations led the Working Group to factor the basic functionality specified there into four specifications: the <loc href="http://www.w3.org/TR/xptr-framework/">XPointer Framework</loc>, the <loc href="http://www.w3.org/TR/xptr-element/">XPointer element() Scheme</loc>, the XPointer xmlns() scheme (this specification), and the <loc href="http://www.w3.org/TR/xptr-xpointer/">XPointer xpointer() scheme</loc>.  This specification subsequently went through an additional <loc href="http://www.w3.org/TR/2002/WD-xptr-framework-20020710/">Last Call</loc> period.  The XML Linking Working Group believes that this specification addresses all relevant Last Call and Candidate Recommendation issues, and represents an interoperable subset of the implementations documented in the <loc href="http://www.w3.org/XML/2000/09/LinkingImplementations.html">previous Implementation Report</loc>, and thus that a further Candidate Recommendation period is not necessary.  Information about more recent implementations of subsets relevant to this specification and the <loc href="http://www.w3.org/TR/xptr-element/">XPointer element() Scheme</loc> and <loc href="http://www.w3.org/TR/xptr-framework/">XPointer Framework</loc> can be found in the <loc href="http://www.w3.org/XML/2002/10/LinkingImplementations.html">new Implementation Report</loc>.  Other specifications such as <loc href="http://www.w3.org/TR/xinclude/">XInclude 1.0</loc> already make normative references to this specification, which makes timely progression to Recommendation desirable.</p>
			<p>There are patent disclosures and license commitments associated with
this working draft, which may be found on the <loc href="http://www.w3.org/2002/06/xptr_IPR_summary.html">XPointer IPR Statement</loc> page in conformance with <loc href="http://www.w3.org/Consortium/Process-20010719/#ipr">W3C policy</loc>.</p>
			<p>Publication as a Proposed Recommendation does not imply endorsement by the W3C membership. This is still a draft document and may be updated, replaced or made obsolete by other documents at any time. It is inappropriate to cite a W3C Proposed Recommendation as other than a "work in progress." A list of current W3C Recommendations and other technical documents can be found at <loc href="http://www.w3.org/TR/">http://www.w3.org/TR/</loc>.</p>
		</status>
		<langusage>
			<language id="en">English</language>
			<language id="ebnf">Extended Backus-Naur Form (formal grammar)</language>
		</langusage>
		<revisiondesc>
			<slist>
				<sitem>20020425: Initial draft of the xmlns() portion of the specification.</sitem>
				<sitem>20020501: Second draft. Added reminder about the xml: namespace.</sitem>
				<sitem>20020508: Third draft. Trivially updated the prolog to get ready for
publication. The WG voted to publish this draft.</sitem>
				<sitem>20020511: Fourth draft. Minor editorial fixes.</sitem>
				<sitem>20020522: Fifth draft. Incorporated editorial changes agreed on in
today's telecon, plus a few items pointed out in private communications.</sitem>
			</slist>
		</revisiondesc>
	</header>
	<body>
		<div1>
			<head>Introduction </head>
			<p>&abstract;</p>
			<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>
			<p>The terms pointer part, scheme, XPointer processor, and namespace binding context are used in this specification as <xspecref href="&xptr-framework-file;#terminology">defined</xspecref> in the XPointer Framework specification.</p>
			<p>The formal grammar for the &scheme-phrase; is given using simple Extended Backus-Naur Form (EBNF) notation, as described in the XML Recommendation <bibref ref="XML"/>.</p>
		</div1>
		<div1 id="conformance">
			<head>Conformance </head>
			<p>This specification normatively depends on the XPointer Framework <bibref ref="xptr-framework"/> specification.</p>
			<p>Conforming XPointer processors claiming to support the &scheme-phrase; must
conform to the behavior defined in this specification and may conform to additional
XPointer scheme specifications.</p>
		</div1>
		<div1 id="model">
			<head>Language and Processing</head>
			<p>This section describes the syntax and semantics of the &scheme-phrase; and the behavior of XPointer processors with respect to this scheme.</p>
			<p>The scheme name is <quote>&schemename;</quote>. The scheme data syntax is as follows; if scheme data in a pointer part with the &scheme-phrase; does not conform to the syntax defined in this section the pointer part does not contribute an entry to the namespace binding context.</p>
			<scrap>
				<head>xmlns() Scheme Syntax</head>
				<prod id="NT-XmlnsSchemeData">
					<lhs>XmlnsSchemeData</lhs>
					<rhs>
						<xnt href="&XMLNames;#NT-NCName">NCName</xnt>&#x20;
						<xnt href="&XML;#NT-S">S</xnt>? '=' <xnt href="&XML;#NT-S">S</xnt>? <nt def="NT-EscapedNamespaceName">EscapedNamespaceName</nt>
					</rhs>
				</prod>
				<prod id="NT-EscapedNamespaceName">
					<lhs>EscapedNamespaceName</lhs>
					<rhs>
						<xnt href="&xptr-framework-file;#NT-EscapedData">EscapedData</xnt>*</rhs>
				</prod>
			</scrap>
			<p><xnt href="&XML;#NT-S">S</xnt> is as defined in the XML specification <bibref ref="XML"/>, <xnt href="&XMLNames;#NT-QName">NCName</xnt> is as defined in the XML Namespaces specification <bibref ref="XML-Names"/>, and <xnt href="&xptr-framework-file;#NT-EscapedData">EscapedData</xnt> is as defined in the XPointer Framework specification <bibref ref="xptr-framework"/>.</p>
			<p>A pointer part with the &scheme-phrase; declares a namespace prefix (<xnt href="&XMLNames;#NT-QName">NCName</xnt>) to be associated with an XML namespace name (<xnt href="#NT-EscapedNamespaceName">EscapedNamespaceName</xnt> with any circumflex-escaping undone). Each pointer part that uses the &scheme-phrase; contributes a new entry to the namespace binding context. If a pointer part defines a binding for a namespace prefix that already has an entry in the namespace binding context, the new entry overrides the old one.</p>
			<p>For example, the following pointer part binds the <kw>abc</kw> prefix to the <kw>http://example.com/ns/abc</kw> namespace name:</p>
			<eg>xmlns(abc=http://example.com/ns/abc)</eg>
			<p>A pointer part that uses the &scheme-phrase; never identifies a subresource and thus the XPointer processor evaluation always continues with the next pointer part. However,  evaluation of the <code>xmlns</code> pointer part has a potential effect on pointer parts to its right. </p>
			<p>The XPointer Framework on which this specification is based dictates that the initial namespace binding context prior to evaluation of the first pointer part consists of a single entry: the <code>xml</code> prefix bound to the URI <code>http:/www.w3.org/XML/1998/namespace</code>. Following the rules specified by the Framework, any attempt by a pointer part using the &scheme-phrase; to redefine the <code>xml</code> prefix will result in no change to the namespace binding context.  Any attempt to bind a prefix to the namespace name <code>http://www.w3.org/XML/1998/namespace</code> will result in no change to the namespace binding context.  Any attempt to define the <code>xmlns</code> prefix will result in no change to the namespace binding context.  Any attempt to bind a prefix to the namespace name <code>http://www.w3.org/2000/xmlns/</code> will result in no change to the namespace binding context.</p>
			<p>The prefix used in pointer parts need not match the prefix (or lack of a prefix) actually used in the XML resource into which the pointer part is addressing. For example, assume the following target XML resource:</p>
			<eg>&lt;customer xmlns="http://example.org/customer">
   &lt;name xmlns="http://example.org/personal-info">John Doe&lt;/name>
&lt;/customer></eg>
			<p>Evaluation of a pointer part that refers to element <el>customer</el> will not identify any subresources if the namespace binding context contains no entry that binds a prefix to the namespace name <code>http://example.org/customer</code>. The following two pointer parts allow the xpointer() <bibref ref="xptr"/> part to the right to refer to the <el>customer</el> element (as <el>c:customer</el>) and the name element (as <el>p:name</el>):</p>
			<eg>xmlns(c=http://example.org/customer) xmlns(p=http://example.org/personal-info)
xpointer(/c:customer/p:name)</eg>
		</div1>
	</body>
	<back>
		<div1 id="references">
			<head>Normative References</head>
			<blist>
				<bibl id="rfc2119" key="RFC 2119">
					Scott Bradner, 
					<titleref href="http://www.rfc-editor.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="XML" key="XML">
					Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors.
					<titleref href="http://www.w3.org/TR/REC-xml">Extensible Markup Language (XML) 1.0 (Second Edition).</titleref> 
					World Wide Web Consortium, 2000.
				</bibl>
				<bibl id="xptr-framework" key="XPtrFrame">
					Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, editors.
					<titleref href="&xptr-framework-file;">XPointer Framework</titleref>.
					World Wide Web Consortium, 2002.
				</bibl>
				<bibl id="XML-Names" key="XML-Names">
					Tim Bray, Dave Hollander, and Andrew Layman, editors.  
					<titleref href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</titleref>. 
					World Wide Web Consortium, 1999.
				</bibl>
			</blist>
		</div1>
		<inform-div1 id="references2">
			<head>Non-Normative References</head>
			<blist>
				<bibl id="xptr" key="XPointer">
					Steve DeRose, Eve Maler, and Ron Daniels, editors. 
					<titleref href="http://www.w3.org/TR/xptr-xpointer/">XPointer xpointer() Scheme</titleref>. 
					World Wide Web Consortium, 2002.  <emph>Work in progress.</emph>
				</bibl>
			</blist>
		</inform-div1>
	</back>
</spec>
