--- a/rdf-xml/index.html Wed Feb 08 19:03:30 2012 +0100
+++ b/rdf-xml/index.html Wed Feb 22 18:19:29 2012 +0100
@@ -186,6 +186,7 @@
<!-- FIRST PART : THE SYNTAX -->
<section id="section-Syntax">
+
<h2>An XML Syntax for RDF</h2>
<p>This section introduces the RDF/XML syntax, describes how it
encodes RDF graphs and explains this with examples. If there is any
@@ -197,7 +198,6 @@
</p>
<!-- intro -->
-
<section id="section-Syntax-intro">
<h3>Introduction</h3>
@@ -280,10 +280,10 @@
building up to complete RDF/XML documents. <a href="#example7">Example 7</a>
is the first complete RDF/XML document.</p>
</section>
-
-
- <!-- node and property elements -->
- <section id="section-Syntax-node-property-elements">
+
+
+ <!-- node and property elements -->
+ <section id="section-Syntax-node-property-elements">
<h3>Node Elements and Property Elements</h3>
@@ -431,9 +431,9 @@
</div>
</div>
</section>
-
- <!-- multiple properties -->
- <section id="section-Syntax-multiple-property-elements" >
+
+ <!-- multiple properties -->
+ <section id="section-Syntax-multiple-property-elements" >
<h3>Multiple Property Elements</h3>
<p>There are several abbreviations that can be used to make common
@@ -479,8 +479,8 @@
</div>
</section>
- <!-- empty property elements -->
- <section id="section-Syntax-empty-property-elements">
+ <!-- empty property elements -->
+ <section id="section-Syntax-empty-property-elements">
<h3>Empty Property Elements</h3>
<p>When a predicate arc in an RDF graph points to an object node which has no
@@ -522,7 +522,8 @@
</div>
</section>
- <section id="section-Syntax-property-attributes">
+ <!-- empty property attributes -->
+ <section id="section-Syntax-property-attributes">
<h3>Property Attributes</h3>
<p>When a property element's content is string literal,
@@ -568,7 +569,8 @@
</div>
</section>
- <section id="section-Syntax-complete-document">
+ <!-- complete rdf/xml document -->
+ <section id="section-Syntax-complete-document">
<h3>Completing the Document: Document Element and XML Declaration</h3>
<p>To create a complete RDF/XML document, the serialization of the
@@ -623,7 +625,8 @@
is not shown here.</p>
</section>
- <section id="section-Syntax-languages">
+ <!-- language attribute -->
+ <section id="section-Syntax-languages">
<h3>Languages: <code>xml:lang</code></h3>
<p>RDF/XML permits the use of the <code>xml:lang</code> attribute as defined by
@@ -673,6 +676,7 @@
</div>
</section>
+ <!-- XML Literal -->
<section id="section-Syntax-XML-literals">
<h3>XML Literals: <code>rdf:parseType="Literal"</code></h3>
@@ -723,7 +727,8 @@
</div>
</div>
</section>
-
+
+ <!-- datatyped literals -->
<section id="section-Syntax-datatyped-literals">
<h3>Typed Literals: <code>rdf:datatype</code></h3>
@@ -775,7 +780,8 @@
</div>
</div>
</section>
-
+
+ <!-- blank nodes -->
<section id="section-Syntax-blank-nodes">
<h3>Identifying Blank Nodes: <code>rdf:nodeID</code></h3>
@@ -830,7 +836,8 @@
</div>
</div>
</section>
-
+
+ <!-- parsetype resource -->
<section id="section-Syntax-parsetype-resource">
<h3>Omitting Blank Nodes: <code>rdf:parseType="Resource"</code></h3>
@@ -878,7 +885,8 @@
</div>
</section>
- <section id="section-Syntax-property-attributes-on-property-element">
+ <!-- attributes on property elements -->
+ <section id="section-Syntax-property-attributes-on-property-element">
<h3>Omitting Nodes: Property Attributes on an empty Property Element</h3>
<p>If all of the property elements on a blank node element have
@@ -928,7 +936,8 @@
</div>
</section>
- <section id="section-Syntax-typed-nodes">
+ <!-- typed nodes -->
+ <section id="section-Syntax-typed-nodes">
<h3>Typed Node Elements</h3>
<p>It is common for RDF graphs to have <code>rdf:type</code> predicates
@@ -992,7 +1001,8 @@
</div>
</section>
- <section id="section-Syntax-ID-xml-base">
+ <!-- xml base -->
+ <section id="section-Syntax-ID-xml-base">
<h3>Abbreviating URIs: <code>rdf:ID</code> and <code>xml:base</code></h3>
<p>RDF/XML allows further abbreviating <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> in XML attributes in two
@@ -1048,6 +1058,7 @@
</div>
</section>
+ <!-- list elements -->
<section id="section-Syntax-list-elements">
<h3>Container Membership Property Elements: <code>rdf:li</code> and <code>rdf:_</code><em>n</em></h3>
@@ -1108,7 +1119,8 @@
</div>
</section>
- <section id="section-Syntax-parsetype-Collection">
+ <!-- parsetype collection -->
+ <section id="section-Syntax-parsetype-Collection">
<h3>Collections: <code>rdf:parseType="Collection"</code></h3>
<p>RDF/XML allows an <code>rdf:parseType="Collection"</code>
@@ -1151,7 +1163,8 @@
</div>
</section>
- <section id="section-Syntax-reifying">
+ <!-- reification -->
+ <section id="section-Syntax-reifying">
<h3>Reifying Statements: <code>rdf:ID</code></h3>
<p>The <code>rdf:ID</code> attribute can be used on a property
@@ -1200,2184 +1213,2231 @@
</section>
-
-
-
-<h2>
-<a id="section-Terminology" name="section-Terminology">3 Terminology</a>
-</h2>
-
-<p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
-NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
-this document are to be interpreted as described in
-<a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>
-<a href="#ref-keywords">[KEYWORDS]</a>.</p>
-
-<p>All use of string without further qualification refers to
-a Unicode<a href="#ref-unicode">[UNICODE]</a> character string;
-a sequence of characters represented by a code point in Unicode.
-(Such as defined in <a href="#ref-charmod">[CHARMOD]</a> in section
-<a href="http://www.w3.org/TR/2003/WD-charmod-20030822/#sec-Strings">3.4 Strings</a>).</p>
-
-
-<h2><a id="section-MIME-Type" name="section-MIME-Type">4 RDF MIME Type, File Extension and Macintosh File Type</a></h2>
-
-<p>The Internet media type / MIME type for RDF/XML is
-"<code>application/rdf+xml</code>" —
-
-see <a href="http://www.ietf.org/rfc/rfc3023.txt">RFC 3023</a>
-<a href="#ref-rfc3023">[RFC-3023]</a> section 8.18.
-</p>
-
-<div class="note"><p><strong>Registration Note (Informative):</strong>
-For the state of the MIME type registration, consult
-<a href="http://www.iana.org/assignments/media-types/">IANA MIME Media Types</a> <a href="#ref-iana-media-types">[IANA-MEDIA-TYPES]</a>
-</p></div>
-
-<p>It is recommended that RDF/XML files have the extension
-<code>".rdf"</code> (all lowercase) on all platforms.</p>
-
-<p>It is recommended that RDF/XML files stored on Macintosh HFS file
-systems be given a file type of <code>"rdf "</code>
-(all lowercase, with a space character as the fourth letter).</p>
-
-
-<h2><a id="section-Global" name="section-Global">5 Global Issues</a></h2>
-
-
-<h3><a id="section-Namespace" name="section-Namespace">5.1 The RDF Namespace and Vocabulary</a></h3>
-
-<div class="note"><p><strong>Note (Informative):</strong>
-The names <code>aboutEach</code> and <code>aboutEachPrefix</code> were removed
-from the language and the RDF vocabulary by the RDF Core Working Group.
-See the resolution of issues
-<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach">rdfms-abouteach</a> and
-
-<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteachprefix">rdfms-abouteachprefix</a>
-for further information.
-</p></div>
-
-<div class="note"><p><strong>Note (Informative):</strong>
-The names <code>List</code>, <code>first</code>,
-<code>rest</code> and <code>nil</code> were added for issue
-
-<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-seq-representation">rdfms-seq-representation</a>.
-The names <code>XMLLiteral</code> and <code>datatype</code> were added
-to support RDF datatyping.
-The name <code>nodeID</code> was added
-for issue
-<a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-syntax-incomplete">rdfms-syntax-incomplete</a>.
-See the
-<a href="http://www.w3.org/2000/03/rdf-tracking/">RDF Core Issues List</a>
-for further information.
-</p></div>
-
-
-<p>The
-<span class="termdef"><a id="rdf-ns-uri" name="rdf-ns-uri">RDF namespace URI reference</a></span> (or namespace name) is
-<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code>
-and is typically used in XML with the prefix <code>rdf</code>
-although other prefix strings may be used.
-The <span class="termdef"><a id="rdf-vocabulary" name="rdf-vocabulary">RDF Vocabulary</a></span>
-is identified by this namespace name and consists of the following names only:</p>
-
-<dl>
-<dt>Syntax names — not concepts</dt>
-<dd>
-<p>
-<code>RDF Description ID about parseType resource li nodeID datatype</code>
-</p>
-</dd>
-
-<dt>Class names</dt>
-<dd>
-<p>
-<code>Seq Bag Alt Statement Property XMLLiteral List</code>
-
-</p>
-</dd>
-
-<dt>Property names</dt>
-<dd>
-<p>
-<code>subject predicate object type value first rest _</code><em>n</em><br />
-where <em>n</em> is a decimal integer greater than zero with no leading zeros.
-</p>
-</dd>
-
-<dt>Resource names</dt>
-<dd>
-<p>
-<code>nil</code>
-</p>
-</dd>
-
-</dl>
-
-<p>Any other names are not defined and SHOULD generate a warning when
-encountered, but should otherwise behave normally.</p>
-
-<p>Within RDF/XML documents it is not permitted to use XML namespaces
-whose namespace name is the
-<a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a>
-
-concatenated with additional characters.</p>
-
-<p>Throughout this document the terminology <code>rdf:</code><em>name</em>
-will be used to indicate <em>name</em> is from the RDF vocabulary
-and it has a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> of the concatenation of the
-<a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a> and <em>name</em>.
-For example, <code>rdf:type</code> has the <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
-
-<code>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code></p>
-
-
-<h3><a id="section-Identifiers" name="section-Identifiers">5.2 Identifiers</a></h3>
-
-<p>The
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graph</a>
-(<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> Section 3)
-defines three types of nodes and one type of predicate:</p>
-
-<dl>
-
-<dt><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> nodes and predicates</dt>
-<dd>
-<p><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> (<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> Section 3.1)
-can be either:</p>
-<ul>
-<li>given as XML attribute values interpreted as relative
-URI references that are resolved against the in-scope base URI
-as described in <a href="#section-baseURIs">section 5.3</a>
-
-to give absolute <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a></li>
-<li>transformed from XML namespace-qualified element and attribute names
-(QNames)</li>
-<li>transformed from <code>rdf:ID</code> attribute values.</li>
-</ul>
-
-<p>Within RDF/XML, XML QNames are transformed into
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
-by appending the XML local name to the namespace name (URI reference).
-For example, if the XML namespace prefix <code>foo</code> has
-namespace name (URI reference)
-
-<code>http://example.org/somewhere/</code> then the QName
-<code>foo:bar</code> would correspond to the RDF URI reference
-<code>http://example.org/somewhere/bar</code>. Note that this
-restricts which
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> can be made and the same URI can be given in multiple ways.</p>
-
-<p>The <a href="#idAttr"><code>rdf:ID</code></a> values
-are transformed into
-
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
-by appending the attribute value to the result of appending
-"#" to the in-scope base URI which is defined in
-<a href="#section-baseURIs">Section 5.3 Resolving URIs</a></p>
-</dd>
-
-<dt>Literal nodes (always object nodes)</dt>
-<dd><p>
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-literal">RDF literals</a> (<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> 6.5) are either
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-plain-literal">plain literals</a> (ibid),
-or
-
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literals</a> (ibid).
-The latter includes <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literals</a> (ibid section 5, <cite>XML Content within an RDF graph</cite>).
-</p>
-</dd>
-
-<dt>Blank Node Identifiers</dt>
-<dd><p><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">Blank nodes</a> have distinct identity in the RDF graph.
-When the graph is written in a syntax such as RDF/XML, these
-blank nodes may need graph-local identifiers and a syntax
-in order to preserve this distinction. These local identifiers are called
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifiers</a>
-
-and are used in RDF/XML as values of the <code>rdf:nodeID</code> attribute
-with the syntax given in <a href="#nodeIdAttr">Production nodeIdAttr</a>.
-Blank node identifiers in RDF/XML are scoped to the XML Information Set
-<a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>.</p>
-
-<p>If no blank node identifier is given explicitly as an
-<code>rdf:nodeID</code> attribute value then one will need to be
-generated (using generated-blank-node-id, see section <a href="#section-Infoset-Grammar-Action">6.3.3</a>).
-Such generated blank node
-identifiers must not clash with any blank node identifiers derived
-from <code>rdf:nodeID</code> attribute values. This can be
-implemented by any method that preserves the distinct identity of all
-the blank nodes in the graph, that is, the same blank node identifier
-is not given for different blank nodes. One possible method would be
-to add a constant prefix to all the <code>rdf:nodeID</code> attribute
-values and ensure no generated blank node identifiers ever used that
-prefix. Another would be to map all <code>rdf:nodeID</code> attribute
-values to new generated blank node identifiers and perform that mapping
-on all such values in the RDF/XML document.</p>
-
-</dd>
-
-</dl>
-
-
-<h3><a id="section-baseURIs" name="section-baseURIs">5.3 Resolving URIs</a></h3>
-
-<p>RDF/XML supports
-<a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>
-which defines a
-<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
-
-accessor for each
-<a href="#section-root-node"><span class="arrow">·</span>root event<span class="arrow">·</span></a> and
-<a href="#section-element-node"><span class="arrow">·</span>element event<span class="arrow">·</span></a>.
-Relative URI references are resolved into
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
-according to the algorithm specified in
-<a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>
-
-(and RFC 2396).
-These specifications do not specify an algorithm for resolving a
-fragment identifier alone, such as <code>#foo</code>, or the empty
-string <code>""</code> into an
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>. In RDF/XML, a fragment identifier
-is transformed into a
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
-by appending the fragment identifier to the in-scope base URI. The
-empty string is transformed
-into an
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
-by substituting the in-scope base URI.
-</p>
-
-<div class="note"><p><strong>Test:</strong>
-
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test001.rdf">test001.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test001.nt">test001.nt</a>
-</p></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test004.rdf">test004.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test004.nt">test004.nt</a>
-</p></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test008.rdf">test008.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test008.nt">test008.nt</a>
-</p></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.rdf">test013.rdf</a> and
-
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.nt">test013.nt</a>
-</p></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test016.rdf">test016.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test016.nt">test016.nt</a>
-</p></div>
-
-<p>An empty same document reference ""
-resolves against the URI part of the base URI; any fragment part
-is ignored. See
-<a href="http://www.isi.edu/in-notes/rfc2396.txt">Uniform Resource Identifiers (URI)</a> <a href="#ref-uri">[URIS]</a> section 4.2
-
-</p>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.rdf">test013.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.nt">test013.nt</a>
-</p></div>
-
-<div class="note"><p><strong>Implementation Note (Informative):</strong>
-When using a hierarchical base
-URI that has no path component (/), it must be added before using as a
-base URI for resolving.
-</p></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test011.rdf">test011.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test011.nt">test011.nt</a>
-</p></div>
-
-
-<h3><a id="section-constraints" name="section-constraints">5.4 Constraints</a></h3>
-
-<dl>
-<dt><strong><a id="constraint-id" name="constraint-id">constraint-id</a></strong><br /></dt>
-
-<dd><p>Each application of production <a href="#idAttr">idAttr</a>
-matches an attribute. The pair formed by the
-<a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
-accessor of the matched attribute and the
-<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
-accessor of the matched attribute is unique within a single RDF/XML
-document.</p>
-
-<p>The syntax of the names must match the
-
-<a href="#rdf-id">rdf-id production</a>.</p>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.rdf">test014.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.nt">test014.nt</a>
-</p></div>
-</dd>
-
-</dl>
-
-<h3><a id="section-conformance" name="section-conformance">5.5 Conformance</a></h3>
-
-<dl>
-<dt>Definition:<br /></dt>
- <dd>An <span class="termdef"><a id="dfn-rdf-document" name="dfn-rdf-document">RDF Document</a></span> is a serialization of an
- <a href="http://www.w3.org/TR/rdf-concepts/#dfn-rdf-graph">RDF Graph</a>
- into a concrete syntax.</dd>
-
-<dt>Definition:<br /></dt>
- <dd>An <span class="termdef"><a name="dfn-rdf-xml-document">RDF/XML Document</a></span> is an
- <a href="#dfn-rdf-document" class="termref">RDF Document</a> written in the
- recommended XML transfer syntax for RDF as defined in this document.</dd>
-
-<dt>Conformance:<br /></dt>
- <dd>An <a href="#dfn-rdf-xml-document" class="termref">RDF/XML Document</a> is a
- <span class="termdef"><a name="dfn-conforming-rdf-xml-document">conforming RDF/XML document</a></span>
-
- if it adheres to the specification defined in this document.</dd>
-</dl>
-
-
-<h2>
-<a id="section-Data-Model" name="section-Data-Model">6 Syntax Data Model</a>
-</h2>
-
-<p>This document specifies the syntax of RDF/XML as a grammar on an
-alphabet of symbols. The symbols are called <em>events</em> in the
-style of the <a href="#ref-xpath">[XPATH]</a> 
-
-<a href="http://www.w3.org/TR/xpath#infoset">Information Set Mapping</a>.
-A sequence of events is normally derived from an XML document, in
-which case they are in document order as defined below in
-<a href="#section-Infoset-Mapping">Section 6.2 Information Set Mapping</a>.
-The sequence these events form are intended to be similar to the sequence
-of events produced by the <a href="#ref-sax">[SAX2]</a> XML API from
-the same XML document. Sequences of events may be checked against
-the grammar to determine whether they are or are not syntactically
-well-formed RDF/XML.</p>
-
-<p>The grammar productions may include actions which fire when the
-production is recognized. Taken together these actions define a
-transformation from any syntactically well-formed RDF/XML sequence of
-events into an RDF graph represented in the
-<a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
-language.</p>
-
-<p>The model given here illustrates one way to create a representation of
-an <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graph</a>
-
-from an RDF/XML document. It does not mandate any implementation
-method — any other method that results in a representation of the same
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graph</a>
-may be used.</p>
-
-<p>In particular:</p>
-<ul>
-<li>This specification permits any
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#implementation-note">representation</a>
-of an RDF graph (see <a href="#ref-rdf-concepts">[RDF-CONCEPTS]</a>);
-in particular, it does not require the use of
-
-<a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>.</li>
-<li>This specification does not require the use of
-<a href="#ref-xpath">[XPATH]</a> or <a href="#ref-sax">[SAX2]</a></li>
-<li>This specification places no constraints on the order in which
-software transforming RDF/XML into a representation of a graph,
-constructs the representation of the graph.</li>
-<li>Software transforming RDF/XML into a representation of a graph
-MAY eliminate duplicate predicate arcs.</li>
-</ul>
-
-<p>The syntax does not support non-well-formed XML documents, nor
-documents that otherwise do not have an XML Information Set; for
-example, that do not conform to
-<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a>
-
-<a href="#ref-namespaces">[XML-NS]</a>.
-</p>
-
-<p>The Infoset requires support for
-<a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>.
-RDF/XML uses the information item property [base URI], discussed in
-<a href="#section-baseURIs">section 5.3</a>
-</p>
-
-<p>This specification requires an
-XML Information Set <a href="#ref-xml-infoset">[INFOSET]</a>
-which supports at least the following information items and
-properties for RDF/XML:</p>
-
-<dl>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a></dt>
-<dd>[document element], [children], [base URI]</dd>
-
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">element information item</a></dt>
-<dd>[local name], [namespace name], [children], [attributes], [parent], [base URI]</dd>
-
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.attribute">attribute information item</a></dt>
-<dd>[local name], [namespace name], [normalized value]</dd>
-
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character information item</a></dt>
-<dd>[character code]</dd>
-</dl>
-
-<p>There is no mapping of the following items to data model events:</p>
-<dl>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.pi">processing instruction information item</a></dt>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.rse">unexpanded entity reference information item</a></dt>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.comment">comment information item</a></dt>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.doctype">document type declaration information item</a></dt>
-
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.entity.unparsed">unparsed entity information item</a></dt>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.notation">notation information item</a></dt>
-<dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.namespace">namespace information item</a></dt>
-</dl>
-
-<p>Other information items and properties have no mapping to
-syntax data model events.
-</p>
-
-<p>Element information items with reserved XML Names
-(See <a href="http://www.w3.org/TR/2000/REC-xml-20001006#dt-name">Name</a>
-in <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>)
-are not mapped to data model element events. These are all those
-with property [prefix] beginning with <code>xml</code> (case
-independent comparison) and all those with [prefix] property
-having no value and which have [local name] beginning with
-
-<code>xml</code> (case independent comparison).
-</p>
-
-<p>All information items contained inside XML elements matching the
-<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
-production form
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literals</a>
-and do not follow this mapping. See
-<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
-for further information.</p>
-
-<p>This section is intended to satisfy the requirements for
-<a href="http://www.w3.org/TR/xml-infoset/#conformance">Conformance</a>
-in the <a href="#ref-xml-infoset">[INFOSET]</a> specification.
-It specifies the information items and properties that are needed
-to implement this specification.
-</p>
-
-
-<h3>
-<a id="section-Nodes" name="section-Nodes">6.1 Events</a>
-</h3>
-
-<p>There are nine types of event defined in the following subsections.
-Most events are constructed from an Infoset information item (except
-for <a href="#section-identifier-node">URI reference</a>,
-
-<a href="#section-blank-nodeid-event">blank node</a>,
-<a href="#section-literal-node">plain literal</a> and
-<a href="#section-typed-literal-node">typed literal</a>). The effect
-of an event constructor is to create a new event with a unique identity,
-distinct from all other events. Events have accessor operations on them
-and most have the <em>string-value</em> accessor that may be a static value
-or computed.</p>
-
-
-<h3>
-<a id="section-root-node" name="section-root-node">6.1.1 Root Event</a>
-</h3>
-
-<p>Constructed from a
-<a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>
-and takes the following accessors and values.</p>
-
-<dl>
-<dt><span class="termdef"><a id="eventterm-root-document-element" name="eventterm-root-document-element">document-element</a></span><br /></dt>
-<dd>Set to the value of document information item property [document-element].</dd>
-<dt><span class="termdef"><a id="eventterm-root-children" name="eventterm-root-children">children</a></span><br /></dt>
-<dd>Set to the value of document information item property [children].</dd>
-<dt><span class="termdef"><a id="eventterm-root-base-uri" name="eventterm-root-base-uri">base-uri</a></span><br /></dt>
-
-<dd>Set to the value of document information item property [base URI].</dd>
-<dt><span class="termdef"><a id="eventterm-root-language" name="eventterm-root-language">language</a></span><br /></dt>
-<dd>Set to the empty string.</dd>
-</dl>
-
-
-<h3>
-<a id="section-element-node" name="section-element-node">6.1.2 Element Event</a>
-</h3>
-
-<p>Constructed from an
-<a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">element information item</a>
-
-and takes the following accessors and values:
-</p>
-
-
-<dl>
- <dt><span class="termdef"><a id="eventterm-element-local-name" name="eventterm-element-local-name">local-name</a></span><br /></dt>
- <dd>Set to the value of element information item property [local name].</dd>
-
- <dt><span class="termdef"><a id="eventterm-element-namespace-name" name="eventterm-element-namespace-name">namespace-name</a></span><br /></dt>
- <dd>Set to the value of element information item property [namespace name].</dd>
-
- <dt><span class="termdef"><a id="eventterm-element-children" name="eventterm-element-children">children</a></span><br /></dt>
- <dd>Set to the value of element information item property [children].</dd>
-
- <dt><span class="termdef"><a id="eventterm-element-base-uri" name="eventterm-element-base-uri">base-uri</a></span><br /></dt>
- <dd>Set to the value of element information item property [base URI].</dd>
-
- <dt><span class="termdef"><a id="eventterm-element-attributes" name="eventterm-element-attributes">attributes</a></span><br /></dt>
-
- <dd><p>Made from the value of element information item property [attributes] which is a set of attribute information items.</p>
-
- <p>If this set contains an attribute information item <code>xml:lang</code> (
- [namespace name] property with the value
- "http://www.w3.org/XML/1998/namespace" and
- [local name] property value "lang")
- it is removed from the set of attribute information items and the
- <a href="#eventterm-element-language" class="termref"><span class="arrow">·</span>language<span class="arrow">·</span></a> accessor is set to the
- [normalized-value] property of the attribute information item.</p>
-
- <p>All remaining reserved XML Names
- (See <a href="http://www.w3.org/TR/2000/REC-xml-20001006#dt-name">Name</a>
-
- in <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>)
- are now removed from the set. These are, all
- attribute information items in the set with property [prefix]
- beginning with <code>xml</code> (case independent
- comparison) and all attribute information items with [prefix]
- property having no value and which have [local name] beginning with
- <code>xml</code> (case independent comparison) are removed.
- Note that the [base URI] accessor is computed by XML Base before any
- <code>xml:base</code> attribute information item is deleted.</p>
-
- <p>The remaining set of attribute information items are then used
- to construct a new set of
- <a href="#section-attribute-node">Attribute Events</a>
-
- which is assigned as the value of this accessor.</p>
- </dd>
-
- <dt><span class="termdef"><a id="eventterm-element-URI" name="eventterm-element-URI">URI</a></span><br /></dt>
- <dd>Set to the string value of the concatenation of the
- value of the namespace-name accessor and the value of the
- local-name accessor.
- </dd>
-
- <dt><span class="termdef"><a id="eventterm-element-URI-string-value" name="eventterm-element-URI-string-value">URI-string-value</a></span><br /></dt>
- <dd>
-
-<p>The value is the concatenation of the following in this order "<",
-the escaped value of the
-<a href="#eventterm-element-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
-accessor and ">".</p>
-
-<p>The escaping of the
-<a href="#eventterm-element-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
-accessor uses the N-Triples escapes for
-URI references as described in 3.3 URI References.
-</p>
-
- </dd>
-
- <dt><span class="termdef"><a id="eventterm-element-liCounter" name="eventterm-element-liCounter">li-counter</a></span><br /></dt>
- <dd>Set to the integer value 1.</dd>
-
- <dt><span class="termdef"><a id="eventterm-element-language" name="eventterm-element-language">language</a></span><br /></dt>
- <dd>Set from the
- <a href="#eventterm-element-attributes" class="termref"><span class="arrow">·</span>attributes<span class="arrow">·</span></a>
- as described above.
- If no value is given from the attributes, the value is set to the value of
- the language accessor on the parent event (either a
- <a href="#section-root-node">Root Event</a> or an
- <a href="#section-element-node">Element Event</a>), which may be the empty string.
- </dd>
-
- <dt><span class="termdef"><a id="eventterm-element-subject" name="eventterm-element-subject">subject</a></span><br /></dt>
- <dd>Has no initial value. Takes a value that is an
- <a href="#section-identifier-node">Identifier</a> event.
- This accessor is used on elements that deal with one node in the RDF graph,
- this generally being the subject of a statement.</dd>
-
-</dl>
-
-
-
-<h3>
-<a id="section-end-element-node" name="section-end-element-node">6.1.3 End Element Event</a>
-
-</h3>
-
-<p>Has no accessors. Marks the end of the containing element in
-the sequence.</p>
-
-
-<h3>
-<a id="section-attribute-node" name="section-attribute-node">6.1.4 Attribute Event</a>
-</h3>
-
-<p>Constructed from an
-<a href="http://www.w3.org/TR/xml-infoset/#infoitem.attribute">attribute information item</a>
-and takes the following accessors and values:</p>
-
-<dl>
- <dt><span class="termdef"><a id="eventterm-attribute-local-name" name="eventterm-attribute-local-name">local-name</a></span><br /></dt>
- <dd>Set to the value of attribute information item property [local name].</dd>
-
- <dt><span class="termdef"><a id="eventterm-attribute-namespace-name" name="eventterm-attribute-namespace-name">namespace-name</a></span><br /></dt>
- <dd>Set to the value of attribute information item property [namespace name].</dd>
-
- <dt><span class="termdef"><a id="eventterm-attribute-string-value" name="eventterm-attribute-string-value">string-value</a></span><br /></dt>
-
- <dd>Set to the value of the attribute information item property [normalized value] as specified by
- <a href="#ref-xml">[XML]</a> (if an attribute whose normalized
- value is a zero-length string, then the string-value is also
- a zero-length string).</dd>
-
- <dt><span class="termdef"><a id="eventterm-attribute-URI" name="eventterm-attribute-URI">URI</a></span><br /></dt>
- <dd><p>If <a href="#eventterm-attribute-namespace-name" class="termref"><span class="arrow">·</span>namespace-name<span class="arrow">·</span></a> is present,
- set to a string value of the concatenation of the value of the
- <a href="#eventterm-attribute-namespace-name" class="termref"><span class="arrow">·</span>namespace-name<span class="arrow">·</span></a> accessor
- and the value of the
- <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor.
- Otherwise if <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> is
- <code>ID</code>, <code>about</code>, <code>resource</code>, <code>parseType</code> or <code>type</code>, set to a string value of the
- concatenation of the
- <a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a>
-
- and the value of the <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor. Other non-namespaced <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor values are forbidden.</p>
-
- <p>The support for a limited set of non-namespaced names is
- REQUIRED and intended to allow RDF/XML documents specified in
- <a href="#ref-rdfms">[RDF-MS]</a> to remain valid; new documents
- SHOULD NOT use these unqualified attributes and applications MAY
- choose to warn when the unqualified form is seen in a document.</p>
-
- <p>The construction of
- <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
- from XML attributes can generate the same
- <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
- from different XML attributes. This can cause ambiguity in the
- grammar when matching attribute events (such as when
- <code>rdf:about</code> and <code>about</code> XML attributes are
- both present). Documents that have this are illegal.
- </p>
-
-</dd>
-
- <dt><span class="termdef"><a id="eventterm-attribute-URI-string-value" name="eventterm-attribute-URI-string-value">URI-string-value</a></span><br /></dt>
- <dd>
-<p>The value is the concatenation of the following in this order "<",
-the escaped value of the
-<a href="#eventterm-attribute-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
-accessor and ">".</p>
-
-<p>The escaping of the
-<a href="#eventterm-attribute-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
-accessor uses the N-Triples escapes for
-URI references as described in 3.3 URI References.
-</p>
- </dd>
-
-</dl>
-
-
-<h3>
-<a id="section-text-node" name="section-text-node">6.1.5 Text Event</a>
-</h3>
-
-<p>Constructed from a sequence of one or more consecutive
-<a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character information items</a>.
-Has the single accessor:</p>
-
-<dl>
- <dt><span class="termdef"><a id="eventterm-text-string-value" name="eventterm-text-string-value">string-value</a></span><br /></dt>
- <dd>Set to the value of the string made from concatenating the
- [<a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character code</a>] property of each of the character information items.
- </dd>
-</dl>
-
-<h3>
-<a id="section-identifier-node" name="section-identifier-node">6.1.6 URI Reference Event</a>
-</h3>
-
-<p><a id="eventterm-identifier-identifier-type" name="eventterm-identifier-identifier-type"></a>
-An event for a
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
-which has the following accessors:</p>
-
-<dl>
- <dt><span class="termdef"><a id="eventterm-identifier-identifier" name="eventterm-identifier-identifier">identifier</a></span><br /></dt>
- <dd>Takes a string value used as an
- <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.
- </dd>
-
- <dt><span class="termdef"><a id="eventterm-identifier-string-value" name="eventterm-identifier-string-value">string-value</a></span><br /></dt>
- <dd><p>The value is the concatenation of "<", the escaped value of the <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor and ">"</p>
-
- <p>The escaping of the <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor value
- uses the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a> escapes for URI references as described in
- <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#sec-uri-encoding">3.3 URI References</a>.</p>
-
- </dd>
-
-</dl>
-
-<p>These events are constructed by giving a value for the
-<a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
-</p>
-
-<p>For further information on identifiers in the RDF graph, see
-<a href="#section-Identifiers">section 5.2</a>.</p>
-
-
-<h3>
-<a id="section-blank-nodeid-event" name="section-blank-nodeid-event">6.1.7 Blank Node Identifier Event</a>
-</h3>
-
-<p>An event for a
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a>
- which has the following accessors:</p>
-
-<dl>
- <dt><span class="termdef"><a id="eventterm-blanknodeid-identifier" name="eventterm-blanknodeid-identifier">identifier</a></span><br /></dt>
-
- <dd>Takes a string value.</dd>
-
- <dt><span class="termdef"><a id="eventterm-blanknodeid-string-value" name="eventterm-blanknodeid-string-value">string-value</a></span><br /></dt>
- <dd>The value is a function of the value of the
-<a href="#eventterm-blanknodeid-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
-The value begins with "_:" and the entire value MUST match the
-<a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
-<a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#nodeID">nodeID</a> production.
-The function MUST preserve distinct blank node identity as discussed in in section <a href="#section-Identifiers">5.2 Identifiers</a>.</dd>
-
-</dl>
-
-<p>These events are constructed by giving a value for the
-<a href="#eventterm-blanknodeid-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
-</p>
-
-<p>For further information on identifiers in the RDF graph, see
-<a href="#section-Identifiers">section 5.2</a>.</p>
-
-
-<h3>
-
-<a id="section-literal-node" name="section-literal-node">6.1.8 Plain Literal Event</a>
-</h3>
-
-<p>An event for a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-plain-literal">plain literal</a> which can have the following accessors:</p>
-
-<dl>
- <dt><span class="termdef"><a id="eventterm-literal-literal-value" name="eventterm-literal-literal-value">literal-value</a></span><br /></dt>
- <dd>Takes a string value.</dd>
-
- <dt><span class="termdef"><a id="eventterm-literal-literal-language" name="eventterm-literal-literal-language">literal-language</a></span><br /></dt>
- <dd>Takes a string value used as a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-language-identifier">language tag</a> in an RDF plain literal.</dd>
-
- <dt><span class="termdef"><a id="eventterm-literal-string-value" name="eventterm-literal-string-value">string-value</a></span><br /></dt>
- <dd><p>The value is calculated from the other accessors as follows.</p>
-
- <p>If <a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> is the empty string
- then the value is the concatenation of """ (1 double quote),
- the escaped value of the
- <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor
- and """ (1 double quote).</p>
-
- <p>Otherwise the value is the concatenation of """ (1 double quote),
- the escaped value of the
- <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor
- ""@" (1 double quote and a '@'),
- and the value of the
- <a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> accessor.</p>
-
- <p>The escaping of the <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor value uses the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
-
- escapes for strings as described in <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntrip_strings">3.2 Strings</a>
- for escaping certain characters such as ". </p>
- </dd>
-</dl>
-
-<p>These events are constructed by giving values for the
-<a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> and
-
-<a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> accessors.</p>
-
-
-<div class="note"><p><strong>Interoperability Note (Informative):</strong>
-<a id="literal-comb-char-note1" name="literal-comb-char-note1"></a>
-Literals beginning with a Unicode combining character are
-allowed however they may cause interoperability problems.
-See <a href="#ref-charmod">[CHARMOD]</a> for further information.
-</p></div>
-
-<h3>
-<a id="section-xml-literal-node" name="section-xml-literal-node"></a>
-<a id="section-typed-literal-node" name="section-typed-literal-node">6.1.9 Typed Literal Event</a>
-</h3>
-
-<p>An event for a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literal</a> which can have the following accessors:</p>
-
-<dl>
- <dt><a id="eventterm-xmlliteral-literal-value" name="eventterm-xmlliteral-literal-value"></a><span class="termdef"><a id="eventterm-typedliteral-literal-value" name="eventterm-typedliteral-literal-value">literal-value</a></span><br /></dt>
- <dd>Takes a string value.</dd>
-
- <dt><a id="eventterm-literal-literal-datatype" name="eventterm-literal-literal-datatype"></a><span class="termdef"><a id="eventterm-typedliteral-literal-datatype" name="eventterm-typedliteral-literal-datatype">literal-datatype</a></span><br /></dt>
- <dd>Takes a string value used as an <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</dd>
-
- <dt><a id="eventterm-xmlliteral-string-value" name="eventterm-xmlliteral-string-value"></a><span class="termdef"><a id="eventterm-typedliteral-string-value" name="eventterm-typedliteral-string-value">string-value</a></span><br /></dt>
- <dd><p>The value is the concatenation of the following in this order
- """ (1 double quote),
- the escaped value of the
- <a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor,
- """ (1 double quote), "^^<",
- the escaped value of the
- <a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessor
- and ">".
- </p>
-
- <p>The escaping of the <a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor value
- uses the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
- escapes for strings as described in <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntrip_strings">3.2 Strings</a>
- for escaping certain characters such as ".
- The escaping of the <a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessor value
- must use the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a> escapes for URI references as described in
- <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#sec-uri-encoding">3.3 URI References</a>.</p>
-
-</dd>
-</dl>
-
-<p>These events are constructed by giving values for the
-<a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a>
-and
-<a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessors.</p>
-
-<div class="note"><p><strong>Interoperability Note (Informative):</strong>
-<a id="literal-comb-char-note2" name="literal-comb-char-note2"></a>
-Literals beginning with a Unicode combining character are
-allowed however they may cause interoperability problems.
-See <a href="#ref-charmod">[CHARMOD]</a> for further information.
-</p></div>
-
-<div class="note"><p><strong>Implementation Note (Informative):</strong>
-<a id="literal-white-space-normalization-note" name="literal-white-space-normalization-note"></a>
-In <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schema (part 1)</a> <a href="#ref-xml-schema1">[XML-SCHEMA1]</a>,
-
-<a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#section-White-Space-Normalization-during-Validation">white space normalization</a>
-occurs during validation according to the value of the whiteSpace
-facet. The syntax mapping used in this document occurs after this,
-so the whiteSpace facet formally has no further effect.
-</p></div>
-
-
-
-<h3>
-<a id="section-Infoset-Conformance" name="section-Infoset-Conformance"></a>
-<a id="section-Infoset-Mapping" name="section-Infoset-Mapping">6.2 Information Set Mapping</a>
-</h3>
-
-<p>To transform the Infoset into the sequence of events
-in <em>document order</em>, each
-information item is transformed as described above to generate a
-tree of events with accessors and values. Each element event is
-then replaced as described below to turn the tree of events
-into a sequence in document order.</p>
-
-<ol>
-<li>The original <a href="#section-element-node">element event</a></li>
-<li>The value of the
-<a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">children</a>
-accessor recursively transformed, a possibly empty ordered list of events.</li>
-<li>An <a href="#section-end-element-node">end element event</a></li>
-</ol>
-
-
-<h3>
-
-<a id="section-Notation-Forms" name="section-Notation-Forms"></a>
-<a id="section-Infoset-Grammar-Notation" name="section-Infoset-Grammar-Notation">6.3 Grammar Notation</a>
-</h3>
-
-<p>The following notation is used to describe matching the sequence
-of data model events as given in <a href="#section-Data-Model">Section 6</a>
-and the actions to perform for the matches.
-The RDF/XML grammar is defined in terms of mapping from these matched
-data model events to triples, using notation of the form:</p>
-
-<blockquote>
-<div class="productionOuter"><div class="productionInner"><p>
-number <em>event-type</em> <em>event-content</em>
-
-</p></div></div>
-
-<div>
-<em>action</em>...
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code>
-<a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
-</code>
-</p></div></div>
-</div>
-</blockquote>
-
-<p>where the <em>event-content</em> is an expression matching
-
-<em>event-types</em> (as defined in <a href="#section-Nodes">Section 6.1</a>),
-using notation given in the following sections.
-The number is used for reference purposes.
-The grammar <em>action</em> may include generating
-new triples to the graph, written in
-<a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
-format.
-</p>
-
-<p>The following sections describe the general notation used and that
-for event matching and actions.</p>
-
-<h4>
-
-<a id="section-Infoset-Grammar-General" name="section-Infoset-Grammar-General">6.3.1 Grammar General Notation</a>
-</h4>
-
-<table border="1" summary="This table describes the general notation used the grammar.">
-<caption>Grammar General Notation.</caption>
-<tr>
-<th>Notation</th>
-<th>Meaning</th>
-</tr>
-<tr>
-<td><em>event</em>.<em>accessor</em></td>
-
-<td>The value of an event accessor.</td>
-</tr>
-<tr>
-<td><code>rdf:</code><em>X</em></td>
-<td>A URI as defined in <a href="#section-Namespace">section 5.1</a>.</td>
-</tr>
-<tr>
-<td>"ABC"</td>
-<td>A string of characters A, B, C in order.</td>
-
-</tr>
-</table>
-
-<h4>
-<a id="section-Infoset-Grammar-Matching" name="section-Infoset-Grammar-Matching">6.3.2 Grammar Event Matching Notation</a>
-</h4>
-
-
-<table border="1" summary="This table describes the event matching notation used in the following sections to match sequences of syntax data model events.">
-<caption>Grammar Event Matching Notation.</caption>
-<tr>
-<th>Notation</th>
-<th>Meaning</th>
-
-</tr>
-<tr>
-<td>A == B</td>
-<td>Event accessor A matches expression B.</td>
-</tr>
-<tr>
-<td>A != B</td>
-<td>A is not equal to B.</td>
-</tr>
-<tr>
-<td>A | B | ...</td>
-<td>The A, B, ... terms are alternatives.</td>
-
-</tr>
-<tr>
-<td>A - B</td>
-<td>The terms in A excluding all the terms in B.</td>
-</tr>
-<tr>
-<td><a id="anyURI" name="anyURI">anyURI</a>.</td>
-<td>Any URI.</td>
-</tr>
-<tr>
-<td><a id="anyString" name="anyString">anyString</a>.</td>
-
-<td>Any string.</td>
-</tr>
-<tr>
-<td>list(item1, item2, ...); list()</td>
-<td>An ordered list of events. An empty list.</td>
-</tr>
-<tr>
-<td>set(item1, item2, ...); set()</td>
-<td>An unordered set of events. An empty set.</td>
-</tr>
-<tr>
-<td>*</td>
-
-<td>Zero or more of preceding term.</td>
-</tr>
-<tr>
-<td>?</td>
-<td>Zero or one of preceding term.</td>
-</tr>
-<tr>
-<td>+</td>
-<td>One or more of preceding term.</td>
-</tr>
-<tr>
-<td>root(acc1 == value1,<br />
-
-    acc2 == value2, ...)</td>
-<td>Match a <a href="#section-root-node">Root Event</a> with accessors.
-</td>
-</tr>
-<tr>
-<td>start-element(acc1 == value1,<br />
-    acc2 == value2, ...)<br />
-<em>children</em><br />
-end-element()</td>
-
-<td>Match a sequence of
-<a href="#section-element-node">Element Event</a> with accessors,
-a possibly empty list of events as element content and an
-<a href="#section-end-element-node">End Element Event</a>.
-</td>
-</tr>
-<tr>
-<td>attribute(acc1 == value1,<br />
-    acc2 == value2, ...)</td>
-<td>Match an <a href="#section-attribute-node">Attribute Event</a>
-with accessors.</td>
-
-</tr>
-<tr>
-<td>text()</td>
-<td>Match a <a href="#section-text-node">Text Event</a>.</td>
-</tr>
-</table>
-
-<h4>
-<a id="section-Infoset-Grammar-Action" name="section-Infoset-Grammar-Action">6.3.3 Grammar Action Notation</a>
-</h4>
-
-
-<table border="1" summary="This table describes the grammar actions notation used in the following sections to perform triple generation from syntax data model events.">
-<caption>Grammar Action Notation.</caption>
-<tr>
-<th>Notation</th>
-<th>Meaning</th>
-</tr>
-<tr>
-<td>A := B</td>
-<td>Assigns A the value B.</td>
-</tr>
-<tr>
-<td>concat(A, B, ..)</td>
-
-<td>A string created by concatenating the terms in order.</td>
-</tr>
-<tr>
-<td>resolve(<em>e</em>, <em>s</em>)</td>
-<td>A string created by interpreting string <em>s</em> as a relative URI reference to the
-<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a> accessor of <a href="#section-element-node"></a> <em>e</em>
-
-as defined in <a href="#section-baseURIs">Section 5.3 Resolving URIs</a>.
-The resulting string represents an
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</td>
-</tr>
-<tr>
-<td>generated-blank-node-id()</td>
-<td>A string value for a new distinct generated
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a>
-as defined in <a href="#section-Identifiers">section 5.2 Identifiers</a>.
-</td>
-
-</tr>
-<tr>
-<td><em>event</em>.<em>accessor</em> := <em>value</em></td>
-<td>Sets an event accessor to the given value.</td>
-</tr>
-<tr>
-<td>uri(identifier := value)</td>
-<td>Create a new <a href="#section-identifier-node">URI Reference Event</a>.</td>
-
-</tr>
-<tr>
-<td>bnodeid(identifier := value)</td>
-<td>Create a new <a href="#section-blank-nodeid-event">Blank Node Identifier Event</a>. See also section <a href="#section-Identifiers">5.2 Identifiers</a>.</td>
-</tr>
-<tr>
-<td>literal(literal-value := string,<br />
-    literal-language := language, ...)</td>
-<td>Create a new <a href="#section-literal-node">Plain Literal Event</a>.</td>
-
-</tr>
-<tr>
-<td>typed-literal(literal-value := string, ...)</td>
-<td>Create a new <a href="#section-typed-literal-node">Typed Literal Event</a>.</td>
-</tr>
-</table>
-
-
-
-<h2>
-<a id="section-Infoset-Grammar" name="section-Infoset-Grammar">7 RDF/XML Grammar</a>
-</h2>
-
-<h3><a id="section-grammar-summary" name="section-grammar-summary">7.1 Grammar summary</a></h3>
-<div class="productionOuter"><div class="productionInner">
-<table>
-<tr valign="top">
-<td><a href="#coreSyntaxTerms">7.2.2</a> <a href="#coreSyntaxTerms">coreSyntaxTerms</a></td> <td><code>rdf:RDF</code> | <code>rdf:ID</code> | <code>rdf:about</code> | <code>rdf:parseType</code> | <code>rdf:resource</code> | <code>rdf:nodeID</code> | <code>rdf:datatype</code></td>
-
-</tr>
-<tr valign="top">
-<td><a href="#syntaxTerms">7.2.3</a> <a href="#syntaxTerms">syntaxTerms</a></td> <td><a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code></td>
-</tr>
-<tr valign="top">
-<td><a href="#oldTerms">7.2.4</a> <a href="#oldTerms">oldTerms</a></td> <td><code>rdf:aboutEach</code> | <code>rdf:aboutEachPrefix</code> | <code>rdf:bagID</code></td>
-
-</tr>
-<tr valign="top">
-<td><a href="#nodeElementURIs">7.2.5</a> <a href="#nodeElementURIs">nodeElementURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#propertyElementURIs">7.2.6</a> <a href="#propertyElementURIs">propertyElementURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <a href="#oldTerms">oldTerms</a> )</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#propertyAttributeURIs">7.2.7</a> <a href="#propertyAttributeURIs">propertyAttributeURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#doc">7.2.8</a> <a href="#doc">doc</a></td> <td>root(<a href="#eventterm-root-document-element">document-element</a> == <a href="#RDF">RDF</a>,
-<a href="#eventterm-root-children">children</a> == list(<a href="#RDF">RDF</a>))</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#RDF">7.2.9</a> <a href="#RDF">RDF</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <code>rdf:RDF</code>,
-<a href="#eventterm-element-attributes">attributes</a> == set())<br />
-<a href="#nodeElementList">nodeElementList</a><br />
-
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#nodeElementList">7.2.10</a> <a href="#nodeElementList">nodeElementList</a></td> <td><a href="#ws">ws</a>* (<a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>* )*</td>
-</tr>
-<tr valign="top">
-
-<td><a href="#nodeElement">7.2.11</a> <a href="#nodeElement">nodeElement</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#nodeElementURIs">nodeElementURIs</a><br />
-    <a href="#eventterm-element-attributes">attributes</a> == set((<a href="#idAttr">idAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> | <a href="#aboutAttr">aboutAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
-
-<a href="#propertyEltList">propertyEltList</a><br />
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#ws">7.2.12</a> <a href="#ws">ws</a></td> <td>A <a href="#section-text-node">text event</a> matching white space
-defined by <a href="#ref-xml">[XML]</a> definition <em>White Space</em>
-
-Rule [3] <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-S">S</a>
-in section
-<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn">Common Syntactic Constructs</a></td>
-</tr>
-<tr valign="top">
-<td><a href="#propertyEltList">7.2.13</a> <a href="#propertyEltList">propertyEltList</a></td> <td><a href="#ws">ws</a>* (<a href="#propertyElt">propertyElt</a> <a href="#ws">ws</a>* ) *</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#propertyElt">7.2.14</a> <a href="#propertyElt">propertyElt</a></td> <td><a href="#resourcePropertyElt">resourcePropertyElt</a> |
-<a href="#literalPropertyElt">literalPropertyElt</a> |
-<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a> |
-<a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a> |
-
-<a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a> |
-<a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a> |
-<a href="#emptyPropertyElt">emptyPropertyElt</a></td>
-</tr>
-<tr valign="top">
-<td><a href="#resourcePropertyElt">7.2.15</a> <a href="#resourcePropertyElt">resourcePropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?))<br />
-<a href="#ws">ws</a>* <a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>*<br />
-end-element()</td>
-</tr>
-<tr valign="top">
-
-<td><a href="#literalPropertyElt">7.2.16</a> <a href="#literalPropertyElt">literalPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#datatypeAttr">datatypeAttr</a>?))<br />
-
-<a href="#section-text-node">text()</a><br />
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#parseTypeLiteralPropertyElt">7.2.17</a> <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseLiteral">parseLiteral</a>))<br />
-<a href="#literal">literal</a><br />
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#parseTypeResourcePropertyElt">7.2.18</a> <a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseResource">parseResource</a>))<br />
-<a href="#propertyEltList">propertyEltList</a><br />
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#parseTypeCollectionPropertyElt">7.2.19</a> <a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseCollection">parseCollection</a>))<br />
-<a href="#nodeElementList">nodeElementList</a><br />
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#parseTypeOtherPropertyElt">7.2.20</a> <a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseOther">parseOther</a>))<br />
-<a href="#propertyEltList">propertyEltList</a><br />
-end-element()</td>
-</tr>
-<tr valign="top">
-<td><a href="#emptyPropertyElt">7.2.21</a> <a href="#emptyPropertyElt">emptyPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
-
-<a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, ( <a href="#resourceAttr">resourceAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
-end-element()</td>
-</tr>
-
-<tr valign="top">
-<td><a href="#idAttr">7.2.22</a> <a href="#idAttr">idAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#nodeIdAttr">7.2.23</a> <a href="#nodeIdAttr">nodeIdAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#aboutAttr">7.2.24</a> <a href="#aboutAttr">aboutAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#propertyAttr">7.2.25</a> <a href="#propertyAttr">propertyAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <a href="#propertyAttributeURIs">propertyAttributeURIs</a>,
-<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a>)</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#resourceAttr">7.2.26</a> <a href="#resourceAttr">resourceAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:resource</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#datatypeAttr">7.2.27</a> <a href="#datatypeAttr">datatypeAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:datatype</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#parseLiteral">7.2.28</a> <a href="#parseLiteral">parseLiteral</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == "Literal")</td>
-</tr>
-
-<tr valign="top">
-<td><a href="#parseResource">7.2.29</a> <a href="#parseResource">parseResource</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == "Resource")</td>
-</tr>
-<tr valign="top">
-
-<td><a href="#parseCollection">7.2.30</a> <a href="#parseCollection">parseCollection</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
-<a href="#eventterm-attribute-string-value">string-value</a> == "Collection")</td>
-</tr>
-<tr valign="top">
-<td><a href="#parseOther">7.2.31</a> <a href="#parseOther">parseOther</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
-
-<a
-href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a> - ("Resource" | "Literal" | "Collection") )</td>
-</tr>
-<tr valign="top">
-<td><a href="#URI-reference">7.2.32</a> <a href="#URI-reference">URI-reference</a></td> <td>An <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</td>
-
-</tr>
-<tr valign="top">
-<td><a href="#literal">7.2.33</a> <a href="#literal">literal</a></td> <td>Any XML element content that is allowed according to
-<a href="#ref-xml">[XML]</a> definition <em>Content of Elements</em>
-Rule [43]
-<a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-content">content</a>.
-in section
-<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-starttags">3.1 Start-Tags, End-Tags, and Empty-Element Tags</a></td>
-
-</tr>
-<tr valign="top">
-<td><a href="#rdf-id">7.2.34</a> <a href="#rdf-id">rdf-id</a></td> <td>An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
-matching any legal
-<a href="#ref-namespaces">[XML-NS]</a> token
-<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a></td>
-
-</tr>
-</table>
-
-</div></div>
-
-<h3><a id="section-grammar-productions" name="section-grammar-productions">7.2 Grammar Productions</a></h3>
-
-<h4><a id="start" name="start">7.2.1 Grammar start</a></h4>
-
-<p>If the RDF/XML is a standalone XML document
-(identified by presentation as an
-application/rdf+xml <a href="#section-MIME-Type">RDF MIME type</a> object,
-or by some other means) then the grammar may start with
-production <a href="#doc">doc</a> or
-production <a href="#nodeElement">nodeElement</a>.</p>
-
-<p>If the content is known to be RDF/XML by context, such as when
-RDF/XML is embedded inside other XML content, then the grammar
-can either start
-at <a href="#section-element-node">Element Event</a> 
-<a href="#RDF">RDF</a>
-(only when an element is legal at that point in the XML)
-or at production <a href="#nodeElementList">nodeElementList</a>
-(only when element content is legal, since this is a list of elements).
-For such embedded RDF/XML, the
-<a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
-value on the outermost element must be initialized from the containing
-XML since no
-<a href="#section-root-node">Root Event</a>  will be available.
-Note that if such embedding occurs, the grammar may be entered
-several times but no state is expected to be preserved.
-
-</p>
-
-
-<h4><a id="coreSyntaxTerms" name="coreSyntaxTerms">7.2.2 Production coreSyntaxTerms</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<code>rdf:RDF</code> | <code>rdf:ID</code> | <code>rdf:about</code> | <code>rdf:parseType</code> | <code>rdf:resource</code> | <code>rdf:nodeID</code> | <code>rdf:datatype</code>
-
-</p></div></div>
-
-<p>A subset of the syntax terms from the RDF vocabulary in
-<a href="#section-Namespace">section 5.1</a>
-which are used in RDF/XML.
-</p>
-
-<h4><a id="syntaxTerms" name="syntaxTerms">7.2.3 Production syntaxTerms</a></h4>
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code>
-
-</p></div></div>
-
-<p>All the syntax terms from the RDF vocabulary in
-<a href="#section-Namespace">section 5.1</a>
-which are used in RDF/XML.
-</p>
-
-
-<h4><a id="bagIdAttr" name="bagIdAttr"></a><a id="section-Bag-Expand" name="section-Bag-Expand"></a><a id="oldTerms" name="oldTerms">7.2.4 Production oldTerms</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<code>rdf:aboutEach</code> | <code>rdf:aboutEachPrefix</code> | <code>rdf:bagID</code>
-
-</p></div></div>
-
-<p>These are the names from the <a href="#section-Namespace">RDF vocabulary</a>
-that have been withdrawn from the language. See the resolutions of
-Issue <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-aboutEach-on-object">rdfms-aboutEach-on-object</a>,
-Issue <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteachprefix">rdfms-abouteachprefix</a> and
-Last Call Issue <a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#timbl-01">timbl-01</a>
-for further information.
-</p>
-
-<div class="note"><p><strong>Error Test:</strong>
-
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-abouteach/error001.rdf">error001.rdf</a> and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-abouteach/error002.rdf">error002.rdf</a>
-</p></div>
-
-
-<h4><a id="nodeElementURIs" name="nodeElementURIs">7.2.5 Production nodeElementURIs</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )
-
-</p></div></div>
-
-<p>The <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> that are allowed on node elements.</p>
-
-
-<h4><a id="propertyElementURIs" name="propertyElementURIs">7.2.6 Production propertyElementURIs</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <a href="#oldTerms">oldTerms</a> )
-
-</p></div></div>
-
-<p>The URIs that are allowed on property elements.</p>
-
-
-<h4><a id="propertyAttributeURIs" name="propertyAttributeURIs">7.2.7 Production propertyAttributeURIs</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )
-
-</p></div></div>
-
-<p>The <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> that are allowed on property attributes.</p>
-
-
-<h4><a id="doc" name="doc">7.2.8 Production doc</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-root(<a href="#eventterm-root-document-element">document-element</a> == <a href="#RDF">RDF</a>,<br />
-
-    <a href="#eventterm-root-children">children</a> == list(<a href="#RDF">RDF</a>))
-</p></div></div>
-
-
-<h4><a id="RDF" name="RDF">7.2.9 Production RDF</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <code>rdf:RDF</code>,<br />
-
-    <a href="#eventterm-element-attributes">attributes</a> == set())<br />
-<a href="#nodeElementList">nodeElementList</a><br />
-end-element()
-</p></div></div>
-
-
-<h4><a id="nodeElementList" name="nodeElementList">7.2.10 Production nodeElementList</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#ws">ws</a>* (<a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>* )*
-
-</p></div></div>
-
-
-<h4><a id="description" name="description"></a><a id="typedNode" name="typedNode"></a>
-<a id="nodeElement" name="nodeElement">7.2.11 Production nodeElement</a></h4>
-
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#nodeElementURIs">nodeElementURIs</a><br />
-    <a href="#eventterm-element-attributes">attributes</a> == set((<a href="#idAttr">idAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> | <a href="#aboutAttr">aboutAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
-
-<a href="#propertyEltList">propertyEltList</a><br />
-end-element()
-</p></div></div>
-
-<p>For node element <em>e</em>, the processing of some of the attributes
-has to be done before other work such as dealing with children events
-or other attributes. These can be processed in any order:</p>
-
-<ul>
-
-<li>If there is an attribute <em>a</em> with
- <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>, then
-
-<em>e</em>.<a href="#eventterm-element-subject">subject</a> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))).</li>
-
-<li>If there is an attribute <em>a</em> with
- <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>, then
-
-<em>e</em>.<a href="#eventterm-element-subject">subject</a> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a>:=<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>).</li>
-
-<li>If there is an attribute <em>a</em> with
-
-<em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code> then
-<em>e</em>.<a href="#eventterm-element-subject">subject</a> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)).</li>
-
-</ul>
-
-<p>If <em>e</em>.<a href="#eventterm-element-subject">subject</a> is empty,
-then <em>e</em>.<a href="#eventterm-element-subject">subject</a> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()).</p>
-
-
-<p>The following can then be performed in any order:</p>
-
-<ul>
-
-<li><a id="nodeElementStatement1" name="nodeElementStatement1"></a> If <em>e</em>.<a href="#eventterm-element-URI">URI</a> != <code>rdf:Description</code>
-then the following statement is added to the graph:
-
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> .</code>
-</p></div></div>
-</li>
-
-<li><a id="nodeElementStatement2" name="nodeElementStatement2"></a> If there is an attribute <em>a</em>
-in <a href="#propertyAttr">propertyAttr</a> with
-<em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:type</code>
-then
-
-<em>u</em>:=uri(identifier:=resolve(<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
-and the following tiple is added to the graph:
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <em>u</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-
-</p></div></div>
-</li>
-
-<li><a id="nodeElementStatement3" name="nodeElementStatement3"></a> For each attribute <em>a</em> matching
-<a href="#propertyAttr">propertyAttr</a> (and not <code>rdf:type</code>),
-the Unicode string
-<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>
-
-SHOULD be in Normal Form C<a href="#ref-nfc">[NFC]</a>,
-<em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
-and the following statement is added to the graph:
-
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>a</em>.<a href="#eventterm-attribute-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
-
-</p></div></div>
-</li>
-
-<li><a id="nodeElementStatement4" name="nodeElementStatement4"></a> Handle the
-<a href="#propertyEltList">propertyEltList</a> children events
-in document order.</li>
-
-</ul>
-
-
-
-<h4><a id="ws" name="ws">7.2.12 Production ws</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-A <a href="#section-text-node">text event</a> matching white space
-defined by <a href="#ref-xml">[XML]</a> definition <em>White Space</em>
-Rule [3] <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-S">S</a>
-in section
-<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn">Common Syntactic Constructs</a>
-</p></div></div>
-
-
-<h4><a id="propertyEltList" name="propertyEltList">7.2.13 Production propertyEltList</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#ws">ws</a>* (<a href="#propertyElt">propertyElt</a> <a href="#ws">ws</a>* ) *
-</p></div></div>
-
-
-<h4><a id="propertyElt" name="propertyElt">7.2.14 Production propertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-<a href="#resourcePropertyElt">resourcePropertyElt</a> |
-<a href="#literalPropertyElt">literalPropertyElt</a> |
-<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a> |
-<a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a> |
-<a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a> |
-
-<a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a> |
-<a href="#emptyPropertyElt">emptyPropertyElt</a>
-</p></div></div>
-
-<p>If element <em>e</em> has
-<em>e</em>.<a href="#eventterm-element-URI">URI</a> =
-<code>rdf:li</code> then apply the list expansion rules on element <em>e</em>.parent in
-
-<a href="#section-List-Expand">section 7.4</a>
-to give a new URI <em>u</em> and
-<em>e</em>.<a href="#eventterm-element-URI">URI</a> := <em>u</em>.
-</p>
-
-<p>The action of this production must be done before the
-actions of any sub-matches (<a
-href="#resourcePropertyElt">resourcePropertyElt</a> ... <a href="#emptyPropertyElt">emptyPropertyElt</a>).
-Alternatively the result must be equivalent to as if it this action
-was performed first, such as performing as the first
-action of all of the sub-matches.
-
-</p>
-
-
-<h4><a id="resourcePropertyElt" name="resourcePropertyElt">7.2.15 Production resourcePropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?))<br />
-
-<a href="#ws">ws</a>* <a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>*<br />
-end-element()
-</p></div></div>
-
-<p>For element <em>e</em>, and the single contained nodeElement
-<em>n</em>, first <em>n</em> must be processed using production
-
-<a href="#nodeElement">nodeElement</a>.
-Then the following statement is added to the graph:</p>
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-  <code> <em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>n</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-
-</p></div></div>
-
-<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
-statement is reified with
-<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
-using the reification rules in
-
-<a href="#section-Reification">section 7.3</a>
-and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em></p>
-
-
-<h4><a id="literalPropertyElt" name="literalPropertyElt">7.2.16 Production literalPropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#datatypeAttr">datatypeAttr</a>?))<br />
-<a href="#section-text-node">text()</a><br />
-end-element()
-</p></div></div>
-
-<p>Note that the empty literal case is defined in production
-<a href="#emptyPropertyElt">emptyPropertyElt</a>.</p>
-
-<p>For element <em>e</em>, and the text event <em>t</em>.
-The Unicode string <em>t</em>.<a href="#eventterm-text-string-value">string-value</a> SHOULD be in Normal Form C<a href="#ref-nfc">[NFC]</a>.
-If the <code>rdf:datatype</code> attribute <em>d</em> is given
-then <em>o</em> := typed-literal(<a href="#eventterm-typedliteral-literal-value">literal-value</a> := <em>t</em>.<a href="#eventterm-text-string-value">string-value</a>, <a href="#eventterm-typedliteral-literal-datatype">literal-datatype</a> := <em>d</em>.<a href="#eventterm-attribute-string-value">string-value</a>)
-otherwise
-
-<em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>t</em>.<a href="#eventterm-text-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
-and the following statement is added to the graph:</p>
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
-
-</p></div></div>
-
-<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
-statement is reified with
-<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
-using the reification rules in
-
-<a href="#section-Reification">section 7.3</a>
-and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
-
-
-<h4><a id="parseTypeLiteralPropertyElt" name="parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseLiteral">parseLiteral</a>))<br />
-<a href="#literal">literal</a><br />
-
-end-element()
-</p></div></div>
-
-
-<p>For element <em>e</em> and the literal <em>l</em>
-that is the <code>rdf:parseType="Literal"</code> content.
-<em>l</em> is not transformed by the syntax data model mapping into events
-(as noted in <a href="#section-Data-Model">6 Syntax Data Model</a>)
-but remains an XML Infoset of XML Information items.</p>
-
-<p><em>l</em> is transformed into the lexical form of an
-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literal</a>
-in the RDF graph <em>x</em> (a Unicode string)
-by the following algorithm. This does not mandate any implementation
-method — any other method that gives the same result may be used.</p>
-
-<ol>
-<li>Use <em>l</em> to construct an XPath<a href="#ref-xpath">[XPATH]</a> <a href="http://www.w3.org/TR/1999/REC-xpath-19991116#infoset">node-set</a>
-
-(a <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#def-document-subset">document subset</a>)</li>
-<li>Apply <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">Exclusive XML Canonicalization</a> [<a href="#ref-xml-xc14n">XML-XC14N</a>])
-with comments and with empty
-<a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#def-InclusiveNamespaces-PrefixList">InclusiveNamespaces PrefixList</a>
-to this node-set to give a sequence of octets <em>s</em>
-</li>
-<li>This sequence of octets <em>s</em> can be considered to be
-a UTF-8 encoding of some Unicode string <em>x</em> (sequence
-of Unicode characters)</li>
-
-<li>The Unicode string <em>x</em> is used as the lexical form of <em>l</em></li>
-<li>This Unicode string
-<em>x</em> SHOULD be in NFC Normal Form C<a href="#ref-nfc">[NFC]</a></li>
-</ol>
-
-
-<p>Then <em>o</em> := typed-literal(<a href="#eventterm-typedliteral-literal-value">literal-value</a> := <em>x</em>, <a href="#eventterm-typedliteral-literal-datatype">literal-datatype</a> := <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral</code> )
-and the following statement is added to the graph:</p>
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-typedliteral-string-value">string-value</a> .</code>
-
-</p></div></div>
-
-<div class="note"><p><strong>Test:</strong>
-Empty literal case indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test009.rdf">test009.rdf</a>
-and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test009.nt">test009.nt</a>
-</p></div>
-
-<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
-statement is reified with
-
-<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
-using the reification rules in
-<a href="#section-Reification">section 7.3</a>
-and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
-
-
-
-<h4><a id="parseTypeResourcePropertyElt" name="parseTypeResourcePropertyElt">7.2.18 Production parseTypeResourcePropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseResource">parseResource</a>))<br />
-
-<a href="#propertyEltList">propertyEltList</a><br />
-end-element()
-</p></div></div>
-
-<p>For element <em>e</em> with possibly empty element content <em>c</em>.</p>
-
-<p><em>n</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()).</p>
-
-<p>Add the following statement to the graph:
-</p>
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-
-</p></div></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test004.rdf">test004.rdf</a>
-and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test004.nt">test004.nt</a>
-</p></div>
-
-<p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the
-statement above is reified with
-
-<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
-using the reification rules in
-<a href="#section-Reification">section 7.3</a>
-and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
-
-<p>If the element content <em>c</em> is not empty, then use event
-<em>n</em> to create a new sequence of events as follows:</p>
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> := <code>rdf:Description</code>,<br />
-
-    <a href="#eventterm-element-subject">subject</a> := <em>n</em>,<br />
-    <a href="#eventterm-element-attributes">attributes</a> := set())<br />
- <em>c</em><br />
-end-element()
-</p></div></div>
-
-<p>Then
-process the resulting sequence using production
-
-<a href="#nodeElementList">nodeElement</a>.</p>
-
-
-<h4><a id="parseTypeCollectionPropertyElt" name="parseTypeCollectionPropertyElt">7.2.19 Production parseTypeCollectionPropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseCollection">parseCollection</a>))<br />
-<a href="#nodeElementList">nodeElementList</a><br />
-end-element()
-</p></div></div>
-
-<p>For element event <em>e</em> with possibly empty
-
-<a href="#nodeElementList">nodeElementList</a> <em>l</em>. Set
-<em>s</em>:=list().</p>
-
-<p>For each element event <em>f</em> in <em>l</em>,
-<em>n</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()) and append <em>n</em> to
-
-<em>s</em> to give a sequence of events.</p>
-
-<p>If <em>s</em> is not empty, <em>n</em> is the first event identifier in
-<em>s</em> and the following statement is added to the graph:</p>
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-
-<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-</p></div></div>
-
-<p>otherwise the following statement is added to the graph:</p>
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .</code>
-
-</p></div></div>
-
-<p>If the <code>rdf:ID</code> attribute <em>a</em> is given,
-either of the the above statements is reified with
-<em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
-using the reification rules in
-
-<a href="#section-Reification">section 7.3</a>.
-</p>
-
-<p>If <em>s</em> is empty, no further work is performed.</p>
-
-<p>For each event <em>n</em> in <em>s</em> and the
-corresponding element event <em>f</em> in <em>l</em>, the following
-statement is added to the graph:</p>
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <em>f</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-</p></div></div>
-
-<p>For each consecutive and overlapping pair of events
-(<em>n</em>, <em>o</em>) in <em>s</em>, the following statement is
-added to the graph:</p>
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <em>o</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-
-</p></div></div>
-
-<p>If <em>s</em> is not empty, <em>n</em> is the last event identifier
-in <em>s</em>, the following statement is added to the graph:</p>
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .</code>
-
-</p></div></div>
-
-
-
-<h4><a id="parseTypeOtherPropertyElt" name="parseTypeOtherPropertyElt">7.2.20 Production parseTypeOtherPropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseOther">parseOther</a>))<br />
-
-<a href="#propertyEltList">propertyEltList</a><br />
-end-element()
-</p></div></div>
-
-
-<p>All <code>rdf:parseType</code> attribute values other than the strings
-"Resource", "Literal" or "Collection" are treated as if the value was
-"Literal". This production matches and acts as if production
-<a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
-was matched.
-No extra triples are generated for other <code>rdf:parseType</code> values.
-</p>
-
-
-<h4><a id="emptyPropertyElt" name="emptyPropertyElt">7.2.21 Production emptyPropertyElt</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
-    <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, ( <a href="#resourceAttr">resourceAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
-
-end-element()
-</p></div></div>
-
-
-<ul>
-
-<li>
-<p>If there are no attributes <strong>or</strong> only the
-optional <code>rdf:ID</code> attribute <em>i</em>
-then <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a>:="", <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
-and the following statement is added to the graph:</p>
-
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
-
-</p></div></div>
-
-<p>and then if <em>i</em> is given, the above statement is reified with
-uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
-using the reification rules in
-<a href="#section-Reification">section 7.3</a>.</p>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test002.rdf">test002.rdf</a>
-and
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test002.nt">test002.nt</a>
-</p></div>
-
-<div class="note"><p><strong>Test:</strong>
-Indicated by
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test005.rdf">test005.rdf</a>
-and
-
-<a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test005.nt">test005.nt</a>
-</p></div>
-
-</li>
-
-<li>
-
-<p>Otherwise</p>
-
- <ul>
- <li>If <code>rdf:resource</code> attribute <em>i</em> is present, then
- <em>r</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
- </li>
-
- <li>If <code>rdf:nodeID</code> attribute <em>i</em> is present, then
- <em>r</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>)
- </li>
-
- <li>If neither,
- <em>r</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id())
- </li>
- </ul>
-
-<p>The following are done in any order:</p>
-
-<ul>
-
-<li><p>For all <a href="#propertyAttr">propertyAttr</a>
-attributes <em>a</em> (in any order)</p>
- <ul>
-
- <li><p>If <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:type</code>
-
- then <em>u</em>:=uri(identifier:=resolve(<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
- and the following triple is added to the graph:</p>
- <div class="ntripleOuter"><div class="ntripleInner"><p>
- <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <em>u</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-
- </p></div></div>
- </li>
-
- <li><p>Otherwise Unicode string
- <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>
- SHOULD be in Normal Form C<a href="#ref-nfc">[NFC]</a>,
- <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
- and the following statement is added to the graph:</p>
-
- <div class="ntripleOuter"><div class="ntripleInner"><p>
- <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <em>a</em>.<a href="#eventterm-attribute-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
-
- </p></div></div>
- </li>
-
- </ul>
+<!-- SECOND PART : TERMINILOGY -->
+
+<section id="section-Terminology">
+ <h2>Terminology</h2>
+
+ <p>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
+ NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
+ this document are to be interpreted as described in
+ <a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119</a>
+ <a href="#ref-keywords">[KEYWORDS]</a>.</p>
+
+ <p>All use of string without further qualification refers to
+ a Unicode<a href="#ref-unicode">[UNICODE]</a> character string;
+ a sequence of characters represented by a code point in Unicode.
+ (Such as defined in <a href="#ref-charmod">[CHARMOD]</a> in section
+ <a href="http://www.w3.org/TR/2003/WD-charmod-20030822/#sec-Strings">3.4 Strings</a>).</p>
+
+</section>
+
+
+<!-- THIRD PART : MIME Type -->
+
+<section id="section-MIME-Type">
+ <h2>RDF MIME Type, File Extension and Macintosh File Type</h2>
+
+ <p>The Internet media type / MIME type for RDF/XML is
+ "<code>application/rdf+xml</code>" —
+
+ see <a href="http://www.ietf.org/rfc/rfc3023.txt">RFC 3023</a>
+ <a href="#ref-rfc3023">[RFC-3023]</a> section 8.18.
+ </p>
+
+ <div class="note"><p><strong>Registration Note (Informative):</strong>
+ For the state of the MIME type registration, consult
+ <a href="http://www.iana.org/assignments/media-types/">IANA MIME Media Types</a> <a href="#ref-iana-media-types">[IANA-MEDIA-TYPES]</a>
+ </p></div>
+
+ <p>It is recommended that RDF/XML files have the extension
+ <code>".rdf"</code> (all lowercase) on all platforms.</p>
+
+ <p>It is recommended that RDF/XML files stored on Macintosh HFS file
+ systems be given a file type of <code>"rdf "</code>
+ (all lowercase, with a space character as the fourth letter).</p>
+</section>
+
+
+<!-- FOURTH PART : Global Issues -->
+
+<section id="section-Global">
+ <h2>Global Issues</h2>
+
+ <!-- namespace -->
+ <section id="section-Namespace">
+
+ <h3>The RDF Namespace and Vocabulary</h3>
+
+ <div class="note"><p><strong>Note (Informative):</strong>
+ The names <code>aboutEach</code> and <code>aboutEachPrefix</code> were removed
+ from the language and the RDF vocabulary by the RDF Core Working Group.
+ See the resolution of issues
+ <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteach">rdfms-abouteach</a> and
+
+ <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteachprefix">rdfms-abouteachprefix</a>
+ for further information.
+ </p></div>
+
+ <div class="note"><p><strong>Note (Informative):</strong>
+ The names <code>List</code>, <code>first</code>,
+ <code>rest</code> and <code>nil</code> were added for issue
+
+ <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-seq-representation">rdfms-seq-representation</a>.
+ The names <code>XMLLiteral</code> and <code>datatype</code> were added
+ to support RDF datatyping.
+ The name <code>nodeID</code> was added
+ for issue
+ <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-syntax-incomplete">rdfms-syntax-incomplete</a>.
+ See the
+ <a href="http://www.w3.org/2000/03/rdf-tracking/">RDF Core Issues List</a>
+ for further information.
+ </p></div>
+
+ <p>The
+ <span class="termdef"><a id="rdf-ns-uri" name="rdf-ns-uri">RDF namespace URI reference</a></span> (or namespace name) is
+ <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#</code>
+ and is typically used in XML with the prefix <code>rdf</code>
+ although other prefix strings may be used.
+ The <span class="termdef"><a id="rdf-vocabulary" name="rdf-vocabulary">RDF Vocabulary</a></span>
+ is identified by this namespace name and consists of the following names only:</p>
+
+ <dl>
+ <dt>Syntax names — not concepts</dt>
+ <dd>
+ <p>
+ <code>RDF Description ID about parseType resource li nodeID datatype</code>
+ </p>
+ </dd>
+
+ <dt>Class names</dt>
+ <dd>
+ <p>
+ <code>Seq Bag Alt Statement Property XMLLiteral List</code>
+
+ </p>
+ </dd>
+
+ <dt>Property names</dt>
+ <dd>
+ <p>
+ <code>subject predicate object type value first rest _</code><em>n</em><br />
+ where <em>n</em> is a decimal integer greater than zero with no leading zeros.
+ </p>
+ </dd>
+
+ <dt>Resource names</dt>
+ <dd>
+ <p>
+ <code>nil</code>
+ </p>
+ </dd>
+
+ </dl>
+
+ <p>Any other names are not defined and SHOULD generate a warning when
+ encountered, but should otherwise behave normally.</p>
+
+ <p>Within RDF/XML documents it is not permitted to use XML namespaces
+ whose namespace name is the
+ <a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a>
+
+ concatenated with additional characters.</p>
+
+ <p>Throughout this document the terminology <code>rdf:</code><em>name</em>
+ will be used to indicate <em>name</em> is from the RDF vocabulary
+ and it has a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> of the concatenation of the
+ <a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a> and <em>name</em>.
+ For example, <code>rdf:type</code> has the <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+
+ <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code></p>
+ </section>
+
+
+ <!-- identifiers -->
+ <section id="section-Identifiers">
+ <h3>Identifiers</h3>
+
+ <p>The
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graph</a>
+ (<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> Section 3)
+ defines three types of nodes and one type of predicate:</p>
+
+ <dl>
+
+ <dt><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> nodes and predicates</dt>
+ <dd>
+ <p><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> (<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> Section 3.1)
+ can be either:</p>
+ <ul>
+ <li>given as XML attribute values interpreted as relative
+ URI references that are resolved against the in-scope base URI
+ as described in <a href="#section-baseURIs">section 5.3</a>
+
+ to give absolute <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a></li>
+ <li>transformed from XML namespace-qualified element and attribute names
+ (QNames)</li>
+ <li>transformed from <code>rdf:ID</code> attribute values.</li>
+ </ul>
+
+ <p>Within RDF/XML, XML QNames are transformed into
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+ by appending the XML local name to the namespace name (URI reference).
+ For example, if the XML namespace prefix <code>foo</code> has
+ namespace name (URI reference)
+
+ <code>http://example.org/somewhere/</code> then the QName
+ <code>foo:bar</code> would correspond to the RDF URI reference
+ <code>http://example.org/somewhere/bar</code>. Note that this
+ restricts which
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> can be made and the same URI can be given in multiple ways.</p>
+
+ <p>The <a href="#idAttr"><code>rdf:ID</code></a> values
+ are transformed into
+
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+ by appending the attribute value to the result of appending
+ "#" to the in-scope base URI which is defined in
+ <a href="#section-baseURIs">Section 5.3 Resolving URIs</a></p>
+ </dd>
+
+ <dt>Literal nodes (always object nodes)</dt>
+ <dd><p>
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-literal">RDF literals</a> (<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> 6.5) are either
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-plain-literal">plain literals</a> (ibid),
+ or
+
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literals</a> (ibid).
+ The latter includes <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literals</a> (ibid section 5, <cite>XML Content within an RDF graph</cite>).
+ </p>
+ </dd>
+
+ <dt>Blank Node Identifiers</dt>
+ <dd><p><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">Blank nodes</a> have distinct identity in the RDF graph.
+ When the graph is written in a syntax such as RDF/XML, these
+ blank nodes may need graph-local identifiers and a syntax
+ in order to preserve this distinction. These local identifiers are called
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifiers</a>
+
+ and are used in RDF/XML as values of the <code>rdf:nodeID</code> attribute
+ with the syntax given in <a href="#nodeIdAttr">Production nodeIdAttr</a>.
+ Blank node identifiers in RDF/XML are scoped to the XML Information Set
+ <a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>.</p>
+
+ <p>If no blank node identifier is given explicitly as an
+ <code>rdf:nodeID</code> attribute value then one will need to be
+ generated (using generated-blank-node-id, see section <a href="#section-Infoset-Grammar-Action">6.3.3</a>).
+ Such generated blank node
+ identifiers must not clash with any blank node identifiers derived
+ from <code>rdf:nodeID</code> attribute values. This can be
+ implemented by any method that preserves the distinct identity of all
+ the blank nodes in the graph, that is, the same blank node identifier
+ is not given for different blank nodes. One possible method would be
+ to add a constant prefix to all the <code>rdf:nodeID</code> attribute
+ values and ensure no generated blank node identifiers ever used that
+ prefix. Another would be to map all <code>rdf:nodeID</code> attribute
+ values to new generated blank node identifiers and perform that mapping
+ on all such values in the RDF/XML document.</p>
+ </dd>
+ </dl>
+
+ </section>
+
+
+ <!-- uri resolution -->
+ <section id="section-baseURIs">
+ <h3>Resolving URIs</h3>
+
+ <p>RDF/XML supports
+ <a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>
+ which defines a
+ <a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
+
+ accessor for each
+ <a href="#section-root-node"><span class="arrow">·</span>root event<span class="arrow">·</span></a> and
+ <a href="#section-element-node"><span class="arrow">·</span>element event<span class="arrow">·</span></a>.
+ Relative URI references are resolved into
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+ according to the algorithm specified in
+ <a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>
+
+ (and RFC 2396).
+ These specifications do not specify an algorithm for resolving a
+ fragment identifier alone, such as <code>#foo</code>, or the empty
+ string <code>""</code> into an
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>. In RDF/XML, a fragment identifier
+ is transformed into a
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+ by appending the fragment identifier to the in-scope base URI. The
+ empty string is transformed
+ into an
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+ by substituting the in-scope base URI.
+ </p>
<div class="note"><p><strong>Test:</strong>
+
Indicated by
- <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test013.rdf">test013.rdf</a>
- and
- <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test013.nt">test013.nt</a>
-
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test001.rdf">test001.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test001.nt">test001.nt</a>
</p></div>
<div class="note"><p><strong>Test:</strong>
Indicated by
- <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test014.rdf">test014.rdf</a>
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test004.rdf">test004.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test004.nt">test004.nt</a>
+ </p></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test008.rdf">test008.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test008.nt">test008.nt</a>
+ </p></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.rdf">test013.rdf</a> and
+
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.nt">test013.nt</a>
+ </p></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test016.rdf">test016.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test016.nt">test016.nt</a>
+ </p></div>
+
+ <p>An empty same document reference ""
+ resolves against the URI part of the base URI; any fragment part
+ is ignored. See
+ <a href="http://www.isi.edu/in-notes/rfc2396.txt">Uniform Resource Identifiers (URI)</a> <a href="#ref-uri">[URIS]</a> section 4.2
+
+ </p>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.rdf">test013.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test013.nt">test013.nt</a>
+ </p></div>
+
+ <div class="note"><p><strong>Implementation Note (Informative):</strong>
+ When using a hierarchical base
+ URI that has no path component (/), it must be added before using as a
+ base URI for resolving.
+ </p></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test011.rdf">test011.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test011.nt">test011.nt</a>
+ </p></div>
+ </section>
+
+
+ <!-- constraints -->
+ <section id="section-constraints">
+ <h3>Constraints</h3>
+
+ <dl>
+ <dt><strong><a id="constraint-id" name="constraint-id">constraint-id</a></strong><br /></dt>
+
+ <dd><p>Each application of production <a href="#idAttr">idAttr</a>
+ matches an attribute. The pair formed by the
+ <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
+ accessor of the matched attribute and the
+ <a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
+ accessor of the matched attribute is unique within a single RDF/XML
+ document.</p>
+
+ <p>The syntax of the names must match the
+
+ <a href="#rdf-id">rdf-id production</a>.</p>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.rdf">test014.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/xmlbase/test014.nt">test014.nt</a>
+ </p></div>
+ </dd>
+
+ </dl>
+ </section>
+
+
+ <!-- conformance -->
+ <section id="section-conformance">
+ <h3>Conformance</h3>
+
+ <dl>
+ <dt>Definition:<br /></dt>
+ <dd>An <span class="termdef"><a id="dfn-rdf-document" name="dfn-rdf-document">RDF Document</a></span> is a serialization of an
+ <a href="http://www.w3.org/TR/rdf-concepts/#dfn-rdf-graph">RDF Graph</a>
+ into a concrete syntax.</dd>
+
+ <dt>Definition:<br /></dt>
+ <dd>An <span class="termdef"><a name="dfn-rdf-xml-document">RDF/XML Document</a></span> is an
+ <a href="#dfn-rdf-document" class="termref">RDF Document</a> written in the
+ recommended XML transfer syntax for RDF as defined in this document.</dd>
+
+ <dt>Conformance:<br /></dt>
+ <dd>An <a href="#dfn-rdf-xml-document" class="termref">RDF/XML Document</a> is a
+ <span class="termdef"><a name="dfn-conforming-rdf-xml-document">conforming RDF/XML document</a></span>
+
+ if it adheres to the specification defined in this document.</dd>
+ </dl>
+ </section>
+
+</section>
+
+
+
+<!-- FIFTH PART : Data Model -->
+
+<section id="section-Data-Model">
+
+ <h2>Syntax Data Model</h2>
+
+ <div>
+ <p>This document specifies the syntax of RDF/XML as a grammar on an
+ alphabet of symbols. The symbols are called <em>events</em> in the
+ style of the <a href="#ref-xpath">[XPATH]</a> 
+
+ <a href="http://www.w3.org/TR/xpath#infoset">Information Set Mapping</a>.
+ A sequence of events is normally derived from an XML document, in
+ which case they are in document order as defined below in
+ <a href="#section-Infoset-Mapping">Section 6.2 Information Set Mapping</a>.
+ The sequence these events form are intended to be similar to the sequence
+ of events produced by the <a href="#ref-sax">[SAX2]</a> XML API from
+ the same XML document. Sequences of events may be checked against
+ the grammar to determine whether they are or are not syntactically
+ well-formed RDF/XML.</p>
+
+ <p>The grammar productions may include actions which fire when the
+ production is recognized. Taken together these actions define a
+ transformation from any syntactically well-formed RDF/XML sequence of
+ events into an RDF graph represented in the
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
+ language.</p>
+
+ <p>The model given here illustrates one way to create a representation of
+ an <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graph</a>
+
+ from an RDF/XML document. It does not mandate any implementation
+ method — any other method that results in a representation of the same
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graph</a>
+ may be used.</p>
+
+ <p>In particular:</p>
+ <ul>
+ <li>This specification permits any
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#implementation-note">representation</a>
+ of an RDF graph (see <a href="#ref-rdf-concepts">[RDF-CONCEPTS]</a>);
+ in particular, it does not require the use of
+
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>.</li>
+ <li>This specification does not require the use of
+ <a href="#ref-xpath">[XPATH]</a> or <a href="#ref-sax">[SAX2]</a></li>
+ <li>This specification places no constraints on the order in which
+ software transforming RDF/XML into a representation of a graph,
+ constructs the representation of the graph.</li>
+ <li>Software transforming RDF/XML into a representation of a graph
+ MAY eliminate duplicate predicate arcs.</li>
+ </ul>
+
+ <p>The syntax does not support non-well-formed XML documents, nor
+ documents that otherwise do not have an XML Information Set; for
+ example, that do not conform to
+ <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a>
+
+ <a href="#ref-namespaces">[XML-NS]</a>.
+ </p>
+
+ <p>The Infoset requires support for
+ <a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a> <a href="#ref-xml-base">[XML-BASE]</a>.
+ RDF/XML uses the information item property [base URI], discussed in
+ <a href="#section-baseURIs">section 5.3</a>
+ </p>
+
+ <p>This specification requires an
+ XML Information Set <a href="#ref-xml-infoset">[INFOSET]</a>
+ which supports at least the following information items and
+ properties for RDF/XML:</p>
+
+ <dl>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a></dt>
+ <dd>[document element], [children], [base URI]</dd>
+
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">element information item</a></dt>
+ <dd>[local name], [namespace name], [children], [attributes], [parent], [base URI]</dd>
+
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.attribute">attribute information item</a></dt>
+ <dd>[local name], [namespace name], [normalized value]</dd>
+
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character information item</a></dt>
+ <dd>[character code]</dd>
+ </dl>
+
+ <p>There is no mapping of the following items to data model events:</p>
+ <dl>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.pi">processing instruction information item</a></dt>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.rse">unexpanded entity reference information item</a></dt>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.comment">comment information item</a></dt>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.doctype">document type declaration information item</a></dt>
+
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.entity.unparsed">unparsed entity information item</a></dt>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.notation">notation information item</a></dt>
+ <dt><a href="http://www.w3.org/TR/xml-infoset/#infoitem.namespace">namespace information item</a></dt>
+ </dl>
+
+ <p>Other information items and properties have no mapping to
+ syntax data model events.
+ </p>
+
+ <p>Element information items with reserved XML Names
+ (See <a href="http://www.w3.org/TR/2000/REC-xml-20001006#dt-name">Name</a>
+ in <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>)
+ are not mapped to data model element events. These are all those
+ with property [prefix] beginning with <code>xml</code> (case
+ independent comparison) and all those with [prefix] property
+ having no value and which have [local name] beginning with
+
+ <code>xml</code> (case independent comparison).
+ </p>
+
+ <p>All information items contained inside XML elements matching the
+ <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
+ production form
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literals</a>
+ and do not follow this mapping. See
+ <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
+ for further information.</p>
+
+ <p>This section is intended to satisfy the requirements for
+ <a href="http://www.w3.org/TR/xml-infoset/#conformance">Conformance</a>
+ in the <a href="#ref-xml-infoset">[INFOSET]</a> specification.
+ It specifies the information items and properties that are needed
+ to implement this specification.
+ </p>
+ </div>
+
+ <!-- events -->
+ <section id="section-Nodes">
+ <h3>Events</h3>
+
+ <p>There are nine types of event defined in the following subsections.
+ Most events are constructed from an Infoset information item (except
+ for <a href="#section-identifier-node">URI reference</a>,
+
+ <a href="#section-blank-nodeid-event">blank node</a>,
+ <a href="#section-literal-node">plain literal</a> and
+ <a href="#section-typed-literal-node">typed literal</a>). The effect
+ of an event constructor is to create a new event with a unique identity,
+ distinct from all other events. Events have accessor operations on them
+ and most have the <em>string-value</em> accessor that may be a static value
+ or computed.</p>
+
+ <!-- root event -->
+ <section id="section-root-node">
+ <h3>Root Event</h3>
+
+ <p>Constructed from a
+ <a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>
+ and takes the following accessors and values.</p>
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-root-document-element" name="eventterm-root-document-element">document-element</a></span><br /></dt>
+ <dd>Set to the value of document information item property [document-element].</dd>
+ <dt><span class="termdef"><a id="eventterm-root-children" name="eventterm-root-children">children</a></span><br /></dt>
+ <dd>Set to the value of document information item property [children].</dd>
+ <dt><span class="termdef"><a id="eventterm-root-base-uri" name="eventterm-root-base-uri">base-uri</a></span><br /></dt>
+
+ <dd>Set to the value of document information item property [base URI].</dd>
+ <dt><span class="termdef"><a id="eventterm-root-language" name="eventterm-root-language">language</a></span><br /></dt>
+ <dd>Set to the empty string.</dd>
+ </dl>
+ </section>
+
+ <!-- root event -->
+ <section id="section-element-node">
+ <h3>Element Event</h3>
+
+ <p>Constructed from an
+ <a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">element information item</a>
+
+ and takes the following accessors and values:
+ </p>
+
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-element-local-name" name="eventterm-element-local-name">local-name</a></span><br /></dt>
+ <dd>Set to the value of element information item property [local name].</dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-namespace-name" name="eventterm-element-namespace-name">namespace-name</a></span><br /></dt>
+ <dd>Set to the value of element information item property [namespace name].</dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-children" name="eventterm-element-children">children</a></span><br /></dt>
+ <dd>Set to the value of element information item property [children].</dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-base-uri" name="eventterm-element-base-uri">base-uri</a></span><br /></dt>
+ <dd>Set to the value of element information item property [base URI].</dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-attributes" name="eventterm-element-attributes">attributes</a></span><br /></dt>
+
+ <dd><p>Made from the value of element information item property [attributes] which is a set of attribute information items.</p>
+
+ <p>If this set contains an attribute information item <code>xml:lang</code> (
+ [namespace name] property with the value
+ "http://www.w3.org/XML/1998/namespace" and
+ [local name] property value "lang")
+ it is removed from the set of attribute information items and the
+ <a href="#eventterm-element-language" class="termref"><span class="arrow">·</span>language<span class="arrow">·</span></a> accessor is set to the
+ [normalized-value] property of the attribute information item.</p>
+
+ <p>All remaining reserved XML Names
+ (See <a href="http://www.w3.org/TR/2000/REC-xml-20001006#dt-name">Name</a>
+
+ in <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>)
+ are now removed from the set. These are, all
+ attribute information items in the set with property [prefix]
+ beginning with <code>xml</code> (case independent
+ comparison) and all attribute information items with [prefix]
+ property having no value and which have [local name] beginning with
+ <code>xml</code> (case independent comparison) are removed.
+ Note that the [base URI] accessor is computed by XML Base before any
+ <code>xml:base</code> attribute information item is deleted.</p>
+
+ <p>The remaining set of attribute information items are then used
+ to construct a new set of
+ <a href="#section-attribute-node">Attribute Events</a>
+
+ which is assigned as the value of this accessor.</p>
+ </dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-URI" name="eventterm-element-URI">URI</a></span><br /></dt>
+ <dd>Set to the string value of the concatenation of the
+ value of the namespace-name accessor and the value of the
+ local-name accessor.
+ </dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-URI-string-value" name="eventterm-element-URI-string-value">URI-string-value</a></span><br /></dt>
+ <dd>
+
+ <p>The value is the concatenation of the following in this order "<",
+ the escaped value of the
+ <a href="#eventterm-element-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
+ accessor and ">".</p>
+
+ <p>The escaping of the
+ <a href="#eventterm-element-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
+ accessor uses the N-Triples escapes for
+ URI references as described in 3.3 URI References.
+ </p>
+
+ </dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-liCounter" name="eventterm-element-liCounter">li-counter</a></span><br /></dt>
+ <dd>Set to the integer value 1.</dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-language" name="eventterm-element-language">language</a></span><br /></dt>
+ <dd>Set from the
+ <a href="#eventterm-element-attributes" class="termref"><span class="arrow">·</span>attributes<span class="arrow">·</span></a>
+ as described above.
+ If no value is given from the attributes, the value is set to the value of
+ the language accessor on the parent event (either a
+ <a href="#section-root-node">Root Event</a> or an
+ <a href="#section-element-node">Element Event</a>), which may be the empty string.
+ </dd>
+
+ <dt><span class="termdef"><a id="eventterm-element-subject" name="eventterm-element-subject">subject</a></span><br /></dt>
+ <dd>Has no initial value. Takes a value that is an
+ <a href="#section-identifier-node">Identifier</a> event.
+ This accessor is used on elements that deal with one node in the RDF graph,
+ this generally being the subject of a statement.</dd>
+
+ </dl>
+ </section>
+
+
+ <!-- end element event -->
+ <section id="section-end-element-node">
+ <h3>End Element Event</h3>
+
+ <p>Has no accessors. Marks the end of the containing element in
+ the sequence.</p>
+ </section>
+
+
+ <!-- attribute event -->
+ <section id="section-attribute-node">
+ <h3>Attribute Event</h3>
+
+ <p>Constructed from an
+ <a href="http://www.w3.org/TR/xml-infoset/#infoitem.attribute">attribute information item</a>
+ and takes the following accessors and values:</p>
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-attribute-local-name" name="eventterm-attribute-local-name">local-name</a></span><br /></dt>
+ <dd>Set to the value of attribute information item property [local name].</dd>
+
+ <dt><span class="termdef"><a id="eventterm-attribute-namespace-name" name="eventterm-attribute-namespace-name">namespace-name</a></span><br /></dt>
+ <dd>Set to the value of attribute information item property [namespace name].</dd>
+
+ <dt><span class="termdef"><a id="eventterm-attribute-string-value" name="eventterm-attribute-string-value">string-value</a></span><br /></dt>
+
+ <dd>Set to the value of the attribute information item property [normalized value] as specified by
+ <a href="#ref-xml">[XML]</a> (if an attribute whose normalized
+ value is a zero-length string, then the string-value is also
+ a zero-length string).</dd>
+
+ <dt><span class="termdef"><a id="eventterm-attribute-URI" name="eventterm-attribute-URI">URI</a></span><br /></dt>
+ <dd><p>If <a href="#eventterm-attribute-namespace-name" class="termref"><span class="arrow">·</span>namespace-name<span class="arrow">·</span></a> is present,
+ set to a string value of the concatenation of the value of the
+ <a href="#eventterm-attribute-namespace-name" class="termref"><span class="arrow">·</span>namespace-name<span class="arrow">·</span></a> accessor
+ and the value of the
+ <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor.
+ Otherwise if <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> is
+ <code>ID</code>, <code>about</code>, <code>resource</code>, <code>parseType</code> or <code>type</code>, set to a string value of the
+ concatenation of the
+ <a href="#rdf-ns-uri" class="termref"><span class="arrow">·</span>RDF namespace URI reference<span class="arrow">·</span></a>
+
+ and the value of the <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor. Other non-namespaced <a href="#eventterm-attribute-local-name" class="termref"><span class="arrow">·</span>local-name<span class="arrow">·</span></a> accessor values are forbidden.</p>
+
+ <p>The support for a limited set of non-namespaced names is
+ REQUIRED and intended to allow RDF/XML documents specified in
+ <a href="#ref-rdfms">[RDF-MS]</a> to remain valid; new documents
+ SHOULD NOT use these unqualified attributes and applications MAY
+ choose to warn when the unqualified form is seen in a document.</p>
+
+ <p>The construction of
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+ from XML attributes can generate the same
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+ from different XML attributes. This can cause ambiguity in the
+ grammar when matching attribute events (such as when
+ <code>rdf:about</code> and <code>about</code> XML attributes are
+ both present). Documents that have this are illegal.
+ </p>
+
+ </dd>
+
+ <dt><span class="termdef"><a id="eventterm-attribute-URI-string-value" name="eventterm-attribute-URI-string-value">URI-string-value</a></span><br /></dt>
+ <dd>
+ <p>The value is the concatenation of the following in this order "<",
+ the escaped value of the
+ <a href="#eventterm-attribute-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
+ accessor and ">".</p>
+
+ <p>The escaping of the
+ <a href="#eventterm-attribute-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
+ accessor uses the N-Triples escapes for
+ URI references as described in 3.3 URI References.
+ </p>
+ </dd>
+
+ </dl>
+ </section>
+
+
+ <!-- text event -->
+ <section id="section-text-node">
+ <h3>Text Event</h3>
+
+ <p>Constructed from a sequence of one or more consecutive
+ <a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character information items</a>.
+ Has the single accessor:</p>
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-text-string-value" name="eventterm-text-string-value">string-value</a></span><br /></dt>
+ <dd>Set to the value of the string made from concatenating the
+ [<a href="http://www.w3.org/TR/xml-infoset/#infoitem.character">character code</a>] property of each of the character information items.
+ </dd>
+ </dl>
+ </section>
+
+
+ <!-- uri reference event -->
+ <section id="section-identifier-node">
+ <h3>URI Reference Event</h3>
+
+ <p><a id="eventterm-identifier-identifier-type" name="eventterm-identifier-identifier-type"></a>
+ An event for a
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+ which has the following accessors:</p>
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-identifier-identifier" name="eventterm-identifier-identifier">identifier</a></span><br /></dt>
+ <dd>Takes a string value used as an
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.
+ </dd>
+
+ <dt><span class="termdef"><a id="eventterm-identifier-string-value" name="eventterm-identifier-string-value">string-value</a></span><br /></dt>
+ <dd><p>The value is the concatenation of "<", the escaped value of the <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor and ">"</p>
+
+ <p>The escaping of the <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor value
+ uses the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a> escapes for URI references as described in
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#sec-uri-encoding">3.3 URI References</a>.</p>
+
+ </dd>
+
+ </dl>
+
+ <p>These events are constructed by giving a value for the
+ <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
+ </p>
+
+ <p>For further information on identifiers in the RDF graph, see
+ <a href="#section-Identifiers">section 5.2</a>.</p>
+ </section>
+
+
+ <!-- blank node identifier event -->
+ <section id="section-blank-nodeid-event">
+ <h3>Blank Node Identifier Event</h3>
+
+ <p>An event for a
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a>
+ which has the following accessors:</p>
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-blanknodeid-identifier" name="eventterm-blanknodeid-identifier">identifier</a></span><br /></dt>
+
+ <dd>Takes a string value.</dd>
+
+ <dt><span class="termdef"><a id="eventterm-blanknodeid-string-value" name="eventterm-blanknodeid-string-value">string-value</a></span><br /></dt>
+ <dd>The value is a function of the value of the
+ <a href="#eventterm-blanknodeid-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
+ The value begins with "_:" and the entire value MUST match the
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#nodeID">nodeID</a> production.
+ The function MUST preserve distinct blank node identity as discussed in in section <a href="#section-Identifiers">5.2 Identifiers</a>.</dd>
+
+ </dl>
+
+ <p>These events are constructed by giving a value for the
+ <a href="#eventterm-blanknodeid-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor.
+ </p>
+
+ <p>For further information on identifiers in the RDF graph, see
+ <a href="#section-Identifiers">section 5.2</a>.</p>
+ </section>
+
+
+ <!-- plain literal event -->
+ <section id="section-literal-node">
+ <h3>Plain Literal Event</h3>
+
+ <p>An event for a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-plain-literal">plain literal</a> which can have the following accessors:</p>
+
+ <dl>
+ <dt><span class="termdef"><a id="eventterm-literal-literal-value" name="eventterm-literal-literal-value">literal-value</a></span><br /></dt>
+ <dd>Takes a string value.</dd>
+
+ <dt><span class="termdef"><a id="eventterm-literal-literal-language" name="eventterm-literal-literal-language">literal-language</a></span><br /></dt>
+ <dd>Takes a string value used as a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-language-identifier">language tag</a> in an RDF plain literal.</dd>
+
+ <dt><span class="termdef"><a id="eventterm-literal-string-value" name="eventterm-literal-string-value">string-value</a></span><br /></dt>
+ <dd><p>The value is calculated from the other accessors as follows.</p>
+
+ <p>If <a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> is the empty string
+ then the value is the concatenation of """ (1 double quote),
+ the escaped value of the
+ <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor
+ and """ (1 double quote).</p>
+
+ <p>Otherwise the value is the concatenation of """ (1 double quote),
+ the escaped value of the
+ <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor
+ ""@" (1 double quote and a '@'),
+ and the value of the
+ <a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> accessor.</p>
+
+ <p>The escaping of the <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor value uses the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
+
+ escapes for strings as described in <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntrip_strings">3.2 Strings</a>
+ for escaping certain characters such as ". </p>
+ </dd>
+ </dl>
+
+ <p>These events are constructed by giving values for the
+ <a href="#eventterm-literal-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> and
+
+ <a href="#eventterm-literal-literal-language" class="termref"><span class="arrow">·</span>literal-language<span class="arrow">·</span></a> accessors.</p>
+
+
+ <div class="note"><p><strong>Interoperability Note (Informative):</strong>
+ <a id="literal-comb-char-note1" name="literal-comb-char-note1"></a>
+ Literals beginning with a Unicode combining character are
+ allowed however they may cause interoperability problems.
+ See <a href="#ref-charmod">[CHARMOD]</a> for further information.
+ </p></div>
+ </section>
+
+
+ <!-- typed literal event -->
+ <section id="section-typed-literal-node">
+ <h3>Typed Literal Event</h3>
+ <a id="section-xml-literal-node" name="section-xml-literal-node"></a> <!-- old ref -->
+
+ <p>An event for a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literal</a> which can have the following accessors:</p>
+
+ <dl>
+ <dt><a id="eventterm-xmlliteral-literal-value" name="eventterm-xmlliteral-literal-value"></a><span class="termdef"><a id="eventterm-typedliteral-literal-value" name="eventterm-typedliteral-literal-value">literal-value</a></span><br /></dt>
+ <dd>Takes a string value.</dd>
+
+ <dt><a id="eventterm-literal-literal-datatype" name="eventterm-literal-literal-datatype"></a><span class="termdef"><a id="eventterm-typedliteral-literal-datatype" name="eventterm-typedliteral-literal-datatype">literal-datatype</a></span><br /></dt>
+ <dd>Takes a string value used as an <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</dd>
+
+ <dt><a id="eventterm-xmlliteral-string-value" name="eventterm-xmlliteral-string-value"></a><span class="termdef"><a id="eventterm-typedliteral-string-value" name="eventterm-typedliteral-string-value">string-value</a></span><br /></dt>
+ <dd><p>The value is the concatenation of the following in this order
+ """ (1 double quote),
+ the escaped value of the
+ <a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor,
+ """ (1 double quote), "^^<",
+ the escaped value of the
+ <a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessor
+ and ">".
+ </p>
+
+ <p>The escaping of the <a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a> accessor value
+ uses the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
+ escapes for strings as described in <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntrip_strings">3.2 Strings</a>
+ for escaping certain characters such as ".
+ The escaping of the <a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessor value
+ must use the <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a> escapes for URI references as described in
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#sec-uri-encoding">3.3 URI References</a>.</p>
+
+ </dd>
+ </dl>
+
+ <p>These events are constructed by giving values for the
+ <a href="#eventterm-typedliteral-literal-value" class="termref"><span class="arrow">·</span>literal-value<span class="arrow">·</span></a>
and
- <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test014.nt">test014.nt</a>
- </p></div>
-
-</li>
-
-<li><p>Add the following statement to the graph:</p>
- <div class="ntripleOuter"><div class="ntripleInner"><p>
- <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
-
- </p></div></div>
-
- <p>and then if <code>rdf:ID</code> attribute <em>i</em> is given, the above statement is
- reified with
- uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>i</em>.<a href="#eventterm-identifier-string-value">string-value</a>)))
- using the reification rules in
- <a href="#section-Reification">section 7.3</a>.</p>
-
-</li>
-
-</ul>
-
-</li>
-</ul>
-
-
-<!-- idAboutAttr one has gone; id is closest thing replacing it -->
-<h4><a id="idAboutAttr" name="idAboutAttr"></a>
-<a id="idAttr" name="idAttr">7.2.22 Production idAttr</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>,<br />
-
-    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)
-</p></div></div>
-
-<p><strong>Constraint:</strong>: <a href="#constraint-id">constraint-id</a>
-applies to the values of <code>rdf:ID</code> attributes</p>
-
-<h4><a id="nodeIdAttr" name="nodeIdAttr">7.2.23 Production nodeIdAttr</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)
-
-</p></div></div>
-
-
-<h4><a id="aboutAttr" name="aboutAttr">7.2.24 Production aboutAttr</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
-
-</p></div></div>
-
-
-<h4><a id="propAttr" name="propAttr"></a><a id="typeAttr" name="typeAttr"></a>
-<a id="propertyAttr" name="propertyAttr">7.2.25 Production propertyAttr</a></h4>
-
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <a href="#propertyAttributeURIs">propertyAttributeURIs</a>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a>)
-
-</p></div></div>
-
-
-<h4><a id="resourceAttr" name="resourceAttr">7.2.26 Production resourceAttr</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:resource</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
-
-</p></div></div>
-
-
-<h4><a id="datatypeAttr" name="datatypeAttr">7.2.27 Production datatypeAttr</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:datatype</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
-
-</p></div></div>
-
-
-<h4><a id="parseLiteral" name="parseLiteral">7.2.28 Production parseLiteral</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == "Literal")
-
-</p></div></div>
-
-
-<h4><a id="parseResource" name="parseResource">7.2.29 Production parseResource</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == "Resource")
-
-</p></div></div>
-
-
-<h4><a id="parseCollection" name="parseCollection">7.2.30 Production parseCollection</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
-    <a href="#eventterm-attribute-string-value">string-value</a> == "Collection")
-
-</p></div></div>
-
-
-<h4><a id="parseOther" name="parseOther">7.2.31 Production parseOther</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
-    <a
-href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a> - ("Resource" | "Literal" | "Collection") )
-
-</p></div></div>
-
-
-<h4><a id="URI-reference" name="URI-reference">7.2.32 Production URI-reference</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-An <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.
-</p></div></div>
-
-
-<h4><a id="literal" name="literal">7.2.33 Production literal</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-
-Any XML element content that is allowed according to
-<a href="#ref-xml">[XML]</a> definition <em>Content of Elements</em>
-Rule [43]
-<a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-content">content</a>.
-in section
-<a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-starttags">3.1 Start-Tags, End-Tags, and Empty-Element Tags</a>
-</p>
-
-<p>The string-value for the resulting event is discussed in
-<a href="#parseTypeLiteralPropertyElt">section 7.2.17</a>.</p>
-
-</div></div>
-
-
-<h4><a id="rdf-id" name="rdf-id">7.2.34 Production rdf-id</a></h4>
-
-<div class="productionOuter"><div class="productionInner"><p>
-An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
-matching any legal
-<a href="#ref-namespaces">[XML-NS]</a> token
-<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
-
-</p></div></div>
-
-
-<h3><a id="section-Reification" name="section-Reification">7.3 Reification Rules</a></h3>
-
-<p>For the given URI reference event <em>r</em> and
-the statement with terms <em>s</em>, <em>p</em> and <em>o</em>
-
-corresponding to the N-Triples:</p>
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>s</em> <em>p</em> <em>o</em> .</code>
-</p></div></div>
-
-<p>add the following statements to the graph:</p>
-<div class="ntripleOuter"><div class="ntripleInner"><p>
-<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <em>s</em> .</code><br />
-
-<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <em>p</em> .</code><br />
-<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <em>o</em> .</code><br />
-
-<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> .</code><br />
-</p></div></div>
-
-
-<h3><a id="section-List-Expand" name="section-List-Expand">7.4 List Expansion Rules</a></h3>
-
-<p>For the given element <em>e</em>, create a new <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> <em>u</em> :=
-concat("http://www.w3.org/1999/02/22-rdf-syntax-ns#_",
-
-<em>e</em>.<a href="#eventterm-element-liCounter">li-counter</a>),
-increment the
-<em>e</em>.<a href="#eventterm-element-liCounter">li-counter</a>
-property by 1 and return <em>u</em>.</p>
-
+ <a href="#eventterm-typedliteral-literal-datatype" class="termref"><span class="arrow">·</span>literal-datatype<span class="arrow">·</span></a> accessors.</p>
+
+ <div class="note"><p><strong>Interoperability Note (Informative):</strong>
+ <a id="literal-comb-char-note2" name="literal-comb-char-note2"></a>
+ Literals beginning with a Unicode combining character are
+ allowed however they may cause interoperability problems.
+ See <a href="#ref-charmod">[CHARMOD]</a> for further information.
+ </p></div>
+
+ <div class="note"><p><strong>Implementation Note (Informative):</strong>
+ <a id="literal-white-space-normalization-note" name="literal-white-space-normalization-note"></a>
+ In <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schema (part 1)</a> <a href="#ref-xml-schema1">[XML-SCHEMA1]</a>,
+
+ <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#section-White-Space-Normalization-during-Validation">white space normalization</a>
+ occurs during validation according to the value of the whiteSpace
+ facet. The syntax mapping used in this document occurs after this,
+ so the whiteSpace facet formally has no further effect.
+ </p></div>
+ </section>
+
+ </section>
+
+ <!-- infoset mapping -->
+ <section id="section-Infoset-Mapping">
+ <h3>Information Set Mapping</h3>
+ <a id="section-Infoset-Conformance" name="section-Infoset-Conformance"></a> <!-- old ref -->
+
+ <p>To transform the Infoset into the sequence of events
+ in <em>document order</em>, each
+ information item is transformed as described above to generate a
+ tree of events with accessors and values. Each element event is
+ then replaced as described below to turn the tree of events
+ into a sequence in document order.</p>
+
+ <ol>
+ <li>The original <a href="#section-element-node">element event</a></li>
+ <li>The value of the
+ <a href="http://www.w3.org/TR/xml-infoset/#infoitem.element">children</a>
+ accessor recursively transformed, a possibly empty ordered list of events.</li>
+ <li>An <a href="#section-end-element-node">end element event</a></li>
+ </ol>
+ </section>
+
+
+ <!-- grammar notation -->
+ <section id="section-Infoset-Grammar-Notation">
+ <h3>Grammar Notation</h3>
+ <a id="section-Notation-Forms" name="section-Notation-Forms"></a> <!-- old ref -->
+
+ <p>The following notation is used to describe matching the sequence
+ of data model events as given in <a href="#section-Data-Model">Section 6</a>
+ and the actions to perform for the matches.
+ The RDF/XML grammar is defined in terms of mapping from these matched
+ data model events to triples, using notation of the form:</p>
+
+ <blockquote>
+ <div class="productionOuter"><div class="productionInner"><p>
+ number <em>event-type</em> <em>event-content</em>
+
+ </p></div></div>
+
+ <div>
+ <em>action</em>...
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code>
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
+ </code>
+ </p></div></div>
+ </div>
+ </blockquote>
+
+ <p>where the <em>event-content</em> is an expression matching
+
+ <em>event-types</em> (as defined in <a href="#section-Nodes">Section 6.1</a>),
+ using notation given in the following sections.
+ The number is used for reference purposes.
+ The grammar <em>action</em> may include generating
+ new triples to the graph, written in
+ <a href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntriples">N-Triples</a>
+ format.
+ </p>
+
+ <p>The following sections describe the general notation used and that
+ for event matching and actions.</p>
+
+
+ <!-- general grammar notation -->
+ <section id="section-Infoset-Grammar-General">
+ <h4>Grammar General Notation</h4>
+
+ <table border="1" summary="This table describes the general notation used the grammar.">
+ <caption>Grammar General Notation.</caption>
+ <tr>
+ <th>Notation</th>
+ <th>Meaning</th>
+ </tr>
+ <tr>
+ <td><em>event</em>.<em>accessor</em></td>
+
+ <td>The value of an event accessor.</td>
+ </tr>
+ <tr>
+ <td><code>rdf:</code><em>X</em></td>
+ <td>A URI as defined in <a href="#section-Namespace">section 5.1</a>.</td>
+ </tr>
+ <tr>
+ <td>"ABC"</td>
+ <td>A string of characters A, B, C in order.</td>
+
+ </tr>
+ </table>
+ </section>
+
+
+ <!-- grammar event matching notation -->
+ <section id="section-Infoset-Grammar-Matching">
+ <h4>Grammar Event Matching Notation</h4>
+
+
+ <table border="1" summary="This table describes the event matching notation used in the following sections to match sequences of syntax data model events.">
+ <caption>Grammar Event Matching Notation.</caption>
+ <tr>
+ <th>Notation</th>
+ <th>Meaning</th>
+
+ </tr>
+ <tr>
+ <td>A == B</td>
+ <td>Event accessor A matches expression B.</td>
+ </tr>
+ <tr>
+ <td>A != B</td>
+ <td>A is not equal to B.</td>
+ </tr>
+ <tr>
+ <td>A | B | ...</td>
+ <td>The A, B, ... terms are alternatives.</td>
+
+ </tr>
+ <tr>
+ <td>A - B</td>
+ <td>The terms in A excluding all the terms in B.</td>
+ </tr>
+ <tr>
+ <td><a id="anyURI" name="anyURI">anyURI</a>.</td>
+ <td>Any URI.</td>
+ </tr>
+ <tr>
+ <td><a id="anyString" name="anyString">anyString</a>.</td>
+
+ <td>Any string.</td>
+ </tr>
+ <tr>
+ <td>list(item1, item2, ...); list()</td>
+ <td>An ordered list of events. An empty list.</td>
+ </tr>
+ <tr>
+ <td>set(item1, item2, ...); set()</td>
+ <td>An unordered set of events. An empty set.</td>
+ </tr>
+ <tr>
+ <td>*</td>
+
+ <td>Zero or more of preceding term.</td>
+ </tr>
+ <tr>
+ <td>?</td>
+ <td>Zero or one of preceding term.</td>
+ </tr>
+ <tr>
+ <td>+</td>
+ <td>One or more of preceding term.</td>
+ </tr>
+ <tr>
+ <td>root(acc1 == value1,<br />
+
+     acc2 == value2, ...)</td>
+ <td>Match a <a href="#section-root-node">Root Event</a> with accessors.
+ </td>
+ </tr>
+ <tr>
+ <td>start-element(acc1 == value1,<br />
+     acc2 == value2, ...)<br />
+ <em>children</em><br />
+ end-element()</td>
+
+ <td>Match a sequence of
+ <a href="#section-element-node">Element Event</a> with accessors,
+ a possibly empty list of events as element content and an
+ <a href="#section-end-element-node">End Element Event</a>.
+ </td>
+ </tr>
+ <tr>
+ <td>attribute(acc1 == value1,<br />
+     acc2 == value2, ...)</td>
+ <td>Match an <a href="#section-attribute-node">Attribute Event</a>
+ with accessors.</td>
+
+ </tr>
+ <tr>
+ <td>text()</td>
+ <td>Match a <a href="#section-text-node">Text Event</a>.</td>
+ </tr>
+ </table>
+ </section>
+
+
+ <!-- grammar action notation -->
+ <section id="section-Infoset-Grammar-Action">
+ <h4>Grammar Action Notation</h4>
+
+ <table border="1" summary="This table describes the grammar actions notation used in the following sections to perform triple generation from syntax data model events.">
+ <caption>Grammar Action Notation.</caption>
+ <tr>
+ <th>Notation</th>
+ <th>Meaning</th>
+ </tr>
+ <tr>
+ <td>A := B</td>
+ <td>Assigns A the value B.</td>
+ </tr>
+ <tr>
+ <td>concat(A, B, ..)</td>
+
+ <td>A string created by concatenating the terms in order.</td>
+ </tr>
+ <tr>
+ <td>resolve(<em>e</em>, <em>s</em>)</td>
+ <td>A string created by interpreting string <em>s</em> as a relative URI reference to the
+ <a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a> accessor of <a href="#section-element-node"></a> <em>e</em>
+
+ as defined in <a href="#section-baseURIs">Section 5.3 Resolving URIs</a>.
+ The resulting string represents an
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</td>
+ </tr>
+ <tr>
+ <td>generated-blank-node-id()</td>
+ <td>A string value for a new distinct generated
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a>
+ as defined in <a href="#section-Identifiers">section 5.2 Identifiers</a>.
+ </td>
+
+ </tr>
+ <tr>
+ <td><em>event</em>.<em>accessor</em> := <em>value</em></td>
+ <td>Sets an event accessor to the given value.</td>
+ </tr>
+ <tr>
+ <td>uri(identifier := value)</td>
+ <td>Create a new <a href="#section-identifier-node">URI Reference Event</a>.</td>
+
+ </tr>
+ <tr>
+ <td>bnodeid(identifier := value)</td>
+ <td>Create a new <a href="#section-blank-nodeid-event">Blank Node Identifier Event</a>. See also section <a href="#section-Identifiers">5.2 Identifiers</a>.</td>
+ </tr>
+ <tr>
+ <td>literal(literal-value := string,<br />
+     literal-language := language, ...)</td>
+ <td>Create a new <a href="#section-literal-node">Plain Literal Event</a>.</td>
+
+ </tr>
+ <tr>
+ <td>typed-literal(literal-value := string, ...)</td>
+ <td>Create a new <a href="#section-typed-literal-node">Typed Literal Event</a>.</td>
+ </tr>
+ </table>
+ </section>
+ </section>
+ </section>
+
+ <!-- RDF/XML grammar -->
+ <section id="section-Infoset-Grammar">
+ <h2>RDF/XML Grammar</h2>
+
+
+ <!-- grammar summary -->
+ <section id="section-grammar-summary">
+ <h3>Grammar summary</h3>
+
+ <div class="productionOuter"><div class="productionInner">
+ <table>
+ <tr valign="top">
+ <td><a href="#coreSyntaxTerms">7.2.2</a> <a href="#coreSyntaxTerms">coreSyntaxTerms</a></td> <td><code>rdf:RDF</code> | <code>rdf:ID</code> | <code>rdf:about</code> | <code>rdf:parseType</code> | <code>rdf:resource</code> | <code>rdf:nodeID</code> | <code>rdf:datatype</code></td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#syntaxTerms">7.2.3</a> <a href="#syntaxTerms">syntaxTerms</a></td> <td><a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code></td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#oldTerms">7.2.4</a> <a href="#oldTerms">oldTerms</a></td> <td><code>rdf:aboutEach</code> | <code>rdf:aboutEachPrefix</code> | <code>rdf:bagID</code></td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#nodeElementURIs">7.2.5</a> <a href="#nodeElementURIs">nodeElementURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#propertyElementURIs">7.2.6</a> <a href="#propertyElementURIs">propertyElementURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <a href="#oldTerms">oldTerms</a> )</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#propertyAttributeURIs">7.2.7</a> <a href="#propertyAttributeURIs">propertyAttributeURIs</a></td> <td><a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#doc">7.2.8</a> <a href="#doc">doc</a></td> <td>root(<a href="#eventterm-root-document-element">document-element</a> == <a href="#RDF">RDF</a>,
+ <a href="#eventterm-root-children">children</a> == list(<a href="#RDF">RDF</a>))</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#RDF">7.2.9</a> <a href="#RDF">RDF</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <code>rdf:RDF</code>,
+ <a href="#eventterm-element-attributes">attributes</a> == set())<br />
+ <a href="#nodeElementList">nodeElementList</a><br />
+
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#nodeElementList">7.2.10</a> <a href="#nodeElementList">nodeElementList</a></td> <td><a href="#ws">ws</a>* (<a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>* )*</td>
+ </tr>
+ <tr valign="top">
+
+ <td><a href="#nodeElement">7.2.11</a> <a href="#nodeElement">nodeElement</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#nodeElementURIs">nodeElementURIs</a><br />
+     <a href="#eventterm-element-attributes">attributes</a> == set((<a href="#idAttr">idAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> | <a href="#aboutAttr">aboutAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
+
+ <a href="#propertyEltList">propertyEltList</a><br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#ws">7.2.12</a> <a href="#ws">ws</a></td> <td>A <a href="#section-text-node">text event</a> matching white space
+ defined by <a href="#ref-xml">[XML]</a> definition <em>White Space</em>
+
+ Rule [3] <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-S">S</a>
+ in section
+ <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn">Common Syntactic Constructs</a></td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#propertyEltList">7.2.13</a> <a href="#propertyEltList">propertyEltList</a></td> <td><a href="#ws">ws</a>* (<a href="#propertyElt">propertyElt</a> <a href="#ws">ws</a>* ) *</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#propertyElt">7.2.14</a> <a href="#propertyElt">propertyElt</a></td> <td><a href="#resourcePropertyElt">resourcePropertyElt</a> |
+ <a href="#literalPropertyElt">literalPropertyElt</a> |
+ <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a> |
+ <a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a> |
+
+ <a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a> |
+ <a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a> |
+ <a href="#emptyPropertyElt">emptyPropertyElt</a></td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#resourcePropertyElt">7.2.15</a> <a href="#resourcePropertyElt">resourcePropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?))<br />
+ <a href="#ws">ws</a>* <a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>*<br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+
+ <td><a href="#literalPropertyElt">7.2.16</a> <a href="#literalPropertyElt">literalPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#datatypeAttr">datatypeAttr</a>?))<br />
+
+ <a href="#section-text-node">text()</a><br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#parseTypeLiteralPropertyElt">7.2.17</a> <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseLiteral">parseLiteral</a>))<br />
+ <a href="#literal">literal</a><br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#parseTypeResourcePropertyElt">7.2.18</a> <a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseResource">parseResource</a>))<br />
+ <a href="#propertyEltList">propertyEltList</a><br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#parseTypeCollectionPropertyElt">7.2.19</a> <a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseCollection">parseCollection</a>))<br />
+ <a href="#nodeElementList">nodeElementList</a><br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#parseTypeOtherPropertyElt">7.2.20</a> <a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseOther">parseOther</a>))<br />
+ <a href="#propertyEltList">propertyEltList</a><br />
+ end-element()</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#emptyPropertyElt">7.2.21</a> <a href="#emptyPropertyElt">emptyPropertyElt</a></td> <td>start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),
+
+ <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, ( <a href="#resourceAttr">resourceAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
+ end-element()</td>
+ </tr>
+
+ <tr valign="top">
+ <td><a href="#idAttr">7.2.22</a> <a href="#idAttr">idAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#nodeIdAttr">7.2.23</a> <a href="#nodeIdAttr">nodeIdAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#aboutAttr">7.2.24</a> <a href="#aboutAttr">aboutAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#propertyAttr">7.2.25</a> <a href="#propertyAttr">propertyAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <a href="#propertyAttributeURIs">propertyAttributeURIs</a>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a>)</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#resourceAttr">7.2.26</a> <a href="#resourceAttr">resourceAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:resource</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#datatypeAttr">7.2.27</a> <a href="#datatypeAttr">datatypeAttr</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:datatype</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#parseLiteral">7.2.28</a> <a href="#parseLiteral">parseLiteral</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == "Literal")</td>
+ </tr>
+
+ <tr valign="top">
+ <td><a href="#parseResource">7.2.29</a> <a href="#parseResource">parseResource</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == "Resource")</td>
+ </tr>
+ <tr valign="top">
+
+ <td><a href="#parseCollection">7.2.30</a> <a href="#parseCollection">parseCollection</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
+ <a href="#eventterm-attribute-string-value">string-value</a> == "Collection")</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#parseOther">7.2.31</a> <a href="#parseOther">parseOther</a></td> <td>attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,
+
+ <a
+ href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a> - ("Resource" | "Literal" | "Collection") )</td>
+ </tr>
+ <tr valign="top">
+ <td><a href="#URI-reference">7.2.32</a> <a href="#URI-reference">URI-reference</a></td> <td>An <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#literal">7.2.33</a> <a href="#literal">literal</a></td> <td>Any XML element content that is allowed according to
+ <a href="#ref-xml">[XML]</a> definition <em>Content of Elements</em>
+ Rule [43]
+ <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-content">content</a>.
+ in section
+ <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-starttags">3.1 Start-Tags, End-Tags, and Empty-Element Tags</a></td>
+
+ </tr>
+ <tr valign="top">
+ <td><a href="#rdf-id">7.2.34</a> <a href="#rdf-id">rdf-id</a></td> <td>An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
+ matching any legal
+ <a href="#ref-namespaces">[XML-NS]</a> token
+ <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a></td>
+
+ </tr>
+ </table>
+
+ </div></div>
+ </section>
+
+ <!-- grammar productions -->
+ <section id="section-grammar-productions">
+ <h3>Grammar Productions</h3>
+
+ <!-- grammar start -->
+ <section id="start">
+ <h4>Grammar start</h4>
+
+ <p>If the RDF/XML is a standalone XML document
+ (identified by presentation as an
+ application/rdf+xml <a href="#section-MIME-Type">RDF MIME type</a> object,
+ or by some other means) then the grammar may start with
+ production <a href="#doc">doc</a> or
+ production <a href="#nodeElement">nodeElement</a>.</p>
+
+ <p>If the content is known to be RDF/XML by context, such as when
+ RDF/XML is embedded inside other XML content, then the grammar
+ can either start
+ at <a href="#section-element-node">Element Event</a> 
+ <a href="#RDF">RDF</a>
+ (only when an element is legal at that point in the XML)
+ or at production <a href="#nodeElementList">nodeElementList</a>
+ (only when element content is legal, since this is a list of elements).
+ For such embedded RDF/XML, the
+ <a href="#eventterm-element-base-uri" class="termref"><span class="arrow">·</span>base-uri<span class="arrow">·</span></a>
+ value on the outermost element must be initialized from the containing
+ XML since no
+ <a href="#section-root-node">Root Event</a>  will be available.
+ Note that if such embedding occurs, the grammar may be entered
+ several times but no state is expected to be preserved.</p>
+ </section>
+
+ <!-- /////////////////////////////////////////////////////////////////////////////////////////////// STOPED HERE //////// -->
+
+ <h4><a id="coreSyntaxTerms" name="coreSyntaxTerms">7.2.2 Production coreSyntaxTerms</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <code>rdf:RDF</code> | <code>rdf:ID</code> | <code>rdf:about</code> | <code>rdf:parseType</code> | <code>rdf:resource</code> | <code>rdf:nodeID</code> | <code>rdf:datatype</code>
+
+ </p></div></div>
+
+ <p>A subset of the syntax terms from the RDF vocabulary in
+ <a href="#section-Namespace">section 5.1</a>
+ which are used in RDF/XML.
+ </p>
+
+ <h4><a id="syntaxTerms" name="syntaxTerms">7.2.3 Production syntaxTerms</a></h4>
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code>
+
+ </p></div></div>
+
+ <p>All the syntax terms from the RDF vocabulary in
+ <a href="#section-Namespace">section 5.1</a>
+ which are used in RDF/XML.
+ </p>
+
+
+ <h4><a id="bagIdAttr" name="bagIdAttr"></a><a id="section-Bag-Expand" name="section-Bag-Expand"></a><a id="oldTerms" name="oldTerms">7.2.4 Production oldTerms</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <code>rdf:aboutEach</code> | <code>rdf:aboutEachPrefix</code> | <code>rdf:bagID</code>
+
+ </p></div></div>
+
+ <p>These are the names from the <a href="#section-Namespace">RDF vocabulary</a>
+ that have been withdrawn from the language. See the resolutions of
+ Issue <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-aboutEach-on-object">rdfms-aboutEach-on-object</a>,
+ Issue <a href="http://www.w3.org/2000/03/rdf-tracking/#rdfms-abouteachprefix">rdfms-abouteachprefix</a> and
+ Last Call Issue <a href="http://www.w3.org/2001/sw/RDFCore/20030123-issues/#timbl-01">timbl-01</a>
+ for further information.
+ </p>
+
+ <div class="note"><p><strong>Error Test:</strong>
+
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-abouteach/error001.rdf">error001.rdf</a> and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-abouteach/error002.rdf">error002.rdf</a>
+ </p></div>
+
+
+ <h4><a id="nodeElementURIs" name="nodeElementURIs">7.2.5 Production nodeElementURIs</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )
+
+ </p></div></div>
+
+ <p>The <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> that are allowed on node elements.</p>
+
+
+ <h4><a id="propertyElementURIs" name="propertyElementURIs">7.2.6 Production propertyElementURIs</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <a href="#oldTerms">oldTerms</a> )
+
+ </p></div></div>
+
+ <p>The URIs that are allowed on property elements.</p>
+
+
+ <h4><a id="propertyAttributeURIs" name="propertyAttributeURIs">7.2.7 Production propertyAttributeURIs</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#anyURI">anyURI</a> - ( <a href="#coreSyntaxTerms">coreSyntaxTerms</a> | <code>rdf:Description</code> | <code>rdf:li</code> | <a href="#oldTerms">oldTerms</a> )
+
+ </p></div></div>
+
+ <p>The <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> that are allowed on property attributes.</p>
+
+
+ <h4><a id="doc" name="doc">7.2.8 Production doc</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ root(<a href="#eventterm-root-document-element">document-element</a> == <a href="#RDF">RDF</a>,<br />
+
+     <a href="#eventterm-root-children">children</a> == list(<a href="#RDF">RDF</a>))
+ </p></div></div>
+
+
+ <h4><a id="RDF" name="RDF">7.2.9 Production RDF</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <code>rdf:RDF</code>,<br />
+
+     <a href="#eventterm-element-attributes">attributes</a> == set())<br />
+ <a href="#nodeElementList">nodeElementList</a><br />
+ end-element()
+ </p></div></div>
+
+
+ <h4><a id="nodeElementList" name="nodeElementList">7.2.10 Production nodeElementList</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#ws">ws</a>* (<a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>* )*
+
+ </p></div></div>
+
+
+ <h4><a id="description" name="description"></a><a id="typedNode" name="typedNode"></a>
+ <a id="nodeElement" name="nodeElement">7.2.11 Production nodeElement</a></h4>
+
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#nodeElementURIs">nodeElementURIs</a><br />
+     <a href="#eventterm-element-attributes">attributes</a> == set((<a href="#idAttr">idAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> | <a href="#aboutAttr">aboutAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
+
+ <a href="#propertyEltList">propertyEltList</a><br />
+ end-element()
+ </p></div></div>
+
+ <p>For node element <em>e</em>, the processing of some of the attributes
+ has to be done before other work such as dealing with children events
+ or other attributes. These can be processed in any order:</p>
+
+ <ul>
+
+ <li>If there is an attribute <em>a</em> with
+ <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>, then
+
+ <em>e</em>.<a href="#eventterm-element-subject">subject</a> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))).</li>
+
+ <li>If there is an attribute <em>a</em> with
+ <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>, then
+
+ <em>e</em>.<a href="#eventterm-element-subject">subject</a> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a>:=<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>).</li>
+
+ <li>If there is an attribute <em>a</em> with
+
+ <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code> then
+ <em>e</em>.<a href="#eventterm-element-subject">subject</a> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)).</li>
+
+ </ul>
+
+ <p>If <em>e</em>.<a href="#eventterm-element-subject">subject</a> is empty,
+ then <em>e</em>.<a href="#eventterm-element-subject">subject</a> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()).</p>
+
+
+ <p>The following can then be performed in any order:</p>
+
+ <ul>
+
+ <li><a id="nodeElementStatement1" name="nodeElementStatement1"></a> If <em>e</em>.<a href="#eventterm-element-URI">URI</a> != <code>rdf:Description</code>
+ then the following statement is added to the graph:
+
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> .</code>
+ </p></div></div>
+ </li>
+
+ <li><a id="nodeElementStatement2" name="nodeElementStatement2"></a> If there is an attribute <em>a</em>
+ in <a href="#propertyAttr">propertyAttr</a> with
+ <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:type</code>
+ then
+
+ <em>u</em>:=uri(identifier:=resolve(<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
+ and the following tiple is added to the graph:
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <em>u</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+
+ </p></div></div>
+ </li>
+
+ <li><a id="nodeElementStatement3" name="nodeElementStatement3"></a> For each attribute <em>a</em> matching
+ <a href="#propertyAttr">propertyAttr</a> (and not <code>rdf:type</code>),
+ the Unicode string
+ <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>
+
+ SHOULD be in Normal Form C<a href="#ref-nfc">[NFC]</a>,
+ <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
+ and the following statement is added to the graph:
+
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>a</em>.<a href="#eventterm-attribute-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
+
+ </p></div></div>
+ </li>
+
+ <li><a id="nodeElementStatement4" name="nodeElementStatement4"></a> Handle the
+ <a href="#propertyEltList">propertyEltList</a> children events
+ in document order.</li>
+
+ </ul>
+
+
+
+ <h4><a id="ws" name="ws">7.2.12 Production ws</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ A <a href="#section-text-node">text event</a> matching white space
+ defined by <a href="#ref-xml">[XML]</a> definition <em>White Space</em>
+ Rule [3] <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-S">S</a>
+ in section
+ <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn">Common Syntactic Constructs</a>
+ </p></div></div>
+
+
+ <h4><a id="propertyEltList" name="propertyEltList">7.2.13 Production propertyEltList</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#ws">ws</a>* (<a href="#propertyElt">propertyElt</a> <a href="#ws">ws</a>* ) *
+ </p></div></div>
+
+
+ <h4><a id="propertyElt" name="propertyElt">7.2.14 Production propertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ <a href="#resourcePropertyElt">resourcePropertyElt</a> |
+ <a href="#literalPropertyElt">literalPropertyElt</a> |
+ <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a> |
+ <a href="#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a> |
+ <a href="#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a> |
+
+ <a href="#parseTypeOtherPropertyElt">parseTypeOtherPropertyElt</a> |
+ <a href="#emptyPropertyElt">emptyPropertyElt</a>
+ </p></div></div>
+
+ <p>If element <em>e</em> has
+ <em>e</em>.<a href="#eventterm-element-URI">URI</a> =
+ <code>rdf:li</code> then apply the list expansion rules on element <em>e</em>.parent in
+
+ <a href="#section-List-Expand">section 7.4</a>
+ to give a new URI <em>u</em> and
+ <em>e</em>.<a href="#eventterm-element-URI">URI</a> := <em>u</em>.
+ </p>
+
+ <p>The action of this production must be done before the
+ actions of any sub-matches (<a
+ href="#resourcePropertyElt">resourcePropertyElt</a> ... <a href="#emptyPropertyElt">emptyPropertyElt</a>).
+ Alternatively the result must be equivalent to as if it this action
+ was performed first, such as performing as the first
+ action of all of the sub-matches.
+
+ </p>
+
+
+ <h4><a id="resourcePropertyElt" name="resourcePropertyElt">7.2.15 Production resourcePropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?))<br />
+
+ <a href="#ws">ws</a>* <a href="#nodeElement">nodeElement</a> <a href="#ws">ws</a>*<br />
+ end-element()
+ </p></div></div>
+
+ <p>For element <em>e</em>, and the single contained nodeElement
+ <em>n</em>, first <em>n</em> must be processed using production
+
+ <a href="#nodeElement">nodeElement</a>.
+ Then the following statement is added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+   <code> <em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>n</em>.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
+ statement is reified with
+ <em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
+ using the reification rules in
+
+ <a href="#section-Reification">section 7.3</a>
+ and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em></p>
+
+
+ <h4><a id="literalPropertyElt" name="literalPropertyElt">7.2.16 Production literalPropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#datatypeAttr">datatypeAttr</a>?))<br />
+ <a href="#section-text-node">text()</a><br />
+ end-element()
+ </p></div></div>
+
+ <p>Note that the empty literal case is defined in production
+ <a href="#emptyPropertyElt">emptyPropertyElt</a>.</p>
+
+ <p>For element <em>e</em>, and the text event <em>t</em>.
+ The Unicode string <em>t</em>.<a href="#eventterm-text-string-value">string-value</a> SHOULD be in Normal Form C<a href="#ref-nfc">[NFC]</a>.
+ If the <code>rdf:datatype</code> attribute <em>d</em> is given
+ then <em>o</em> := typed-literal(<a href="#eventterm-typedliteral-literal-value">literal-value</a> := <em>t</em>.<a href="#eventterm-text-string-value">string-value</a>, <a href="#eventterm-typedliteral-literal-datatype">literal-datatype</a> := <em>d</em>.<a href="#eventterm-attribute-string-value">string-value</a>)
+ otherwise
+
+ <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>t</em>.<a href="#eventterm-text-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
+ and the following statement is added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
+ statement is reified with
+ <em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
+ using the reification rules in
+
+ <a href="#section-Reification">section 7.3</a>
+ and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
+
+
+ <h4><a id="parseTypeLiteralPropertyElt" name="parseTypeLiteralPropertyElt">7.2.17 Production parseTypeLiteralPropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseLiteral">parseLiteral</a>))<br />
+ <a href="#literal">literal</a><br />
+
+ end-element()
+ </p></div></div>
+
+
+ <p>For element <em>e</em> and the literal <em>l</em>
+ that is the <code>rdf:parseType="Literal"</code> content.
+ <em>l</em> is not transformed by the syntax data model mapping into events
+ (as noted in <a href="#section-Data-Model">6 Syntax Data Model</a>)
+ but remains an XML Infoset of XML Information items.</p>
+
+ <p><em>l</em> is transformed into the lexical form of an
+ <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literal</a>
+ in the RDF graph <em>x</em> (a Unicode string)
+ by the following algorithm. This does not mandate any implementation
+ method — any other method that gives the same result may be used.</p>
+
+ <ol>
+ <li>Use <em>l</em> to construct an XPath<a href="#ref-xpath">[XPATH]</a> <a href="http://www.w3.org/TR/1999/REC-xpath-19991116#infoset">node-set</a>
+
+ (a <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#def-document-subset">document subset</a>)</li>
+ <li>Apply <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">Exclusive XML Canonicalization</a> [<a href="#ref-xml-xc14n">XML-XC14N</a>])
+ with comments and with empty
+ <a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/#def-InclusiveNamespaces-PrefixList">InclusiveNamespaces PrefixList</a>
+ to this node-set to give a sequence of octets <em>s</em>
+ </li>
+ <li>This sequence of octets <em>s</em> can be considered to be
+ a UTF-8 encoding of some Unicode string <em>x</em> (sequence
+ of Unicode characters)</li>
+
+ <li>The Unicode string <em>x</em> is used as the lexical form of <em>l</em></li>
+ <li>This Unicode string
+ <em>x</em> SHOULD be in NFC Normal Form C<a href="#ref-nfc">[NFC]</a></li>
+ </ol>
+
+
+ <p>Then <em>o</em> := typed-literal(<a href="#eventterm-typedliteral-literal-value">literal-value</a> := <em>x</em>, <a href="#eventterm-typedliteral-literal-datatype">literal-datatype</a> := <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral</code> )
+ and the following statement is added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-typedliteral-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Empty literal case indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test009.rdf">test009.rdf</a>
+ and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test009.nt">test009.nt</a>
+ </p></div>
+
+ <p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the above
+ statement is reified with
+
+ <em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
+ using the reification rules in
+ <a href="#section-Reification">section 7.3</a>
+ and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
+
+
+
+ <h4><a id="parseTypeResourcePropertyElt" name="parseTypeResourcePropertyElt">7.2.18 Production parseTypeResourcePropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseResource">parseResource</a>))<br />
+
+ <a href="#propertyEltList">propertyEltList</a><br />
+ end-element()
+ </p></div></div>
+
+ <p>For element <em>e</em> with possibly empty element content <em>c</em>.</p>
+
+ <p><em>n</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()).</p>
+
+ <p>Add the following statement to the graph:
+ </p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test004.rdf">test004.rdf</a>
+ and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test004.nt">test004.nt</a>
+ </p></div>
+
+ <p>If the <code>rdf:ID</code> attribute <em>a</em> is given, the
+ statement above is reified with
+
+ <em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
+ using the reification rules in
+ <a href="#section-Reification">section 7.3</a>
+ and <em>e</em>.<a href="#eventterm-element-subject">subject</a> := <em>i</em>.</p>
+
+ <p>If the element content <em>c</em> is not empty, then use event
+ <em>n</em> to create a new sequence of events as follows:</p>
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> := <code>rdf:Description</code>,<br />
+
+     <a href="#eventterm-element-subject">subject</a> := <em>n</em>,<br />
+     <a href="#eventterm-element-attributes">attributes</a> := set())<br />
+ <em>c</em><br />
+ end-element()
+ </p></div></div>
+
+ <p>Then
+ process the resulting sequence using production
+
+ <a href="#nodeElementList">nodeElement</a>.</p>
+
+
+ <h4><a id="parseTypeCollectionPropertyElt" name="parseTypeCollectionPropertyElt">7.2.19 Production parseTypeCollectionPropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseCollection">parseCollection</a>))<br />
+ <a href="#nodeElementList">nodeElementList</a><br />
+ end-element()
+ </p></div></div>
+
+ <p>For element event <em>e</em> with possibly empty
+
+ <a href="#nodeElementList">nodeElementList</a> <em>l</em>. Set
+ <em>s</em>:=list().</p>
+
+ <p>For each element event <em>f</em> in <em>l</em>,
+ <em>n</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id()) and append <em>n</em> to
+
+ <em>s</em> to give a sequence of events.</p>
+
+ <p>If <em>s</em> is not empty, <em>n</em> is the first event identifier in
+ <em>s</em> and the following statement is added to the graph:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+ </p></div></div>
+
+ <p>otherwise the following statement is added to the graph:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .</code>
+
+ </p></div></div>
+
+ <p>If the <code>rdf:ID</code> attribute <em>a</em> is given,
+ either of the the above statements is reified with
+ <em>i</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
+ using the reification rules in
+
+ <a href="#section-Reification">section 7.3</a>.
+ </p>
+
+ <p>If <em>s</em> is empty, no further work is performed.</p>
+
+ <p>For each event <em>n</em> in <em>s</em> and the
+ corresponding element event <em>f</em> in <em>l</em>, the following
+ statement is added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code> <em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <em>f</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+ </p></div></div>
+
+ <p>For each consecutive and overlapping pair of events
+ (<em>n</em>, <em>o</em>) in <em>s</em>, the following statement is
+ added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <em>o</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <p>If <em>s</em> is not empty, <em>n</em> is the last event identifier
+ in <em>s</em>, the following statement is added to the graph:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>n</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .</code>
+
+ </p></div></div>
+
+
+
+ <h4><a id="parseTypeOtherPropertyElt" name="parseTypeOtherPropertyElt">7.2.20 Production parseTypeOtherPropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, <a href="#parseOther">parseOther</a>))<br />
+
+ <a href="#propertyEltList">propertyEltList</a><br />
+ end-element()
+ </p></div></div>
+
+
+ <p>All <code>rdf:parseType</code> attribute values other than the strings
+ "Resource", "Literal" or "Collection" are treated as if the value was
+ "Literal". This production matches and acts as if production
+ <a href="#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
+ was matched.
+ No extra triples are generated for other <code>rdf:parseType</code> values.
+ </p>
+
+
+ <h4><a id="emptyPropertyElt" name="emptyPropertyElt">7.2.21 Production emptyPropertyElt</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ start-element(<a href="#eventterm-element-URI">URI</a> == <a href="#propertyElementURIs">propertyElementURIs</a> ),<br />
+     <a href="#eventterm-element-attributes">attributes</a> == set(<a href="#idAttr">idAttr</a>?, ( <a href="#resourceAttr">resourceAttr</a> | <a href="#nodeIdAttr">nodeIdAttr</a> )?, <a href="#propertyAttr">propertyAttr</a>*))<br />
+
+ end-element()
+ </p></div></div>
+
+
+ <ul>
+
+ <li>
+ <p>If there are no attributes <strong>or</strong> only the
+ optional <code>rdf:ID</code> attribute <em>i</em>
+ then <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a>:="", <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
+ and the following statement is added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <p>and then if <em>i</em> is given, the above statement is reified with
+ uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>)))
+ using the reification rules in
+ <a href="#section-Reification">section 7.3</a>.</p>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test002.rdf">test002.rdf</a>
+ and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test002.nt">test002.nt</a>
+ </p></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test005.rdf">test005.rdf</a>
+ and
+
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test005.nt">test005.nt</a>
+ </p></div>
+
+ </li>
+
+ <li>
+
+ <p>Otherwise</p>
+
+ <ul>
+ <li>If <code>rdf:resource</code> attribute <em>i</em> is present, then
+ <em>r</em> := uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
+ </li>
+
+ <li>If <code>rdf:nodeID</code> attribute <em>i</em> is present, then
+ <em>r</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := <em>i</em>.<a href="#eventterm-attribute-string-value">string-value</a>)
+ </li>
+
+ <li>If neither,
+ <em>r</em> := bnodeid(<a href="#eventterm-identifier-identifier">identifier</a> := generated-blank-node-id())
+ </li>
+ </ul>
+
+ <p>The following are done in any order:</p>
+
+ <ul>
+
+ <li><p>For all <a href="#propertyAttr">propertyAttr</a>
+ attributes <em>a</em> (in any order)</p>
+ <ul>
+
+ <li><p>If <em>a</em>.<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:type</code>
+
+ then <em>u</em>:=uri(identifier:=resolve(<em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>))
+ and the following triple is added to the graph:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <em>u</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+
+ </p></div></div>
+ </li>
+
+ <li><p>Otherwise Unicode string
+ <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>
+ SHOULD be in Normal Form C<a href="#ref-nfc">[NFC]</a>,
+ <em>o</em> := literal(<a href="#eventterm-literal-literal-value">literal-value</a> := <em>a</em>.<a href="#eventterm-attribute-string-value">string-value</a>, <a href="#eventterm-literal-literal-language">literal-language</a> := <em>e</em>.<a href="#eventterm-element-language">language</a>)
+ and the following statement is added to the graph:</p>
+
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <em>a</em>.<a href="#eventterm-attribute-URI-string-value">URI-string-value</a> <em>o</em>.<a href="#eventterm-literal-string-value">string-value</a> .</code>
+
+ </p></div></div>
+ </li>
+
+ </ul>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test013.rdf">test013.rdf</a>
+ and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test013.nt">test013.nt</a>
+
+ </p></div>
+
+ <div class="note"><p><strong>Test:</strong>
+ Indicated by
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test014.rdf">test014.rdf</a>
+ and
+ <a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test014.nt">test014.nt</a>
+ </p></div>
+
+ </li>
+
+ <li><p>Add the following statement to the graph:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>e</em>.parent.<a href="#eventterm-element-subject">subject</a>.<a href="#eventterm-identifier-string-value">string-value</a> <em>e</em>.<a href="#eventterm-element-URI-string-value">URI-string-value</a> <em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> .</code>
+
+ </p></div></div>
+
+ <p>and then if <code>rdf:ID</code> attribute <em>i</em> is given, the above statement is
+ reified with
+ uri(<a href="#eventterm-identifier-identifier">identifier</a> := resolve(<em>e</em>, concat("#", <em>i</em>.<a href="#eventterm-identifier-string-value">string-value</a>)))
+ using the reification rules in
+ <a href="#section-Reification">section 7.3</a>.</p>
+
+ </li>
+
+ </ul>
+
+ </li>
+ </ul>
+
+
+ <!-- idAboutAttr one has gone; id is closest thing replacing it -->
+ <h4><a id="idAboutAttr" name="idAboutAttr"></a>
+ <a id="idAttr" name="idAttr">7.2.22 Production idAttr</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:ID</code>,<br />
+
+     <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)
+ </p></div></div>
+
+ <p><strong>Constraint:</strong>: <a href="#constraint-id">constraint-id</a>
+ applies to the values of <code>rdf:ID</code> attributes</p>
+
+ <h4><a id="nodeIdAttr" name="nodeIdAttr">7.2.23 Production nodeIdAttr</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:nodeID</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#rdf-id">rdf-id</a>)
+
+ </p></div></div>
+
+
+ <h4><a id="aboutAttr" name="aboutAttr">7.2.24 Production aboutAttr</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:about</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
+
+ </p></div></div>
+
+
+ <h4><a id="propAttr" name="propAttr"></a><a id="typeAttr" name="typeAttr"></a>
+ <a id="propertyAttr" name="propertyAttr">7.2.25 Production propertyAttr</a></h4>
+
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <a href="#propertyAttributeURIs">propertyAttributeURIs</a>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a>)
+
+ </p></div></div>
+
+
+ <h4><a id="resourceAttr" name="resourceAttr">7.2.26 Production resourceAttr</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:resource</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
+
+ </p></div></div>
+
+
+ <h4><a id="datatypeAttr" name="datatypeAttr">7.2.27 Production datatypeAttr</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:datatype</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == <a href="#URI-reference">URI-reference</a>)
+
+ </p></div></div>
+
+
+ <h4><a id="parseLiteral" name="parseLiteral">7.2.28 Production parseLiteral</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == "Literal")
+
+ </p></div></div>
+
+
+ <h4><a id="parseResource" name="parseResource">7.2.29 Production parseResource</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == "Resource")
+
+ </p></div></div>
+
+
+ <h4><a id="parseCollection" name="parseCollection">7.2.30 Production parseCollection</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
+     <a href="#eventterm-attribute-string-value">string-value</a> == "Collection")
+
+ </p></div></div>
+
+
+ <h4><a id="parseOther" name="parseOther">7.2.31 Production parseOther</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ attribute(<a href="#eventterm-attribute-URI">URI</a> == <code>rdf:parseType</code>,<br />
+     <a
+ href="#eventterm-attribute-string-value">string-value</a> == <a href="#anyString">anyString</a> - ("Resource" | "Literal" | "Collection") )
+
+ </p></div></div>
+
+
+ <h4><a id="URI-reference" name="URI-reference">7.2.32 Production URI-reference</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ An <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.
+ </p></div></div>
+
+
+ <h4><a id="literal" name="literal">7.2.33 Production literal</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+
+ Any XML element content that is allowed according to
+ <a href="#ref-xml">[XML]</a> definition <em>Content of Elements</em>
+ Rule [43]
+ <a href="http://www.w3.org/TR/2000/REC-xml-20001006#NT-content">content</a>.
+ in section
+ <a href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-starttags">3.1 Start-Tags, End-Tags, and Empty-Element Tags</a>
+ </p>
+
+ <p>The string-value for the resulting event is discussed in
+ <a href="#parseTypeLiteralPropertyElt">section 7.2.17</a>.</p>
+
+ </div></div>
+
+
+ <h4><a id="rdf-id" name="rdf-id">7.2.34 Production rdf-id</a></h4>
+
+ <div class="productionOuter"><div class="productionInner"><p>
+ An attribute <a href="#eventterm-attribute-string-value" class="termref"><span class="arrow">·</span>string-value<span class="arrow">·</span></a>
+ matching any legal
+ <a href="#ref-namespaces">[XML-NS]</a> token
+ <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+
+ </p></div></div>
+
+
+ <h3><a id="section-Reification" name="section-Reification">7.3 Reification Rules</a></h3>
+
+ <p>For the given URI reference event <em>r</em> and
+ the statement with terms <em>s</em>, <em>p</em> and <em>o</em>
+
+ corresponding to the N-Triples:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>s</em> <em>p</em> <em>o</em> .</code>
+ </p></div></div>
+
+ <p>add the following statements to the graph:</p>
+ <div class="ntripleOuter"><div class="ntripleInner"><p>
+ <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject> <em>s</em> .</code><br />
+
+ <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate> <em>p</em> .</code><br />
+ <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#object> <em>o</em> .</code><br />
+
+ <code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> .</code><br />
+ </p></div></div>
+
+
+ <h3><a id="section-List-Expand" name="section-List-Expand">7.4 List Expansion Rules</a></h3>
+
+ <p>For the given element <em>e</em>, create a new <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> <em>u</em> :=
+ concat("http://www.w3.org/1999/02/22-rdf-syntax-ns#_",
+
+ <em>e</em>.<a href="#eventterm-element-liCounter">li-counter</a>),
+ increment the
+ <em>e</em>.<a href="#eventterm-element-liCounter">li-counter</a>
+ property by 1 and return <em>u</em>.</p>
+
+
<h2>
<a id="section-Serialising" name="section-Serialising">8 Serializing an RDF Graph to RDF/XML</a>