adding index
authorfgandon@strongy.inria.fr
Wed, 08 Feb 2012 17:39:11 +0100
changeset 197 cf23200f0dce
parent 196 89b9e833b1d1
child 198 f98474da463c
adding index
rdf-xml/index.html
--- a/rdf-xml/index.html	Wed Feb 08 17:06:28 2012 +0100
+++ b/rdf-xml/index.html	Wed Feb 08 17:39:11 2012 +0100
@@ -134,6 +134,7 @@
 
 
 <section id="section-Introduction" class="informative">
+    <a id="section-Syntax-more" name="section-Syntax-more"></a>
     <p>This document defines the
     <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML</a>
     <a href="#ref-xml">[XML]</a>
@@ -189,6 +190,3994 @@
 
 
 
+
+<h2>
+<a id="section-Syntax" name="section-Syntax">2 An XML Syntax for RDF</a>
+</h2>
+
+<p>This section introduces the RDF/XML syntax, describes how it
+encodes RDF graphs and explains this with examples.  If there is any
+conflict between this informal description and the formal description
+of the syntax and grammar in sections
+<a href="#section-Data-Model">6 Syntax Data Model</a> and
+<a href="#section-Infoset-Grammar">7 RDF/XML Grammar</a>, the
+latter two sections take precedence.
+</p>
+
+
+<h3><a id="section-Syntax-intro" name="section-Syntax-intro">2.1 Introduction</a></h3>
+
+<p>The
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a> <a href="#ref-rdf-concepts">[RDF-CONCEPTS]</a>
+defines the
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-data-model">RDF Graph data model</a> (Section 3.1)
+and the
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Graph-syntax">RDF Graph abstract syntax</a> (Section 6).
+Along with the
+<a href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">RDF Semantics</a> <a href="#ref-rdf-semantics">[RDF-SEMANTICS]</a>
+
+this provides an abstract syntax with a formal semantics for it.
+The RDF graph has
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-node">nodes</a>
+and labeled directed <em>arcs</em>
+that link pairs of nodes and this is represented as a set of 
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-triple">RDF triples</a>
+where each triple contains a
+<em>subject node</em>, <em>predicate</em> and <em>object node</em>.
+Nodes are
+
+<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/#dfn-literal">RDF literals</a>
+or are <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">blank nodes</a>.
+Blank nodes may be given
+a document-local, non-<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> identifier called a
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a>.
+Predicates are
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+and can be interpreted as either a relationship between the two
+nodes or as defining an attribute value (object node) for some
+subject node.</p>
+
+<p>In order to encode the graph in XML, the nodes and predicates have to be
+represented in XML terms &mdash; element names, attribute names, element contents
+and attribute values.
+RDF/XML uses XML
+<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName">QNames</a>
+as defined in <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a> <a href="#ref-namespaces">[XML-NS]</a>
+to represent
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>.
+All QNames have a <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-NSName">namespace name</a> which is a URI reference
+and a short
+<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-LocalPart">local name</a>.
+In addition, QNames can either have a short 
+
+<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-Prefix">prefix</a>
+or be declared with the default namespace declaration and have none (but
+still have a namespace name)</p>
+
+<p>The
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+represented by a QName is determined by appending the
+<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-LocalPart">local name</a>
+part of the QName after the
+<a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/#dt-NSName">namespace name</a> (URI reference) part of the QName.
+This is used to shorten the
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+
+of all predicates and some nodes.
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> identifying
+subject and object nodes can also be stored as XML attribute values.
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-literal">RDF literals</a>, 
+which can only be object nodes,
+become either XML element text content or XML attribute values.</p>
+
+<p>A graph can be considered a collection of paths of the form node,
+predicate arc, node, predicate arc, node, predicate arc, ... node
+which cover the entire graph. In RDF/XML these turn into sequences of
+elements inside elements which alternate between elements for nodes
+and predicate arcs.  This has been called a series of node/arc
+stripes.  The node at the start of the sequence turns into the
+outermost element, the next predicate arc turns into a child element,
+and so on.  The stripes generally start at the top of an RDF/XML
+document and always begin with nodes.
+</p>
+
+<p>Several RDF/XML examples are given in the following sections
+building up to complete RDF/XML documents.  <a href="#example7">Example 7</a>
+is the first complete RDF/XML document.</p>
+
+<h3><a id="section-Syntax-node-property-elements" name="section-Syntax-node-property-elements">2.2 Node Elements and Property Elements</a></h3>
+
+
+<div class="figure">
+<img src="figure1.png" alt="Graph for RDF/XML Example" height="202" width="600" /><br />
+<a id="figure1" name="figure1">Figure 1: Graph for RDF/XML Example</a> (<a href="figure1.svg">SVG version</a>)
+</div>
+
+<p>An RDF graph is given in <a href="#figure1">Figure 1</a>
+
+where the nodes are represented as ovals and contain their
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+where they have them, all the predicate arcs are labeled with
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+and
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-plain-literal">plain literal</a>
+nodes have been written in rectangles.</p>
+
+
+<p>If we follow one node, predicate arc ... , node path through the
+graph shown in <a href="#figure2">Figure 2</a>:
+</p>
+
+<div class="figure">
+<img src="figure2.png" alt="One Path Through the Graph" height="212" width="600" /><br />
+<a id="figure2" name="figure2">Figure 2: One Path Through the Graph</a> (<a href="figure2.svg">SVG version</a>)
+</div>
+
+<p>The left hand side of the <a href="#figure2">Figure 2</a> graph corresponds to the node/predicate arc stripes:</p>
+
+<ol>
+
+<li>Node with <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> <code>http://www.w3.org/TR/rdf-syntax-grammar</code></li>
+<li>Predicate Arc labeled with <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> <code>http://example.org/terms/editor</code></li>
+<li>Node with no <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a></li>
+<li>Predicate Arc labeled with <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>  <code>http://example.org/terms/homePage</code></li>
+
+<li>Node with <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> <code>http://purl.org/net/dajobe/</code></li>
+</ol>
+
+<p>In RDF/XML, the sequence of 5 nodes and predicate arcs on
+the left hand side of <a href="#figure2">Figure 2</a> corresponds to 
+the usage of five XML elements of two types, for the graph nodes and
+predicate arcs. These are conventionally called <em>node elements</em> and
+<em>property elements</em> respectively.  In the striping shown in
+
+<a href="#example1">Example 1</a>, <code>rdf:Description</code> is the
+node element (used three times for the three nodes) and
+<code>ex:editor</code> and <code>ex:homePage</code> are the two
+property elements.
+</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example1" name="example1">Example 1: Striped RDF/XML (<span class="nodeStripe">nodes</span> and <span class="arcStripe">predicate arcs</span>)</a></div>
+
+<div class="exampleInner">
+<div class="preExample">
+<code>
+<span class="nodeStripe">&lt;rdf:Description&gt;</span><br />
+&nbsp;&nbsp;<span class="arcStripe">&lt;ex:editor&gt;</span><br />
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="nodeStripe">&lt;rdf:Description&gt;</span><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="arcStripe">&lt;ex:homePage&gt;</span><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nodeStripe">&lt;rdf:Description&gt;</span><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nodeStripe">&lt;/rdf:Description&gt;</span><br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="arcStripe">&lt;/ex:homePage&gt;</span><br />
+
+&nbsp;&nbsp;&nbsp;&nbsp;<span class="nodeStripe">&lt;/rdf:Description&gt;</span><br />
+&nbsp;&nbsp;<span class="arcStripe">&lt;/ex:editor&gt;</span><br />
+<span class="nodeStripe">&lt;/rdf:Description&gt;</span><br />
+</code>
+</div>
+</div>
+</div>
+
+<p>The <a href="#figure2">Figure 2</a> graph consists of some nodes
+that are
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>
+
+(and others that are not) and this can be added
+to the RDF/XML using the <code>rdf:about</code> attribute on node
+elements to give the result in <a href="#example2">Example 2</a>:</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example2" name="example2">Example 2: Node Elements with RDF URI references added</a></div>
+<div class="exampleInner">
+<pre>
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+  &lt;ex:editor&gt;
+
+    &lt;rdf:Description&gt;
+      &lt;ex:homePage&gt;
+        &lt;rdf:Description rdf:about="http://purl.org/net/dajobe/"&gt;
+        &lt;/rdf:Description&gt;
+      &lt;/ex:homePage&gt;
+    &lt;/rdf:Description&gt;
+
+  &lt;/ex:editor&gt;
+&lt;/rdf:Description&gt;
+
+</pre>
+</div>
+</div>
+
+<p>Adding the other two paths through the <a href="#figure1">Figure 1</a>
+graph to the RDF/XML in
+<a href="#example2">Example 2</a>
+gives the result in <a href="#example3">Example 3</a>
+
+(this example fails to show that the blank node is
+shared between the two paths, see 
+<a href="#section-Syntax-blank-nodes">2.10</a>):</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example3" name="example3">Example 3: Complete description of all graph paths</a></div>
+<div class="exampleInner">
+<pre>
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+  &lt;ex:editor&gt;
+    &lt;rdf:Description&gt;
+
+      &lt;ex:homePage&gt;
+        &lt;rdf:Description rdf:about="http://purl.org/net/dajobe/"&gt;
+        &lt;/rdf:Description&gt;
+      &lt;/ex:homePage&gt;
+    &lt;/rdf:Description&gt;
+  &lt;/ex:editor&gt;
+
+&lt;/rdf:Description&gt;
+
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+  &lt;ex:editor&gt;
+    &lt;rdf:Description&gt;
+      &lt;ex:fullName&gt;Dave Beckett&lt;/ex:fullName&gt;
+    &lt;/rdf:Description&gt;
+
+  &lt;/ex:editor&gt;
+&lt;/rdf:Description&gt;
+
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+  &lt;dc:title&gt;RDF/XML Syntax Specification (Revised)&lt;/dc:title&gt;
+&lt;/rdf:Description&gt;
+
+</pre>
+
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-multiple-property-elements" name="section-Syntax-multiple-property-elements">2.3 Multiple Property Elements</a></h3>
+
+<p>There are several abbreviations that can be used to make common
+uses easier to write down.  In particular, it is common that a
+subject node in the RDF graph has multiple outgoing predicate arcs.  RDF/XML
+provides an abbreviation for the corresponding syntax when a node
+element about a resource has multiple property elements. This can be
+abbreviated by using multiple child property elements inside the node
+element describing the subject node.</p>
+
+<p>Taking <a href="#example3">Example 3</a>, there  are
+two node elements that can take multiple property elements.
+The subject node with URI reference
+<code>http://www.w3.org/TR/rdf-syntax-grammar</code>
+has property elements <code>ex:editor</code> and <code>ex:title</code>
+
+and the node element for the blank node can take <code>ex:homePage</code>
+and <code>ex:fullName</code>.  This abbreviation
+gives the result shown in <a href="#example4">Example 4</a>
+(this example does show that there is a single blank node):</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example4" name="example4">Example 4: Using multiple property elements on a node element</a></div>
+<div class="exampleInner">
+<pre>
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+
+  &lt;ex:editor&gt;
+    &lt;rdf:Description&gt;
+      &lt;ex:homePage&gt;
+        &lt;rdf:Description rdf:about="http://purl.org/net/dajobe/"&gt;
+        &lt;/rdf:Description&gt;
+      &lt;/ex:homePage&gt;
+
+      &lt;ex:fullName&gt;Dave Beckett&lt;/ex:fullName&gt;
+    &lt;/rdf:Description&gt;
+  &lt;/ex:editor&gt;
+  &lt;dc:title&gt;RDF/XML Syntax Specification (Revised)&lt;/dc:title&gt;
+&lt;/rdf:Description&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-empty-property-elements" name="section-Syntax-empty-property-elements">2.4 Empty Property Elements</a></h3>
+
+<p>When a predicate arc in an RDF graph points to an object node which has no
+further predicate arcs, which appears in RDF/XML as an empty node element
+<code>&lt;rdf:Description rdf:about="..."&gt;</code>
+<code>&lt;/rdf:Description&gt;</code>
+(or <code>&lt;rdf:Description rdf:about="..." /&gt;</code>)
+this form can be shortened.  This is done by using the 
+
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+of the object node as the value of an XML attribute <code>rdf:resource</code>
+on the containing property element and making the property element empty.
+</p>
+
+<p>In this example, the property element <code>ex:homePage</code>
+contains an empty node element with the
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+<code>http://purl.org/net/dajobe/</code>.  This can be replaced with
+the empty property element form giving the result shown in
+<a href="#example5">Example 5</a>:</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example5" name="example5">Example 5: Empty property elements</a></div>
+<div class="exampleInner">
+<pre>
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+  &lt;ex:editor&gt;
+    &lt;rdf:Description&gt;
+      &lt;ex:homePage rdf:resource="http://purl.org/net/dajobe/"/&gt;
+
+      &lt;ex:fullName&gt;Dave Beckett&lt;/ex:fullName&gt;
+    &lt;/rdf:Description&gt;
+  &lt;/ex:editor&gt;
+  &lt;dc:title&gt;RDF/XML Syntax Specification (Revised)&lt;/dc:title&gt;
+&lt;/rdf:Description&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-property-attributes" name="section-Syntax-property-attributes">2.5 Property Attributes</a></h3>
+
+<p>When a property element's content is string literal,
+it may be possible to use it as an XML attribute on the
+containing node element.
+This can be done for multiple properties on the same node element
+only if the property element name is not repeated
+(required by XML &mdash; attribute names are unique on an XML element)
+and any in-scope <code>xml:lang</code> on the
+property element's string literal (if any) are the same (see <a href="#section-Syntax-languages">Section 2.7</a>)
+This abbreviation is known as a <em>Property Attribute</em>
+
+and can be applied to any node element.</p>
+
+<p>This abbreviation can also be used when the property element is
+<code>rdf:type</code> and it has an <code>rdf:resource</code> attribute
+the value of which is interpreted as a
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> object node.</p>
+
+<p>In <a href="#example5">Example 5</a>:,
+there are two property elements with string literal content,
+the <code>dc:title</code> and <code>ex:fullName</code>
+
+property elements.  These can be replaced with property attributes
+giving the result shown in <a href="#example6">Example 6</a>:</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example6" name="example6">Example 6: Replacing property elements with string literal content into property attributes</a></div>
+<div class="exampleInner">
+<pre>
+&lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
+                 dc:title="RDF/XML Syntax Specification (Revised)"&gt;
+  &lt;ex:editor&gt;
+    &lt;rdf:Description ex:fullName="Dave Beckett"&gt;
+
+      &lt;ex:homePage rdf:resource="http://purl.org/net/dajobe/"/&gt;
+    &lt;/rdf:Description&gt;
+  &lt;/ex:editor&gt;
+&lt;/rdf:Description&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-complete-document" name="section-Syntax-complete-document">2.6 Completing the Document: Document Element and XML Declaration</a></h3>
+
+<p>To create a complete RDF/XML document, the serialization of the
+graph into XML is usually contained inside an <code>rdf:RDF</code>
+XML element which becomes the top-level XML document element.
+Conventionally the <code>rdf:RDF</code> element is also used to
+declare the XML namespaces that are used, although that is not
+required.  When there is only one top-level node element inside
+<code>rdf:RDF</code>, the <code>rdf:RDF</code> can be omitted
+although any XML namespaces must still be declared.</p>
+
+<p>The XML specification also permits an XML declaration at
+the top of the document with the XML version and possibly the XML
+content encoding.  This is optional but recommended.</p>
+
+<p>Completing the RDF/XML could be done for any of the correct
+complete graph examples from
+<a href="#example4">Example 4</a> onwards but taking the smallest
+<a href="#example6">Example 6</a> and adding the final components,
+gives a complete RDF/XML representation of the original
+<a href="#figure1">Figure 1</a> graph
+in <a href="#example7">Example 7</a>:</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example7" name="example7">Example 7: Complete RDF/XML description of Figure 1 graph</a> (<a href="example07.rdf">example07.rdf</a> output <a href="example07.nt">example07.nt</a>)</div>
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+
+  &lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
+		   dc:title="RDF/XML Syntax Specification (Revised)"&gt;
+    &lt;ex:editor&gt;
+      &lt;rdf:Description ex:fullName="Dave Beckett"&gt;
+	&lt;ex:homePage rdf:resource="http://purl.org/net/dajobe/" /&gt;
+      &lt;/rdf:Description&gt;
+    &lt;/ex:editor&gt;
+
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+<p>It is possible to omit <code>rdf:RDF</code> in
+<a href="#example7">Example 7</a> above since there is only one
+
+<code>rdf:Description</code> inside <code>rdf:RDF</code> but this
+is not shown here.</p>
+
+
+<h3><a id="section-Syntax-languages" name="section-Syntax-languages">2.7 Languages: <code>xml:lang</code></a></h3>
+
+<p>RDF/XML permits the use of the <code>xml:lang</code> attribute as defined by
+
+<a href="http://www.w3.org/TR/REC-xml#sec-lang-tag">2.12 Language Identification</a>
+of <a href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a> <a href="#ref-xml">[XML]</a>
+to allow the identification of content language.
+The <code>xml:lang</code> attribute can be used on any node element or property element
+to indicate that the included content is in the given language.  
+<a href="#section-Syntax-datatyped-literals">Typed literals</a>
+which includes <a href="#section-Syntax-XML-literals">XML literals</a>
+are not affected by this attribute.
+The most specific in-scope language present
+(if any) is applied to property element string literal content or
+property attribute values.  The <code>xml:lang=""</code> form
+indicates the absence of a language identifier.</p>
+
+<p>Some examples of marking content languages for RDF properties are shown in
+<a href="#example8">Example 8</a>:</p>
+
+
+<div class="exampleOuter">
+<div class="figure"><a id="example8" name="example8">Example 8: Complete example of <code>xml:lang</code></a> (<a href="example08.rdf">example08.rdf</a> output <a href="example08.nt">example08.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"&gt;
+  &lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"&gt;
+    &lt;dc:title&gt;RDF/XML Syntax Specification (Revised)&lt;/dc:title&gt;
+    &lt;dc:title xml:lang="en"&gt;RDF/XML Syntax Specification (Revised)&lt;/dc:title&gt;
+
+    &lt;dc:title xml:lang="en-US"&gt;RDF/XML Syntax Specification (Revised)&lt;/dc:title&gt;
+  &lt;/rdf:Description&gt;
+
+  &lt;rdf:Description rdf:about="http://example.org/buecher/baum" xml:lang="de"&gt;
+    &lt;dc:title&gt;Der Baum&lt;/dc:title&gt;
+
+    &lt;dc:description&gt;Das Buch ist außergewöhnlich&lt;/dc:description&gt;
+    &lt;dc:title xml:lang="en"&gt;The Tree&lt;/dc:title&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+
+</div>
+</div>
+
+
+
+<h3><a id="section-Syntax-XML-literals" name="section-Syntax-XML-literals">2.8 XML Literals: <code>rdf:parseType="Literal"</code></a></h3>
+
+<p>RDF allows 
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-XMLLiteral">XML literals</a>
+(<a href="#ref-rdf-concepts">[RDF-CONCEPTS]</a> Section 5, <cite>XML Content within an RDF graph</cite>)
+to be given as the object node of a predicate.
+These are written in RDF/XML as content of a property element (not
+a property attribute) and indicated using the
+
+<code>rdf:parseType="Literal"</code> attribute on the containing
+property element.
+</p>
+
+
+<p>An example of writing an XML literal is given in
+<a href="#example9">Example 9</a> where
+there is a single RDF triple with the subject node
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+<code>http://example.org/item01</code>, the predicate
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+<code>http://example.org/stuff/1.0/prop</code> (from
+
+<code>ex:prop</code>) and the object node with XML literal
+content beginning <code>a:Box</code>.
+</p>
+
+
+<div class="exampleOuter">
+<div class="figure"><a id="example9" name="example9">Example 9: Complete example of <code>rdf:parseType="Literal"</code></a> (<a href="example09.rdf">example09.rdf</a> output <a href="example09.nt">example09.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;rdf:Description rdf:about="http://example.org/item01"&gt;
+    &lt;ex:prop rdf:parseType="Literal"
+             xmlns:a="http://example.org/a#"&gt;&lt;a:Box required="true"&gt;
+         &lt;a:widget size="10" /&gt;
+         &lt;a:grommit id="23" /&gt;&lt;/a:Box&gt;
+
+    &lt;/ex:prop&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-datatyped-literals" name="section-Syntax-datatyped-literals">2.9 Typed Literals: <code>rdf:datatype</code></a></h3>
+
+<p>RDF allows
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literals</a>
+to be given as the object node of a predicate.  Typed literals consist of a literal
+string and a datatype
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.  These are written in RDF/XML using
+the same syntax for literal string nodes in the property element form
+(not property attribute) but with an additional
+<code>rdf:datatype="</code><em>datatypeURI</em><code>"</code>
+attribute on the property element.  Any 
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> can be used in the attribute.
+</p>
+
+<p>An example of an RDF
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literal</a>
+is given in <a href="#example10">Example 10</a> where
+there is a single RDF triple with the subject node
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+<code>http://example.org/item01</code>, the predicate
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+<code>http://example.org/stuff/1.0/size</code> (from
+<code>ex:size</code>) and the object node with the
+
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-typed-literal">typed literal</a>
+("123", <code>http://www.w3.org/2001/XMLSchema#int</code>)
+to be interpreted as an
+<a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">W3C XML Schema</a>
+<a href="#ref-xml-schema2">[XML-SCHEMA2]</a> datatype int.
+</p>
+
+
+<div class="exampleOuter">
+<div class="figure"><a id="example10" name="example10">Example 10: Complete example of <code>rdf:datatype</code></a> (<a href="example10.rdf">example10.rdf</a>  output <a href="example10.nt">example10.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;rdf:Description rdf:about="http://example.org/item01"&gt;
+    &lt;ex:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int"&gt;123&lt;/ex:size&gt;
+  &lt;/rdf:Description&gt;
+
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+
+<h3><a id="section-Syntax-blank-nodes" name="section-Syntax-blank-nodes">2.10 Identifying Blank Nodes: <code>rdf:nodeID</code></a></h3>
+
+<p><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">Blank nodes</a> in the RDF graph are distinct but have no 
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> identifier.
+It is sometimes required that the same graph <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">blank node</a> is referred to in the
+RDF/XML in multiple places, such as at the subject and object
+of several RDF triples.  In this case, a <em><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a></em>
+
+can be given to the <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">blank node</a> for identifying it
+in the document.  Blank node identifiers in RDF/XML are scoped to the
+containing XML Information Set
+<a href="http://www.w3.org/TR/xml-infoset/#infoitem.document">document information item</a>.
+A <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a> is used
+on a node element to replace
+<code>rdf:about="</code><em>RDF URI reference</em><code>"</code>
+or on a property element to replace
+<code>rdf:resource="</code><em>RDF URI reference</em><code>"</code>
+
+with <code>rdf:nodeID="</code><em><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a></em><code>"</code>
+in both cases.</p>
+
+<p>Taking <a href="#example7">Example 7</a> and explicitly giving
+a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node-id">blank node identifier</a> of <code>abc</code> to the blank node in it
+gives the result shown in <a href="#example11">Example 11</a>.
+The second <code>rdf:Description</code> property element is
+about the blank node.</p>
+
+
+<div class="exampleOuter">
+<div class="figure"><a id="example11" name="example11">Example 11: Complete RDF/XML description of graph using <code>rdf:nodeID</code> identifying the blank node</a> (<a href="example11.rdf">example11.rdf</a>  output <a href="example11.nt">example11.nt</a>)</div>
+<div class="exampleInner">
+<pre>
+
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
+		   dc:title="RDF/XML Syntax Specification (Revised)"&gt;
+    &lt;ex:editor rdf:nodeID="abc"/&gt;
+  &lt;/rdf:Description&gt;
+
+  &lt;rdf:Description rdf:nodeID="abc"
+                   ex:fullName="Dave Beckett"&gt;
+
+    &lt;ex:homePage rdf:resource="http://purl.org/net/dajobe/"/&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-parsetype-resource" name="section-Syntax-parsetype-resource">2.11 Omitting Blank Nodes: <code>rdf:parseType="Resource"</code></a></h3>
+
+<p><a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-blank-node">Blank nodes</a> (not <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> nodes) in RDF graphs can be written
+in a form that allows the
+<code>&lt;rdf:Description&gt;</code>
+<code>&lt;/rdf:Description&gt;</code> pair to be omitted.
+The omission is done by putting an
+<code>rdf:parseType="Resource"</code>
+attribute on the containing property element 
+that turns the property element into a property-and-node element,
+which can itself have both property elements and property attributes.
+Property attributes and the <code>rdf:nodeID</code> attribute
+are not permitted on property-and-node elements.
+
+</p>
+
+<p>Taking the earlier <a href="#example7">Example 7</a>,
+the contents of the <code>ex:editor</code> property element
+could be alternatively done in this fashion to give
+the form shown in <a href="#example12">Example 12</a>:</p>
+
+
+<div class="exampleOuter">
+<div class="figure"><a id="example12" name="example12">Example 12: Complete example using <code>rdf:parseType="Resource"</code></a> (<a href="example12.rdf">example12.rdf</a> output <a href="example12.nt">example12.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
+		   dc:title="RDF/XML Syntax Specification (Revised)"&gt;
+    &lt;ex:editor rdf:parseType="Resource"&gt;
+      &lt;ex:fullName&gt;Dave Beckett&lt;/ex:fullName&gt;
+
+      &lt;ex:homePage rdf:resource="http://purl.org/net/dajobe/"/&gt;
+    &lt;/ex:editor&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-property-attributes-on-property-element" name="section-Syntax-property-attributes-on-property-element">2.12 Omitting Nodes: Property Attributes on an empty Property Element</a></h3>
+
+<p>If all of the property elements on a blank node element have
+string literal values with the same in-scope <code>xml:lang</code>
+value (if present) and each of these property elements appears at
+most once and there is at most one <code>rdf:type</code> property
+element with a <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> object node, these can be abbreviated by
+moving them to be property attributes on the containing property
+element which is made an empty element.</p>
+
+<p>Taking the earlier <a href="#example5">Example 5</a>,
+the <code>ex:editor</code> property element contains a
+blank node element with two property elements
+
+<code>ex:fullname</code> and <code>ex:homePage</code>.
+<code>ex:homePage</code> is not suitable here since it
+does not have a string literal value, so it is being
+<em>ignored</em> for the purposes of this example.
+The abbreviated form removes the <code>ex:fullName</code> property element
+and adds a new property attribute <code>ex:fullName</code> with the
+string literal value of the deleted property element
+to the <code>ex:editor</code> property element.
+The blank node element becomes implicit in the now empty
+
+<code>ex:editor</code> property element.  The result is shown in
+<a href="#example13">Example 13</a>.</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example13" name="example13">Example 13: Complete example of property attributes on an empty property element</a> (<a href="example13.rdf">example13.rdf</a> output <a href="example13.nt">example13.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"
+		   dc:title="RDF/XML Syntax Specification (Revised)"&gt;
+    &lt;ex:editor ex:fullName="Dave Beckett" /&gt;
+    &lt;!-- Note the ex:homePage property has been ignored for this example --&gt;
+  &lt;/rdf:Description&gt;
+
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-typed-nodes" name="section-Syntax-typed-nodes">2.13 Typed Node Elements</a></h3>
+
+<p>It is common for RDF graphs to have <code>rdf:type</code> predicates
+from subject nodes.  These are conventionally called <em>typed
+nodes</em> in the graph, or <em>typed node elements</em> in the
+RDF/XML.  RDF/XML allows this triple to be expressed more concisely.
+by replacing the <code>rdf:Description</code> node element name with
+the namespaced-element corresponding to the
+
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> of the value of
+the type relationship.  There may, of course, be multiple <code>rdf:type</code>
+predicates but only one can be used in this way, the others must remain as
+property elements or property attributes.
+</p>
+
+<p>The typed node elements are commonly used in RDF/XML with the built-in
+classes in the <a href="#section-Namespace">RDF vocabulary</a>:
+<code>rdf:Seq</code>, <code>rdf:Bag</code>, <code>rdf:Alt</code>,
+
+<code>rdf:Statement</code>, <code>rdf:Property</code> and
+<code>rdf:List</code>.</p>
+
+<p>For example, the RDF/XML in <a href="#example14">Example 14</a>
+could be written as shown in <a href="#example15">Example 15</a>.</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example14" name="example14">Example 14: Complete example with <code>rdf:type</code></a> (<a href="example14.rdf">example14.rdf</a> output <a href="example14.nt">example14.nt</a>)</div>
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+
+  &lt;rdf:Description rdf:about="http://example.org/thing"&gt;
+    &lt;rdf:type rdf:resource="http://example.org/stuff/1.0/Document"/&gt;
+    &lt;dc:title&gt;A marvelous thing&lt;/dc:title&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example15" name="example15">Example 15: Complete example using a typed node element to replace an <code>rdf:type</code></a> (<a href="example15.rdf">example15.rdf</a> output <a href="example15.nt">example15.nt</a>)</div>
+<div class="exampleInner">
+<pre>
+
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:dc="http://purl.org/dc/elements/1.1/"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;ex:Document rdf:about="http://example.org/thing"&gt;
+    &lt;dc:title&gt;A marvelous thing&lt;/dc:title&gt;
+  &lt;/ex:Document&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-ID-xml-base" name="section-Syntax-ID-xml-base">2.14 Abbreviating URIs: <code>rdf:ID</code> and <code>xml:base</code></a></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
+ways.  The XML Infoset provides a base URI attribute <code>xml:base</code>
+
+that sets the base URI for resolving relative <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a>, otherwise the base URI is that of the document.  The base URI applies to
+all RDF/XML attributes that deal with <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI references</a> which are <code>rdf:about</code>,
+<code>rdf:resource</code>, <code>rdf:ID</code>
+and <code>rdf:datatype</code>.</p>
+
+<p>The <code>rdf:ID</code> attribute on a node element (not property
+element, that has another meaning) can be used instead of
+<code>rdf:about</code> and gives a relative <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> equivalent to <code>#</code>
+concatenated with the <code>rdf:ID</code> attribute value.  So for
+example if <code>rdf:ID="name"</code>, that would be equivalent
+to <code>rdf:about="#name"</code>.  <code>rdf:ID</code> provides an additional
+check since the same <em>name</em> can only appear once in the
+scope of an <code>xml:base</code> value (or document, if none is given),
+so is useful for defining a set of distinct,
+related terms relative to the same <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>.</p>
+
+<p>Both forms require a base URI to be known, either from an in-scope
+<code>xml:base</code> or from the URI of the RDF/XML document.</p>
+
+<p><a href="#example16">Example 16</a> shows abbreviating the node
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> of <code>http://example.org/here/#snack</code> using an
+<code>xml:base</code> of <code>http://example.org/here/</code> and
+an <code>rdf:ID</code> on the <code>rdf:Description</code> node element.
+The object node of the <code>ex:prop</code> predicate is an
+absolute <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+
+resolved from the <code>rdf:resource</code> XML attribute value
+using the in-scope base URI to give the
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+<code>http://example.org/here/fruit/apple</code>.</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example16" name="example16">Example 16: Complete example using <code>rdf:ID</code> and <code>xml:base</code> for shortening URIs </a> (<a href="example16.rdf">example16.rdf</a> output <a href="example16.nt">example16.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:ex="http://example.org/stuff/1.0/"
+         xml:base="http://example.org/here/"&gt;
+  &lt;rdf:Description rdf:ID="snack"&gt;
+    &lt;ex:prop rdf:resource="fruit/apple"/&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+
+<h3><a id="section-Syntax-list-elements" name="section-Syntax-list-elements">2.15 Container Membership Property Elements: <code>rdf:li</code> and <code>rdf:_</code><em>n</em></a></h3>
+
+<p>RDF has a set of container membership properties
+and corresponding property elements that are mostly used with
+instances of the
+<code>rdf:Seq</code>, <code>rdf:Bag</code> and <code>rdf:Alt</code>
+
+classes which may be written as typed node elements.  The list properties are
+<code>rdf:_1</code>, <code>rdf:_2</code> etc. and can be written
+as property elements or property attributes as shown in
+<a href="#example17">Example 17</a>.  There is an <code>rdf:li</code>
+special property element that is equivalent to
+<code>rdf:_1</code>, <code>rdf:_2</code> in order,
+explained in detail in <a href="#section-List-Expand">section 7.4</a>.
+The mapping to the container membership properties is
+always done in the order that the <code>rdf:li</code> special
+property elements appear in XML &mdash; the document order is significant.
+The equivalent RDF/XML to <a href="#example17">Example 17</a> written
+in this form is shown in <a href="#example18">Example 18</a>.
+
+</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example17" name="example17">Example 17: Complex example using RDF list properties</a> (<a href="example17.rdf">example17.rdf</a> output <a href="example17.nt">example17.nt</a>)</div>
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
+
+  &lt;rdf:Seq rdf:about="http://example.org/favourite-fruit"&gt;
+    &lt;rdf:_1 rdf:resource="http://example.org/banana"/&gt;
+    &lt;rdf:_2 rdf:resource="http://example.org/apple"/&gt;
+    &lt;rdf:_3 rdf:resource="http://example.org/pear"/&gt;
+  &lt;/rdf:Seq&gt;
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example18" name="example18">Example 18: Complete example using <code>rdf:li</code> property element for list properties</a> (<a href="example18.rdf">example18.rdf</a> output <a href="example18.nt">example18.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
+  &lt;rdf:Seq rdf:about="http://example.org/favourite-fruit"&gt;
+    &lt;rdf:li rdf:resource="http://example.org/banana"/&gt;
+    &lt;rdf:li rdf:resource="http://example.org/apple"/&gt;
+    &lt;rdf:li rdf:resource="http://example.org/pear"/&gt;
+
+  &lt;/rdf:Seq&gt;
+&lt;/rdf:RDF&gt;
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-parsetype-Collection" name="section-Syntax-parsetype-Collection">2.16 Collections: <code>rdf:parseType="Collection"</code></a></h3>
+
+<p>RDF/XML allows an <code>rdf:parseType="Collection"</code>
+
+attribute on a property element to let it contain multiple node
+elements.  These contained node elements give the set of subject
+nodes of the collection.  This syntax form corresponds to a set of
+triples connecting the collection of subject nodes, the exact triples
+generated are described in detail in
+<a href="#parseTypeCollectionPropertyElt">Section 7.2.19 Production parseTypeCollectionPropertyElt</a>.
+The collection construction is always done in the order that the node
+elements appear in the XML document.  Whether the order of the
+collection of nodes is significant is an application issue and not
+defined here.
+</p>
+
+<p><a href="#example19">Example 19</a> shows a collection of three
+nodes elements at the end of the <code>ex:hasFruit</code>
+property element using this form.</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example19" name="example19">Example 19: Complete example of a RDF collection of nodes using <code>rdf:parseType="Collection"</code></a> (<a href="example19.rdf">example19.rdf</a> output <a href="example19.nt">example19.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:ex="http://example.org/stuff/1.0/"&gt;
+  &lt;rdf:Description rdf:about="http://example.org/basket"&gt;
+    &lt;ex:hasFruit rdf:parseType="Collection"&gt;
+      &lt;rdf:Description rdf:about="http://example.org/banana"/&gt;
+      &lt;rdf:Description rdf:about="http://example.org/apple"/&gt;
+
+      &lt;rdf:Description rdf:about="http://example.org/pear"/&gt;
+    &lt;/ex:hasFruit&gt;
+  &lt;/rdf:Description&gt;
+&lt;/rdf:RDF&gt;
+</pre>
+</div>
+</div>
+
+
+<h3><a id="section-Syntax-reifying" name="section-Syntax-reifying">2.17 Reifying Statements: <code>rdf:ID</code></a></h3>
+
+<p>The <code>rdf:ID</code> attribute can be used on a property
+element to reify the triple that it generates (See
+<a href="#section-Reification">section 7.3 Reification Rules</a> for the
+full details).  
+The identifier for the triple should be constructed as a
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> 
+made from the relative URI reference
+<code>#</code> concatenated with the <code>rdf:ID</code> attribute
+value, resolved against the in-scope base URI.  So for example if
+
+<code>rdf:ID="triple"</code>, that would be equivalent to the <a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a>
+formed from relative URI reference <code>#triple</code> against the base URI.
+Each (<code>rdf:ID</code> attribute value, base URI)
+pair has to be unique in an RDF/XML document, 
+see <a href="#constraint-id">constraint-id</a>.
+</p>
+
+<p><a href="#example20">Example 20</a> shows a <code>rdf:ID</code>
+
+being used to reify a triple made from the <code>ex:prop</code>
+property element giving the reified triple the
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-URI-reference">RDF URI reference</a> <code>http://example.org/triples/#triple1</code>.</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example20" name="example20">Example 20: Complete example of <code>rdf:ID</code> reifying a property element</a> (<a href="example20.rdf">example20.rdf</a> output <a href="example20.nt">example20.nt</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0"?&gt;
+&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:ex="http://example.org/stuff/1.0/"
+         xml:base="http://example.org/triples/"&gt;
+  &lt;rdf:Description rdf:about="http://example.org/"&gt;
+    &lt;ex:prop rdf:ID="triple1"&gt;blah&lt;/ex:prop&gt;
+  &lt;/rdf:Description&gt;
+
+&lt;/rdf:RDF&gt;
+
+</pre>
+</div>
+</div>
+
+
+<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>" &mdash; 
+
+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&nbsp;"</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 &mdash; 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>&#160;
+
+<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 &mdash; 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 "&lt;",
+the escaped value of the
+<a href="#eventterm-element-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
+accessor and "&gt;".</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 "&lt;",
+the escaped value of the 
+<a href="#eventterm-attribute-URI" class="termref"><span class="arrow">·</span>URI<span class="arrow">·</span></a>
+accessor and "&gt;".</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 "&lt;", the escaped value of the <a href="#eventterm-identifier-identifier" class="termref"><span class="arrow">·</span>identifier<span class="arrow">·</span></a> accessor and "&gt;"</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 "&quot;" (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 "&quot;" (1 double quote).</p>
+
+  <p>Otherwise the value is the concatenation of "&quot;" (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
+ "&quot;@" (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 &quot;. </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
+  "&quot;" (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,
+  "&quot;" (1 double quote),  "^^&lt;",
+  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 "&gt;".
+  </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 &quot;.
+  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 />
+
+&#160;&#160;&#160;&#160;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 />
+&#160;&#160;&#160;&#160;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 />
+&#160;&#160;&#160;&#160;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 />
+&#160;&#160;&#160;&#160;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 />
+&#160;&#160;&#160;&#160;<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>&#160;
+<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>&#160; 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 />
+
+&#160;&#160;&#160;&#160;<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 />
+
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; <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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; <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 />
+&#160;&#160;&#160;&#160;<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>
+&#160;&#160;<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 />
+
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 &mdash; 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 />
+&#160;&#160;&#160;&#160;<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 />
+
+&#160;&#160;&#160;&#160;<a href="#eventterm-element-subject">subject</a> := <em>n</em>,<br />
+&#160;&#160;&#160;&#160;<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 />
+
+&#160;&#160;&#160;&#160;<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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#nil&gt; .</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>  &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#first&gt; <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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#rest&gt; <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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#rest&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#nil&gt; .</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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; <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 />
+
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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 />
+&#160;&#160;&#160;&#160;<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> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#subject&gt; <em>s</em> .</code><br />
+
+<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate&gt; <em>p</em> .</code><br />
+<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#object&gt; <em>o</em> .</code><br />
+
+<code><em>r</em>.<a href="#eventterm-identifier-string-value">string-value</a> &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement&gt; .</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>
+
+</h2>
+
+<p>There are some 
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-rdf-graph">RDF Graphs</a>
+as defined in
+<a href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">RDF Concepts and Abstract Syntax</a>
+that cannot be serialized in RDF/XML. These are those that:</p>
+
+<dl>
+  <dt>Use property names that cannot be turned into XML namespace-qualified names.<br /></dt>
+  <dd>An XML namespace-qualified name
+  (<a href="http://www.w3.org/TR/REC-xml-names/#dt-qname">QName</a>)
+  has restrictions on the legal characters such that not all property URIs
+  can be expressed as these names.
+  It is recommended that implementors of RDF serializers, in order to
+  break a URI into a namespace name and a local name, split it after
+  the last XML non-<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+
+  character, ensuring that the first character of the name is a
+  <a href="http://www.w3.org/TR/REC-xml#NT-Letter">Letter</a> or '_'.
+  If the URI ends in a
+  non-<a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
+  character then throw a "this graph cannot be serialized in RDF/XML"
+  exception or error.
+  </dd>
+
+  <dt>Use inappropriate reserved names as properties<br /></dt>
+  <dd>For example, a property with the same URI as any of the
+  <a href="#syntaxTerms">syntaxTerms</a> production.
+  </dd>
+
+</dl>
+
+<div class="note"><p><strong>Implementation Note (Informative):</strong>
+When an RDF graph is serialized to RDF/XML and has an XML Schema
+Datatype (XSD), it SHOULD be written in a form that does not require
+whitespace processing.  XSD support is NOT required by RDF or RDF/XML
+so this is optional.
+</p></div>
+
+
+<h2>
+<a id="section-rdf-in-HTML" name="section-rdf-in-HTML">9 Using RDF/XML with HTML and XHTML</a>
+</h2>
+
+<p>If RDF/XML is embedded inside HTML or XHTML this can
+add many new elements and attributes, many of which will not be
+in the appropriate DTD.  This embedding causes validation against the DTD to fail.
+The obvious solution of changing or extending the DTD is not practical
+for most uses. This problem has been analyzed extensively by Sean B. Palmer in
+<a href="http://infomesh.net/2002/rdfinhtml/">RDF in HTML: Approaches</a>
+
+<a href="#ref-rdf-in-xhtml">[RDF-IN-XHTML]</a>
+and it concludes that there is no single embedding 
+method that satisfies all applications and remains simple.
+</p>
+
+<p>The recommended approach is to not embed RDF/XML in HTML/XHTML but
+rather to use <code>&lt;link&gt;</code> element in the <code>&lt;head&gt;</code>
+element of the HTML/HTML to point at a separate RDF/XML document.
+This approach has been used for several years by the
+<a href="http://www.dublincore.org/">Dublin Core Metadata Initiative (DCMI)</a>
+on its Web site.</p>
+
+<p>To use this technique, the <code>&lt;link&gt;</code> element
+<code>href</code> should point at the URI of the RDF/XML content
+and the <code>type</code> attribute should be used with the value of
+<code>"application/rdf+xml"</code>, the proposed MIME type for
+RDF/XML, see <a href="#section-MIME-Type">Section 4</a></p>
+
+<p>The value of the <code>rel</code> attribute may also be set to
+indicate the relationship; this is an application dependent value.
+The DCMI has used and recommended <code>rel="meta"</code> when linking
+in <a href="http://www.ietf.org/rfc/rfc2731.txt">RFC 2731 &mdash; Encoding Dublin Core Metadata in HTML</a><a href="#ref-rfc2731">[RFC-2731]</a> however
+
+<code>rel="alternate"</code> may also be appropriate.
+See
+<a href="http://www.w3.org/TR/html401/types.html#type-links">HTML 4.01 link types</a>,
+<a href="http://www.w3.org/TR/xhtml-modularization/abstraction.html#dt_LinkTypes">XHTML Modularization &mdash; LinkTypes</a>
+and
+<a href="http://www.w3.org/TR/xhtml2/abstraction.html#dt_LinkTypes">XHTML 2.0 &mdash; LinkTypes</a>
+for further information on the values that may be appropriate
+for the different versions of HTML.</p>
+
+<p><a href="#example21">Example 21</a> shows using this method with
+the <code>link</code> tag inside an XHTML document to link to an
+external RDF/XML document.</p>
+
+<div class="exampleOuter">
+<div class="figure"><a id="example21" name="example21">Example 21: Using
+<code>link</code> in XHTML with an external RDF/XML document</a> (<a href="example21.html">example21.html</a> linking to <a href="example21.rdf">example21.rdf</a>)</div>
+
+<div class="exampleInner">
+<pre>
+&lt;?xml version="1.0" encoding="utf-8"?&gt;
+&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
+&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
+  &lt;head&gt;
+    &lt;title&gt;My document&lt;/title&gt;
+    &lt;meta http-equiv="Content-type" content='text/html; charset="utf-8"' /&gt;
+
+    &lt;link rel="alternate" type="application/rdf+xml" title="RDF Version" href="example21.rdf" /&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;h1&gt;My document&lt;/h1&gt;
+
+  &lt;/body&gt;
+
+&lt;/html&gt;
+
+</pre>
+</div>
+</div>
+
+
+<h2 class="nonum">
+<a id="section-rdf-in-SVG" name="section-rdf-in-SVG"></a>10 Using RDF/XML with SVG (Informative)
+</h2>
+
+<p>There is a standardized approach for associating RDF compatible
+metadata with SVG &mdash; the metadata element which was explicitly
+designed for this purpose as defined in 
+<a href="http://www.w3.org/TR/SVG/metadata.html">Section 21 Metadata</a>
+
+of the
+<a href="http://www.w3.org/TR/2001/REC-SVG-20010904/">Scalable Vector Graphics (SVG) 1.0 Specification</a>
+<a href="#ref-svg">[SVG]</a>
+and
+<a href="http://www.w3.org/TR/SVG11/metadata.html">Section 21 Metadata</a>
+of the
+<a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">Scalable Vector Graphics (SVG) 1.1 Specification</a>
+<a href="#ref-svg11">[SVG11]</a>.
+
+</p>
+
+<p>This document contains two example graphs in SVG with such
+embedded RDF/XML inside the metadata element:
+<a href="http://www.w3.org/TR/rdf-syntax-grammar/figure1.svg">figure 1</a>
+
+and
+<a href="http://www.w3.org/TR/rdf-syntax-grammar/figure2.svg">figure 2</a>.
+</p>
+
+
+<h2 class="nonum">
+<a id="section-Acknowledgments" name="section-Acknowledgments"></a>11 Acknowledgments (Informative)
+</h2>
+
+<p>The following people provided valuable contributions to the document:</p>
+
+<ul>
+  <li>Dan Brickley, W3C/ILRT</li>
+
+  <li>Jeremy Carroll, HP Labs, Bristol</li>
+  <li>Graham Klyne, Nine by Nine</li>
+  <li>Bijan Parsia, MIND Lab at University of Maryland at College Park</li>
+</ul>
+
+<p>This document is a product of extended deliberations by the RDF
+Core working group, whose members have included: Art Barstow (W3C)
+Dave Beckett (ILRT), Dan Brickley (W3C/ILRT), Dan Connolly (W3C),
+Jeremy Carroll (Hewlett Packard), Ron Daniel (Interwoven Inc), Bill
+dehOra (InterX), Jos De Roo (AGFA), Jan Grant (ILRT), Graham Klyne
+(Clearswift and Nine by Nine), Frank Manola (MITRE Corporation),
+Brian McBride (Hewlett Packard), Eric Miller (W3C), Stephen
+Petschulat (IBM), Patrick Stickler (Nokia), Aaron Swartz (HWG), Mike
+Dean (BBN Technologies / Verizon), R. V. Guha (Alpiri Inc), Pat Hayes
+(IHMC), Sergey Melnik (Stanford University), Martyn Horner (Profium
+Ltd).</p>
+
+<p>This specification also draws upon an earlier RDF Model and Syntax
+document edited by Ora Lassilla and Ralph Swick, and RDF Schema
+edited by Dan Brickley and R. V. Guha. RDF and RDF Schema Working
+group members who contributed to this earlier work are:
+Nick Arnett (Verity), Tim Berners-Lee (W3C), Tim Bray (Textuality),
+Dan Brickley (ILRT / University of Bristol), Walter Chang (Adobe),
+Sailesh Chutani (Oracle), Dan Connolly (W3C), Ron Daniel
+(DATAFUSION), Charles Frankston (Microsoft), Patrick Gannon
+(CommerceNet), RV Guha (Epinions, previously of Netscape
+Communications), Tom Hill (Apple Computer), Arthur van Hoff
+(Marimba), Renato Iannella (DSTC), Sandeep Jain (Oracle), Kevin
+Jones, (InterMind), Emiko Kezuka (Digital Vision Laboratories), Joe
+Lapp (webMethods Inc.), Ora Lassila (Nokia Research Center), Andrew
+Layman (Microsoft), Ralph LeVan (OCLC), John McCarthy (Lawrence
+Berkeley National Laboratory), Chris McConnell (Microsoft), Murray
+Maloney (Grif), Michael Mealling (Network Solutions), Norbert Mikula
+(DataChannel), Eric Miller (OCLC), Jim Miller (W3C, emeritus), Frank
+Olken (Lawrence Berkeley National Laboratory), Jean Paoli
+(Microsoft), Sri Raghavan (Digital/Compaq), Lisa Rein (webMethods
+Inc.), Paul Resnick (University of Michigan), Bill Roberts
+(KnowledgeCite), Tsuyoshi Sakata (Digital Vision Laboratories), Bob
+Schloss (IBM), Leon Shklar (Pencom Web Works), David Singer (IBM),
+Wei (William) Song (SISU), Neel Sundaresan (IBM), Ralph Swick (W3C),
+Naohiko Uramoto (IBM), Charles Wicksteed (Reuters Ltd.), Misha Wolf
+(Reuters Ltd.), Lauren Wood (SoftQuad).
+</p>
+
+<h2 class="nonum">
+<a id="section-References" name="section-References"></a>12 References
+</h2>
+
+<h3>
+<a id="section-Normative-References" name="section-Normative-References"></a>Normative References
+</h3>
+
+<dl>
+  <dt>
+  <a id="ref-rdfms" name="ref-rdfms">[RDF-MS]</a>
+  </dt>
+
+  <dd>
+  <cite><a href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">Resource Description Framework (RDF) Model and Syntax Specification</a></cite>, O. Lassila and R. Swick, Editors.  World Wide Web Consortium. 22 February 1999.  This version is http://www.w3.org/TR/1999/REC-rdf-syntax-19990222.  The <a href="http://www.w3.org/TR/REC-rdf-syntax/">latest version of RDF M&amp;S</a> is available at http://www.w3.org/TR/REC-rdf-syntax.
+  </dd>
+
+  <dt>
+  <a id="ref-xml" name="ref-xml">[XML]</a>
+  </dt>
+
+  <dd>
+  <cite><a href="http://www.w3.org/TR/2000/REC-xml-20001006">Extensible Markup Language (XML) 1.0, Second Edition</a></cite>, T. Bray, J. Paoli, C.M. Sperberg-McQueen and E. Maler, Editors.  World Wide Web Consortium.  6 October 2000. This version is http://www.w3.org/TR/2000/REC-xml-20001006. <a href="http://www.w3.org/TR/REC-xml">latest version of XML</a> is available at http://www.w3.org/TR/REC-xml.
+  </dd>
+
+  <dt>
+  <a id="ref-namespaces" name="ref-namespaces">[XML-NS]</a>
+  </dt>
+
+  <dd>
+  <cite><a href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces in XML</a></cite>, T. Bray, D. Hollander and A. Layman, Editors.  World Wide Web Consortium.  14 January 1999.  This version is http://www.w3.org/TR/1999/REC-xml-names-19990114.  The <a href="http://www.w3.org/TR/REC-xml-names/">latest version of Namespaces in XML</a> is available at http://www.w3.org/TR/REC-xml-names.
+  </dd>
+
+  <dt>
+  <a id="ref-xml-infoset" name="ref-xml-infoset">[INFOSET]</a>
+  </dt>
+
+  <dd>
+  <cite><a href="http://www.w3.org/TR/2001/REC-xml-infoset-20011024/">XML Information Set</a></cite>, J. Cowan and R. Tobin, Editors.  World Wide Web Consortium.  24 October 2001.  This version is http://www.w3.org/TR/2001/REC-xml-infoset-20011024.  The <a href="http://www.w3.org/TR/xml-infoset/">latest version of XML Information set</a> is available at http://www.w3.org/TR/xml-infoset.
+  </dd>
+
+  <dt>
+  <a id="ref-uri" name="ref-uri">[URIS]</a>
+  </dt>
+
+  <dd><cite><a href="http://www.isi.edu/in-notes/rfc2396.txt">RFC 2396 &mdash; Uniform Resource Identifiers (URI): Generic Syntax</a></cite>, T. Berners-Lee, R. Fielding and L. Masinter, IETF, August 1998.  This document is http://www.isi.edu/in-notes/rfc2396.txt.
+   </dd>
+
+   <dt><a id="ref-rdf-concepts"
+   name="ref-rdf-concepts"></a>[RDF-CONCEPTS]</dt>
+   
+          <dd><cite><a
+          href="http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/">Resource
+          Description Framework (RDF): Concepts and Abstract
+          Syntax</a></cite>, Klyne G., Carroll J. (Editors), W3C Recommendation, 10 February 2004. <a href ="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">This version</a> is http://www.w3.org/TR/2004/REC-rdf-primer-20040210/. The <a
+           href="http://www.w3.org/TR/rdf-concepts/">latest version</a>
+
+          is http://www.w3.org/TR/rdf-concepts/.</dd>
+   
+   
+   <dt><a id="ref-rdf-tests"
+   name="ref-rdf-tests"></a>[RDF-TESTS]</dt>
+   
+          <dd><cite><a
+          href="http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/">RDF
+          Test Cases</a></cite>, Grant J., Beckett D. (Editors), W3C
+Recommendation, 10 February 2004.  <a href = "http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/">This version</a> is http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/. The <a
+          href="http://www.w3.org/TR/rdf-testcases/">latest
+          version</a> is http://www.w3.org/TR/rdf-testcases/.</dd>
+
+  <dt>
+    <a id="ref-keywords" name="ref-keywords">[KEYWORDS]</a>
+  </dt>
+  <dd>
+    <cite><a href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119 &mdash; Key words for use in RFCs to Indicate Requirement Levels</a></cite>, S. Bradner, IETF. March 1997.  This document is http://www.ietf.org/rfc/rfc2119.txt.
+  </dd>
+
+
+  <dt>
+    <a id="ref-rfc3023" name="ref-rfc3023">[RFC-3023]</a>
+  </dt>
+  <dd>
+    <cite><a href="http://www.ietf.org/rfc/rfc3023.txt">RFC 3023 &mdash; XML Media Types</a></cite>, M. Murata, S. St.Laurent, D.Kohn, IETF.  January 2001. This document is http://www.ietf.org/rfc/rfc3023.txt.
+  </dd>
+
+  <dt>
+
+    <a id="ref-iana-media-types" name="ref-iana-media-types">[IANA-MEDIA-TYPES]</a>
+  </dt>
+  <dd>
+    <cite><a href="http://www.iana.org/assignments/media-types/">MIME Media Types</a></cite>, The Internet Assigned Numbers Authority (IANA).  This document is http://www.iana.org/assignments/media-types/ .  The <a href="http://www.w3.org/2001/sw/RDFCore/mediatype-registration">registration for <code>application/rdf+xml</code></a> is archived at http://www.w3.org/2001/sw/RDFCore/mediatype-registration .
+  </dd>
+
+  <dt>
+
+    <a id="ref-xml-base" name="ref-xml-base">[XML-BASE]</a>
+  </dt>
+  <dd>
+    <cite><a href="http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML Base</a></cite>, J. Marsh, Editor, W3C Recommendation.  World Wide Web Consortium,  27 June 2001.  This version of XML Base is http://www.w3.org/TR/2001/REC-xmlbase-20010627. The <a href="http://www.w3.org/TR/xmlbase/">latest version of XML Base</a> is at http://www.w3.org/TR/xmlbase.
+  </dd>
+
+  <dt>
+
+    <a id="ref-xml-xc14n" name="ref-xml-xc14n">[XML-XC14N]</a>
+  </dt>
+  <dd><cite><a href="http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718/">Exclusive XML Canonicalization Version 1.0</a></cite>, J. Boyer, D.E. Eastlake 3rd, J. Reagle, Authors/Editors. W3C Recommendation.  World Wide Web Consortium, 18 July 2002.  This version of Exclusive XML Canonicalization is http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718.  The <a href="http://www.w3.org/TR/xml-exc-c14n/">latest version of Canonical XML</a> is at http://www.w3.org/TR/xml-exc-c14n.
+  </dd>
+
+  <dt>
+    <a id="ref-unicode" name="ref-unicode">[UNICODE]</a>
+
+  </dt>
+  <dd><cite>The Unicode Standard, Version 3</cite>, The Unicode
+    Consortium, Addison-Wesley, 2000. ISBN 0-201-61633-5, as updated
+    from time to time by the publication of new versions. (See <a href="http://www.unicode.org/unicode/standard/versions/">http://www.unicode.org/unicode/standard/versions/</a>
+    for the latest version and additional information on versions of
+    the standard and of the Unicode Character Database).
+  </dd>
+
+  <dt>
+    <a id="ref-nfc" name="ref-nfc">[NFC]</a>
+  </dt>
+
+  <dd><a href="http://www.unicode.org/unicode/reports/tr15/"><cite>Unicode
+    Normalization Forms,</cite></a> Unicode Standard Annex #15, Mark
+    Davis, Martin Dürst. (See <a href="http://www.unicode.org/unicode/reports/tr15/">http://www.unicode.org/unicode/reports/tr15/</a>
+    for the latest version).
+  </dd>
+</dl>
+
+
+<h3>
+<a id="section-Informative-References" name="section-Informative-References"></a>Informational References
+</h3>
+
+<dl>
+
+  <dt>
+    <a id="ref-charmod" name="ref-charmod">[CHARMOD]</a>
+  </dt>
+  <dd>
+    <cite><a href="http://www.w3.org/TR/2002/WD-charmod-20020220/">Character Model for the World Wide Web 1.0</a></cite>, M. Dürst, F. Yergeau, R. Ishida, M. Wolf, A. Freytag, T Texin, Editors, World Wide Web Consortium Working Draft, work in progress, 20 February 2002.  This version of the Character Model is http://www.w3.org/TR/2002/WD-charmod-20020220. The <a href="http://www.w3.org/TR/charmod/">latest version of the Character Model</a> is at http://www.w3.org/TR/charmod.
+  </dd>
+
+
+  <dt><a id="ref-rdf-semantics"
+  name="ref-rdf-semantics"></a>[RDF-SEMANTICS]</dt>
+  
+          <dd><cite><a
+          href="http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">RDF
+          Semantics</a></cite>, Hayes P. (Editor), W3C Recommendation,
+10 February 2004. <a href =
+"http://www.w3.org/TR/2004/REC-rdf-mt-20040210/">This
+version</a> is
+http://www.w3.org/TR/2004/REC-rdf-mt-20040210/. The <a
+href="http://www.w3.org/TR/rdf-mt/">latest version</a>
+          is http://www.w3.org/TR/rdf-mt/.</dd>
+
+  <dt><a id="ref-rdf-primer" name="ref-rdf-primer">[RDF-PRIMER]</a>
+  </dt>
+
+  <dd><cite><a
+  href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">RDF
+  Primer</a></cite>, F. Manola, E. Miller, Editors, W3C Recommendation, 10 February 2004.  <a
+  href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">This
+  version</a> is
+  http://www.w3.org/TR/2004/REC-rdf-primer-20040210/. The <a
+  href="http://www.w3.org/TR/rdf-primer/">latest version</a> is at
+  http://www.w3.org/TR/rdf-primer/.
+  </dd>
+
+  <dt><a id="ref-rdf-vocabulary"
+  name="ref-rdf-vocabulary"></a>[RDF-VOCABULARY]</dt>
+  
+  <dd><cite><a
+  href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210/">RDF
+  Vocabulary Description Language 1.0: RDF Schema</a></cite>, Brickley
+  D., Guha R.V. (Editors), W3C Recommendation, 10 February 2004. <a
+  href="http://www.w3.org/TR/2004/REC-rdf-schema-20040210/">This
+  version</a> is
+  http://www.w3.org/TR/2004/REC-rdf-schema-20040210/. The <a
+  href="http://www.w3.org/TR/rdf-schema/">latest version</a> is
+  http://www.w3.org/TR/rdf-schema/.</dd>
+
+
+  <dt>
+
+    <a id="ref-stripedrdf" name="ref-stripedrdf">[STRIPEDRDF]</a>
+  </dt>
+  <dd><cite><a href="http://www.w3.org/2001/10/stripes/">RDF: Understanding the Striped RDF/XML Syntax</a></cite>, D. Brickley, W3C, 2001.  This
+  document is http://www.w3.org/2001/10/stripes/.
+  </dd>
+
+  <dt>
+    <a id="ref-svg" name="ref-svg">[SVG]</a>
+  </dt>
+
+  <dd><cite><a href="http://www.w3.org/TR/2001/REC-SVG-20010904/">Scalable Vector Graphics (SVG) 1.0 Specification</a></cite>, J. Ferraiolo (editor), 4 September 2001, W3C Recommendation.  This version of SVG is http://www.w3.org/TR/2001/REC-SVG-20010904.  The <a href="http://www.w3.org/TR/SVG/">latest version of SVG</a> is at http://www.w3.org/TR/SVG.
+  </dd>
+
+  <dt>
+    <a id="ref-svg11" name="ref-svg11">[SVG11]</a>
+  </dt>
+  <dd><cite><a href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">Scalable Vector Graphics (SVG) 1.1 Specification</a></cite>, J. Ferraiolo, J. FUJISAWA, D. Jackson (editors), 14 January 2003, W3C Recommendation.  This version of SVG is http://www.w3.org/TR/2003/REC-SVG11-20030114/.  The <a href="http://www.w3.org/TR/SVG11/">latest version of SVG</a> is at http://www.w3.org/TR/SVG11.
+  </dd>
+
+
+  <dt>
+    <a id="ref-xpath" name="ref-xpath">[XPATH]</a>
+  </dt>
+  <dd><cite><a href="http://www.w3.org/TR/1999/REC-xpath-19991116">XML Path Language (XPath) Version 1.0</a></cite>, J. Clark and S. DeRose, Editors.   World Wide Web Consortium, 16 November 1999.  This version of XPath is http://www.w3.org/TR/1999/REC-xpath-19991116.  The <a href="http://www.w3.org/TR/xpath">latest version of XPath</a> is at http://www.w3.org/TR/xpath.
+</dd>
+
+  <dt>
+    <a id="ref-sax" name="ref-sax">[SAX2]</a>
+  </dt>
+  <dd><cite><a href="http://sax.sourceforge.net/">SAX Simple API for XML, version 2</a></cite>, D. Megginson, SourceForge, 5 May 2000.  This document is http://sax.sourceforge.net/.</dd>
+
+  <dt>
+    <a id="ref-unparsing" name="ref-unparsing">[UNPARSING]</a>
+
+  </dt>
+  <dd><cite><a href="http://www.hpl.hp.com/techreports/2001/HPL-2001-294.html">Unparsing RDF/XML</a></cite>, J. J. Carroll, HP Labs Technical Report, HPL-2001-294, 2001.
+   This document is available at http://www.hpl.hp.com/techreports/2001/HPL-2001-294.html.
+  </dd>
+
+  <dt>
+    <a id="ref-relaxng" name="ref-relaxng">[RELAXNG]</a>
+  </dt>
+  <dd><cite><a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX NG Specification</a></cite>, James Clark and MURATA Makoto, Editors, OASIS Committee Specification, 3 December 2001.  This version of RELAX&#160;NG is http://www.oasis-open.org/committees/relax-ng/spec-20011203.html.  The <a href="http://www.oasis-open.org/committees/relax-ng/spec.html">latest version of the RELAX NG Specification</a> is at http://www.oasis-open.org/committees/relax-ng/spec.html.</dd>
+
+  <dt>
+    <a id="ref-relaxng-nx" name="ref-relaxng-nx">[RELAXNG-COMPACT]</a>
+  </dt>
+  <dd><cite><a href="http://www.oasis-open.org/committees/relax-ng/compact-20021121.html">RELAX NG Compact Syntax</a></cite>, James Clark, Editor. OASIS Committee Specification, 21 November 2002.  This document is http://www.oasis-open.org/committees/relax-ng/compact-20021121.html.</dd>
+
+  <dt>
+    <a id="ref-rdf-in-xhtml" name="ref-rdf-in-xhtml">[RDF-IN-XHTML]</a>
+
+  </dt>
+  <dd>
+    <cite><a href="http://infomesh.net/2002/rdfinhtml/">RDF in HTML: Approaches</a></cite>, Sean B. Palmer, 2002
+ </dd>
+
+  <dt>
+    <a id="ref-rfc2731" name="ref-rfc2731">[RFC-2731]</a>
+  </dt>
+  <dd>
+
+     <cite><a href="http://www.ietf.org/rfc/rfc2731.txt">RFC 2731 &mdash; Encoding Dublin Core Metadata in HTML</a></cite>, John Kunze, DCMI, December 1999.
+  </dd>
+
+  <dt>
+     <a id="ref-xml-schema1" name="ref-xml-schema1"></a>[XML-SCHEMA1]
+  </dt>
+  <dd><cite><a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schema Part 1: Structures</a></cite>, H.S. Thompson, D. Beech, M. Maloney, N. Mendelsohn, Editors, World Wide Web Consortium Recommendation, 2 May 2001. This version of XML Schema Part 1: Structures is http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/.  The <a href="http://www.w3.org/TR/xmlschema-1/">latest version of XML Schema Part 1: Structures</a> is at http://www.w3.org/TR/xmlschema-1.
+ </dd>
+
+  <dt>
+     <a id="ref-xml-schema2" name="ref-xml-schema2"></a>[XML-SCHEMA2]
+  </dt>
+  <dd><cite><a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">XML Schema Part 2: Datatypes</a></cite>, P.V. Biron, A. Malhotra, Editors, World Wide Web Consortium Recommendation, 2 May 2001. This version of XML Schema Part 2: Datatypes is http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.  The <a href="http://www.w3.org/TR/xmlschema-2/">latest version of XML Schema Part 2: Datatypes</a> is at http://www.w3.org/TR/xmlschema-2. 
+ </dd>
+
+</dl>
+
+
+<hr />
+
+<h2>
+<a id="section-Schemas" name="section-Schemas"></a>A Syntax Schemas (Informative)
+</h2>
+
+<p>This appendix contains XML schemas for validating RDF/XML forms.
+These are example schemas for information only and are not part of
+this specification.</p>
+
+
+<h3>
+<a id="section-RELAXNG-Schema" name="section-RELAXNG-Schema"></a>A.1
+RELAX&#160;NG Compact Schema (Informative)
+</h3>
+
+<p>This is an example schema in RELAX&#160;NG Compact (for ease of reading)
+for RDF/XML.   Applications can also use the
+
+<a href="rdfxml.rng">RELAX&#160;NG XML version</a>.
+These formats are described in
+<a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">RELAX&#160;NG</a> (<a href="#ref-relaxng">[RELAXNG]</a>)
+and <a href="http://www.thaiopensource.com/relaxng/compact/">RELAX&#160;NG
+Compact</a> (<a href="#ref-relaxng-nx">[RELAXNG-COMPACT]</a>).</p>
+
+<div class="note"><p><strong>Note:</strong>
+The RNGC schema has been updated to attempt to match the grammar but
+this has not been checked or used to validate RDF/XML.
+</p></div>
+
+<div class="exampleOuter">
+<div class="figure"><a href="rdfxml.rnc">RELAX NG Compact Schema for RDF/XML</a></div>
+
+<div class="exampleInner">
+<pre>
+#
+# RELAX NG Compact Schema for RDF/XML Syntax
+#
+# This schema is for information only and NON-NORMATIVE
+#
+# It is based on one originally written by James Clark in
+# http://lists.w3.org/Archives/Public/www-rdf-comments/2001JulSep/0248.html
+# and updated with later changes.
+#
+
+namespace local = ""
+namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
+
+
+start = doc
+
+
+# I cannot seem to do this in RNGC so they are expanded in-line
+
+# coreSyntaxTerms = rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatype
+# syntaxTerms = coreSyntaxTerms | rdf:Description | rdf:li
+# oldTerms    = rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID
+# nodeElementURIs       = * - ( coreSyntaxTerms | rdf:li | oldTerms )
+# propertyElementURIs   = * - ( coreSyntaxTerms | rdf:Description | oldTerms )
+# propertyAttributeURIs = * - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms )
+
+# Also needed to allow rdf:li on all property element productions
+# since we can't capture the rdf:li rewriting to rdf_&lt;n&gt; in relaxng
+
+# Need to add these explicitly
+xmllang = attribute xml:lang { text }
+xmlbase = attribute xml:base { text }
+# and to forbid every other xml:* attribute, element
+
+doc = 
+  RDF | nodeElement
+
+RDF =
+  element rdf:RDF { 
+     xmllang?, xmlbase?, nodeElementList
+}
+
+nodeElementList = 
+  nodeElement*
+
+  # Should be something like:
+  #  ws* , (  nodeElement , ws* )*
+  # but RELAXNG does this by default, ignoring whitespace separating tags.
+
+nodeElement =
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype | rdf:li |
+                rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID ) {
+      (idAttr | nodeIdAttr | aboutAttr )?, xmllang?, xmlbase?, propertyAttr*, propertyEltList
+  }
+
+  # It is not possible to say "and not things
+  # beginning with _ in the rdf: namespace" in RELAX NG.
+
+ws = 
+  " "
+
+  # Not used in this RELAX NG schema; but should be any legal XML
+  # whitespace defined by http://www.w3.org/TR/2000/REC-xml-20001006#NT-S
+
+
+propertyEltList = 
+  propertyElt*
+
+  # Should be something like:
+  #  ws* , ( propertyElt , ws* )*
+  # but RELAXNG does this by default, ignoring whitespace separating tags.
+
+propertyElt = 
+  resourcePropertyElt | 
+  literalPropertyElt | 
+  parseTypeLiteralPropertyElt |
+  parseTypeResourcePropertyElt |
+  parseTypeCollectionPropertyElt |
+  parseTypeOtherPropertyElt |
+  emptyPropertyElt
+
+resourcePropertyElt = 
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype |
+                rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                xml:* ) {
+      idAttr?, xmllang?, xmlbase?, nodeElement
+  }
+
+literalPropertyElt =
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype |
+                rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                xml:* ) {
+      (idAttr | datatypeAttr )?, xmllang?, xmlbase?, text 
+  }
+
+parseTypeLiteralPropertyElt = 
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype |
+                rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                xml:* ) {
+      idAttr?, parseLiteral, xmllang?, xmlbase?, literal 
+  }
+
+parseTypeResourcePropertyElt = 
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype |
+                rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                xml:* ) {
+      idAttr?, parseResource, xmllang?, xmlbase?, propertyEltList
+  }
+
+parseTypeCollectionPropertyElt = 
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype |
+                rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                xml:* ) {
+      idAttr?, xmllang?, xmlbase?, parseCollection, nodeElementList
+  }
+
+parseTypeOtherPropertyElt = 
+  element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                rdf:resource | rdf:nodeID | rdf:datatype |
+                rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                xml:* ) {
+      idAttr?, xmllang?, xmlbase?, parseOther, any
+  }
+
+emptyPropertyElt =
+   element * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                 rdf:resource | rdf:nodeID | rdf:datatype |
+                 rdf:Description | rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID |
+                 xml:* ) {
+       idAttr?, (resourceAttr | nodeIdAttr)?, xmllang?, xmlbase?, propertyAttr*
+   }
+
+idAttr = 
+  attribute rdf:ID { 
+      IDsymbol 
+  }
+
+nodeIdAttr = 
+  attribute rdf:nodeID { 
+      IDsymbol 
+  }
+
+aboutAttr = 
+  attribute rdf:about { 
+      URI-reference 
+  }
+
+propertyAttr = 
+  attribute * - ( local:* | rdf:RDF | rdf:ID | rdf:about | rdf:parseType |
+                  rdf:resource | rdf:nodeID | rdf:datatype | rdf:li |
+                  rdf:Description | rdf:aboutEach |
+		  rdf:aboutEachPrefix | rdf:bagID |
+                  xml:* ) {
+      string
+  }
+
+resourceAttr = 
+  attribute rdf:resource {
+      URI-reference 
+  }
+
+datatypeAttr = 
+  attribute rdf:datatype {
+      URI-reference 
+  }
+
+parseLiteral = 
+  attribute rdf:parseType {
+      "Literal" 
+  }
+
+parseResource = 
+  attribute rdf:parseType {
+      "Resource"
+  }
+
+parseCollection = 
+  attribute rdf:parseType {
+      "Collection"
+  }
+
+parseOther = 
+  attribute rdf:parseType {
+      text
+  }
+
+URI-reference = 
+  string
+
+literal =
+  any
+
+IDsymbol = 
+  xsd:NMTOKEN
+
+any =
+  mixed { element * { attribute * { text }*, any }* }
+
+
+</pre>
+</div>
+
+</div>
+
+
+<h2>
+<a id="changes" name="changes"></a>
+
+<a id="section-Changes" name="section-Changes">B Revisions since Draft 10 October 2003 (Informative)</a>
+</h2>
+
+<p>Changes since <a href="http://www.w3.org/TR/2003/WD-rdf-syntax-grammar-20031010/">10 October 2003</a> second last call working draft</p>
+
+<p>These are are divided into non-editorial and editorial. The
+non-editorial changes also list consquential editorial changes.
+Editorial changes are those which do not result in any change in the
+meaning of an RDF document or the behaviour of an RDF
+application.</p>
+
+<h3>
+<a id="section-Changes-non-editorial" name="section-Changes-non-editorial">Appendix B.1: Non-Editorial Revisions</a>
+</h3>
+
+<p>None</p>
+
+<h3>
+<a id="section-Changes-editorial" name="section-Changes-editorial">Appendix B.2: Editorial Revisions</a>
+</h3>
+
+
+<dl>
+<dt>German Translation</dt>
+
+<dd>
+Fix the German in <a href="#example8">Example 8</a>
+in section <a href="#section-Syntax-languages">2.7</a> after the
+<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003OctDec/0215.html">comment by Benjamin Nowack</a>
+</dd>
+
+<dt>No property attributes on rdf:parseType="Resource"</dt>
+<dd>
+<a href="#section-Syntax-property-attributes">2.5</a>
+
+Update to reflect the syntax definition that property attributes cannot
+be used with <code>rdf:parseType="Resource"</code> as pointed out by
+<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003OctDec/0074.html">comment by Sabadello 2003-10-30</a>
+</dd>
+
+<dt>URI Encoding</dt>
+<dd>
+<a href="#section-identifier-node">6.1.6</a>,
+<a href="#section-literal-node">6.1.8</a>,
+<a href="#section-typed-literal-node">6.1.9</a>
+
+after <a href="http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2003Nov/0006.html">proposal by Jeremy Carroll</a><br />
+<a href="#section-element-node">6.1.2</a>,
+<a href="#section-attribute-node">6.1.4</a>
+Added element/attribute URI-string-value accessors<br />
+<a href="#nodeElement">7.2.11</a>,
+<a href="#emptyPropertyElt">7.2.21</a>
+Added use of new uri event for the <code>rdf:type</code> cases<br />
+
+<a href="#nodeElement">7.2.11</a> (&lt;e.URI&gt; and &lt;a.URI&gt;),
+<a href="#resourcePropertyElt">7.2.15</a> (&lt;e.URI&gt;)
+<a href="#literalPropertyElt">7.2.16</a> (&lt;e.URI&gt;)
+
+<a href="#parseTypeLiteralPropertyElt">7.2.17</a> (&lt;e.URI&gt;)
+<a href="#parseTypeResourcePropertyElt">7.2.18</a> (&lt;e.URI&gt;)
+<a href="#parseTypeCollectionPropertyElt">7.2.19</a> (&lt;e.URI&gt; twice)
+<a href="#emptyPropertyElt">7.2.21</a> (&lt;e.URI&gt; twice, &lt;a.URI&gt; once)
+changed from X.URI to X.URI-string-value (anywhere "&lt;".."&gt;" appeared
+in the grammar action without a hardcoded URI reference)<br />
+
+<a href="#URI-reference">7.2.32</a>
+Replace action wording with "An RDF URI reference"<br/>
+All changed as outlined in
+<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003OctDec/0100.html">proposal 2003-10-06</a>
+after
+<a href="http://lists.w3.org/Archives/Public/www-rdf-comments/2003OctDec/0068.html">comment by Patel-Schneider 2003-10-29</a>
+</dd>
+</dl>
+
+
+<h3>
+<a id="section-Changes-none" name="section-Changes-none">Appendix B.3: Issues requiring no document revisions</a>
+
+</h3>
+
+<p>None</p>
+
+
+<p><!-- Deleted -->
+<a id="section-Changes2" name="section-Changes2"></a>
+<a id="section-Changes2-non-editorial" name="section-Changes2-non-editorial"></a>
+<a id="section-Changes2-editorial" name="section-Changes2-editorial"></a>
+</p>
+
+
+<hr />
+
+<div class="metadata">
+  <p><a href="metadata.rdf"><img src="http://www.w3.org/RDF/icons/rdf_metadata_button.40" alt="RDF/XML Metadata" /></a></p>
+
+</div>
+
+
+
 <section id="section-Acknowledgments" class="informative">
     <h2>Acknowledgments</h2>