[html5] r4066 - [] (0) Update microdata based on results of usability study

whatwg at whatwg.org whatwg at whatwg.org
Fri Oct 2 14:44:26 PDT 2009


Author: ianh
Date: 2009-10-02 14:44:25 -0700 (Fri, 02 Oct 2009)
New Revision: 4066

Modified:
   index
   source
Log:
[] (0) Update microdata based on results of usability study

Modified: index
===================================================================
--- index	2009-09-30 10:15:49 UTC (rev 4065)
+++ index	2009-10-02 21:44:25 UTC (rev 4066)
@@ -112,7 +112,7 @@
   <div class=head>
    <p><a class=logo href=http://www.whatwg.org/ rel=home><img alt=WHATWG src=/images/logo></a></p>
    <h1>HTML5</h1>
-   <h2 class="no-num no-toc" id=draft-standard-—-30-september-2009>Draft Standard — 30 September 2009</h2>
+   <h2 class="no-num no-toc" id=draft-standard-—-2-october-2009>Draft Standard — 2 October 2009</h2>
    <p>You can take part in this work. <a href=http://www.whatwg.org/mailing-list>Join the working group's discussion list.</a></p>
    <p><strong>Web designers!</strong> We have a <a href=http://blog.whatwg.org/faq/>FAQ</a>, a <a href=http://forums.whatwg.org/>forum</a>, and a <a href=http://www.whatwg.org/mailing-list#help>help mailing list</a> for you!</p>
    <!--<p class="impl"><strong>Implementors!</strong> We have a <a href="http://www.whatwg.org/mailing-list#implementors">mailing list</a> for you too!</p>-->
@@ -345,8 +345,9 @@
        <li><a href=#pragma-directives><span class=secno>4.2.5.3 </span>Pragma directives</a></li>
        <li><a href=#other-pragma-directives><span class=secno>4.2.5.4 </span>Other pragma directives</a></li>
        <li><a href=#charset><span class=secno>4.2.5.5 </span>Specifying the document's character encoding</a></ol></li>
-     <li><a href=#the-style-element><span class=secno>4.2.6 </span>The <code>style</code> element</a></li>
-     <li><a href=#styling><span class=secno>4.2.7 </span>Styling</a></ol></li>
+     <li><a href=#itemref><span class=secno>4.2.6 </span>The <code>itemref</code> element</a></li>
+     <li><a href=#the-style-element><span class=secno>4.2.7 </span>The <code>style</code> element</a></li>
+     <li><a href=#styling><span class=secno>4.2.8 </span>Styling</a></ol></li>
    <li><a href=#scripting-1><span class=secno>4.3 </span>Scripting</a>
     <ol>
      <li><a href=#script><span class=secno>4.3.1 </span>The <code>script</code> element</a>
@@ -623,36 +624,22 @@
      <li><a href=#overview><span class=secno>5.1.1 </span>Overview</a></li>
      <li><a href=#the-basic-syntax><span class=secno>5.1.2 </span>The basic syntax</a></li>
      <li><a href=#typed-items><span class=secno>5.1.3 </span>Typed items</a></li>
-     <li><a href=#selecting-names-when-defining-vocabularies><span class=secno>5.1.4 </span>Selecting names when defining vocabularies</a></li>
-     <li><a href=#predefined-vocabularies><span class=secno>5.1.5 </span>Predefined vocabularies</a></li>
+     <li><a href=#global-identifiers-for-items><span class=secno>5.1.4 </span>Global identifiers for items</a></li>
+     <li><a href=#selecting-names-when-defining-vocabularies><span class=secno>5.1.5 </span>Selecting names when defining vocabularies</a></li>
      <li><a href=#using-the-microdata-dom-api><span class=secno>5.1.6 </span>Using the microdata DOM API</a></ol></li>
    <li><a href=#encoding-microdata><span class=secno>5.2 </span>Encoding microdata</a>
     <ol>
      <li><a href=#the-microdata-model><span class=secno>5.2.1 </span>The microdata model</a></li>
-     <li><a href=#items:-the-item-attribute><span class=secno>5.2.2 </span>Items: the <code>item</code> attribute</a></li>
-     <li><a href=#associating-names-with-items><span class=secno>5.2.3 </span>Associating names with items</a></li>
-     <li><a href=#names:-the-itemprop-attribute><span class=secno>5.2.4 </span>Names: the <code>itemprop</code> attribute</a></li>
-     <li><a href=#values><span class=secno>5.2.5 </span>Values</a></ol></li>
+     <li><a href=#items><span class=secno>5.2.2 </span>Items</a></li>
+     <li><a href=#names:-the-itemprop-attribute><span class=secno>5.2.3 </span>Names: the <code>itemprop</code> attribute</a></li>
+     <li><a href=#values><span class=secno>5.2.4 </span>Values</a></li>
+     <li><a href=#associating-names-with-items><span class=secno>5.2.5 </span>Associating names with items</a></ol></li>
    <li><a href=#microdata-dom-api><span class=secno>5.3 </span>Microdata DOM API</a></li>
-   <li><a href=#predefined-vocabularies-0><span class=secno>5.4 </span>Predefined vocabularies</a>
+   <li><a href=#converting-html-to-other-formats><span class=secno>5.4 </span>Converting HTML to other formats</a>
     <ol>
-     <li><a href=#general><span class=secno>5.4.1 </span>General</a></li>
-     <li><a href=#vcard><span class=secno>5.4.2 </span>vCard</a>
-      <ol>
-       <li><a href=#examples-1><span class=secno>5.4.2.1 </span>Examples</a></ol></li>
-     <li><a href=#vevent><span class=secno>5.4.3 </span>vEvent</a>
-      <ol>
-       <li><a href=#examples-2><span class=secno>5.4.3.1 </span>Examples</a></ol></li>
-     <li><a href=#licensing-works><span class=secno>5.4.4 </span>Licensing works</a>
-      <ol>
-       <li><a href=#examples-3><span class=secno>5.4.4.1 </span>Examples</a></ol></ol></li>
-   <li><a href=#converting-html-to-other-formats><span class=secno>5.5 </span>Converting HTML to other formats</a>
-    <ol>
-     <li><a href=#json><span class=secno>5.5.1 </span>JSON</a></li>
-     <li><a href=#rdf><span class=secno>5.5.2 </span>RDF</a></li>
-     <li><a href=#vcard-0><span class=secno>5.5.3 </span>vCard</a></li>
-     <li><a href=#icalendar><span class=secno>5.5.4 </span>iCalendar</a></li>
-     <li><a href=#atom><span class=secno>5.5.5 </span>Atom</a></ol></ol></li>
+     <li><a href=#json><span class=secno>5.4.1 </span>JSON</a></li>
+     <li><a href=#rdf><span class=secno>5.4.2 </span>RDF</a></li>
+     <li><a href=#atom><span class=secno>5.4.3 </span>Atom</a></ol></ol></li>
  <li><a href=#browsers><span class=secno>6 </span>Web browsers</a>
   <ol>
    <li><a href=#windows><span class=secno>6.1 </span>Browsing contexts</a>
@@ -6053,7 +6040,7 @@
   <p>The <dfn id=dom-htmlpropertycollection-nameditem title=dom-HTMLPropertyCollection-namedItem><code>namedItem(<var title="">name</var>)</code></dfn> method must return a
   <code><a href=#propertynodelist>PropertyNodeList</a></code> object representing a live view of the
   <code><a href=#htmlpropertycollection>HTMLPropertyCollection</a></code> object, further filtered so that
-  the only nodes in the <code><a href=#radionodelist>RadioNodeList</a></code> object are those
+  the only nodes in the <code><a href=#propertynodelist>PropertyNodeList</a></code> object are those
   that have a <a href=#property-names title="property names">property name</a> equal
   to <var title="">name</var>. The nodes in the
   <code><a href=#propertynodelist>PropertyNodeList</a></code> object must be sorted in <a href=#tree-order>tree
@@ -7530,11 +7517,12 @@
   readonly attribute <a href=#domstringmap>DOMStringMap</a> <a href=#dom-dataset title=dom-dataset>dataset</a>;
 
   // <a href=#microdata>microdata</a>
-           attribute DOMString <a href=#dom-item title=dom-item>item</a>;
+           attribute boolean <a href=#dom-itemscope title=dom-itemscope>itemscope</a>;
+           attribute DOMString <a href=#dom-itemtype title=dom-itemtype>itemtype</a>;
+           attribute DOMString <a href=#dom-itemid title=dom-itemid>itemid</a>;
   [PutForwards=<a href=#dom-domsettabletokenlist-value title=dom-DOMSettableTokenList-value>value</a>] readonly attribute <a href=#domsettabletokenlist>DOMSettableTokenList</a> <a href=#dom-itemprop title=dom-itemprop>itemprop</a>;
   readonly attribute <a href=#htmlpropertycollection>HTMLPropertyCollection</a> <a href=#dom-properties title=dom-properties>properties</a>;
            attribute DOMString <a href=#dom-content title=dom-content>content</a>;
-           attribute <a href=#htmlelement>HTMLElement</a> <a href=#dom-subject title=dom-subject>subject</a>;
 
   // <a href=#editing>user interaction</a>
            attribute boolean <a href=#dom-hidden title=dom-hidden>hidden</a>;
@@ -7651,9 +7639,10 @@
    <li><code title=attr-draggable><a href=#the-draggable-attribute>draggable</a></code></li>
    <li><code title=attr-hidden><a href=#the-hidden-attribute>hidden</a></code></li>
    <li><code title=attr-id><a href=#the-id-attribute>id</a></code></li>
-   <li><code title=attr-item><a href=#items:-the-item-attribute>item</a></code></li>
-   <li><code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code></li>
+   <li><code title=attr-itemid><a href=#attr-itemid>itemid</a></code></li>
    <li><code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code></li>
+   <li><code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code></li>
+   <li><code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code></li>
    <li><code title=attr-lang><a href=#attr-lang>lang</a></code></li>
    <li><code title=attr-spellcheck><a href=#attr-spellcheck>spellcheck</a></code></li>
    <li><code title=attr-style><a href=#the-style-attribute>style</a></code></li>
@@ -10850,6 +10839,7 @@
    <dd>If the <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute is present but not in the <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration state</a>: in a <code><a href=#the-head-element-0>head</a></code> element.</dd>
    <dd>If the <code title=attr-meta-http-equiv><a href=#attr-meta-http-equiv>http-equiv</a></code> attribute is present but not in the <a href=#attr-meta-http-equiv-content-type title=attr-meta-http-equiv-content-type>Encoding declaration state</a>: in a <code><a href=#the-noscript-element>noscript</a></code> element that is a child of a <code><a href=#the-head-element-0>head</a></code> element.</dd>
    <dd>If the <code title=attr-meta-name><a href=#attr-meta-name>name</a></code> attribute is present: where <a href=#metadata-content>metadata content</a> is expected.</dd>
+   <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: where <a href=#metadata-content>metadata content</a> is expected.</dd>
    <dd>If the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is present: where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
    <dt>Content model:</dt>
    <dd>Empty.</dd>
@@ -11609,9 +11599,50 @@
 
 
 
+  <h4 id=itemref><span class=secno>4.2.6 </span>The <dfn><code>itemref</code></dfn> element</h4>
 
-  <h4 id=the-style-element><span class=secno>4.2.6 </span>The <dfn><code>style</code></dfn> element</h4>
+  <dl class=element><dt>Categories</dt>
+   <dd><a href=#metadata-content>Metadata content</a>.</dd>
+   <dd><a href=#flow-content>Flow content</a>.</dd>
+   <dd><a href=#phrasing-content>Phrasing content</a>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>Where <a href=#metadata-content>metadata content</a> is expected.</dd>
+   <dd>Where <a href=#phrasing-content>phrasing content</a> is expected.</dd>
+   <dt>Content model:</dt>
+   <dd>Empty.</dd>
+   <dt>Content attributes:</dt>
+   <dd><a href=#global-attributes>Global attributes</a></dd>
+   <dd><code title=attr-itemref-refid><a href=#attr-itemref-refid>refid</a></code></dd>
+   <dt>DOM interface:</dt>
+   <dd>
+<pre class=idl>interface <dfn id=htmlitemrefelement>HTMLItemRefElement</dfn> : <a href=#htmlelement>HTMLElement</a> {
+           attribute DOMString <a href=#dom-itemref-refid title=dom-itemref-refid>refid</a>;
+};</pre>
+   </dd>
+  </dl><p>The <code><a href=#itemref>itemref</a></code> element is used to include by reference
+  properties defined (using <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code>) by elements that are not
+  descendants of the <code><a href=#itemref>itemref</a></code> element's nearest ancestor
+  with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute.</p>
 
+  <p>The <dfn id=attr-itemref-refid title=attr-itemref-refid><code>refid</code></dfn>
+  attribute is required, and its value must be the ID of an element in
+  the same <code>Document</code> as the <code><a href=#itemref>itemref</a></code>
+  element.</p>
+
+  <p class=note>This element is described in more detail as part of
+  the <a href=#microdata>microdata</a> model.</p>
+
+  <div class=impl>
+
+  <p>The <dfn id=dom-itemref-refid title=dom-itemref-refid><code>refid</code></dfn> IDL
+  attribute must <a href=#reflect>reflect</a> the content attribute of the
+  same name.</p>
+
+  </div>
+
+
+  <h4 id=the-style-element><span class=secno>4.2.7 </span>The <dfn><code>style</code></dfn> element</h4>
+
   <dl class=element><dt>Categories</dt>
    <dd><a href=#metadata-content>Metadata content</a>.</dd>
    <dd>If the <code title=attr-style-scoped><a href=#attr-style-scoped>scoped</a></code> attribute is present: <a href=#flow-content>flow content</a>.</dd>
@@ -11797,7 +11828,7 @@
 
 
 
-  <h4 id=styling><span class=secno>4.2.7 </span><dfn title="styling processing model">Styling</dfn></h4>
+  <h4 id=styling><span class=secno>4.2.8 </span><dfn title="styling processing model">Styling</dfn></h4>
 
   <p>The <code><a href=#the-link-element>link</a></code> and <code><a href=#the-style-element>style</a></code> elements can provide
   styling information for the user agent to use when rendering the
@@ -43780,8 +43811,9 @@
 
 <!-- v2
 
-  * <ref property="foo" content="id"> to import the item with id="id"
-    into the current microdata block
+  * <itemref itemprop="foo" src="url#id"> to import the item with
+    id="id" from url into the current microdata block as the value of
+    property foo?
 
   * splitting the 'content' part of a property into multiple sub-bits,
     as in:
@@ -43820,6 +43852,7 @@
 
 
 
+
   <h4 id=the-basic-syntax><span class=secno>5.1.2 </span>The basic syntax</h4>
 
   <p><i>This section is non-normative.</i></p>
@@ -43829,8 +43862,7 @@
   property. Items and properties are represented by regular
   elements.</p>
 
-  <p>To create an item, the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code>
-  attribute is used.</p>
+  <p>To create an item, the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute is used.</p>
 
   <p>To add a property to an item, the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute is used on one of
   the <a href=#concept-item title=concept-item>item's</a> descendants.</p>
@@ -43839,11 +43871,11 @@
 
    <p>Here there are two items, each of which has the property "name":</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>My name is <span itemprop="name">Elizabeth</span>.</p>
 </div>
 
-<div item>
+<div itemscope>
  <p>My name is <span itemprop="name">Daniel</span>.</p>
 </div></pre>
 
@@ -43855,7 +43887,7 @@
 
    <p>Here the item has three properties:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>My name is <span itemprop="name">Neil</span>.</p>
  <p>My band is called <span itemprop="band">Four Parts Water</span>.</p>
  <p>I am <span itemprop="nationality">British</span>.</p>
@@ -43870,9 +43902,10 @@
 
   <div class=example>
 
-   <p>In this example, the item has one property, "image", whose value is a URL:</p>
+   <p>In this example, the item has one property, "image", whose value
+   is a URL:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <img itemprop="image" src="google-logo.png" alt="Google">
 </div></pre>
 
@@ -43887,15 +43920,15 @@
    <p>In this example, the item has one property,
    "birthday", whose value is a date:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  I was born on <time itemprop="birthday" datetime="2009-05-10">May 10th 2009</time>.
 </div></pre>
 
   </div>
 
   <p>Properties can also themselves be groups of name-value pairs, by
-  putting the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute on the
-  element that declares the property.</p>
+  putting the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute
+  on the element that declares the property.</p>
 
   <p>Items that are not part of others are called <a href=#top-level-microdata-items>top-level
   microdata items</a>.</p>
@@ -43905,9 +43938,9 @@
    <p>In this example, the outer item represents a person, and the
    inner one represents a band:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>Name: <span itemprop="name">Amanda</span></p>
- <p>Band: <span itemprop="band" item> <span itemprop="name">Jazz Band</span> (<span itemprop="size">12</span> players)</span></p>
+ <p>Band: <span itemprop="band" itemscope> <span itemprop="name">Jazz Band</span> (<span itemprop="size">12</span> players)</span></p>
 </div></pre>
 
    <p>The outer item here has two properties, "name" and
@@ -43922,22 +43955,24 @@
 
   </div>
 
-  <p>Properties don't have to be given as descendants of the element
-  with the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute. They can be
-  associated with a specific <a href=#concept-item title=concept-item>item</a>
-  using the <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code> attribute, which
-  takes the ID of the element with the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute.</p>
+  <p>Properties that are not descendants of the element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute can be associated
+  with the <a href=#concept-item title=concept-item>item</a> using the
+  <code><a href=#itemref>itemref</a></code> element, whose <code title=attr-itemref-refid><a href=#attr-itemref-refid>refid</a></code> attribute takes the ID of an
+  element with the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code>
+  attribute or an ancestor of such an element.</p>
 
   <div class=example>
 
    <p>This example is the same as the previous one, but all the
    properties are separated from their <a href=#concept-item title=concept-item>items</a>:</p>
 
-   <pre><div item id="amanda"></div>
-<p>Name: <span itemfor="amanda" itemprop="name">Amanda</span></p>
-<div itemfor="amanda" itemprop="band" item id="jazzband"></div>
-<p>Band: <span itemfor="jazzband" itemprop="name">Jazz Band</span></p>
-<p>Size: <span itemfor="jazzband" itemprop="size">12</span> players</p></pre>
+   <pre><div itemscope id="amanda"><itemref refid="a"><itemref refid="b"></div>
+<p id="a">Name: <span itemprop="name">Amanda</span></p>
+<div id="b" itemprop="band" itemscope id="jazzband"><itemref refid="c"></div>
+<div id="c">
+ <p>Band: <span itemprop="name">Jazz Band</span></p>
+ <p>Size: <span itemprop="size">12</span> players</p>
+</div></pre>
 
    <p>This gives the same result as the previous example. The first
    item has two properties, "name", set to "Amanda", and "band", set
@@ -43953,7 +43988,7 @@
 
    <p>This example describes an ice cream, with two flavors:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>Flavors in my favorite ice cream:</p>
  <ul>
   <li itemprop="flavor">Lemon sorbet</li>
@@ -43977,7 +44012,7 @@
    "favorite-color" and "favorite-fruit", both
    set to the value "orange":</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <span itemprop="favorite-color favorite-fruit">orange</span>
 </div></pre>
 
@@ -43994,10 +44029,10 @@
 
    <pre><figure>
  <dd><img src="castle.jpeg">
- <dt><span item><span itemprop="name">The Castle</span></span> (1986)
+ <dt><span itemscope><span itemprop="name">The Castle</span></span> (1986)
 </figure></pre>
 
-   <pre><span item><meta itemprop="name" content="The Castle"></span>
+   <pre><span itemscope><meta itemprop="name" content="The Castle"></span>
 <figure>
  <dd><img src="castle.jpeg">
  <dt>The Castle (1986)
@@ -44026,28 +44061,25 @@
 
   <p>For this purpose, it is necessary to give each <a href=#concept-item title=concept-item>item</a> a type, such as
   "com.example.person", or "org.example.cat", or
-  "net.example.band". Types are identified in three ways:</p>
+  "net.example.band". Types are identified in two ways:</p>
 
   <ul class=brief><li>As <a href=#url title=URL>URLs</a>.
 
    <li>As <a href=#valid-reversed-dns-identifier title="valid reversed DNS identifier">reversed DNS
    labels</a>.
 
-   <li>Using the names of <a href=#predefined-type title="predefined type">predefined
-   types</a>, which are described below.
-
   </ul><p><a href=#url title=URL>URLs</a> are self-explanatory. <a href=#valid-reversed-dns-identifier title="valid reversed DNS identifier">Reversed DNS labels</a> are
   strings such as "org.example.animals.cat" or "com.example.band".</p>
 
   <p>The type for an <a href=#concept-item title=concept-item>item</a> is given
-  as the value of the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code>
-  attribute.</p>
+  as the value of an <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code>
+  attribute on the same element as the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute.</p>
 
   <div class=example>
 
    <p>Here, the item is "org.example.animals.cat":</p>
 
-<pre><section item="org.example.animal.cat">
+<pre><section itemscope itemtype="org.example.animal.cat">
  <h1 itemprop="name">Hedral</h1>
  <p itemprop="desc">Hedral is a male american domestic
  shorthair, with a fluffy black fur with white paws and belly.</p>
@@ -44061,18 +44093,72 @@
   </div>
 
   <p>An item can only have one type. The type gives the context for
-  the properties: a property named "class" given for an item with the
-  type "com.example.census.person" might refer to the class of an
-  individual, while a property named "class" given for an item with
-  the type "com.example.school.teacher" might refer to the classroom a
-  teacher has been assigned.</p>
-  
+  the properties, thus defining a vocabulary: a property named "class"
+  given for an item with the type "com.example.census.person" might
+  refer to the economic class of an individual, while a property named
+  "class" given for an item with the type "com.example.school.teacher"
+  might refer to the classroom a teacher has been assigned.</p>
 
 
-  <h4 id=selecting-names-when-defining-vocabularies><span class=secno>5.1.4 </span>Selecting names when defining vocabularies</h4>
+  <h4 id=global-identifiers-for-items><span class=secno>5.1.4 </span>Global identifiers for items</h4>
 
   <p><i>This section is non-normative.</i></p>
 
+  <p>Sometimes, an <a href=#concept-item title=concept-item>item</a> gives
+  information about a topic that has a global identifier. For example,
+  books can be identified by their ISBN number.</p>
+
+  <p>Vocabularies (as identified by the <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute) can be designed
+  such that <a href=#concept-item title=concept-item>items</a> get associated
+  with their global identifier in an unambiguous way by expressing the
+  global identifiers as <a href=#url title=URL>URLs</a> given in an
+  <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute.</p>
+
+  <p>The exact meaning of the <a href=#url title=URL>URLs</a> given in
+  <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attributes depends on the
+  vocabulary used.</p>
+
+  <div class=example>
+
+   <p>Here, an item is talking about a particular book:</p>
+
+<pre><dl itemscope
+    itemtype="http://vocab.example.net/book"
+    <strong>itemid="urn:isbn:0-330-34032-8"</strong>>
+ <dt>Title
+ <dd itemprop="title">The Reality Dysfunction
+ <dt>Author
+ <dd itemprop="author">Peter F. Hamilton
+ <dt>Publication date
+ <dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time>
+</dl></pre>
+
+   <p>The "<code title="">http://vocab.example.net/book</code>"
+   vocabulary in this example would define that the <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute takes a <code title="">urn:</code> <a href=#url>URL</a> pointing to the ISBN of the
+   book.</p>
+
+  </div>
+
+  <!-- (commented out since itemtype="" defines the meaning of the
+        identifier for now)
+  <p>Although it is common practice, authors are encouraged not to use
+  the same URL to identify multiple topics; in particular, an HTTP URL
+  usually identifies a specific resource (such as an image or
+  document), and authors are encouraged to not use them to identify
+  people, non-Web resources like companies, movies, and products, or
+  other abstract concepts. Using an HTTP URL as a global identifier
+  for something other than the resource actually designated by the URL
+  leads to a situation where it is ambiguous whether the identifier,
+  and thus the set of properties specified in the microdata,
+  references the page or something else.</p>
+  -->
+
+
+
+  <h4 id=selecting-names-when-defining-vocabularies><span class=secno>5.1.5 </span>Selecting names when defining vocabularies</h4>
+
+  <p><i>This section is non-normative.</i></p>
+
   <p>Using microdata means using a vocabulary. For some purposes, an
   ad-hoc vocabulary is adequate. For others, a vocabulary will need to
   be designed. Where possible, authors are encouraged to re-use
@@ -44115,7 +44201,7 @@
    type. There are also a few additional properties whose names come
    from other vocabularies.</p>
 
-<pre><section item="org.example.animal.cat">
+<pre><section itemscope itemtype="org.example.animal.cat">
  <h1 itemprop="name com.example.fn">Hedral</h1>
  <p itemprop="desc">Hedral is a male american domestic
  shorthair, with a fluffy <span
@@ -44144,35 +44230,7 @@
    </table></div>
 
 
-  <h4 id=predefined-vocabularies><span class=secno>5.1.5 </span>Predefined vocabularies</h4>
 
-  <p><i>This section is non-normative.</i></p>
-
-  <p>To make the most common tasks simpler, certain vocabularies have
-  been predefined. These use short names for types and properties.</p>
-
-  <div class=example>
-
-   <p>For example, the <a href=#md-vcard title=md-vcard>vCard</a> vocabulary
-   can be used to mark up people's names:</p>
-
-   <pre><span item=vcard><span itemprop=fn>George Washington</span></span></pre>
-
-   <p>This creates a single item with a single name-value pair, with
-   the name "fn" and the value "George Washington". This is defined to
-   map to the following vCard:</p>
-
-   <pre>BEGIN:VCARD
-PROFILE:VCARD
-VERSION:3.0
-SOURCE:<var title="">document's address</var>
-FN:George Washington
-N:Washington;George;;;
-END:VCARD</pre>
-
-  </div>
-
-
   <h4 id=using-the-microdata-dom-api><span class=secno>5.1.6 </span>Using the microdata DOM API</h4>
 
   <p><i>This section is non-normative.</i></p>
@@ -44187,9 +44245,15 @@
   or all types if no argument is specified.</p>
 
   <p>Each <a href=#concept-item title=concept-item>item</a> is represented in the
-  DOM by the element on which the relevant <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute is found. The type of that
-  element can be obtained using the <code title=dom-item><a href=#dom-item>element.item</a></code> IDL attribute.</p>
+  DOM by the element on which the relevant <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute is found. These
+  elements have their <code title=dom-itemscope><a href=#dom-itemscope>element.itemscope</a></code> IDL attribute set to
+  true.</p>
 
+  <p>The type of <a href=#concept-item title=concept-item>items</a> can be
+  obtained using the <code title=dom-itemtype><a href=#dom-itemtype>element.itemtype</a></code> IDL attribute on the
+  element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+  attribute.</p>
+
   <div class=example>
 
    <p>This sample shows how the <code title=dom-document-getItems><a href=#dom-document-getitems>getItems()</a></code> method can be used
@@ -44276,7 +44340,7 @@
 
    <p>If faced with the following from an earlier example:</p>
 
-   <pre><section item="org.example.animal.cat">
+   <pre><section itemscope item="org.example.animal.cat">
  <h1 itemprop="name com.example.fn">Hedral</h1>
  <p itemprop="desc">Hedral is a male american domestic
  shorthair, with a fluffy <span
@@ -44306,91 +44370,97 @@
   <h4 id=the-microdata-model><span class=secno>5.2.1 </span>The microdata model</h4>
 
   <p>The microdata model consists of groups of name-value pairs known
-  as <dfn id=concept-item title=concept-item>items</dfn>.</p>
+  as <a href=#concept-item title=concept-item>items</a>.</p>
 
-  <p>Each group has zero or more types, each name has one or more
-  values, and each value is either a string or another group of
-  name-value pairs.</p>
+  <p>Each group is known as an <a href=#concept-item title=concept-item>item</a>. Each <a href=#concept-item title=concept-item>item</a> can have an <a href=#item-type>item type</a>,
+  a <a href=#global-identifier>global identifier</a> (if the <a href=#item-type>item type</a>
+  <a href=#support-global-identifiers-for-items title="support global identifiers for items">supports global
+  identifiers for its items</a>), and a list of name-value
+  pairs. Each name in the name-value pair is known as a <a href=#the-properties-of-an-item title="the properties of an item">property</a>, and each <a href=#the-properties-of-an-item title="the properties of an item">property</a> has one or more
+  <a href=#concept-property-value title=concept-property-value>values</a>. Each <a href=#concept-property-value title=concept-property-value>value</a> is either a string or itself a group of
+  name-value pairs (an <a href=#concept-item title=concept-item>item</a>).</p>
 
+  <p>An <a href=#concept-item title=concept-item>item</a> is said to be a
+  <dfn id=typed-item>typed item</dfn> when either it has an <a href=#item-type>item type</a>,
+  or it is the <a href=#concept-property-value title=concept-property-value>value</a> of a <a href=#the-properties-of-an-item title="the properties of an
+  item">property</a> of a <a href=#typed-item>typed item</a>. The
+  <dfn id=relevant-type>relevant type</dfn> for a <a href=#typed-item>typed item</a> is the <a href=#concept-item title=concept-item>item</a>'s <a href=#item-type>item type</a>, if it has
+  one, or else is the <a href=#relevant-type>relevant type</a> of the <a href=#concept-item title=concept-item>item</a> for which it is a <a href=#the-properties-of-an-item title="the
+  properties of an item">property</a>'s <a href=#concept-property-value title=concept-property-value>value</a>.</p>
 
-  <h4 id=items:-the-item-attribute><span class=secno>5.2.2 </span>Items: the <dfn title=attr-item><code>item</code></dfn> attribute</h4>
 
-  <p>Every <a href=#html-elements title="HTML elements">HTML element</a> may have an
-  <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute specified.</p>
 
-  <p>An element with the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute
-  specified creates a new <a href=#concept-item title=concept-item>item</a>, a
-  group of name-value pairs.</p>
+  <h4 id=items><span class=secno>5.2.2 </span>Items</h4>
 
-  <p>The attribute, if specified, must have a value that is either:</p>
+  <p>Every <a href=#html-elements title="HTML elements">HTML element</a> except the
+  <code><a href=#itemref>itemref</a></code> element may have an <dfn id=attr-itemscope title=attr-itemscope><code>itemscope</code></dfn> attribute
+  specified. The <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+  attribute is a <a href=#boolean-attribute>boolean attribute</a>.</p>
 
-  <ul><li>The empty string, or</li>
+  <p>An element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+  attribute specified, and that is not an <code><a href=#itemref>itemref</a></code>
+  element, creates a new <dfn id=concept-item title=concept-item>item</dfn>, a group
+  of name-value pairs.</p>
 
-   <li>A <a href=#valid-url>valid URL</a> that is an <a href=#absolute-url>absolute URL</a>
-   for which the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" is not a
-   <a href=#prefix-match>prefix match</a>, or</li>
+  <p>The <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute must
+  not be specified on <code><a href=#itemref>itemref</a></code> elements.</p>
 
-   <li>A <a href=#valid-reversed-dns-identifier>valid reversed DNS identifier</a>, or</li>
+  <hr><p>Elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+  attribute may have an <dfn id=attr-itemtype title=attr-itemtype><code>itemtype</code></dfn> attribute
+  specified, to give the <a href=#item-type>item type</a> of the <a href=#concept-item title=concept-item>item</a>.</p>
 
-   <li>A <a href=#predefined-type>predefined type</a>.</li>
+  <p>The <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute, if
+  specified, must have a value that is either:</p>
 
-  </ul><p>The <dfn id=item-type>item type</dfn> of an element with an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute is the value of the
-  element's <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute. If the
-  attribute's value is the empty string, the element is said to have
-  no <a href=#item-type>item type</a>.</p>
+  <ul><li>A <a href=#valid-url>valid URL</a> that is an <a href=#absolute-url>absolute URL</a>
+   for which the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" is not a
+   <a href=#prefix-match>prefix match</a>, or</li>
 
+   <li>A <a href=#valid-reversed-dns-identifier>valid reversed DNS identifier</a>.</li>
 
-  <h4 id=associating-names-with-items><span class=secno>5.2.3 </span>Associating names with items</h4>
+  </ul><p>The <dfn id=item-type>item type</dfn> of an <a href=#concept-item title=concept-item>item</a> is the value of its element's <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute, if it has one and
+  its value is not the empty string. If the <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute is missing or its
+  value is the empty string, the <a href=#concept-item title=concept-item>item</a> is said to have no <a href=#item-type>item
+  type</a>.</p>
 
-  <p>The <dfn id=attr-itemfor title=attr-itemfor><code>itemfor</code></dfn>
-  attribute may be specified on any <a href=#html-elements title="HTML elements">HTML
-  element</a> to associate the element with an element with an
-  <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute. If the <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code> attribute is specified, the
-  attribute's value must be the ID of an element with an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute, in the same
-  <code>Document</code> as the element with the <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code> attribute.</p>
+  <p>The <a href=#item-type>item type</a> must be a type defined in an <a href=#other-applicable-specifications title="other applicable specifications">applicable
+  specification</a>.</p>
 
-  <p>An element's <dfn id=concept-item-corresponding title=concept-item-corresponding>corresponding item</dfn> is
-  determined by its position in the DOM and by any <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code> attributes on the element, and
-  is defined as follows:</p>
+  <p>The <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute must
+  not be specified on elements that do not have an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute specified.</p>
 
-  <dl><dt>If the element has a <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code>
-   attribute</dt>
+  <hr><p>Elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+  attribute and an <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code>
+  attribute that references a vocabulary that is defined to
+  <dfn id=support-global-identifiers-for-items>support global identifiers for items</dfn> may also have an
+  <dfn id=attr-itemid title=attr-itemid><code>itemid</code></dfn> attribute
+  specified, to give a global identifier for the <a href=#concept-item title=concept-item>item</a>, so that it can be related to other
+  <a href=#concept-item title=concept-item>items</a> on pages elsewhere on the
+  Web.</p>
 
-   <dd><p>If there is an element in the document with an ID equal to
-   the value of the <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code>
-   attribute, and if the first such element has an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute specified, then that
-   element is the <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-   item</a>. Otherwise, there is no <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-   item</a>.</dd>
+  <p>The <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute, if
+  specified, must have a value that is a <a href=#valid-url>valid URL</a> that
+  is an <a href=#absolute-url>absolute URL</a>.</p>
 
-   <dt>If the element has no <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code>
-   attribute but does have an ancestor with an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute specified</dt>
+  <p>The <dfn id=global-identifier>global identifier</dfn> of an <a href=#concept-item title=concept-item>item</a> is the value of its element's <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute, if it has one. If the
+  <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute is missing or its
+  value is the empty string, it is said to have no <a href=#global-identifier>global
+  identifier</a>.</p>
 
-   <dd><p>The nearest ancestor element with the <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute specified is the element's
-   <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-   item</a>.</dd>
+  <p>The <code title=attr-itemid><a href=#attr-itemid>itemid</a></code> attribute must not be
+  specified on elements that do not have both an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute and an <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute specified, and must
+  not be specified on elements with an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute whose <code title=attr-itemtype><a href=#attr-itemtype>itemtype</a></code> attribute specifies a
+  vocabulary that does not <a href=#support-global-identifiers-for-items>support global identifiers for
+  items</a>, as defined by that vocabulary's specification.</p>
 
-   <dt>If the element has neither <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code> attribute nor an ancestor with
-   an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> attribute specified</dt>
 
-   <dd><p>The element has no <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-   item</a>.</dd>
+  <h4 id=names:-the-itemprop-attribute><span class=secno>5.2.3 </span>Names: the <dfn title=attr-itemprop><code>itemprop</code></dfn> attribute</h4>
 
-  </dl><p>The list of elements that create <a href=#concept-item title=concept-item>items</a> but do not themselves have a <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> forms
-  the list of <dfn id=top-level-microdata-items>top-level microdata items</dfn>.</p>
+  <p>Every <a href=#html-elements title="HTML elements">HTML element</a> may have an
+  <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute specified, if
+  doing so <a href=#the-properties-of-an-item title="the properties of an item">adds a
+  property</a> to one or more <a href=#concept-item title=concept-item>items</a> (as defined below).</p>
 
-
-  <h4 id=names:-the-itemprop-attribute><span class=secno>5.2.4 </span>Names: the <dfn title=attr-itemprop><code>itemprop</code></dfn> attribute</h4>
-
-  <p>Every <a href=#html-elements title="HTML elements">HTML element</a> that has a
-  <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a>
-  may have an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute
-  specified.</p>
-
-  <p>An element with the <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code>
-  attribute specified adds one or more name-value pairs to its
-  <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a>.</p>
-
   <p>The <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, if
   specified, must have a value that is an <a href=#unordered-set-of-unique-space-separated-tokens>unordered set of
   unique space-separated tokens</a> representing the names of the
@@ -44405,35 +44475,42 @@
 
    <li>A <a href=#valid-reversed-dns-identifier>valid reversed DNS identifier</a>, or</li>
 
-   <li>A <a href=#predefined-global-property-name>predefined global property name</a> allowed in this
-   situation, or</li>
+   <li>If the item is a <a href=#typed-item>typed item</a>: a string allowed in
+   this situation according to the specification that defines the
+   <a href=#relevant-type>relevant type</a> for the item, or</li>
 
-   <li>If the item's <a href=#item-type>item type</a> is a <a href=#predefined-type>predefined
-   type</a>: a <a href=#predefined-property-name>predefined property name</a> allowed in
-   this situation, or</li>
+   <li>If the item is not a <a href=#typed-item>typed item</a>: a string that
+   contains no U+002E FULL STOP (.) characters and no U+003A COLON (:)
+   characters.</li>
 
-   <li>If the item has no <a href=#item-type>item type</a> but it is itself the
-   value of a property whose property name is a <a href=#predefined-property-name>predefined
-   property name</a>: a <a href=#predefined-property-name>predefined property name</a>
-   allowed in this situation, or</li>
+  </ul><p>When an element with an <code title=concept-itemprop>itemprop</code> attribute <a href=#the-properties-of-an-item title="the
+  properties of an item">adds a property</a> to multiple <a href=#concept-item title=concept-item>items</a>, the requirement above regarding
+  the tokens applies for each <a href=#concept-item title=concept-item>item</a>
+  individually.</p>
 
-   <li>If the item's <a href=#item-type>item type</a> is not a <a href=#predefined-type>predefined
-   type</a> and the item is not the value of a property whose
-   property name is a <a href=#predefined-property-name>predefined property name</a>: a string
-   that contains no U+002E FULL STOP (.) or U+003A COLON (:)
-   characters, and that is not a <a href=#predefined-global-property-name>predefined global property
-   name</a>.</li>
+  <!--
 
-  </ul><p>The <dfn id=property-names>property names</dfn> of an element are the tokens that
+   e.g.:
+
+     <div itemscope itemtype="http://example.com/a"> <ref refid="x"> </div>
+     <div itemscope itemtype="http://example.com/b"> <ref refid="x"> </div>
+     <meta id="x" itemprop="z" content="">
+
+     "z" had better be valid for both http://example.com/a and http://example.com/b
+
+  -->
+
+  <p>The <dfn id=property-names>property names</dfn> of an element are the tokens that
   the element's <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute
   is found to contain when its value is <a href=#split-a-string-on-spaces title="split a string on
   spaces">split on spaces</a>, with the order preserved but with
   duplicates removed (leaving only the first occurrence of each
   name).</p>
 
-  <p>With an <a href=#concept-item title=concept-item>item</a>, the properties
+  <p>Within an <a href=#concept-item title=concept-item>item</a>, the properties
   are unordered with respect to each other, except for properties with
-  the same name, which are ordered in <a href=#tree-order>tree order</a>.</p>
+  the same name, which are ordered in the order they are given by the
+  algorithm that defines <a href=#the-properties-of-an-item>the properties of an item</a>.</p>
 
   <div class=example>
 
@@ -44441,7 +44518,7 @@
    and "2", <em>in that order</em>, but whether the "a" property comes
    before the "b" property or not is not important:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p itemprop="a">1</p>
  <p itemprop="a">2</p>
  <p itemprop="b">test</p>
@@ -44449,7 +44526,7 @@
 
    <p>Thus, the following is equivalent:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p itemprop="b">test</p>
  <p itemprop="a">1</p>
  <p itemprop="a">2</p>
@@ -44457,23 +44534,35 @@
 
    <p>As is the following:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p itemprop="a">1</p>
  <p itemprop="b">test</p>
  <p itemprop="a">2</p>
 </div></pre>
 
+   <p>And the following:</p>
+
+   <pre><div itemscope>
+ <itemref refid="x">
+ <p itemprop="b">test</p>
+ <p itemprop="a">2</p>
+</div>
+<div id="x">
+ <p itemprop="a">1</p>
+</div>
+</pre>
+
   </div>
 
 
-  <h4 id=values><span class=secno>5.2.5 </span>Values</h4>
 
+  <h4 id=values><span class=secno>5.2.4 </span>Values</h4>
+
   <p>The <dfn id=concept-property-value title=concept-property-value>property value</dfn> of a
   name-value pair added by an element with an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute depends on the
   element, as follows:</p>
 
-  <dl><dt>If the element also has an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code>
-   attribute</dt>
+  <dl><dt>If the element also has an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute</dt>
 
    <dd><p>The value is the <a href=#concept-item title=concept-item>item</a>
    created by the element.</dd>
@@ -44541,6 +44630,81 @@
 
 
 
+  <h4 id=associating-names-with-items><span class=secno>5.2.5 </span>Associating names with items</h4>
+
+  <p>To find <dfn id=the-properties-of-an-item>the properties of an item</dfn>, the user agent must
+  run the following steps:</p>
+
+  <ol><li><p>Let <var title="">root</var> be the element with the <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code> attribute. This element
+   cannot be an <code><a href=#itemref>itemref</a></code> element.</li>
+
+   <li><p>Let <var title="">queue</var> be a stack of elements
+   initially containing the child elements of <var title="">root</var>, if any, in <a href=#tree-order>tree order</a> (so that
+   the first child element of <var title="">root</var> will be the
+   first one to be popped from the stack). This list will be the one
+   that holds the elements that still need to be crawled.</li>
+
+   <li><p>Let <var title="">properties</var> be an empty list of
+   elements. This list will be the result of the algorithm: a list of
+   elements with properties that apply to <var title="">root</var>.</li>
+
+   <li><p>Let <var title="">visited nodes</var> be a list of elements
+   containing just <var title="">root</var>. This list is used to
+   avoid loops caused by <code><a href=#itemref>itemref</a></code> elements.</li>
+
+   <li><p>Let <var title="">error found</var> be false. If it is set
+   to true by the algorithm below, then an <code><a href=#itemref>itemref</a></code> error
+   has been found.</li>
+
+   <li><p><i>Loop</i>: Pop the top element from <var title="">queue</var> and let <var title="">current</var> be that
+   element.</li>
+
+   <li><p>If <var title="">current</var> is already in <var title="">visited nodes</var> then let <var title="">error
+   found</var> be true, and skip down to the step marked <i>end of
+   loop</i>.</li>
+
+   <li><p>If <var title="">current</var> has an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute, then append <var title="">current</var> to <var title="">properties</var>.</li>
+
+   <li><p>Append <var title="">current</var> to <var title="">visited
+   nodes</var>.</li>
+
+   <li><p>If <var title="">current</var> is an <code><a href=#itemref>itemref</a></code>
+   element with a <code title=attr-itemref-refid><a href=#attr-itemref-refid>refid</a></code>
+   attribute, and there is an element in the document whose <a href=#concept-id title=concept-id>ID</a> matches the value of <var title="">current</var>'s <code title=attr-itemref-refid><a href=#attr-itemref-refid>refid</a></code> attribute, then push the
+   first element in the document whose <a href=#concept-id title=concept-id>ID</a> matches the value of <var title="">current</var>'s <code title=attr-itemref-refid><a href=#attr-itemref-refid>refid</a></code> attribute onto <var title="">queue</var> (so that it will be the next element to be
+   popped from <var title="">queue</var>).</li>
+
+   <li><p>Otherwise, if <var title="">current</var> is not a
+   <code>refid</code> element, and <var title="">current</var> does
+   not have an <code title=attr-itemscope><a href=#attr-itemscope>itemscope</a></code>
+   attribute, and <var title="">current</var> is an element with child
+   elements, then: push all the child elements of <var title="">current</var> onto <var title="">queue</var>, in
+   <a href=#tree-order>tree order</a> (so the first child of <var title="">current</var> will be the next element to be popped from
+   <var title="">queue</var>).</li>
+
+   <li><p><i>End of loop</i>: If <var title="">queue</var> is not
+   empty, return to the step marked <i>loop</i>.</li>
+
+   <li><p>Return <var title="">properties</var>. That is the list of
+   <a href=#the-properties-of-an-item title="the properties of an item">properties of the
+   item</a> <var title="">root</var>.</li>
+
+  </ol><p>A document must not contain any <code><a href=#itemref>itemref</a></code> elements
+  that would cause the <var title="">error found</var> flag in the
+  algorithm above to be set to true if the <a href=#the-properties-of-an-item title="the properties
+  of an item">properties</a> of all the <a href=#concept-item title=concept-item>items</a> in that document were to be
+  determined.</p>
+
+  <p>A document must not contain any elements that have an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute that would not be
+  found to be a property of any of the <a href=#concept-item title=concept-item>items</a> in that document were their <a href=#the-properties-of-an-item title="the properties of an item">properties</a> all to be
+  determined.</p>
+
+  <p>An <a href=#concept-item title=concept-item>item</a> is a <dfn id=top-level-microdata-items title="top-level microdata items">top-level microdata item</dfn> if
+  its element does not have an <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> attribute.</p>
+
+
+
+
   <h3 id=microdata-dom-api><span class=secno>5.3 </span>Microdata DOM API</h3>
 
   <dl class=domintro><dt><var title="">document</var> . <code title=dom-getItems()>getItems</code>( [ <var title="">types</var> ] )</dt>
@@ -44557,7 +44721,7 @@
 
    <dd>
 
-    <p>If the element has an <code title=attr-item><a href=#items:-the-item-attribute>item</a></code>
+    <p>If the element has an <code title=attr-item>item</code>
     attribute, returns an <code><a href=#htmlpropertycollection>HTMLPropertyCollection</a></code> object
     with all the element's properties. Otherwise, an empty
     <code><a href=#htmlpropertycollection>HTMLPropertyCollection</a></code> object.</p>
@@ -44589,18 +44753,18 @@
   containing all the <a href=#top-level-microdata-items>top-level microdata items</a> in the
   document.</p>
 
-  <p>The <dfn id=dom-item title=dom-item><code>item</code></dfn> IDL attribute
-  on elements must <a href=#reflect>reflect</a> the element's <code title=attr-item><a href=#items:-the-item-attribute>item</a></code> content attribute.</p>
+  <p>The <dfn id=dom-itemscope title=dom-itemscope><code>itemscope</code></dfn>, <dfn id=dom-itemtype title=dom-itemtype><code>itemtype</code></dfn>, <dfn id=dom-itemid title=dom-itemid><code>itemid</code></dfn>, and <dfn id=dom-itemprop title=dom-itemprop><code>itemprop</code></dfn> IDL attributes on
+  <a href=#html-elements>HTML elements</a> must <a href=#reflect>reflect</a> the respective
+  content attributes of the same name.</p>
 
-  <p>The <dfn id=dom-itemprop title=dom-itemprop><code>itemprop</code></dfn> IDL
-  attribute on elements must <a href=#reflect>reflect</a> the element's <code title=attr-itemprop><a href=#names:-the-itemprop-attribute>itemprop</a></code> content attribute.</p>
-
   <p>The <dfn id=dom-properties title=dom-properties><code>properties</code></dfn> IDL
-  attribute on elements must return an
+  attribute on <a href=#html-elements>HTML elements</a> must return an
   <code><a href=#htmlpropertycollection>HTMLPropertyCollection</a></code> rooted at the
   <code>Document</code> node, whose filter matches only elements that
-  have <a href=#property-names>property names</a> and have a <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> that is
-  equal to the element on which the attribute was invoked.</p>
+  have <a href=#property-names>property names</a> and are <a href=#the-properties-of-an-item title="the properties
+  of an item">the properties of the item</a> created by the element
+  on which the attribute was invoked, while that element is an <a href=#concept-item title=concept-item>item</a>, and matches nothing the rest of
+  the time.</p>
 
   <p>The <dfn id=dom-content title=dom-content><code>content</code></dfn> IDL
   attribute's behavior depends on the element, as follows:</p>
@@ -44639,1976 +44803,19 @@
    <dd><p>The attribute must act the same as the element's
    <code>textContent</code> attribute.</dd>
 
-  </dl><p>The <dfn id=dom-subject title=dom-subject><code>itemfor</code></dfn> IDL
-  attribute on elements must <a href=#reflect>reflect</a> the element's <code title=attr-itemfor><a href=#attr-itemfor>itemfor</a></code> content attribute.</p>
+  </dl></div>
 
-  </div>
 
 
-
-  <h3 id=predefined-vocabularies-0><span class=secno>5.4 </span>Predefined vocabularies</h3>
-
-  <p>A number of <dfn id=predefined-type title="predefined type">predefined types</dfn>
-  exist, for describing common structures. Each such type has a set of
-  <dfn id=predefined-property-name title="predefined property name">predefined property
-  names</dfn> that are used to describe data of that type. In
-  addition, there are some <dfn id=predefined-global-property-name title="predefined global property
-  name">predefined global property names</dfn> that can be used for
-  any item.</p>
-
-
-
-  <h4 id=general><span class=secno>5.4.1 </span>General</h4>
-
-  <p>The <a href=#predefined-global-property-name>predefined global property name</a> <dfn id=md-about title=md-about><code>about</code></dfn> can be used to name an
-  <a href=#concept-item title=concept-item>item</a> for the purposes of
-  identifying or referring to the data defined in that item.</p>
-
-  <p>A single property with the name <code title=md-about><a href=#md-about>about</a></code> may be present within each <a href=#concept-item title=concept-item>item</a>. Its <a href=#concept-property-value title=concept-property-value>value</a> must be an
-  <a href=#absolute-url>absolute URL</a>.</p>
-
-
-  <h4 id=vcard><span class=secno>5.4.2 </span>vCard</h4>
-
-  <p>An item with the <a href=#predefined-type>predefined type</a> <dfn id=md-vcard title=md-vcard><code>vcard</code></dfn> represents a person's or
-  organization's contact information.</p>
-
-  <p>The following are the type's <a href=#predefined-property-name title="predefined property
-  name">predefined property names</a>. They are based on the
-  vocabulary defined in the vCard specification and its extensions,
-  where more information on how to interpret the values can be
-  found. <a href=#refsRFC2426>[RFC2426]</a> <a href=#refsRFC4770>[RFC4770]</a></p>
-
-  <dl><dt><dfn id=md-vcard-fn title=md-vcard-fn><code>fn</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the formatted text corresponding to the name of the
-    person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Exactly one property with the name <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> must be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-n title=md-vcard-n><code>n</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the structured name of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#concept-item title=concept-item>item</a> with zero or more of
-    each of the <code title=md-vcard-n-family-name><a href=#md-vcard-n-family-name>family-name</a></code>, <code title=md-vcard-n-given-name><a href=#md-vcard-n-given-name>given-name</a></code>, <code title=md-vcard-n-additional-name><a href=#md-vcard-n-additional-name>additional-name</a></code>, <code title=md-vcard-n-honorific-prefix><a href=#md-vcard-n-honorific-prefix>honorific-prefix</a></code>, and
-    <code title=md-vcard-n-honorific-suffix><a href=#md-vcard-n-honorific-suffix>honorific-suffix</a></code>
-    properties.</p>
-
-    <p>Except when one of the conditions given below applies, exactly
-    one property with the name <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> must
-    be present within each <a href=#concept-item title=concept-item>item</a> with
-    the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-    <p>If one of the following conditions does apply, then the <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> may be omitted:</p>
-
-    <dl><dt>The <a href=#concept-item title=concept-item>item</a> with the type
-     <code title="">vcard</code> has both an <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> property and an <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> property, and they both have
-     <a href=#concept-property-value title=concept-property-value>values</a> that are
-     strings and those strings are identical when compared in a
-     <a href=#case-sensitive>case-sensitive</a> manner.</dt>
-
-     <dd>
-
-      <p>The contact information must be for an organization.</p>
-
-     </dd>
-
-     <dt>The <a href=#concept-item title=concept-item>item</a> with the type
-     <code title="">vcard</code> has an <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> property whose <a href=#concept-property-value title=concept-property-value>value</a> consists of a string
-     with zero <a href=#space-character title="space character">space
-     characters</a>.</dt>
-
-     <dd>
-
-      <p>The <a href=#concept-property-value title=concept-property-value>value</a> of the
-      <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> property must be a
-      nickname.</p>
-
-     </dd>
-
-     <dt>The <a href=#concept-item title=concept-item>item</a> with the type
-     <code title="">vcard</code> has an <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> property whose <a href=#concept-property-value title=concept-property-value>value</a> consists of a string
-     with exactly one sequence of <a href=#space-character title="space character">space
-     characters</a>, which occurs neither at the immediate start
-     nor the immediate end of the string.</dt>
-
-     <dd>
-
-      <p>The <a href=#concept-property-value title=concept-property-value>value</a> of the
-      <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> property must be a name in
-      one of the following forms:</p>
-
-      <ul class=brief><li>Last, First</li>
-
-       <li>Last F.</li>
-
-       <li>Last F</li>
-
-       <li>First Last</li>
-
-      </ul></dd>
-
-    </dl></dd>
-
-   <dt><dfn id=md-vcard-n-family-name title=md-vcard-n-family-name><code>family-name</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the family name of the person, or the full name of the
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-n-family-name><a href=#md-vcard-n-family-name>family-name</a></code> may be present
-    within the <a href=#concept-item title=concept-item>item</a> that forms the
-    <a href=#concept-property-value title=concept-property-value>value</a> of the <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-n-given-name title=md-vcard-n-given-name><code>given-name</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the given-name of the person.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-n-given-name><a href=#md-vcard-n-given-name>given-name</a></code> may be present
-    within the <a href=#concept-item title=concept-item>item</a> that forms the
-    <a href=#concept-property-value title=concept-property-value>value</a> of the <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-n-additional-name title=md-vcard-n-additional-name><code>additional-name</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the any additional names of the person.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-n-additional-name><a href=#md-vcard-n-additional-name>additional-name</a></code> may be
-    present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of the
-    <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-n-honorific-prefix title=md-vcard-n-honorific-prefix><code>honorific-prefix</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the honorific prefix of the person.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-n-honorific-prefix><a href=#md-vcard-n-honorific-prefix>honorific-prefix</a></code> may be
-    present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of the
-    <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-n-honorific-suffix title=md-vcard-n-honorific-suffix><code>honorific-suffix</code></dfn> (inside <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the honorific suffix of the person.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-n-honorific-suffix><a href=#md-vcard-n-honorific-suffix>honorific-suffix</a></code> may be
-    present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of the
-    <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-nickname title=md-vcard-nickname><code>nickname</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the nickname of the person or organization.</p>
-
-    <!-- copied from vCard -->
-    <p class=note>The nickname is the descriptive name given instead
-    of or in addition to the one belonging to a person, place, or
-    thing. It can also be used to specify a familiar form of a proper
-    name specified by the <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> or <code title=md-vcard-n><a href=#md-vcard-n>n</a></code> properties.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-nickname><a href=#md-vcard-nickname>nickname</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-photo title=md-vcard-photo><code>photo</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a photograph of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-photo><a href=#md-vcard-photo>photo</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-bday title=md-vcard-bday><code>bday</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the birth date of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be a
-    <a href=#valid-date-string>valid date string</a>.</p>
-
-    <p>A single property with the name <code title=md-vcard-bday><a href=#md-vcard-bday>bday</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-adr title=md-vcard-adr><code>adr</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the delivery address of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#concept-item title=concept-item>item</a> with zero or more <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code>, <code title=md-vcard-adr-post-office-box><a href=#md-vcard-adr-post-office-box>post-office-box</a></code>, <code title=md-vcard-adr-extended-address><a href=#md-vcard-adr-extended-address>extended-address</a></code>, and
-    <code title=md-vcard-adr-street-address><a href=#md-vcard-adr-street-address>street-address</a></code>
-    properties, and optionally a <code title=md-vcard-adr-locality><a href=#md-vcard-adr-locality>locality</a></code> property, optionally
-    a <code title=md-vcard-adr-region><a href=#md-vcard-adr-region>region</a></code> property,
-    optionally a <code title=md-vcard-adr-postal-code><a href=#md-vcard-adr-postal-code>postal-code</a></code> property, and
-    optionally a <code title=md-vcard-adr-country-name><a href=#md-vcard-adr-country-name>country-name</a></code>
-    property.</p>
-
-    <p>If no <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> properties
-    are present within an <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, then the <a href=#address-type-strings>address type
-    strings</a> <code title=mv-vcard-type-adr-intl>intl</code>,
-    <code title=mv-vcard-type-adr-postal>postal</code>, <code title=mv-vcard-type-adr-parcel>parcel</code>, and <code title=mv-vcard-type-adr-work>work</code> are implied.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-type title=md-vcard-adr-type><code>type</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the type of delivery address.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
-    is equal to one of the <a href=#address-type-strings>address type strings</a>.</p>
-
-    <p>Within each <a href=#concept-item title=concept-item>item</a> with the
-    type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, there must be no more
-    than one <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> property whose value is
-    <code title=md-vcard-type-adr-pref><a href=#md-vcard-type-adr-pref>pref</a></code>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> may be present within the
-    <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, but within each such <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> property per distinct
-    value.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-post-office-box title=md-vcard-adr-post-office-box><code>post-office-box</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the post office box component of the delivery address of
-    the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-adr-post-office-box><a href=#md-vcard-adr-post-office-box>post-office-box</a></code> may be
-    present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-extended-address title=md-vcard-adr-extended-address><code>extended-address</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives an additional component of the delivery address of the
-    person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-adr-extended-address><a href=#md-vcard-adr-extended-address>extended-address</a></code> may
-    be present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-street-address title=md-vcard-adr-street-address><code>street-address</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the street address component of the delivery address of
-    the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-adr-street-address><a href=#md-vcard-adr-street-address>street-address</a></code> may be
-    present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-locality title=md-vcard-adr-locality><code>locality</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the locality component (e.g. city) of the delivery
-    address of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>A single property with the name <code title=md-vcard-adr-locality><a href=#md-vcard-adr-locality>locality</a></code> may be present
-    within the <a href=#concept-item title=concept-item>item</a> that forms the
-    <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-region title=md-vcard-adr-region><code>region</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the region component (e.g. state or province) of the
-    delivery address of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>A single property with the name <code title=md-vcard-adr-region><a href=#md-vcard-adr-region>region</a></code> may be present within
-    the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-postal-code title=md-vcard-adr-postal-code><code>postal-code</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the postal code component of the delivery address of the
-    person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>A single property with the name <code title=md-vcard-adr-postal-code><a href=#md-vcard-adr-postal-code>postal-code</a></code> may be present
-    within the <a href=#concept-item title=concept-item>item</a> that forms the
-    <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-adr-country-name title=md-vcard-adr-country-name><code>country-name</code></dfn> (inside <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the country name component of the delivery address of the
-    person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>A single property with the name <code title=md-vcard-adr-country-name><a href=#md-vcard-adr-country-name>country-name</a></code> may be
-    present within the <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-label title=md-vcard-label><code>label</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the formatted text corresponding to the delivery address
-    of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either text or an <a href=#concept-item title=concept-item>item</a> with zero
-    or more <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> properties
-    and exactly one <code title=md-vcard-label-value><a href=#md-vcard-label-value>value</a></code>
-    property.</p>
-
-    <p>If no <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> properties
-    are present within an <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of a
-    <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such a <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property is text, then the
-    <a href=#address-type-strings>address type strings</a> <code title=mv-vcard-type-adr-intl>intl</code>, <code title=mv-vcard-type-adr-postal>postal</code>, <code title=mv-vcard-type-adr-parcel>parcel</code>, and <code title=mv-vcard-type-adr-work>work</code> are implied.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-label-type title=md-vcard-label-type><code>type</code></dfn> (inside <code title=md-vcard-label><a href=#md-vcard-label>label</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the type of delivery address.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
-    is equal to one of the <a href=#address-type-strings>address type strings</a>.</p>
-
-    <p>Within each <a href=#concept-item title=concept-item>item</a> with the
-    type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, there must be no more
-    than one <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> property whose value is
-    <code title=md-vcard-type-adr-pref><a href=#md-vcard-type-adr-pref>pref</a></code>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> may be present within the
-    <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, but within each such <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-label-type><a href=#md-vcard-label-type>type</a></code> property per distinct
-    value.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-label-value title=md-vcard-label-value><code>value</code></dfn> (inside <code title=md-vcard-label><a href=#md-vcard-label>label</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the actual formatted text corresponding to the delivery
-    address of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Exactly one property with the name <code title=md-vcard-label-value><a href=#md-vcard-label-value>value</a></code> must be present within
-    the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-label><a href=#md-vcard-label>label</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-tel title=md-vcard-tel><code>tel</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the telephone number of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either text that can be interpreted as a telephone number as
-    defined in the CCITT specifications E.163 and X.121, or an <a href=#concept-item title=concept-item>item</a> with zero or more <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> properties and exactly one
-    <code title=md-vcard-tel-value><a href=#md-vcard-tel-value>value</a></code> property. <a href=#refsE163>[E163]</a> <a href=#refsX121>[X121]</a></p>
-
-    <p>If no <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> properties
-    are present within an <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of a
-    <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such a <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property is text, then the <a href=#telephone-type-strings title="telephone type strings">telephone type string</a> <code title=mv-vcard-type-tel-voice>voice</code> is implied.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-tel-type title=md-vcard-tel-type><code>type</code></dfn> (inside <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the type of telephone number.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
-    is equal to one of the <a href=#telephone-type-strings>telephone type strings</a>.</p>
-
-    <p>Within each <a href=#concept-item title=concept-item>item</a> with the
-    type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, there must be no more
-    than one <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> property whose value is
-    <code title=md-vcard-type-tel-pref><a href=#md-vcard-type-tel-pref>pref</a></code>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> may be present within the
-    <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, but within each such <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-tel-type><a href=#md-vcard-tel-type>type</a></code> property per distinct
-    value.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-tel-value title=md-vcard-tel-value><code>value</code></dfn> (inside <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the actual telephone number of the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that can be interpreted as a telephone number as defined in
-    the CCITT specifications E.163 and X.121. <a href=#refsE163>[E163]</a> <a href=#refsX121>[X121]</a></p>
-
-    <p>Exactly one property with the name <code title=md-vcard-tel-value><a href=#md-vcard-tel-value>value</a></code> must be present within the
-    <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of a <code title=md-vcard-tel><a href=#md-vcard-tel>tel</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-email title=md-vcard-email><code>email</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the e-mail address of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either text or an <a href=#concept-item title=concept-item>item</a> with zero
-    or more <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> properties
-    and exactly one <code title=md-vcard-email-value><a href=#md-vcard-email-value>value</a></code>
-    property.</p>
-
-    <p>If no <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> properties
-    are present within an <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such an <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property is text, then the
-    <a href=#e-mail-type-strings title="e-mail type strings">e-mail type string</a> <code title=mv-vcard-type-email-internet>internet</code> is
-    implied.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-email-type title=md-vcard-email-type><code>type</code></dfn> (inside <code title=md-vcard-email><a href=#md-vcard-email>email</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the type of e-mail address.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
-    is equal to one of the <a href=#e-mail-type-strings>e-mail type strings</a>.</p>
-
-    <p>Within each <a href=#concept-item title=concept-item>item</a> with the
-    type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, there must be no more
-    than one <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> property whose value is
-    <code title=md-vcard-type-email-pref><a href=#md-vcard-type-email-pref>pref</a></code>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> may be present within the
-    <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, but within each such <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-email-type><a href=#md-vcard-email-type>type</a></code> property per distinct
-    value.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-email-value title=md-vcard-email-value><code>value</code></dfn> (inside <code title=md-vcard-email><a href=#md-vcard-email>email</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the actual e-mail address of the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Exactly one property with the name <code title=md-vcard-email-value><a href=#md-vcard-email-value>value</a></code> must be present within
-    the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-email><a href=#md-vcard-email>email</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-mailer title=md-vcard-mailer><code>mailer</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the name of the e-mail software used by the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-mailer><a href=#md-vcard-mailer>mailer</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-tz title=md-vcard-tz><code>tz</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the time zone of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text and must match the following syntax:</p>
-
-    <ol><li>Either a U+002B PLUS SIGN character (+) or a U+002D
-     HYPHEN-MINUS character (-).</li>
-
-     <li>A <a href=#valid-non-negative-integer>valid non-negative integer</a> that is exactly two
-     digits long and that represents a number in the range
-     00..23.</li>
-
-     <li>A U+003A COLON character (:).</li>
-
-     <li>A <a href=#valid-non-negative-integer>valid non-negative integer</a> that is exactly two
-     digits long and that represents a number in the range
-     00..59.</li>
-
-    </ol><p>Any number of properties with the name <code title=md-vcard-tz><a href=#md-vcard-tz>tz</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-geo title=md-vcard-geo><code>geo</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the geographical position of the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text and must match the following syntax:</p>
-
-    <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
-     U+002D HYPHEN-MINUS character (-).</li>
-
-     <li>One or more digits in the range U+0030 DIGIT ZERO .. U+0039
-     DIGIT NINE.</li>
-
-     <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO .. U+0039 DIGIT
-     NINE.</li>
-
-     <li>A U+003B SEMICOLON character (;).</li>
-
-     <li>Optionally, either a U+002B PLUS SIGN character (+) or a
-     U+002D HYPHEN-MINUS character (-).</li>
-
-     <li>One or more digits in the range U+0030 DIGIT ZERO .. U+0039
-     DIGIT NINE.</li>
-
-     <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO .. U+0039 DIGIT
-     NINE.</li>
-
-    </ol><p>The optional components marked with an asterisk (*) should be
-    included, and should have six digits each.</p>
-
-    <!-- copied from vCard -->
-    <p class=note>The value specifies latitude and longitude, in
-    that order (i.e., "LAT LON" ordering), in decimal degrees. The
-    longitude represents the location east and west of the prime
-    meridian as a positive or negative real number, respectively.  The
-    latitude represents the location north and south of the equator as
-    a positive or negative real number, respectively.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-geo><a href=#md-vcard-geo>geo</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-title title=md-vcard-title><code>title</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the job title, functional position or function of the
-    person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-title><a href=#md-vcard-title>title</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-role title=md-vcard-role><code>role</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the role, occupation, or business category of the person
-    or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-role><a href=#md-vcard-role>role</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-logo title=md-vcard-logo><code>logo</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the logo of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-logo><a href=#md-vcard-logo>logo</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-agent title=md-vcard-agent><code>agent</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the contact information of another person who will act on
-    behalf of the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either an <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vcard><a href=#md-vcard>vcard</a></code>, or an <a href=#absolute-url>absolute
-    URL</a>, or text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-logo><a href=#md-vcard-logo>logo</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-org title=md-vcard-org><code>org</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the name and units of the organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either text or an <a href=#concept-item title=concept-item>item</a> with one
-    <code title=md-vcard-org-organization-name><a href=#md-vcard-org-organization-name>organization-name</a></code>
-    property and zero or more <code title=md-vcard-n-organization-unit>organization-unit</code>
-    properties.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-org-organization-name title=md-vcard-org-organization-name><code>organization-name</code></dfn> (inside <code title=md-vcard-org><a href=#md-vcard-org>org</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the name of the organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Exactly one property with the name <code title=md-vcard-org-organization-name><a href=#md-vcard-org-organization-name>organization-name</a></code>
-    must be present within the <a href=#concept-item title=concept-item>item</a>
-    that forms the <a href=#concept-property-value title=concept-property-value>value</a>
-    of an <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-org-organization-unit title=md-vcard-org-organization-unit><code>organization-unit</code></dfn> (inside <code title=md-vcard-org><a href=#md-vcard-org>org</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the name of the organization unit.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-org-organization-unit><a href=#md-vcard-org-organization-unit>organization-unit</a></code>
-    may be present within the <a href=#concept-item title=concept-item>item</a>
-    that forms the <a href=#concept-property-value title=concept-property-value>value</a>
-    of the <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-categories title=md-vcard-categories><code>categories</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the name of a category or tag that the person or
-    organization could be classified as.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-categories><a href=#md-vcard-categories>categories</a></code> may be present
-    within each <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-note title=md-vcard-note><code>note</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives supplemental information or a comment about the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-note><a href=#md-vcard-note>note</a></code> may be present
-    within each <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <!-- PRODID not included -->
-
-
-   <dt><dfn id=md-vcard-rev title=md-vcard-rev><code>rev</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the revision date and time of the contact
-    information.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
-
-    <!-- copied from vCard -->
-    <p class=note>The value distinguishes the current revision of
-    the information for other renditions of the information.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-rev><a href=#md-vcard-rev>rev</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-sort-string title=md-vcard-sort-string><code>sort-string</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the string to be used for sorting the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-sort-string><a href=#md-vcard-sort-string>sort-string</a></code> may be present
-    within each <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vcard-sound title=md-vcard-sound><code>sound</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a sound file relating to the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-sound><a href=#md-vcard-sound>sound</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <!-- UID not included - use "about" -->
-
-
-   <dt><dfn id=md-vcard-url title=md-vcard-url><code>url</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a <a href=#url>URL</a> relating to the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-url><a href=#md-vcard-url>url</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <!-- VERSION not included - always 3.0 -->
-
-
-   <dt><dfn id=md-vcard-class title=md-vcard-class><code>class</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the access classification of the information regarding
-    the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text with one of the following values:</p>
-
-    <ul class=brief><li><code title="">public</code></li>
-     <li><code title="">private</code></li>
-     <li><code title="">confidential</code></li>
-    </ul><p class=warning>This is merely advisory and cannot be
-    considered a confidentiality measure.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-class><a href=#md-vcard-class>class</a></code> may be present
-    within each <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-   <!-- KEY not included - no way to include binary data at this time -->   
-
-
-   <!-- IMPP is from RFC4770 -->
-
-   <dt><dfn id=md-vcard-impp title=md-vcard-impp><code>impp</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a <a href=#url>URL</a> for instant messaging and presence
-    protocol communications with the person or organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either an <a href=#absolute-url>absolute URL</a> or an <a href=#concept-item title=concept-item>item</a> with zero or more <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> properties and exactly one
-    <code title=md-vcard-impp-value><a href=#md-vcard-impp-value>value</a></code> property.</p>
-
-    <p>If no <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> properties
-    are present within an <a href=#concept-item title=concept-item>item</a> that
-    forms the <a href=#concept-property-value title=concept-property-value>value</a> of an
-    <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, or if the <a href=#concept-property-value title=concept-property-value>value</a> of such an <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property is an <a href=#absolute-url>absolute
-    URL</a>, then no <a href=#impp-type-strings>IMPP type strings</a> are
-    implied.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-impp-type title=md-vcard-impp-type><code>type</code></dfn> (inside <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the intended use of the IMPP <a href=#url>URL</a>.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that, when compared in a <a href=#case-sensitive>case-sensitive</a> manner,
-    is equal to one of the <a href=#impp-type-strings>IMPP type strings</a>.</p>
-
-    <p>Within each <a href=#concept-item title=concept-item>item</a> with the
-    type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, there must be no more
-    than one <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property <a href=#concept-item title=concept-item>item</a> with a <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> property whose value is
-    <code title=md-vcard-type-impp-pref><a href=#md-vcard-type-impp-pref>pref</a></code>.</p>
-
-    <p>Any number of properties with the name <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> may be present within the
-    <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, but within each such <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property <a href=#concept-item title=concept-item>item</a> there must only be one <code title=md-vcard-impp-type><a href=#md-vcard-impp-type>type</a></code> property per distinct
-    value.</p>
-
-   </dd>
-
-   <dt><dfn id=md-vcard-impp-value title=md-vcard-impp-value><code>value</code></dfn> (inside <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code>)</dt>
-
-   <dd>
-
-    <p>Gives the actual <a href=#url>URL</a> for instant messaging and
-    presence protocol communications with the person or
-    organization.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Exactly one property with the name <code title=md-vcard-impp-value><a href=#md-vcard-impp-value>value</a></code> must be present within
-    the <a href=#concept-item title=concept-item>item</a> that forms the <a href=#concept-property-value title=concept-property-value>value</a> of an <code title=md-vcard-impp><a href=#md-vcard-impp>impp</a></code> property of an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</p>
-
-   </dd>
-
-
-  </dl><p>The <dfn id=address-type-strings>address type strings</dfn> are:</p>
-
-  <dl><dt><dfn id=md-vcard-type-adr-dom title=md-vcard-type-adr-dom><code>dom</code></dfn></dt>
-   <dd>
-    <p>Indicates a domestic delivery address.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-adr-intl title=md-vcard-type-adr-intl><code>intl</code></dfn></dt>
-   <dd>
-    <p>Indicates an international delivery address.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-adr-postal title=md-vcard-type-adr-postal><code>postal</code></dfn></dt>
-   <dd>
-    <p>Indicates a postal delivery address.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-adr-parcel title=md-vcard-type-adr-parcel><code>parcel</code></dfn></dt>
-   <dd>
-    <p>Indicates a parcel delivery address.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-adr-home title=md-vcard-type-adr-home><code>home</code></dfn></dt>
-   <dd>
-    <p>Indicates a residential delivery address.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-adr-work title=md-vcard-type-adr-work><code>work</code></dfn></dt>
-   <dd>
-    <p>Indicates a delivery address for a place of work.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-adr-pref title=md-vcard-type-adr-pref><code>pref</code></dfn></dt>
-   <dd>
-
-    <p>Indicates the preferred delivery address when multiple
-    addresses are specified.</p>
-
-   <dd>
-
-  </dl><p>The <dfn id=telephone-type-strings>telephone type strings</dfn> are:</p>
-
-  <dl><dt><dfn id=md-vcard-type-tel-home title=md-vcard-type-tel-home><code>home</code></dfn></dt>
-   <dd>
-    <p>Indicates a residential number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-msg title=md-vcard-type-tel-msg><code>msg</code></dfn></dt>
-   <dd>
-    <p>Indicates a telephone number with voice messaging support.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-work title=md-vcard-type-tel-work><code>work</code></dfn></dt>
-   <dd>
-    <p>Indicates a telephone number for a place of work.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-voice title=md-vcard-type-tel-voice><code>voice</code></dfn></dt>
-   <dd>
-    <p>Indicates a voice telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-fax title=md-vcard-type-tel-fax><code>fax</code></dfn></dt>
-   <dd>
-    <p>Indicates a facsimile telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-cell title=md-vcard-type-tel-cell><code>cell</code></dfn></dt>
-   <dd>
-    <p>Indicates a cellular telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-video title=md-vcard-type-tel-video><code>video</code></dfn></dt>
-   <dd>
-    <p>Indicates a video conferencing telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-pager title=md-vcard-type-tel-pager><code>pager</code></dfn></dt>
-   <dd>
-    <p>Indicates a paging device telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-bbs title=md-vcard-type-tel-bbs><code>bbs</code></dfn></dt>
-   <dd>
-    <p>Indicates a bulletin board system telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-modem title=md-vcard-type-tel-modem><code>modem</code></dfn></dt>
-   <dd>
-    <p>Indicates a MODEM-connected telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-car title=md-vcard-type-tel-car><code>car</code></dfn></dt>
-   <dd>
-    <p>Indicates a car-phone telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-isdn title=md-vcard-type-tel-isdn><code>isdn</code></dfn></dt>
-   <dd>
-    <p>Indicates an ISDN service telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-pcs title=md-vcard-type-tel-pcs><code>pcs</code></dfn></dt>
-   <dd>
-    <p>Indicates a personal communication services telephone number.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-tel-pref title=md-vcard-type-tel-pref><code>pref</code></dfn></dt>
-   <dd>
-
-    <p>Indicates the preferred telephone number when multiple
-    telephone numbers are specified.</p>
-
-   <dd>
-
-  </dl><p>The <dfn id=e-mail-type-strings>e-mail type strings</dfn> are:</p>
-
-  <dl><dt><dfn id=md-vcard-type-email-internet title=md-vcard-type-email-internet><code>internet</code></dfn></dt>
-   <dd>
-    <p>Indicates an Internet e-mail address.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-email-x400 title=md-vcard-type-email-x400><code>x400</code></dfn></dt>
-   <dd>
-    <p>Indicates a X.400 addressing type.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-email-pref title=md-vcard-type-email-pref><code>pref</code></dfn></dt>
-   <dd>
-
-    <p>Indicates the preferred e-mail address when multiple e-mail
-    addresses are specified.</p>
-
-   <dd>
-
-  </dl><p>The <dfn id=impp-type-strings>IMPP type strings</dfn> are:</p>
-
-  <dl><dt><dfn id=md-vcard-type-impp-personal title=md-vcard-type-impp-personal><code>personal</code></dfn></dt>
-   <dt><dfn id=md-vcard-type-impp-business title=md-vcard-type-impp-business><code>business</code></dfn></dt>
-   <dd>
-    <p>Indicates the type of communication for which this IMPP
-    <a href=#url>URL</a> is appropriate.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-impp-home title=md-vcard-type-impp-home><code>home</code></dfn></dt>
-   <dt><dfn id=md-vcard-type-impp-work title=md-vcard-type-impp-work><code>work</code></dfn></dt>
-   <dt><dfn id=md-vcard-type-impp-mobile title=md-vcard-type-impp-mobile><code>mobile</code></dfn></dt>
-   <dd>
-    <p>Indicates the location of a device associated with this IMPP
-    <a href=#url>URL</a>.</p>
-   <dd>
-
-   <dt><dfn id=md-vcard-type-impp-pref title=md-vcard-type-impp-pref><code>pref</code></dfn></dt>
-   <dd>
-    <p>Indicates the preferred address when multiple IMPP
-    <a href=#url>URL</a>s are specified.</p>
-   <dd>
-
-  </dl><h5 id=examples-1><span class=secno>5.4.2.1 </span>Examples</h5>
-
-  <div class=example>
-
-   <p>Here is a long example <code title=md-vcard><a href=#md-vcard>vcard</a></code> for a
-   fictional character called "Jack Bauer":</p>
-
-   <pre><section id="jack" item="vcard">
- <h1 itemprop="fn">Jack Bauer</h1>
- <img itemprop="photo" alt="" src="jack-bauer.jpg">
- <p itemprop="org" item>
-  <span itemprop="organization-name">Counter-Terrorist Unit</span>
-  (<span itemprop="organization-unit">Los Angeles Division</span>)
- </p>
- <p>
-  <span itemprop="adr" item>
-   <span itemprop="street-address">10201 W. Pico Blvd.</span><br>
-   <span itemprop="locality">Los Angeles</span>,
-   <span itemprop="region">CA</span>
-   <span itemprop="postal-code">90064</span><br>
-   <span itemprop="country-name">United States</span><br>
-  </span>
-  <span itemprop="geo">34.052339;-118.410623</span>
- </p>
- <h2>Assorted Contact Methods</h2>
- <ul>
-  <li itemprop="tel" item><span itemprop="value">+1 (310) 597
-  3781</span> <span itemprop="type">work</span>
-  <meta itemprop="type" content="pref"></li>
-  <li><a itemprop="url"
-  href="http://en.wikipedia.org/wiki/Jack_Bauer">I'm on
-  Wikipedia</a> so you can leave a message on my user talk
-  page.</li>
-  <li><a itemprop="url"
-  href="http://www.jackbauerfacts.com/">Jack Bauer Facts</a></li>
-  <li itemprop="email"><a
-  href="mailto:j.bauer at la.ctu.gov.invalid">j.bauer at la.ctu.gov.invalid</a></li>
-  <li itemprop="tel" item><span itemprop="value">+1 (310) 555
-  3781</span> <span><meta itemprop="type" content="cell">mobile
-  phone</span></li>
- </ul>
- <p itemprop="note">If I'm out in the field, you may be better
- off contacting <span itemprop="agent" item="vcard"><a
- itemprop="email" href="mailto:c.obrian at la.ctu.gov.invalid"><span
- itemprop="fn">Chloe O'Brian</span></a></span> if it's about
- work, or ask <span itemprop="agent">Tony Almeida</span> if
- you're interested in the CTU five-a-side football team we're
- trying to get going.</p>
- <ins datetime="2008-07-20T21:00:00+0100">
-  <span itemprop="rev" item>
-   <meta itemprop="type" content="date-time">
-   <meta itemprop="value" content="2008-07-20T21:00:00+0100">
-  </span>
-  <p itemprop="tel" item><strong>Update!</strong>
-  My new <span itemprop="type">home</span> phone number is
-  <span itemprop="value">01632 960 123</span>.
- </ins>
-</section></pre>
-
-  </div>
-
-  <div class=example>
-
-   <p>This example shows a site's contact details (using the
-   <code><a href=#the-address-element>address</a></code> element) containing an address with two street
-   components:</p>
-
-   <pre><address item=vcard>
- <strong title="fn">Alfred Person</strong> <br>
- <span itemprop="adr" item>
-  <span itemprop="street-address">1600 Amphitheatre Parkway</span> <br>
-  <span itemprop="street-address">Building 43, Second Floor</span> <br>
-  <span itemprop="locality">Mountain View</span>,
-   <span itemprop="region">CA</span> <span itemprop="postal-code">94043</span>
- </span>
-</address></pre>
-
-  </div>
-
-
-
-  <h4 id=vevent><span class=secno>5.4.3 </span>vEvent</h4>
-
-  <p>An item with the <a href=#predefined-type>predefined type</a> <dfn id=md-vevent title=md-vevent><code>vevent</code></dfn> represents an event.</p>
-
-  <p>The following are the type's <a href=#predefined-property-name title="predefined property
-  name">predefined property names</a>. They are based on the
-  vocabulary defined in the iCalendar specification, where more
-  information on how to interpret the values can be found. <a href=#refsRFC2445>[RFC2445]</a></p>
-
-  <p class=note>Only the parts of the iCalendar vocabulary relating
-  to events are used here; this vocabulary cannot express a complete
-  iCalendar instance.</p>
-
-  <dl><dt><dfn id=md-vevent-attach title=md-vevent-attach><code>attach</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the address of an associated document for the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-vevent-attach><a href=#md-vevent-attach>attach</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-categories title=md-vevent-categories><code>categories</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the name of a category or tag that the event could be
-    classified as.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vevent-categories><a href=#md-vevent-categories>categories</a></code> may be present
-    within each <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-class title=md-vevent-class><code>class</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the access classification of the information regarding
-    the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text with one of the following values:</p>
-
-    <ul class=brief><li><code title="">public</code></li>
-     <li><code title="">private</code></li>
-     <li><code title="">confidential</code></li>
-    </ul><p class=warning>This is merely advisory and cannot be
-    considered a confidentiality measure.</p>
-
-    <p>A single property with the name <code title=md-vevent-class><a href=#md-vevent-class>class</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-comment title=md-vevent-comment><code>comment</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a comment regarding the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>Any number of properties with the name <code title=md-vevent-comment><a href=#md-vevent-comment>comment</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-description title=md-vevent-description><code>description</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a detailed description of the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>A single property with the name <code title=md-vevent-description><a href=#md-vevent-description>description</a></code> may be present
-    within each <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-geo title=md-vevent-geo><code>geo</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the geographical position of the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text and must match the following syntax:</p>
-
-    <ol><li>Optionally, either a U+002B PLUS SIGN character (+) or a
-     U+002D HYPHEN-MINUS character (-).</li>
-
-     <li>One or more digits in the range U+0030 DIGIT ZERO .. U+0039
-     DIGIT NINE.</li>
-
-     <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO .. U+0039 DIGIT
-     NINE.</li>
-
-     <li>A U+003B SEMICOLON character (;).</li>
-
-     <li>Optionally, either a U+002B PLUS SIGN character (+) or a
-     U+002D HYPHEN-MINUS character (-).</li>
-
-     <li>One or more digits in the range U+0030 DIGIT ZERO .. U+0039
-     DIGIT NINE.</li>
-
-     <li>Optionally*, a U+002E FULL STOP character (.) followed by one
-     or more digits in the range U+0030 DIGIT ZERO .. U+0039 DIGIT
-     NINE.</li>
-
-    </ol><p>The optional components marked with an asterisk (*) should be
-    included, and should have six digits each.</p> <!-- iCalendar
-    actually limits the range to -91.0 < lat < 91.0; -181.0 < long <
-    181.0, which seems weird. It also gives special meanings to
-    +90/-90 lat, and +180 long. -->
-
-    <!-- copied from vcard (not icalendar!) -->
-    <p class=note>The value specifies latitude and longitude, in
-    that order (i.e., "LAT LON" ordering), in decimal degrees. The
-    longitude represents the location east and west of the prime
-    meridian as a positive or negative real number, respectively.  The
-    latitude represents the location north and south of the equator as
-    a positive or negative real number, respectively.</p>
-
-    <p>A single property with the name <code title=md-vevent-geo><a href=#md-vevent-geo>geo</a></code> may be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-location title=md-vevent-location><code>location</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the location of the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p> <!-- v2: support vcard here -->
-
-    <p>A single property with the name <code title=md-vevent-location><a href=#md-vevent-location>location</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <!-- PRIORITY not included - always 0 - doesn't make sense for single events -->
-
-
-   <dt><dfn id=md-vevent-resources title=md-vevent-resources><code>resources</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a resource that will be needed for the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p> <!-- v2: support vcard here -->
-
-    <p>Any number of properties with the name <code title=md-vevent-resources><a href=#md-vevent-resources>resources</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-status title=md-vevent-status><code>status</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the confirmation status of the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text with one of the following values:</p>
-
-    <ul class=brief><li><code title="">tentative</code></li>
-     <li><code title="">confirmed</code></li>
-     <li><code title="">cancelled</code></li> <!-- two Ls as per iCalendar spec -->
-    </ul><p>A single property with the name <code title=md-vevent-status><a href=#md-vevent-status>status</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-summary title=md-vevent-summary><code>summary</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a short summary of the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p>
-
-    <p>User agents should replace U+000A LINE FEED (LF) characters in
-    the <a href=#concept-property-value title=concept-property-value>value</a> by U+0020
-    SPACE characters when using the value.</p>
-
-    <p>A single property with the name <code title=md-vevent-summary><a href=#md-vevent-summary>summary</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-dtend title=md-vevent-dtend><code>dtend</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the date and time by which the event ends.</p>
-
-    <p>If the property with the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> is present within an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code> that has a property with the name
-    <code title=md-vevent-dtstart><a href=#md-vevent-dtstart>dtstart</a></code> whose value is a
-    <a href=#valid-date-string>valid date string</a>, then the <a href=#concept-property-value title=concept-property-value>value</a> of the property with
-    the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> must be text
-    that is a <a href=#valid-date-string>valid date string</a> also. Otherwise, the
-    <a href=#concept-property-value title=concept-property-value>value</a> of the property
-    must be text that is a <a href=#valid-global-date-and-time-string>valid global date and time
-    string</a>.</p>
-
-    <p>In either case, the <a href=#concept-property-value title=concept-property-value>value</a> be later in time than
-    the value of the <code title=md-event-dtstart>dtstart</code>
-    property of the same <a href=#concept-item title=concept-item>item</a>.</p>
-
-    <p class=note>The time given by the <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> property is not
-    inclusive. For day-long events, therefore, the the <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> property's <a href=#concept-property-value title=concept-property-value>value</a> will be the day
-    <em>after</em> the end of the event.</p>
-
-    <p>A single property with the name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>, so long as that <code title=md-vevent><a href=#md-vevent>vevent</a></code> does not have a property with the
-    name <code title=md-vevent-duration><a href=#md-vevent-duration>duration</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-dtstart title=md-vevent-dtstart><code>dtstart</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the date and time at which the event starts.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is either a <a href=#valid-date-string>valid date string</a> or a
-    <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
-
-    <p>Exactly one property with the name <code title=md-vevent-dtstart><a href=#md-vevent-dtstart>dtstart</a></code> must be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-duration title=md-vevent-duration><code>duration</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the date and time at which the event starts.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is a <a href=#valid-vevent-duration-string>valid vevent duration string</a>.</p>
-
-    <p>The duration represented is the sum of all the durations
-    represented by integers in the value.</p>
-
-    <p>A single property with the name <code title=md-vevent-duration><a href=#md-vevent-duration>duration</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>, so long as that <code title=md-vevent><a href=#md-vevent>vevent</a></code> does not have a property with the
-    name <code title=md-vevent-dtend><a href=#md-vevent-dtend>dtend</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-transp title=md-vevent-transp><code>transp</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives whether the event is to be considered as consuming time
-    on a calendar, for the purpose of free-busy time searches.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text with one of the following values:</p>
-
-    <ul class=brief><li><code title="">opaque</code></li>
-     <li><code title="">transparent</code></li>
-    </ul><p>A single property with the name <code title=md-vevent-transp><a href=#md-vevent-transp>transp</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <!-- ATTENDEE not included; iCalendar says MUST NOT be included in
-   published events -->
-
-
-   <dt><dfn id=md-vevent-contact title=md-vevent-contact><code>contact</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the contact information for the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text.</p> <!-- v2: support vcard here -->
-
-    <p>Any number of properties with the name <code title=md-vevent-contact><a href=#md-vevent-contact>contact</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <!-- ORGANIZER not included, as it is calendar-system-specific
-   (gives a CAL-ADDRESS value); use CONTACT instead -->
-
-
-   <!-- RECURRENCE-ID not included... unclear how to make it usefully
-   work here -->
-
-
-   <!-- RELATED-TO not included, as it only makes sense for complete
-   calendars -->
-
-
-   <dt><dfn id=md-vevent-url title=md-vevent-url><code>url</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a <a href=#url>URL</a> for the event.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>A single property with the name <code title=md-vevent-url><a href=#md-vevent-url>url</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <!-- UID not included - use "about" -->
-
-
-   <dt><dfn id=md-vevent-exdate title=md-vevent-exdate><code>exdate</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a date and time at which the event does not occur despite
-    the recurrence rules.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is either a <a href=#valid-date-string>valid date string</a> or a
-    <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-vevent-exdate><a href=#md-vevent-exdate>exdate</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-exrule title=md-vevent-exrule><code>exrule</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a rule for finding dates and times at which the event
-    does not occur despite the recurrence rules.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that matches the RECUR value type defined in the iCalendar
-    specification. <a href=#refsRFC2445>[RFC2445]</a></p>
-
-    <p>Any number of properties with the name <code title=md-vevent-exrule><a href=#md-vevent-exrule>exrule</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-rdate title=md-vevent-rdate><code>rdate</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a date and time at which the event recurs.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is one of the following:
-
-    <ul><li>A <a href=#valid-date-string>valid date string</a>.</li>
-
-     <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</li>
-
-     <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a> followed by
-     a U+002F SOLIDUS character (/) followed by a second <a href=#valid-global-date-and-time-string>valid
-     global date and time string</a> representing a later time.</li>
-
-     <li>A <a href=#valid-global-date-and-time-string>valid global date and time string</a> followed by
-     a U+002F SOLIDUS character (/) followed by a <a href=#valid-vevent-duration-string>valid vevent
-     duration string</a>.</li>
-
-    </ul><p>Any number of properties with the name <code title=md-vevent-rdate><a href=#md-vevent-rdate>rdate</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-rrule title=md-vevent-rrule><code>rrule</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a rule for finding dates and times at which the event
-    occurs.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that matches the RECUR value type defined in the iCalendar
-    specification. <a href=#refsRFC2445>[RFC2445]</a></p>
-
-    <p>Any number of properties with the name <code title=md-vevent-rrule><a href=#md-vevent-rrule>rrule</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-created title=md-vevent-created><code>created</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the date and time at which the event information was first
-    created in a calendaring system.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
-
-    <p>A single property with the name <code title=md-vevent-created><a href=#md-vevent-created>created</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <!-- DTSTAMP not included, it gets added when serialising -->
-
-
-   <dt><dfn id=md-vevent-last-modified title=md-vevent-last-modified><code>last-modified</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the date and time at which the event information was last
-    modified in a calendaring system.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is a <a href=#valid-global-date-and-time-string>valid global date and time string</a>.</p>
-
-    <p>A single property with the name <code title=md-vevent-last-modified><a href=#md-vevent-last-modified>last-modified</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-vevent-sequence title=md-vevent-sequence><code>sequence</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives a revision number for the event information.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    text that is a <a href=#valid-non-negative-integer>valid non-negative integer</a>.</p>
-
-    <p>A single property with the name <code title=md-vevent-sequence><a href=#md-vevent-sequence>sequence</a></code> may be present within
-    each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>.</p>
-
-   </dd>
-
-
-   <!-- REQUEST-STATUS not included, calendaring system interop
-   feature -->
-
-
-  </dl><p>A string is a <dfn id=valid-vevent-duration-string>valid vevent duration string</dfn> if it
-  matches the following pattern:</p>
-
-  <ol><li>A U+0050 LATIN CAPITAL LETTER P character.</li>
-
-   <li>One of the following:
-
-    <ul><li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
-     U+0057 LATIN CAPITAL LETTER W character. The integer represents
-     a duration of that number of weeks. </li>
-
-     <li> At least one, and possible both in this order, of the
-     following:
-
-      <ol><li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by a
-       U+0044 LATIN CAPITAL LETTER D character. The integer
-       represents a duration of that number of days. </li>
-
-       <li> A U+0054 LATIN CAPITAL LETTER T character followed by
-       any one of the following, or the first and second of the
-       following in that order, or the second and third of the
-       following in that order, or all three of the following in
-       this order:
-
-        <ol><li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by
-         a U+0048 LATIN CAPITAL LETTER H character. The integer
-         represents a duration of that number of hours. </li>
-
-         <li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by
-         a U+004D LATIN CAPITAL LETTER M character. The integer
-         represents a duration of that number of minutes. </li>
-
-         <li> A <a href=#valid-non-negative-integer>valid non-negative integer</a> followed by
-         a U+0053 LATIN CAPITAL LETTER S character. The integer
-         represents a duration of that number of seconds. </li>
-
-        </ol></ol></li>
-
-    </ul></li>
-
-  </ol><h5 id=examples-2><span class=secno>5.4.3.1 </span>Examples</h5>
-
-<!-- get more from http://www.ietf.org/rfc/rfc2445.txt -->
-
-  <div class=example>
-
-   <p>Here is an example of a page that uses the <code title=md-vevent><a href=#md-vevent>vevent</a></code> vocabulary to mark up an event:</p>
-
-   <pre><body item="vevent">
- ...
- <h1 itemprop="summary">Bluesday Tuesday: Money Road</h1>
- ...
- <time itemprop="dtstart" datetime="2009-05-05T19:00:00Z">May 5th @ 7pm</time>
- (until <time itemprop="dtend" datetime="2009-05-05T21:00:00Z">9pm</time>)
- ...
- <a href="http://livebrum.co.uk/2009/05/05/bluesday-tuesday-money-road"
-    rel="bookmark" itemprop="url">Link to this page</a>
- ...
- <p>Location: <span itemprop="location">The RoadHouse</span></p>
- ...
- <p><input type=button value="Add to Calendar"
-           onclick="location = getCalendar(this)"></p>
- ...
- <meta itemprop="description" content="via livebrum.co.uk">
-</body></pre>
-
-   <p>The "<code title="">getCalendar()</code>" method could look like
-   this:</p>
-
-   <pre>function getCalendar(node) {
-  while (node && !node.item.contains('vevent'))
-    node = node.parentNode;
-  if (!node) {
-    alert('No event data found.');
-    return;
-  }
-  var stamp = new Date();
-  var stampString = '' + stamp.getUTCFullYear() + (stamp.getUTCMonth() + 1) + stamp.getUTCDate() + 'T' +
-                         stamp.getUTCHours() + stamp.getUTCMinutes() + stamp.getUTCSeconds() + 'Z';
-  var calendar = 'BEGIN:VCALENDAR\r\nPRODID:HTML\r\nVERSION:2.0\r\nBEGIN:VEVENT\r\nDTSTAMP:' + stampString + '\r\n';
-  for (var propIndex = 0; propIndex < node.properties.length; propIndex += 1) {
-    var prop = node.properties[propIndex];
-    var value = prop.contents;
-    var parameters = '';
-    if (prop.localName == 'time') {
-      value = value.replace(/[:-]/g, '');
-      if (prop.date && prop.time)
-        parameters = ';VALUE=DATE';
-      else
-        parameters = ';VALUE=DATE-TIME';
-    } else {
-      value = value.replace(/\\/g, '\\n');
-      value = value.replace(/;/g, '\\;');
-      value = value.replace(/,/g, \\,');
-      value = value.replace(/\n/g, '\\n');
-    }
-    for (var nameIndex = 0; nameIndex < prop.itemprop.length; nameIndex += 1) {
-      var name = prop.itemprop[nameIndex];
-      if (!name.match(':') && !name.match('.'))
-        calendar += name.toUpperCase() + parameters + ':' + value + '\r\n';
-    }
-  }
-  calendar += 'END:VEVENT\r\nEND:VCALENDAR\r\n';
-  return 'data:text/calendar;component=vevent,' + encodeURI(calendar);
-}</pre>
-
-   <p>The same page could offer some markup, such as the following,
-   for copy-and-pasting into blogs:</p>
-
-   <pre><div item="vevent">
- <p>I'm going to
- <strong itemprop="summary">Bluesday Tuesday: Money Road</strong>,
- <time itemprop="dtstart" datetime="2009-05-05T19:00:00Z">May 5th at 7pm</time>
- to <time itemprop="dtend" content="2009-05-05T21:00:00Z">9pm</time>,
- at <span itemprop="location">The RoadHouse</span>!</p>
- <p><a href="http://livebrum.co.uk/2009/05/05/bluesday-tuesday-money-road"
-       itemprop="url">See this event on livebrum.co.uk</a>.</p>
- <meta itemprop="description" content="via livebrum.co.uk">
-</div></pre>
-
-  </div>
-
-
-
-  <h4 id=licensing-works><span class=secno>5.4.4 </span>Licensing works</h4>
-
-  <p>An item with the <a href=#predefined-type>predefined type</a> <dfn id=md-work title=md-work><code>work</code></dfn> represents a work (e.g. an
-  article, an image, a video, a song, etc). This type is primarily
-  intended to allow authors to include licensing information for
-  works.</p>
-
-  <p>The following are the type's <a href=#predefined-property-name title="predefined property
-  name">predefined property names</a>.</p>
-
-  <dl><dt><dfn id=md-work-title title=md-work-title><code>title</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the name of the work.</p>
-
-    <p>A single property with the name <code title=md-work-title><a href=#md-work-title>title</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>work</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-work-author title=md-work-author><code>author</code></dfn></dt>
-
-   <dd>
-
-    <p>Gives the name or contact information of one of the authors or
-    creators of the work.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    either an <a href=#concept-item title=concept-item>item</a> with the type
-    <code title=md-vcard><a href=#md-vcard>vcard</a></code>, or text.</p>
-
-    <p>Any number of properties with the name <code title=md-work-author><a href=#md-work-author>author</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>work</a></code>.</p>
-
-   </dd>
-
-
-   <dt><dfn id=md-work-license title=md-work-license><code>license</code></dfn></dt>
-
-   <dd>
-
-    <p>Identifies one of the licenses under which the work is
-    available.</p>
-
-    <p>The <a href=#concept-property-value title=concept-property-value>value</a> must be
-    an <a href=#absolute-url>absolute URL</a>.</p>
-
-    <p>Any number of properties with the name <code title=md-work-license><a href=#md-work-license>license</a></code> may be present within each
-    <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>work</a></code>.</p>
-
-   </dd>
-
-  </dl><p>In addition, exactly one property with the name <code title=md-about><a href=#md-about>about</a></code> must be present within each <a href=#concept-item title=concept-item>item</a> with the type <code title=md-work><a href=#md-work>work</a></code>, giving the <a href=#url>URL</a> of the
-  work.</p>
-
-
-  <h5 id=examples-3><span class=secno>5.4.4.1 </span>Examples</h5>
-
-  <div class=example>
-
-   <p>This example shows an embedded image entitled <cite>My
-   Pond</cite>, licensed under the Creative Commons Attribution-Share
-   Alike 3.0 United States License and the MIT license
-   simultaneously.</p>
-
-   <pre><figure <strong>item="work"</strong>>
- <dd><img <strong>itemprop="about"</strong> src="mypond.jpeg">
- <dt>
-  <p><cite <strong>itemprop="title"</strong>>My Pond</cite></p>
-  <p><small>Licensed under the <a <strong>itemprop="license"</strong>
-  href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative
-  Commons Attribution-Share Alike 3.0 United States License</a>
-  and the <a <strong>itemprop="license"</strong>
-  href="http://www.opensource.org/licenses/mit-license.php">MIT
-  license</a>.</small>
-</figure></pre>
-
-  </div>
-
-
-
   <div class=impl>
 
-  <h3 id=converting-html-to-other-formats><span class=secno>5.5 </span>Converting HTML to other formats</h3>
+  <h3 id=converting-html-to-other-formats><span class=secno>5.4 </span>Converting HTML to other formats</h3>
 
-  <p>In all these algorithms, except where otherwise stated,
-  operations that iterate over a series of elements (whether items,
-  properties, or otherwise) must do so in <a href=#tree-order>tree order</a>.</p>
+  
 
-  <p>A generic API upon which the vocabulary-specific conversions
-  defined below (vCard, iCalendar) can be built will need to provide
-  the following information when given a <code>Document</code> (or
-  equivalent):</p>
 
-  <ul><li><a href="#the-document's-current-address">The document's current address</a>.</li>
+  <h4 id=json><span class=secno>5.4.1 </span>JSON</h4>
 
-   <li>The <code>textContent</code> of <a href=#the-title-element>the <code>title</code>
-   element</a>, if any.</li>
-
-   <li>The list of <a href=#top-level-microdata-items>top-level microdata items</a>.</li>
-
-   <li>For each <a href=#concept-item title=concept-item>item</a>, the list of
-   properties that have that <a href=#concept-item title=concept-item>item</a> as
-   their <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-   item</a>.</li>
-
-   <li>For each property, its <a href=#property-names title="property
-   names">name</a>.</li>
-
-   <li>For each property, its <a href=#concept-property-value title=concept-property-value>value</a> (which might be a
-   further <a href=#concept-item title=concept-item>item</a>).</li>
-
-   <li>For each property, if its <a href=#concept-property-value title=concept-property-value>value</a> is not itself an <a href=#concept-item title=concept-item>item</a>, whether the element is a
-   <code><a href=#the-time-element>time</a></code> element, a <a href=#url-property-elements title="URL property
-   elements">URL property element</a>, or another element.</li>
-
-<!--(RDF only currently)
-   <li>For each property, the <span>language</span> of the element
-   that adds the property.</li>
--->
-
-  </ul><h4 id=json><span class=secno>5.5.1 </span>JSON</h4>
-
   <p>Given a list of nodes <var title="">nodes</var> in a
   <code>Document</code>, a user agent must run the following algorithm
   to <dfn id=extracting-json title="extracting JSON">extract the microdata from those
@@ -46632,17 +44839,26 @@
 
   <ol><li><p>Let <var title="">result</var> be an empty object.</li>
 
-   <li><p>Add an entry to <var title="">result</var> called "<code title="">type</code>" whose value is the <a href=#item-type>item type</a> of
-   <var title="">item</var>.</li>
+   <li><p>If the <var title="">item</var> has an <a href=#item-type>item
+   type</a>, add an entry to <var title="">result</var> called
+   "<code title="">type</code>" whose value is the <a href=#item-type>item
+   type</a> of <var title="">item</var>.</li>
 
+   <li><p>If the <var title="">item</var> has an <a href=#global-identifier>global
+   identifier</a>, add an entry to <var title="">result</var>
+   called "<code title="">id</code>" whose value is the <a href=#global-identifier>global
+   identifier</a> of <var title="">item</var>.</li>
+
    <li><p>Let <var title="">properties</var> be an empty
    object.</li>
 
    <li>
 
     <p>For each element <var title="">element</var> that has one or
-    more <a href=#property-names>property names</a> and whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-    <var title="">item</var>, run the following substeps:</p>
+    more <a href=#property-names>property names</a> and is one of <a href=#the-properties-of-an-item title="the
+    properties of an item">the properties of the item</a> <var title="">item</var>, in the order those elements are given by the
+    algorithm that returns <a href=#the-properties-of-an-item>the properties of an item</a>, run
+    the following substeps:</p>
 
     <ol><li><p>Let <var title="">value</var> be the <a href=#concept-property-value title=concept-property-value>property value</a> of <var title="">element</var>.</li>
 
@@ -46670,7 +44886,7 @@
 
    <li><p>Return <var title="">result</var>.</li>
 
-  </ol><h4 id=rdf><span class=secno>5.5.2 </span>RDF</h4>
+  </ol><h4 id=rdf><span class=secno>5.4.2 </span>RDF</h4>
 
   <p>To convert a <code>Document</code> to RDF, a user agent must run
   the following algorithm:</p>
@@ -46748,9 +44964,8 @@
 
    <li>
 
-    <p>For each <code><a href=#the-article-element>article</a></code>, <code><a href=#the-section-element>section</a></code>,
-    <code><a href=#the-blockquote-element>blockquote</a></code>, and <code><a href=#the-q-element>q</a></code> element in the
-    <code>Document</code> that has a <code title="">cite</code>
+    <p>For each <code><a href=#the-blockquote-element>blockquote</a></code> and <code><a href=#the-q-element>q</a></code> element in
+    the <code>Document</code> that has a <code title="">cite</code>
     attribute that <a href=#resolve-a-url title="resolve a url">resolves</a>
     successfully relative to the element, generate the following
     triple:</p>
@@ -46783,46 +44998,44 @@
        <dt>object    <dd> <var title="">item</var>
       </dl></li>
 
+<!--
      <li>
 
       <p>If the element is, or is a descendant of, an
-      <code><a href=#the-address-element>address</a></code> element that has no <code><a href=#the-article-element>article</a></code>
-      element ancestors, and the <a href=#concept-item title=concept-item>item</a> has the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, generate the following
+      <code>address</code> element that has no <code>article</code>
+      element ancestors, and the <span
+      title="concept-item">item</span> has the type <code
+      title="md-vcard">vcard</code>, generate the following
       triple:</p>
 
-      <dl class=triple><dt>subject   <dd> <a href="#the-document's-current-address">the document's current address</a>
+      <dl class="triple">
+       <dt>subject   <dd> <span>the document's current address</span>
        <dt>predicate <dd> <code title="">http://purl.org/dc/terms/creator</code>
        <dt>object    <dd> <var title="">item</var>
-      </dl></li>
+      </dl>
 
+     </li>
+-->
+
     </ol></li>
 
   </ol><p>When the user agent is to <dfn id=generate-the-triples-for-an-item>generate the triples for an
   item</dfn> <var title="">item</var>, it must follow the following
   steps:</p>
 
-  <ol><li><p>If of the elements whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-   <var title="">item</var>, there are any with a <a href=#property-names title="property names">property name</a> equal to the string
-   "<code title=md-about><a href=#md-about>about</a></code>", and the first such element
-   is a <a href=#url-property-elements title="URL property elements">URL property
-   element</a>, and its <a href=#concept-property-value title=concept-property-value>value</a> is not an <a href=#concept-item title=concept-item>item</a>, let <var title="">subject</var>
-   be the <a href=#concept-property-value title=concept-property-value>value</a> of that
-   property. Otherwise, let <var title="">subject</var> be a new blank
-   node.</li>
+  <ol><li><p>If <var title="">item</var> has a <a href=#global-identifier>global
+   identifier</a> and that <a href=#global-identifier>global identifier</a> is an
+   <a href=#absolute-url>absolute URL</a>, let <var title="">subject</var> be that
+   <a href=#global-identifier>global identifier</a>. Otherwise, let <var title="">subject</var> be a new blank node.</li>
 
    <li><p>Let <var title="">type</var> be the <a href=#item-type>item type</a>
    of <var title="">item</var>.</li>
 
-   <li>
+   <li><p>If <var title="">type</var> is neither the empty string nor
+   an <a href=#absolute-url>absolute URL</a>, then let <var title="">type</var> be
+   the result of concatenating the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" with the <var title="">type</var>, with any characters in <var title="">type</var> that are not valid in the <ifragment>
+   production of the IRI syntax being %-escaped.</li>
 
-    <p>If <var title="">type</var> is neither the empty string nor an
-    <a href=#absolute-url>absolute URL</a>, then let <var title="">type</var> be
-    the result of concatenating the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" with the
-    <var title="">type</var>, with any characters in <var title="">type</var> that are not valid in the <ifragment>
-    production of the IRI syntax being %-escaped.</p>
-
-   </li>
-
    <li>
 
     <p>If <var title="">type</var> is not the empty string, generate
@@ -46836,8 +45049,10 @@
    <li>
 
     <p>For each element <var title="">element</var> that has one or
-    more <a href=#property-names>property names</a> and whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-    <var title="">item</var>, run the following substeps:</p>
+    more <a href=#property-names>property names</a> and is one of <a href=#the-properties-of-an-item title="the
+    properties of an item">the properties of the item</a> <var title="">item</var>, in the order those elements are given by the
+    algorithm that returns <a href=#the-properties-of-an-item>the properties of an item</a>, run
+    the following substeps:</p>
 
     <ol><li><p>Let <var title="">value</var> be the <a href=#concept-property-value title=concept-property-value>property value</a> of <var title="">element</var>.</li>
 
@@ -46847,7 +45062,7 @@
 
      <!-- could support <time> here somehow, though we'd have to
      reserialise it, check if the <time> was valid, check if it had a
-     .date, a .time, a .timezone, etc. -->
+     date, a time, a timezone, etc. -->
 
      <li><p>Otherwise, if <var title="">element</var> is not one of
      the <a href=#url-property-elements>URL property elements</a>, let <var title="">value</var> be a plain literal, with the language
@@ -46859,22 +45074,29 @@
       <p>For each name <var title="">name</var> in <var title="">element</var>'s <a href=#property-names>property names</a>, run the
       following substeps:</p>
 
-      <ol><li><p>If <var title="">name</var> is equal to the string
-       "<code title=md-about><a href=#md-about>about</a></code>", skip this name.</li>
+      <ol><!--
+       <li><p>Otherwise, if <var title="">type</var> is <code
+       title="md-work">work</code>, and <var title="">name</var> is
+       equal to the string "<code title="md-work-title">title</code>",
+       let <var title="">name</var> be the string "<code
+       title="">http://purl.org/dc/elements/1.1/title</code>".</p></li>
 
-       <li><p>Otherwise, if <var title="">type</var> is <code title=md-work><a href=#md-work>work</a></code>, and <var title="">name</var> is
-       equal to the string "<code title=md-work-title><a href=#md-work-title>title</a></code>",
-       let <var title="">name</var> be the string "<code title="">http://purl.org/dc/elements/1.1/title</code>".</li>
+       <li><p>Otherwise, if <var title="">type</var> is <code
+       title="md-work">work</code>, and <var title="">name</var> is
+       equal to the string "<code
+       title="md-work-author">author</code>", let <var
+       title="">name</var> be the string "<code
+       title="">http://creativecommons.org/ns#attributionName</code>".</p></li>
 
-       <li><p>Otherwise, if <var title="">type</var> is <code title=md-work><a href=#md-work>work</a></code>, and <var title="">name</var> is
-       equal to the string "<code title=md-work-author><a href=#md-work-author>author</a></code>", let <var title="">name</var> be the string "<code title="">http://creativecommons.org/ns#attributionName</code>".</li>
-
-       <li><p>Otherwise, if <var title="">type</var> is <code title=md-work><a href=#md-work>work</a></code>, and <var title="">name</var> is
-       equal to the string "<code title=md-work-license><a href=#md-work-license>license</a></code>", let <var title="">name</var> be the string "<code title="">http://www.w3.org/1999/xhtml/vocab#license</code>".</li>
-
-       <li><p>Otherwise, if <var title="">name</var> is not an
-       <a href=#absolute-url>absolute URL</a>, then let <var title="">name</var> be
-       the result of concatenating the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" with <var title="">name</var>, with any characters in <var title="">name</var> that are not valid in the <ifragment>
+       <li><p>Otherwise, if <var title="">type</var> is <code
+       title="md-work">work</code>, and <var title="">name</var> is
+       equal to the string "<code
+       title="md-work-license">license</code>", let <var
+       title="">name</var> be the string "<code
+       title="">http://www.w3.org/1999/xhtml/vocab#license</code>".</p></li>
+--><li><p><!--Otherwise...--> If <var title="">name</var> is not
+       an <a href=#absolute-url>absolute URL</a>, then let <var title="">name</var>
+       be the result of concatenating the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" with <var title="">name</var>, with any characters in <var title="">name</var> that are not valid in the <ifragment>
        production of the IRI syntax being %-escaped. <a href=#refsRFC3987>[RFC3987]</a></li>
 
        <li>
@@ -46892,709 +45114,8 @@
 
    <li><p>Return <var title="">subject</var>.</li>
 
-  </ol><h4 id=vcard-0><span class=secno>5.5.3 </span>vCard</h4>
+  </ol><h4 id=atom><span class=secno>5.4.3 </span>Atom</h4>
 
-  <p>Given a list of nodes <var title="">nodes</var> in a
-  <code>Document</code>, a user agent must run the following algorithm
-  to <dfn id=extracting-a-vcard title="extracting a vCard">extract any <code title=md-vcard>vcard</code> data represented by those nodes</dfn>
-  (only the first vCard is returned):</p>
-
-  <ol><li><p>If none of the nodes in <var title="">nodes</var> are <a href=#concept-item title=concept-item>items</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, then there is no vCard. Abort the
-   algorithm, returning nothing.</li>
-
-   <li><p>Let <var title="">node</var> be the first node in <var title="">nodes</var> that is an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>.</li>
-
-   <li><p>Let <var title="">output</var> be an empty string.</li>
-
-   <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">BEGIN</code>" and the value "<code title="">VCARD</code>"
-   to <var title="">output</var>.</li>
-
-   <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">PROFILE</code>" and the value "<code title="">VCARD</code>"
-   to <var title="">output</var>.</li>
-
-   <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">VERSION</code>" and the value "<code title="">3.0</code>"
-   to <var title="">output</var>.</li>
-
-   <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">SOURCE</code>" and the result of <a href=#escaping-the-vcard-text-string>escaping the vCard
-   text string</a> that is the <a href="#the-document's-current-address">the document's current
-   address</a> as the value to <var title="">output</var>.</li>
-
-   <li><p>If <a href=#the-title-element>the <code>title</code> element</a> is not null,
-   <a href=#add-a-vcard-line>add a vCard line</a> with the type "<code title="">NAME</code>" and with the result of <a href=#escaping-the-vcard-text-string>escaping the
-   vCard text string</a> obtained from the <code>textContent</code>
-   of <a href=#the-title-element>the <code>title</code> element</a> as the value to <var title="">output</var>.</li>
-
-   <li><p>If there is a property named <code title=md-about><a href=#md-about>about</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-   <var title="">node</var> and the element of the first such property
-   is a <a href=#url-property-elements title="URL property elements">URL property
-   element</a> and has a <a href=#concept-property-value title=concept-property-value>value</a> that is not an <a href=#concept-item title=concept-item>item</a>, <a href=#add-a-vcard-line>add a vCard line</a>
-   with the type "<code title="">UID</code>" and with the result of
-   <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> that is that property's
-   <a href=#concept-property-value title=concept-property-value>value</a> as the value to
-   <var title="">output</var>.</li>
-
-   <li>
-
-    <p>For each element <var title="">element</var> that has one or
-    more <a href=#property-names>property names</a> and whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-    <var title="">node</var>: for each name <var title="">name</var>
-    in <var title="">element</var>'s <a href=#property-names>property names</a>, run
-    the following substeps:</p>
-
-    <ol><li><p>If <var title="">name</var> is equal to the string "<code title=md-about><a href=#md-about>about</a></code>", skip this name.</li>
-
-     <li><p>Let <var title="">parameters</var> be an empty set of
-     name-value pairs.</li>
-
-     <li>
-
-      <p>Run the appropriate set of substeps from the following
-      list. The steps will set a variable <var title="">value</var>,
-      which is used in the next step.</p>
-
-      <dl><dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
-       and <var title="">name</var> is <code title=md-vcard-n><a href=#md-vcard-n>n</a></code></dt>
-
-       <dd>
-
-        <ol><li><p>Let <var title="">n1</var> be the <a href=#concept-property-value title=concept-property-value>value</a> of the first
-         property named <code title=md-vcard-n-family-name><a href=#md-vcard-n-family-name>family-name</a></code> in <var title="">subitem</var>, or the empty string if there is no
-         such property or the property's value is itself an <a href=#concept-item title=concept-item>item</a>.</li>
-
-         <li><p>Let <var title="">n2</var> be the <a href=#concept-property-value title=concept-property-value>value</a> of the first
-         property named <code title=md-vcard-n-given-name><a href=#md-vcard-n-given-name>given-name</a></code> in <var title="">subitem</var>, or the empty string if there is no
-         such property or the property's value is itself an <a href=#concept-item title=concept-item>item</a>.</li>
-
-         <li><p>Let <var title="">n3</var> be the <a href=#concept-property-value title=concept-property-value>value</a> of the first
-         property named <code title=md-vcard-n-additional-name><a href=#md-vcard-n-additional-name>additional-name</a></code> in
-         <var title="">subitem</var>, or the empty string if there is
-         no such property or the property's value is itself an <a href=#concept-item title=concept-item>item</a>.</li>
-
-         <li><p>Let <var title="">n4</var> be the <a href=#concept-property-value title=concept-property-value>value</a> of the first
-         property named <code title=md-vcard-n-honorific-prefix><a href=#md-vcard-n-honorific-prefix>honorific-prefix</a></code>
-         in <var title="">subitem</var>, or the empty string if there
-         is no such property or the property's value is itself an
-         <a href=#concept-item title=concept-item>item</a>.</li>
-
-         <li><p>Let <var title="">n5</var> be the <a href=#concept-property-value title=concept-property-value>value</a> of the first
-         property named <code title=md-vcard-n-honorific-suffix><a href=#md-vcard-n-honorific-suffix>honorific-suffix</a></code>
-         in <var title="">subitem</var>, or the empty string if there
-         is no such property or the property's value is itself an
-         <a href=#concept-item title=concept-item>item</a>.</li>
-
-         <li>
-
-          <p>Let <var title="">value</var> be the concatenation of the
-          following, in this order:</p>
-
-          <ol class=brief><li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">n1</var></li>
-           <li>A U+003B SEMICOLON character (;)</li>
-           <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">n2</var></li>
-           <li>A U+003B SEMICOLON character (;)</li>
-           <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">n3</var></li>
-           <li>A U+003B SEMICOLON character (;)</li>
-           <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">n4</var></li>
-           <li>A U+003B SEMICOLON character (;)</li>
-           <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">n5</var></li>
-          </ol></li>
-
-        </ol></dd>
-
-       <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
-       and <var title="">name</var> is <code title=md-vcard-adr><a href=#md-vcard-adr>adr</a></code></dt>
-
-       <dd>
-
-        <ol><li><p>Let <var title="">value</var> be the empty
-         string.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-vcard-subproperties>collecting vCard subproperties</a> named <code title=md-vcard-adr-post-office-box><a href=#md-vcard-adr-post-office-box>post-office-box</a></code>
-         in <var title="">subitem</var>.</p>
-
-         <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-vcard-subproperties>collecting vCard subproperties</a> named <code title=md-vcard-adr-extended-address><a href=#md-vcard-adr-extended-address>extended-address</a></code>
-         in <var title="">subitem</var>.</p>
-
-         <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-vcard-subproperties>collecting vCard subproperties</a> named <code title=md-vcard-adr-street-address><a href=#md-vcard-adr-street-address>street-address</a></code> in
-         <var title="">subitem</var>.</p>
-
-         <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
-         <code title=md-vcard-adr-locality><a href=#md-vcard-adr-locality>locality</a></code> in <var title="">subitem</var>.</p>
-
-         <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
-         <code title=md-vcard-adr-region><a href=#md-vcard-adr-region>region</a></code> in <var title="">subitem</var>.</p>
-
-         <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
-         <code title=md-vcard-adr-postal-code><a href=#md-vcard-adr-postal-code>postal-code</a></code> in
-         <var title="">subitem</var>.</p>
-
-         <li>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
-         <code title=md-vcard-adr-country-name><a href=#md-vcard-adr-country-name>country-name</a></code>
-         in <var title="">subitem</var>.</p>
-
-         <li><p>If there is a property named <code title=md-vcard-adr-type><a href=#md-vcard-adr-type>type</a></code> in <var title="">subitem</var>, and the first such property has a
-         <a href=#concept-property-value title=concept-property-value>value</a> that is not
-         an <a href=#concept-item title=concept-item>item</a> and whose value
-         consists only of <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
-         then add a parameter named "<code title="">TYPE</code>" whose
-         value is the <a href=#concept-property-value title=concept-property-value>value</a> of that property
-         to <var title="">parameters</var>.</li>
-
-        </ol></dd>
-
-       <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
-       and <var title="">name</var> is <code title=md-vcard-org><a href=#md-vcard-org>org</a></code></dt>
-
-       <dd>
-
-        <ol><li><p>Let <var title="">value</var> be the empty
-         string.</li>
-
-         <li><p>Append to <var title="">value</var> the result of
-         <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
-         <code title=md-vcard-org-organization-name><a href=#md-vcard-org-organization-name>organization-name</a></code>
-         in <var title="">subitem</var>.</p>
-
-         <li>
-
-          <p>For each property named <code title=md-vcard-org-organization-unit><a href=#md-vcard-org-organization-unit>organization-unit</a></code>
-          in <var title="">subitem</var>, run the following steps:</p>
-
-          <ol><li><p>If the <a href=#concept-property-value title=concept-property-value>value</a> of the property
-           is an <a href=#concept-item title=concept-item>item</a>, then skip
-           this property.</li>
-
-           <li><p>Append a U+003B SEMICOLON character (;) to <var title="">value</var>.</li>
-
-           <li><p>Append the result of <a href=#escaping-the-vcard-text-string>escaping the vCard text
-           string</a> given by the <a href=#concept-property-value title=concept-property-value>value</a> of the property
-           to <var title="">value</var>.</li>
-
-          </ol></li>
-
-        </ol></dd>
-
-       <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> <var title="">subitem</var>
-       with the type <code title=md-vcard><a href=#md-vcard>vcard</a></code> and <var title="">name</var> is <code title=md-vcard-agent><a href=#md-vcard-agent>agent</a></code></dt>
-
-       <dd>
-
-        <ol><li><p>Let <var title="">value</var> be the result of
-         <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> obtained from
-         <a href=#extracting-a-vcard>extracting a vCard</a> from the element that
-         represents <var title="">subitem</var>.</li>
-
-         <li><p>Add a parameter named "<code title="">VALUE</code>"
-         whose value is "<code title="">VCARD</code>" to <var title="">parameters</var>.</li>
-
-        </ol></dd>
-
-       <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a> and <var title="">name</var>
-       is none of the above</dt>
-
-       <dd>
-
-        <ol><li><p>Let <var title="">value</var> the result of
-         <a href=#collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</a> named
-         <code title="">value</code> in <var title="">subitem</var>.</p>
-
-         <li><p>If there is a property named <code title="">type</code> in <var title="">subitem</var>, and the
-         first such property has a <a href=#concept-property-value title=concept-property-value>value</a> that is not an
-         <a href=#concept-item title=concept-item>item</a> and whose value
-         consists only of <a href=#alphanumeric-ascii-characters>alphanumeric ASCII characters</a>,
-         then add a parameter named "<code title="">TYPE</code>" whose
-         value is the <a href=#concept-property-value title=concept-property-value>value</a> of that property
-         to <var title="">parameters</var>.</li>
-
-        </ol></dd>
-
-       <dt>Otherwise (the property's <a href=#concept-property-value title=concept-property-value>value</a> is not an <a href=#concept-item title=concept-item>item</a>)</dt>
-
-       <dd>
-
-        <ol><li><p>Let <var title="">value</var> be the property's <a href=#concept-property-value title=concept-property-value>value</a>.</li>
-
-         <li><p>If <var title="">element</var> is one of the <a href=#url-property-elements>URL
-         property elements</a>, add a parameter with the name "<code title="">VALUE</code>" and the value "<code title="">URI</code>" to <var title="">parameters</var>.</li>
-
-         <li><p>Otherwise, if <var title="">element</var> is a
-         <code><a href=#the-time-element>time</a></code> element and the <var title="">value</var> is
-         a <a href=#valid-date-string>valid date string</a>, add a parameter with the name
-         "<code title="">VALUE</code>" and the value "<code title="">DATE</code>" to <var title="">parameters</var>.</li>
-
-         <li><p>Otherwise, if <var title="">element</var> is a
-         <code><a href=#the-time-element>time</a></code> element and the <var title="">value</var> is
-         a <a href=#valid-global-date-and-time-string>valid global date and time string</a>, add a
-         parameter with the name "<code title="">VALUE</code>" and the
-         value "<code title="">DATE-TIME</code>" to <var title="">parameters</var>.</li>
-
-         <li><p>Prefix every U+005C REVERSE SOLIDUS character (\) in
-         <var title="">value</var> with another U+005C REVERSE SOLIDUS
-         character (\).</li>
-
-         <li><p>Prefix every U+002C COMMA character (,) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
-         (\).</li>
-
-         <li><p>Unless <var title="">name</var> is <code title=md-vcard-geo><a href=#md-vcard-geo>geo</a></code>, prefix every U+003B SEMICOLON
-         character (;) in <var title="">value</var> with a U+005C
-         REVERSE SOLIDUS character (\).</li>
-
-         <li><p>Replace every U+000D CARRIAGE RETURN U+000A LINE FEED
-         character pair (CRLF) in <var title="">value</var> with a U+005C REVERSE
-         SOLIDUS character (\) followed by a U+006E LATIN SMALL LETTER
-         N.</li>
-
-         <li><p>Replace every remaining U+000D CARRIAGE RETURN (CR) or
-         U+000A LINE FEED (LF) character in <var title="">value</var>
-         with a U+005C REVERSE SOLIDUS character (\) followed by a U+006E
-         LATIN SMALL LETTER N.</li>
-
-        </ol></dd>
-
-      </dl></li>
-
-     <li>
-
-      <p><a href=#add-a-vcard-line>Add a vCard line</a> with the type <var title="">name</var>, the parameters <var title="">parameters</var>, and the value <var title="">value</var> to <var title="">output</var>.</p>
-
-     </li>
-
-    </ol></li>
-
-   <li>
-
-    <p>If there is no property named <code title=md-vcard-n><a href=#md-vcard-n>n</a></code>
-    whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-    item</a> is <var title="">node</var>, then run the following
-    substeps:</p>
-
-    <ol><li><p>If there is no property named <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-     <var title="">node</var>, then skip the remainder of these
-     substeps.</li>
-
-     <li><p>If the first property named <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-     <var title="">node</var> has a <a href=#concept-property-value title=concept-property-value>value</a> that is an <a href=#concept-item title=concept-item>item</a>, then skip the remainder of
-     these substeps.</li>
-
-     <li><p>Let <var title="">fn</var> be the <a href=#concept-property-value title=concept-property-value>value</a> of the first property
-     named <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-     <var title="">node</var>.</li>
-
-     <li><p>If there is a property named <code title=md-vcard-org><a href=#md-vcard-org>org</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-     <var title="">node</var>, and the <a href=#concept-property-value title=concept-property-value>value</a> of the first such
-     property is equal to <var title="">fn</var> (and is not an <a href=#concept-item title=concept-item>item</a>), then <a href=#add-a-vcard-line>add a vCard
-     line</a> with the type "<code title="">N</code>" whose value
-     is four U+003B SEMICOLON characters ("<code title="">;;;;</code>") to <var title="">output</var>. Then, skip
-     the remainder of these substeps.</li>
-
-     <li><p>If the <a href=#space-character title="space character">space
-     characters</a> in <var title="">fn</var>, if any, are not all
-     contiguous, then skip the remainder of these substeps.</li>
-
-     <li><p><a href=#split-a-string-on-spaces title="split a string on spaces">Split <var title="">fn</var> on spaces</a>, and let <var title="">part
-     one</var> be the first resulting token, and <var title="">part
-     two</var> be the second, if any, or the empty string if there is
-     no second token. (There cannot be three, given the previous
-     step.)</li>
-
-     <li>
-
-      <p>If the last character of <var title="">part one</var> is a
-      U+002C COMMA character (,), then remove that character from <var title="">part one</var> and <a href=#add-a-vcard-line>add a vCard line</a> with
-      the type "<code title="">N</code>" whose value is the
-      concatenation of the following strings:</p>
-
-      <ol class=brief><li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part one</var></li>
-       <li>A U+003B SEMICOLON character (;)</li>
-       <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part two</var></li>
-       <li>Three U+003B SEMICOLON characters (;)</li>
-      </ol><p>Then, skip the remainder of these substeps.</p>
-
-     </li>
-
-     <li>
-
-      <p>If <var title="">part two</var> is two Unicode code-points
-      long and its second character is a U+002E FULL STOP character
-      (.), then <a href=#add-a-vcard-line>add a vCard line</a> with the type "<code title="">N</code>" whose value is the concatenation of the
-      following strings:</p>
-
-      <ol class=brief><li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part one</var></li>
-       <li>A U+003B SEMICOLON character (;)</li>
-       <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> consisting of the first character of <var title="">part two</var></li>
-       <li>Three U+003B SEMICOLON characters (;)</li>
-      </ol><p>Then, skip the remainder of these substeps.</p>
-
-     </li>
-
-     <li>
-
-      <p>If <var title="">part two</var> is one Unicode code-point
-      long, then <a href=#add-a-vcard-line>add a vCard line</a> with the type "<code title="">N</code>" whose value is the concatenation of the
-      following strings:</p>
-
-      <ol class=brief><li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part one</var></li>
-       <li>A U+003B SEMICOLON character (;)</li>
-       <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part two</var></li>
-       <li>Three U+003B SEMICOLON characters (;)</li>
-      </ol><p>Then, skip the remainder of these substeps.</p>
-
-     </li>
-
-     <li>
-
-      <p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">N</code>" whose value is the concatenation of the
-      following strings:</p>
-
-      <ol class=brief><li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part two</var></li>
-       <li>A U+003B SEMICOLON character (;)</li>
-       <li>The result of <a href=#escaping-the-vcard-text-string>escaping the vCard text string</a> <var title="">part one</var></li>
-       <li>Three U+003B SEMICOLON characters (;)</li>
-      </ol></li>
-
-    </ol></li>
-
-   <li><p><a href=#add-a-vcard-line>Add a vCard line</a> with the type "<code title="">END</code>" and the value "<code title="">VCARD</code>"
-   to <var title="">output</var>.</li>
-
-  </ol><p>When the above algorithm says that the user agent is to <dfn id=add-a-vcard-line>add
-  a vCard line</dfn> consisting of a type <var title="">type</var>,
-  optionally some parameters, and a value <var title="">value</var> to
-  a string <var title="">output</var>, it must run the following
-  steps:</p>
-
-  <ol><li><p>Let <var title="">line</var> be an empty string.
-
-   <li><p>Append <var title="">type</var>, <a href=#converted-to-ascii-uppercase>converted to
-   ASCII uppercase</a>, to <var title="">line</var>.</li>
-
-   <li>
-
-    <p>If there are any parameters, then for each parameter, in the
-    order that they were added, run these substeps:</p>
-
-    <ol><li><p>Append a U+003B SEMICOLON character (;) to <var title="">line</var>.</li>
-
-     <li><p>Append the parameter's name to <var title="">line</var>.</li>
-
-     <li><p>Append a U+003D EQUALS SIGN character (=) to <var title="">line</var>.</li>
-
-     <li><p>Append the parameter's value to <var title="">line</var>.</li>
-
-    </ol></li>
-
-   <li><p>Append a U+003A COLON character (:) to <var title="">line</var>.</li>
-
-   <li><p>Append <var title="">value</var> to <var title="">line</var>.</li>
-
-   <li><p>Let <var title="">maximum length</var> be 75.</li>
-
-   <li>
-
-    <p>If and while <var title="">line</var> is longer than <var title="">maximum length</var> Unicode code points long, run the
-    following substeps:</p>
-
-    <ol><li><p>Append the first <var title="">maximum length</var>
-     Unicode code points of <var title="">line</var> to <var title="">output</var>.</li>
-
-     <li><p>Remove the first <var title="">maximum length</var>
-     Unicode code points from <var title="">line</var>.</li>
-
-     <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
-
-     <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
-
-     <li><p>Append a U+0020 SPACE character to <var title="">output</var>.</li>
-
-     <li><p>Let <var title="">maximum length</var> be 74.</li>
-
-    </ol></li>
-
-   <li><p>Append (what remains of) <var title="">line</var> to <var title="">output</var>.</li>
-
-   <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
-
-   <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
-
-  </ol><p>When the steps above require the user agent to obtain the result
-  of <dfn id=collecting-vcard-subproperties>collecting vCard subproperties</dfn> named <var title="">subname</var> in <var title="">subitem</var>, the user
-  agent must run the following steps:</p>
-
-  <ol><li><p>Let <var title="">value</var> be the empty string.</li>
-
-   <li>
-
-    <p>For each property named <var title="">subname</var> in the item
-    <var title="">subitem</var>, run the following substeps:</p>
-
-    <ol><li><p>If the <a href=#concept-property-value title=concept-property-value>value</a>
-     of the property is itself an <a href=#concept-item title=concept-item>item</a>, then skip this
-     property.</li>
-
-     <li><p>If this is not the first property named <var title="">subname</var> in <var title="">subitem</var> (ignoring
-     any that were skipped by the previous step), then append a U+002C
-     COMMA character (,) to <var title="">value</var>.</li>
-
-     <li><p>Append the result of <a href=#escaping-the-vcard-text-string>escaping the vCard text
-     string</a> given by the <a href=#concept-property-value title=concept-property-value>value</a> of the property to
-     <var title="">value</var>.</li>
-
-    </ol></li>
-
-   <li><p>Return <var title="">value</var>.</li>
-
-  </ol><p>When the steps above require the user agent to obtain the result
-  of <dfn id=collecting-the-first-vcard-subproperty>collecting the first vCard subproperty</dfn> named <var title="">subname</var> in <var title="">subitem</var>, the user
-  agent must run the following steps:</p>
-
-  <ol><li><p>If there are no properties named <var title="">subname</var>
-   in <var title="">subitem</var>, then abort these substeps,
-   returning the empty string.</li>
-
-   <li><p>If the <a href=#concept-property-value title=concept-property-value>value</a> of
-   the first property named <var title="">subname</var> in <var title="">subitem</var> is an <a href=#concept-item title=concept-item>item</a>, then abort these substeps,
-   returning the empty string.</li>
-
-   <li><p>Return the result of <a href=#escaping-the-vcard-text-string>escaping the vCard text
-   string</a> given by the <a href=#concept-property-value title=concept-property-value>value</a> of the first property
-   named <var title="">subname</var> in <var title="">subitem</var>.</li>
-
-  </ol><p>When the above algorithms say the user agent is to <dfn id=escaping-the-vcard-text-string title="escaping the vCard text string">escape the vCard text
-  string</dfn> <var title="">value</var>, the user agent must use the
-  following steps:</p>
-
-  <ol><li><p>Prefix every U+005C REVERSE SOLIDUS character (\) in <var title="">value</var> with another U+005C REVERSE SOLIDUS character
-   (\).</li>
-
-   <li><p>Prefix every U+002C COMMA character (,) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
-   (\).</li>
-
-   <li><p>Prefix every U+003B SEMICOLON character (;) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
-   (\).</li>
-
-   <li><p>Replace every U+000D CARRIAGE RETURN U+000A LINE FEED
-   character pair (CRLF) in <var title="">value</var> with a U+005C
-   REVERSE SOLIDUS character (\) followed by a U+006E LATIN SMALL
-   LETTER N.</li>
-
-   <li><p>Replace every remaining U+000D CARRIAGE RETURN (CR) or
-   U+000A LINE FEED (LF) character in <var title="">value</var> with a
-   U+005C REVERSE SOLIDUS character (\) followed by a U+006E LATIN
-   SMALL LETTER N.</li>
-
-   <li><p>Return the mutated <var title="">value</var>.</li>
-
-  </ol><p class=note>This algorithm can generate invalid vCard output, if
-  the input does not conform to the rules described for the <code title=md-vcard><a href=#md-vcard>vcard</a></code> <a href=#predefined-type>predefined type</a> and <a href=#predefined-property-name title="predefined property name">predefined property
-  names</a>.</p> <!-- of course since vcard doesn't define error
-  handling, this is somewhat problematic. -->
-
-
-  <h4 id=icalendar><span class=secno>5.5.4 </span>iCalendar</h4>
-
-  <p>Given a list of nodes <var title="">nodes</var> in a
-  <code>Document</code>, a user agent must run the following algorithm
-  to <dfn id=extracting-vevent-data title="extracting vEvent data">extract any <code title=md-vevent>vevent</code> data represented by those
-  nodes</dfn>:</p>
-
-  <ol><li><p>If none of the nodes in <var title="">nodes</var> are <a href=#concept-item title=concept-item>items</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>, then there is no vEvent
-   data. Abort the algorithm, returning nothing.</li>
-
-   <li><p>Let <var title="">output</var> be an empty string.</li>
-
-   <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">BEGIN</code>" and the value "<code title="">VCALENDAR</code>"
-   to <var title="">output</var>.</li>
-
-   <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">PRODID</code>" and the value equal to a
-   user-agent-specific string representing the user agent to <var title="">output</var>.</li>
-
-   <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">VERSION</code>" and the value "<code title="">2.0</code>"
-   to <var title="">output</var>.</li>
-
-   <li>
-
-    <p>For each node <var title="">node</var> in <var title="">nodes</var> that is an <a href=#concept-item title=concept-item>item</a> with the type <code title=md-vevent><a href=#md-vevent>vevent</a></code>, run the following steps:</p>
-
-    <ol><li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">BEGIN</code>" and the value "<code title="">VEVENT</code>"
-     to <var title="">output</var>.</li>
-
-     <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">DTSTAMP</code>" and a value consisting of an iCalendar
-     DATE-TIME string representing the current date and time, with the
-     annotation "<code title="">VALUE=DATE-TIME</code>", to <var title="">output</var>.  <a href=#refsRFC2445>[RFC2445]</a></li>
-
-     <li><p>If there is a property named <code title=md-about><a href=#md-about>about</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-     <var title="">node</var> and the element of the first such property
-     is a <a href=#url-property-elements title="URL property elements">URL property
-     element</a> and has a <a href=#concept-property-value title=concept-property-value>value</a> that is not an <a href=#concept-item title=concept-item>item</a>, <a href=#add-an-icalendar-line>add an iCalendar line</a>
-     with the type "<code title="">UID</code>" and that property's
-     <a href=#concept-property-value title=concept-property-value>value</a> as the value to
-     <var title="">output</var>.</li>
-
-     <li>
-
-      <p>For each element <var title="">element</var> that has one or
-      more <a href=#property-names>property names</a> and whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-      <var title="">node</var>: for each name <var title="">name</var>
-      in <var title="">element</var>'s <a href=#property-names>property names</a>, run
-      the appropriate set of substeps from the following list:</p>
-
-      <dl><dt>If <var title="">name</var> is equal to the string "<code title=md-about><a href=#md-about>about</a></code>"</dt>
-
-       <dt>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is an <a href=#concept-item title=concept-item>item</a></dt>
-
-       <dd>
-
-        <p>Skip the property.</p>
-
-       </dd>
-
-
-       <dt>If <var title="">element</var> is a <code><a href=#the-time-element>time</a></code>
-       element</dt>
-
-       <dd>
-
-        <p>Let <var title="">value</var> be the result of stripping
-        all U+002D HYPHEN-MINUS (-) and U+003A COLON (:) characters
-        from the property's <a href=#concept-property-value title=concept-property-value>value</a>.</p>
-
-        <p>If the property's <a href=#concept-property-value title=concept-property-value>value</a> is a <a href=#valid-date-string>valid
-        date string</a> then <a href=#add-an-icalendar-line>add an iCalendar line</a>
-        with the type <var title="">name</var> and the value <var title="">value</var> to <var title="">output</var>, with the
-        annotation "<code title="">VALUE=DATE</code>".</p>
-
-        <p>Otherwise, if the property's <a href=#concept-property-value title=concept-property-value>value</a> is a <a href=#valid-global-date-and-time-string>valid
-        global date and time string</a> then <a href=#add-an-icalendar-line>add an iCalendar
-        line</a> with the type <var title="">name</var> and the
-        value <var title="">value</var> to <var title="">output</var>,
-        with the annotation "<code title="">VALUE=DATE-TIME</code>".</p>
-
-        <p>Otherwise skip the property.</p>
-
-       </dd>
-
-
-       <dt>Otherwise</dt>
-
-       <dd>
-
-        <p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type <var title="">name</var> and the value <var title="">value</var> to
-        <var title="">output</var>.</p>
-
-       </dd>
-
-      </dl></li>
-
-     <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">END</code>" and the value "<code title="">VEVENT</code>"
-     to <var title="">output</var>.</li>
-
-    </ol></li>
-
-   <li><p><a href=#add-an-icalendar-line>Add an iCalendar line</a> with the type "<code title="">END</code>" and the value "<code title="">VCALENDAR</code>" to <var title="">output</var>.</li>
-
-  </ol><p>When the above algorithm says that the user agent is to <dfn id=add-an-icalendar-line>add
-  an iCalendar line</dfn> consisting of a type <var title="">type</var>, a value <var title="">value</var>, and
-  optionally an annotation, to a string <var title="">output</var>, it
-  must run the following steps:</p>
-
-  <ol><li><p>Let <var title="">line</var> be an empty string.</li>
-
-   <li><p>Append <var title="">type</var>, <a href=#converted-to-ascii-uppercase>converted to
-   ASCII uppercase</a>, to <var title="">line</var>.</li>
-
-   <li>
-
-    <p>If there is an annotation:</p>
-
-    <ol><li><p>Append a U+003B SEMICOLON character (;) to <var title="">line</var>.</li>
-
-     <li><p>Append the annotation to <var title="">line</var>.</li>
-
-    </ol></li>
-
-   <li><p>Append a U+003A COLON character (:) to <var title="">line</var>.</li>
-
-   <li><p>Prefix every U+005C REVERSE SOLIDUS character (\) in
-   <var title="">value</var> with another U+005C REVERSE SOLIDUS
-   character (\).</li>
-
-   <li><p>Prefix every U+002C COMMA character (,) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
-   (\).</li>
-
-   <li><p>Prefix every U+003B SEMICOLON character (;) in <var title="">value</var> with a U+005C REVERSE SOLIDUS character
-   (\).</li>
-
-   <li><p>Replace every U+000D CARRIAGE RETURN U+000A LINE FEED
-   character pair (CRLF) in <var title="">value</var> with a
-   U+005C REVERSE SOLIDUS character (\) followed by a U+006E
-   LATIN SMALL LETTER N.</li>
-
-   <li><p>Replace every remaining U+000D CARRIAGE RETURN (CR) or
-   U+000A LINE FEED (LF) character in <var title="">value</var>
-   with a U+005C REVERSE SOLIDUS character (\) followed by a
-   U+006E LATIN SMALL LETTER N.</li>
-
-   <li><p>Append <var title="">value</var> to <var title="">line</var>.</li>
-
-   <li><p>Let <var title="">maximum length</var> be 75.</li>
-
-   <li>
-
-    <p>If and while <var title="">line</var> is longer than <var title="">maximum length</var> Unicode code points long, run the
-    following substeps:</p>
-
-    <ol><li><p>Append the first <var title="">maximum length</var>
-     Unicode code points of <var title="">line</var> to <var title="">output</var>.</li>
-
-     <li><p>Remove the first <var title="">maximum length</var>
-     Unicode code points from <var title="">line</var>.</li>
-
-     <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
-
-     <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
-
-     <li><p>Append a U+0020 SPACE character to <var title="">output</var>.</li>
-
-     <li><p>Let <var title="">maximum length</var> be 74.</li>
-
-    </ol></li>
-
-   <li><p>Append (what remains of) <var title="">line</var> to <var title="">output</var>.</li>
-
-   <li><p>Append a U+000D CARRIAGE RETURN character (CR) to <var title="">output</var>.</li>
-
-   <li><p>Append a U+000A LINE FEED character (LF) to <var title="">output</var>.</li>
-
-  </ol><p class=note>This algorithm can generate invalid iCalendar
-  output, if the input does not conform to the rules described for the
-  <code title=md-vevent><a href=#md-vevent>vevent</a></code> <a href=#predefined-type>predefined type</a>
-  and <a href=#predefined-property-name title="predefined property name">predefined property
-  names</a>.</p> <!-- of course since icalendar doesn't define
-  error handling, this is somewhat problematic. -->
-
-
-
-
-  <h4 id=atom><span class=secno>5.5.5 </span>Atom</h4>
-
   <p>Given a <code>Document</code> <var title="">source</var>, a user
   agent must run the following algorithm to <dfn id=extracting-atom title="extracting
   Atom">extract an Atom feed</dfn>:</p>
@@ -47611,17 +45132,28 @@
    <li><p>Append a <code title="">feed</code> element in the
    <a href=#atom-namespace>Atom namespace</a> to <var title="">R</var>.</li>
 
+<!--
    <li>
 
     <p>For each element <var title="">candidate</var> that is, or is a
-    descendant of, an <code><a href=#the-address-element>address</a></code> element that has no
-    <code><a href=#the-article-element>article</a></code> element ancestors, and that is an <a href=#concept-item title=concept-item>item</a> that has the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, if there is a property <var title="">property</var> named <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code>
-    whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding
-    item</a> is <var title="">candidate</var>, and the <a href=#concept-property-value title=concept-property-value>value</a> of <var title="">property</var> is not an <a href=#concept-item title=concept-item>item</a>, then append an <code title="">author</code> element in the <a href=#atom-namespace>Atom namespace</a>
+    descendant of, an <code>address</code> element that has no
+    <code>article</code> element ancestors, and that is an <span
+    title="concept-item">item</span> that has the type <code
+    title="md-vcard">vcard</code>, if there is a property <var
+    title="">property</var> named <code title="md-vcard-fn">fn</code>
+    whose <span title="concept-item-corresponding">corresponding
+    item</span> is <var title="">candidate</var>, and the <span
+    title="concept-property-value">value</span> of <var
+    title="">property</var> is not an <span
+    title="concept-item">item</span>, then append an <code
+    title="">author</code> element in the <span>Atom namespace</span>
     to the root element of <var title="">R</var> whose contents is a
-    text node with its data set to the <a href=#concept-property-value title=concept-property-value>value</a> of <var title="">property</var>.</p>
+    text node with its data set to the <span
+    title="concept-property-value">value</span> of <var
+    title="">property</var>.</p>
 
    </li>
+-->
 
    <li>
 
@@ -47819,16 +45351,30 @@
 
      </li>
 
+<!--
      <li>
 
       <p>For each element <var title="">candidate</var> that is, or is
-      a descendant of, an <code><a href=#the-address-element>address</a></code> element whose nearest
-      <code><a href=#the-article-element>article</a></code> element ancestor is <var title="">article</var>, and that is an <a href=#concept-item title=concept-item>item</a> that has the type <code title=md-vcard><a href=#md-vcard>vcard</a></code>, if there is a property <var title="">property</var> named <code title=md-vcard-fn><a href=#md-vcard-fn>fn</a></code> whose <a href=#concept-item-corresponding title=concept-item-corresponding>corresponding item</a> is
-      <var title="">candidate</var>, and the <a href=#concept-property-value title=concept-property-value>value</a> of <var title="">property</var> is not an <a href=#concept-item title=concept-item>item</a>, then append an <code title="">author</code> element in the <a href=#atom-namespace>Atom
-      namespace</a> to <var title="">E</var> whose contents is a
-      text node with its data set to the <a href=#concept-property-value title=concept-property-value>value</a> of <var title="">property</var>.</p>
+      a descendant of, an <code>address</code> element whose nearest
+      <code>article</code> element ancestor is <var
+      title="">article</var>, and that is an <span
+      title="concept-item">item</span> that has the type <code
+      title="md-vcard">vcard</code>, if there is a property <var
+      title="">property</var> named <code
+      title="md-vcard-fn">fn</code> whose <span
+      title="concept-item-corresponding">corresponding item</span> is
+      <var title="">candidate</var>, and the <span
+      title="concept-property-value">value</span> of <var
+      title="">property</var> is not an <span
+      title="concept-item">item</span>, then append an <code
+      title="">author</code> element in the <span>Atom
+      namespace</span> to <var title="">E</var> whose contents is a
+      text node with its data set to the <span
+      title="concept-property-value">value</span> of <var
+      title="">property</var>.</p>
 
      </li>
+-->
 
      <li>
 
@@ -59283,26 +56829,30 @@
 
    </li>
 
+<!-- v2: deal with multiple vCards -->
+<!--
    <li>
 
-    <p>The user agent must take the <a href=#list-of-dragged-nodes>list of dragged nodes</a>
-    and <a href=#extracting-a-vcard title="extracting a vCard">extract the vCard data from
-    those nodes</a>, and then must add the resulting string to the
-    <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code>
-    member, associated with the <code title="">text/directory;profile=vcard</code> format.</p>
-    <!-- v2: deal with multiple vCards -->
+    <p>The user agent must take the <span>list of dragged nodes</span>
+    and <span title="extracting a vCard">extract the vCard data from
+    those nodes</span>, and then must add the resulting string to the
+    <code title="dom-DragEvent-dataTransfer">dataTransfer</code>
+    member, associated with the <code
+    title="">text/directory;profile=vcard</code> format.</p>
 
    </li>
 
    <li>
 
-    <p>The user agent must take the <a href=#list-of-dragged-nodes>list of dragged nodes</a>
-    and <a href=#extracting-vevent-data title="extracting vEvent data">extract the vEvent data
-    from those nodes</a>, and then must add the resulting string to
-    the <code title=dom-DragEvent-dataTransfer><a href=#dom-dragevent-datatransfer>dataTransfer</a></code>
-    member, associated with the <code title="">text/calendar;component=vevent</code> format.</p>
+    <p>The user agent must take the <span>list of dragged nodes</span>
+    and <span title="extracting vEvent data">extract the vEvent data
+    from those nodes</span>, and then must add the resulting string to
+    the <code title="dom-DragEvent-dataTransfer">dataTransfer</code>
+    member, associated with the <code
+    title="">text/calendar;component=vevent</code> format.</p>
 
    </li>
+-->
 
    <!-- v2: text/html -->
 
@@ -76147,11 +73697,6 @@
    Model (DOM) Level 2 Views Specification</a></cite>, A. Le Hors, L.
    Cable. W3C, November 2000.</dd>
 
-   <dt id=refsE163>[E163]</dt>
-   <dd><cite>Recommendation E.163 — Numbering Plan for The International
-   Telephone Service</cite>, CCITT Blue Book, Fascicle II.2, pp. 128-134, November
-   1988.</dd>
-
    <dt id=refsECMA262>[ECMA262]</dt>
    <dd><cite><a href=http://www.ecma-international.org/publications/standards/Ecma-262.htm>ECMAScript
    Language Specification</a></cite>. ECMA, December 1999.</dd>
@@ -76371,15 +73916,6 @@
    <dd><cite><a href=http://www.ietf.org/rfc/rfc2388.txt>Returning Values from
    Forms: multipart/form-data</a></cite>, L. Masinter. IETF, August 1998.</dd>
 
-   <dt id=refsRFC2426>[RFC2426]</dt>
-   <dd><cite><a href=http://www.ietf.org/rfc/rfc2426.txt>vCard MIME Directory
-   Profile</a></cite>, F. Dawson, T. Howes. IETF, September 1998.</dd>
-
-   <dt id=refsRFC2445>[RFC2445]</dt>
-   <dd><cite><a href=http://www.ietf.org/rfc/rfc2445.txt>Internet Calendaring
-   and Scheduling Core Object Specification (iCalendar)</a></cite>, F. Dawson, D.
-   Stenerson. IETF, November 1998.</dd>
-
    <dt id=refsRFC2483>[RFC2483]</dt>
    <dd><cite><a href=http://www.ietf.org/rfc/rfc2483.txt>URI Resolution
    Services Necessary for URN Resolution</a></cite>, M. Mealling, R. Daniel.
@@ -76433,11 +73969,6 @@
    <dd>(Non-normative) <cite><a href=http://www.ietf.org/rfc/rfc4329.txt>Scripting Media
    Types</a></cite>, B. Höhrmann. IETF, April 2006.</dd>
 
-   <dt id=refsRFC4770>[RFC4770]</dt>
-   <dd><cite><a href=http://www.ietf.org/rfc/rfc4770.txt>vCard Extensions for
-   Instant Messaging (IM)</a></cite>, C. Jennings, J. Reschke. IETF,
-   January 2007.</dd>
-
    <dt id=refsRFC5280>[RFC5280]</dt>
    <dd><cite><a href=http://www.ietf.org/rfc/rfc5280.txt>Internet
    X.509 Public Key Infrastructure Certificate and Certificate
@@ -76568,11 +74099,6 @@
    <dt id=refsWIN949>[WIN949]</dt>
    <dd><cite><a href=http://www.microsoft.com/globaldev/reference/dbcs/949.mspx>Windows Codepage 949</a></cite>. Microsoft.</dd>
 
-   <dt id=refsX121>[X121]</dt>
-   <dd><cite>Recommendation X.121 — International Numbering Plan for
-   Public Data Networks</cite>, CCITT Blue Book, Fascicle VIII.3,
-   pp. 317-332, November 1988.</dd>
-
    <dt id=refsX690>[X690]</dt>
    <dd><cite><a href=http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf>Recommendation
    X.690 — Information Technology — ASN.1 Encoding Rules —
@@ -76884,6 +74410,7 @@
   Larry Page,
   Lars Gunther<!-- Keryx Web -->,
   Lars Solberg,
+  Laura Granka,
   Laura L. Carlson,
   Laura Wisewell,
   Laurens Holst,
@@ -77079,6 +74606,10 @@
   features first widely deployed by the Windows Internet Explorer
   browser.</p>
 
+  <p>Thanks to the participants of the microdata usability study for
+  allowing us to use their mistakes as a guide for designing the
+  microdata feature.</p>
+
   <div class=impl>
 
   <p>Special thanks and $10,000 to David Hyatt who came up with a

Modified: source
===================================================================
--- source	2009-09-30 10:15:49 UTC (rev 4065)
+++ source	2009-10-02 21:44:25 UTC (rev 4066)
@@ -5894,7 +5894,7 @@
   title="">name</var>)</code></dfn> method must return a
   <code>PropertyNodeList</code> object representing a live view of the
   <code>HTMLPropertyCollection</code> object, further filtered so that
-  the only nodes in the <code>RadioNodeList</code> object are those
+  the only nodes in the <code>PropertyNodeList</code> object are those
   that have a <span title="property names">property name</span> equal
   to <var title="">name</var>. The nodes in the
   <code>PropertyNodeList</code> object must be sorted in <span>tree
@@ -7592,11 +7592,12 @@
   readonly attribute <span>DOMStringMap</span> <span title="dom-dataset">dataset</span>;
 
   // <span>microdata</span>
-           attribute DOMString <span title="dom-item">item</span>;
+           attribute boolean <span title="dom-itemscope">itemscope</span>;
+           attribute DOMString <span title="dom-itemtype">itemtype</span>;
+           attribute DOMString <span title="dom-itemid">itemid</span>;
   [PutForwards=<span title="dom-DOMSettableTokenList-value">value</span>] readonly attribute <span>DOMSettableTokenList</span> <span title="dom-itemprop">itemprop</span>;
   readonly attribute <span>HTMLPropertyCollection</span> <span title="dom-properties">properties</span>;
            attribute DOMString <span title="dom-content">content</span>;
-           attribute <span>HTMLElement</span> <span title="dom-subject">subject</span>;
 
   // <span>user interaction</span>
            attribute boolean <span title="dom-hidden">hidden</span>;
@@ -7714,9 +7715,10 @@
    <li><code title="attr-draggable">draggable</code></li>
    <li><code title="attr-hidden">hidden</code></li>
    <li><code title="attr-id">id</code></li>
-   <li><code title="attr-item">item</code></li>
-   <li><code title="attr-itemfor">itemfor</code></li>
+   <li><code title="attr-itemid">itemid</code></li>
    <li><code title="attr-itemprop">itemprop</code></li>
+   <li><code title="attr-itemscope">itemscope</code></li>
+   <li><code title="attr-itemtype">itemtype</code></li>
    <li><code title="attr-lang">lang</code></li>
    <li><code title="attr-spellcheck">spellcheck</code></li>
    <li><code title="attr-style">style</code></li>
@@ -11372,6 +11374,7 @@
    <dd>If the <code title="attr-meta-http-equiv">http-equiv</code> attribute is present but not in the <span title="attr-meta-http-equiv-content-type">Encoding declaration state</span>: in a <code>head</code> element.</dd>
    <dd>If the <code title="attr-meta-http-equiv">http-equiv</code> attribute is present but not in the <span title="attr-meta-http-equiv-content-type">Encoding declaration state</span>: in a <code>noscript</code> element that is a child of a <code>head</code> element.</dd>
    <dd>If the <code title="attr-meta-name">name</code> attribute is present: where <span>metadata content</span> is expected.</dd>
+   <dd>If the <code title="attr-itemprop">itemprop</code> attribute is present: where <span>metadata content</span> is expected.</dd>
    <dd>If the <code title="attr-itemprop">itemprop</code> attribute is present: where <span>phrasing content</span> is expected.</dd>
    <dt>Content model:</dt>
    <dd>Empty.</dd>
@@ -12248,7 +12251,52 @@
 
 
 
+  <h4 id="itemref">The <dfn><code>itemref</code></dfn> element</h4>
 
+  <dl class="element">
+   <dt>Categories</dt>
+   <dd><span>Metadata content</span>.</dd>
+   <dd><span>Flow content</span>.</dd>
+   <dd><span>Phrasing content</span>.</dd>
+   <dt>Contexts in which this element may be used:</dt>
+   <dd>Where <span>metadata content</span> is expected.</dd>
+   <dd>Where <span>phrasing content</span> is expected.</dd>
+   <dt>Content model:</dt>
+   <dd>Empty.</dd>
+   <dt>Content attributes:</dt>
+   <dd><span>Global attributes</span></dd>
+   <dd><code title="attr-itemref-refid">refid</code></dd>
+   <dt>DOM interface:</dt>
+   <dd>
+<pre class="idl">interface <dfn>HTMLItemRefElement</dfn> : <span>HTMLElement</span> {
+           attribute DOMString <span title="dom-itemref-refid">refid</span>;
+};</pre>
+   </dd>
+  </dl>
+
+  <p>The <code>itemref</code> element is used to include by reference
+  properties defined (using <code
+  title="attr-itemprop">itemprop</code>) by elements that are not
+  descendants of the <code>itemref</code> element's nearest ancestor
+  with an <code title="attr-itemscope">itemscope</code> attribute.</p>
+
+  <p>The <dfn title="attr-itemref-refid"><code>refid</code></dfn>
+  attribute is required, and its value must be the ID of an element in
+  the same <code>Document</code> as the <code>itemref</code>
+  element.</p>
+
+  <p class="note">This element is described in more detail as part of
+  the <span>microdata</span> model.</p>
+
+  <div class="impl">
+
+  <p>The <dfn title="dom-itemref-refid"><code>refid</code></dfn> IDL
+  attribute must <span>reflect</span> the content attribute of the
+  same name.</p>
+
+  </div>
+
+
   <h4>The <dfn><code>style</code></dfn> element</h4>
 
   <dl class="element">
@@ -48934,8 +48982,9 @@
 
 <!-- v2
 
-  * <ref property="foo" content="id"> to import the item with id="id"
-    into the current microdata block
+  * <itemref itemprop="foo" src="url#id"> to import the item with
+    id="id" from url into the current microdata block as the value of
+    property foo?
 
   * splitting the 'content' part of a property into multiple sub-bits,
     as in:
@@ -48973,8 +49022,7 @@
   existing content.</p>
 
 
-<!--END html5-->
-<!--START microdata1--><!--START html5-->
+<!--START html5-->
 
   <h4>The basic syntax</h4>
 
@@ -48986,8 +49034,8 @@
   property. Items and properties are represented by regular
   elements.</p>
 
-  <p>To create an item, the <code title="attr-item">item</code>
-  attribute is used.</p>
+  <p>To create an item, the <code
+  title="attr-itemscope">itemscope</code> attribute is used.</p>
 
   <p>To add a property to an item, the <code
   title="attr-itemprop">itemprop</code> attribute is used on one of
@@ -48997,11 +49045,11 @@
 
    <p>Here there are two items, each of which has the property "name":</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>My name is <span itemprop="name">Elizabeth</span>.</p>
 </div>
 
-<div item>
+<div itemscope>
  <p>My name is <span itemprop="name">Daniel</span>.</p>
 </div></pre>
 
@@ -49013,7 +49061,7 @@
 
    <p>Here the item has three properties:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>My name is <span itemprop="name">Neil</span>.</p>
  <p>My band is called <span itemprop="band">Four Parts Water</span>.</p>
  <p>I am <span itemprop="nationality">British</span>.</p>
@@ -49030,9 +49078,10 @@
 
   <div class="example">
 
-   <p>In this example, the item has one property, "image", whose value is a URL:</p>
+   <p>In this example, the item has one property, "image", whose value
+   is a URL:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <img itemprop="image" src="google-logo.png" alt="Google">
 </div></pre>
 
@@ -49047,15 +49096,15 @@
    <p>In this example, the item has one property,
    "birthday", whose value is a date:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  I was born on <time itemprop="birthday" datetime="2009-05-10">May 10th 2009</time>.
 </div></pre>
 
   </div>
 
   <p>Properties can also themselves be groups of name-value pairs, by
-  putting the <code title="attr-item">item</code> attribute on the
-  element that declares the property.</p>
+  putting the <code title="attr-itemscope">itemscope</code> attribute
+  on the element that declares the property.</p>
 
   <p>Items that are not part of others are called <span>top-level
   microdata items</span>.</p>
@@ -49065,9 +49114,9 @@
    <p>In this example, the outer item represents a person, and the
    inner one represents a band:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>Name: <span itemprop="name">Amanda</span></p>
- <p>Band: <span itemprop="band" item> <span itemprop="name">Jazz Band</span> (<span itemprop="size">12</span> players)</span></p>
+ <p>Band: <span itemprop="band" itemscope> <span itemprop="name">Jazz Band</span> (<span itemprop="size">12</span> players)</span></p>
 </div></pre>
 
    <p>The outer item here has two properties, "name" and
@@ -49082,12 +49131,13 @@
 
   </div>
 
-  <p>Properties don't have to be given as descendants of the element
-  with the <code title="attr-item">item</code> attribute. They can be
-  associated with a specific <span title="concept-item">item</span>
-  using the <code title="attr-itemfor">itemfor</code> attribute, which
-  takes the ID of the element with the <code
-  title="attr-item">item</code> attribute.</p>
+  <p>Properties that are not descendants of the element with the <code
+  title="attr-itemscope">itemscope</code> attribute can be associated
+  with the <span title="concept-item">item</span> using the
+  <code>itemref</code> element, whose <code
+  title="attr-itemref-refid">refid</code> attribute takes the ID of an
+  element with the <code title="attr-itemprop">itemprop</code>
+  attribute or an ancestor of such an element.</p>
 
   <div class="example">
 
@@ -49095,11 +49145,13 @@
    properties are separated from their <span
    title="concept-item">items</span>:</p>
 
-   <pre><div item id="amanda"></div>
-<p>Name: <span itemfor="amanda" itemprop="name">Amanda</span></p>
-<div itemfor="amanda" itemprop="band" item id="jazzband"></div>
-<p>Band: <span itemfor="jazzband" itemprop="name">Jazz Band</span></p>
-<p>Size: <span itemfor="jazzband" itemprop="size">12</span> players</p></pre>
+   <pre><div itemscope id="amanda"><itemref refid="a"><itemref refid="b"></div>
+<p id="a">Name: <span itemprop="name">Amanda</span></p>
+<div id="b" itemprop="band" itemscope id="jazzband"><itemref refid="c"></div>
+<div id="c">
+ <p>Band: <span itemprop="name">Jazz Band</span></p>
+ <p>Size: <span itemprop="size">12</span> players</p>
+</div></pre>
 
    <p>This gives the same result as the previous example. The first
    item has two properties, "name", set to "Amanda", and "band", set
@@ -49115,7 +49167,7 @@
 
    <p>This example describes an ice cream, with two flavors:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p>Flavors in my favorite ice cream:</p>
  <ul>
   <li itemprop="flavor">Lemon sorbet</li>
@@ -49139,7 +49191,7 @@
    "favorite-color" and "favorite-fruit", both
    set to the value "orange":</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <span itemprop="favorite-color favorite-fruit">orange</span>
 </div></pre>
 
@@ -49156,10 +49208,10 @@
 
    <pre><figure>
  <dd><img src="castle.jpeg">
- <dt><span item><span itemprop="name">The Castle</span></span> (1986)
+ <dt><span itemscope><span itemprop="name">The Castle</span></span> (1986)
 </figure></pre>
 
-   <pre><span item><meta itemprop="name" content="The Castle"></span>
+   <pre><span itemscope><meta itemprop="name" content="The Castle"></span>
 <figure>
  <dd><img src="castle.jpeg">
  <dt>The Castle (1986)
@@ -49189,7 +49241,7 @@
   <p>For this purpose, it is necessary to give each <span
   title="concept-item">item</span> a type, such as
   "com.example.person", or "org.example.cat", or
-  "net.example.band". Types are identified in three ways:</p>
+  "net.example.band". Types are identified in two ways:</p>
 
   <ul class="brief">
 
@@ -49198,9 +49250,6 @@
    <li>As <span title="valid reversed DNS identifier">reversed DNS
    labels</span>.
 
-   <li>Using the names of <span title="predefined type">predefined
-   types</span>, which are described below.
-
   </ul>
 
   <p><span title="URL">URLs</span> are self-explanatory. <span
@@ -49208,14 +49257,15 @@
   strings such as "org.example.animals.cat" or "com.example.band".</p>
 
   <p>The type for an <span title="concept-item">item</span> is given
-  as the value of the <code title="attr-item">item</code>
-  attribute.</p>
+  as the value of an <code title="attr-itemtype">itemtype</code>
+  attribute on the same element as the <code
+  title="attr-itemscope">itemscope</code> attribute.</p>
 
   <div class="example">
 
    <p>Here, the item is "org.example.animals.cat":</p>
 
-<pre><section item="org.example.animal.cat">
+<pre><section itemscope itemtype="org.example.animal.cat">
  <h1 itemprop="name">Hedral</h1>
  <p itemprop="desc">Hedral is a male american domestic
  shorthair, with a fluffy black fur with white paws and belly.</p>
@@ -49229,14 +49279,71 @@
   </div>
 
   <p>An item can only have one type. The type gives the context for
-  the properties: a property named "class" given for an item with the
-  type "com.example.census.person" might refer to the class of an
-  individual, while a property named "class" given for an item with
-  the type "com.example.school.teacher" might refer to the classroom a
-  teacher has been assigned.</p>
-  
+  the properties, thus defining a vocabulary: a property named "class"
+  given for an item with the type "com.example.census.person" might
+  refer to the economic class of an individual, while a property named
+  "class" given for an item with the type "com.example.school.teacher"
+  might refer to the classroom a teacher has been assigned.</p>
 
 
+  <h4>Global identifiers for items</h4>
+
+  <p><i>This section is non-normative.</i></p>
+
+  <p>Sometimes, an <span title="concept-item">item</span> gives
+  information about a topic that has a global identifier. For example,
+  books can be identified by their ISBN number.</p>
+
+  <p>Vocabularies (as identified by the <code
+  title="attr-itemtype">itemtype</code> attribute) can be designed
+  such that <span title="concept-item">items</span> get associated
+  with their global identifier in an unambiguous way by expressing the
+  global identifiers as <span title="URL">URLs</span> given in an
+  <code title="attr-itemid">itemid</code> attribute.</p>
+
+  <p>The exact meaning of the <span title="URL">URLs</span> given in
+  <code title="attr-itemid">itemid</code> attributes depends on the
+  vocabulary used.</p>
+
+  <div class="example">
+
+   <p>Here, an item is talking about a particular book:</p>
+
+<pre><dl itemscope
+    itemtype="http://vocab.example.net/book"
+    <strong>itemid="urn:isbn:0-330-34032-8"</strong>>
+ <dt>Title
+ <dd itemprop="title">The Reality Dysfunction
+ <dt>Author
+ <dd itemprop="author">Peter F. Hamilton
+ <dt>Publication date
+ <dd><time itemprop="pubdate" datetime="1996-01-26">26 January 1996</time>
+</dl></pre>
+
+   <p>The "<code title="">http://vocab.example.net/book</code>"
+   vocabulary in this example would define that the <code
+   title="attr-itemid">itemid</code> attribute takes a <code
+   title="">urn:</code> <span>URL</span> pointing to the ISBN of the
+   book.</p>
+
+  </div>
+
+  <!-- (commented out since itemtype="" defines the meaning of the
+        identifier for now)
+  <p>Although it is common practice, authors are encouraged not to use
+  the same URL to identify multiple topics; in particular, an HTTP URL
+  usually identifies a specific resource (such as an image or
+  document), and authors are encouraged to not use them to identify
+  people, non-Web resources like companies, movies, and products, or
+  other abstract concepts. Using an HTTP URL as a global identifier
+  for something other than the resource actually designated by the URL
+  leads to a situation where it is ambiguous whether the identifier,
+  and thus the set of properties specified in the microdata,
+  references the page or something else.</p>
+  -->
+
+
+
   <h4>Selecting names when defining vocabularies</h4>
 
   <p><i>This section is non-normative.</i></p>
@@ -49286,7 +49393,7 @@
    type. There are also a few additional properties whose names come
    from other vocabularies.</p>
 
-<pre><section item="org.example.animal.cat">
+<pre><section itemscope itemtype="org.example.animal.cat">
  <h1 itemprop="name com.example.fn">Hedral</h1>
  <p itemprop="desc">Hedral is a male american domestic
  shorthair, with a fluffy <span
@@ -49327,35 +49434,7 @@
   </div>
 
 
-  <h4>Predefined vocabularies</h4>
 
-  <p><i>This section is non-normative.</i></p>
-
-  <p>To make the most common tasks simpler, certain vocabularies have
-  been predefined. These use short names for types and properties.</p>
-
-  <div class="example">
-
-   <p>For example, the <span title="md-vcard">vCard</span> vocabulary
-   can be used to mark up people's names:</p>
-
-   <pre><span item=vcard><span itemprop=fn>George Washington</span></span></pre>
-
-   <p>This creates a single item with a single name-value pair, with
-   the name "fn" and the value "George Washington". This is defined to
-   map to the following vCard:</p>
-
-   <pre>BEGIN:VCARD
-PROFILE:VCARD
-VERSION:3.0
-SOURCE:<var title="">document's address</var>
-FN:George Washington
-N:Washington;George;;;
-END:VCARD</pre>
-
-  </div>
-
-
   <h4>Using the microdata DOM API</h4>
 
   <p><i>This section is non-normative.</i></p>
@@ -49372,10 +49451,17 @@
 
   <p>Each <span title="concept-item">item</span> is represented in the
   DOM by the element on which the relevant <code
-  title="attr-item">item</code> attribute is found. The type of that
-  element can be obtained using the <code
-  title="dom-item">element.item</code> IDL attribute.</p>
+  title="attr-itemscope">itemscope</code> attribute is found. These
+  elements have their <code
+  title="dom-itemscope">element.itemscope</code> IDL attribute set to
+  true.</p>
 
+  <p>The type of <span title="concept-item">items</span> can be
+  obtained using the <code
+  title="dom-itemtype">element.itemtype</code> IDL attribute on the
+  element with the <code title="attr-itemscope">itemscope</code>
+  attribute.</p>
+
   <div class="example">
 
    <p>This sample shows how the <code
@@ -49468,7 +49554,7 @@
 
    <p>If faced with the following from an earlier example:</p>
 
-   <pre><section item="org.example.animal.cat">
+   <pre><section itemscope item="org.example.animal.cat">
  <h1 itemprop="name com.example.fn">Hedral</h1>
  <p itemprop="desc">Hedral is a male american domestic
  shorthair, with a fluffy <span
@@ -49503,115 +49589,129 @@
   <h4>The microdata model</h4>
 
   <p>The microdata model consists of groups of name-value pairs known
-  as <dfn title="concept-item">items</dfn>.</p>
+  as <span title="concept-item">items</span>.</p>
 
-  <p>Each group has zero or more types, each name has one or more
-  values, and each value is either a string or another group of
-  name-value pairs.</p>
+  <p>Each group is known as an <span
+  title="concept-item">item</span>. Each <span
+  title="concept-item">item</span> can have an <span>item type</span>,
+  a <span>global identifier</span> (if the <span>item type</span>
+  <span title="support global identifiers for items">supports global
+  identifiers for its items</span>), and a list of name-value
+  pairs. Each name in the name-value pair is known as a <span
+  title="the properties of an item">property</span>, and each <span
+  title="the properties of an item">property</span> has one or more
+  <span title="concept-property-value">values</span>. Each <span title="concept-property-value">value</span> is either a string or itself a group of
+  name-value pairs (an <span title="concept-item">item</span>).</p>
 
+  <p>An <span title="concept-item">item</span> is said to be a
+  <dfn>typed item</dfn> when either it has an <span>item type</span>,
+  or it is the <span title="concept-property-value">value</span> of a <span title="the properties of an
+  item">property</span> of a <span>typed item</span>. The
+  <dfn>relevant type</dfn> for a <span>typed item</span> is the <span
+  title="concept-item">item</span>'s <span>item type</span>, if it has
+  one, or else is the <span>relevant type</span> of the <span
+  title="concept-item">item</span> for which it is a <span title="the
+  properties of an item">property</span>'s <span title="concept-property-value">value</span>.</p>
 
-  <h4>Items: the <dfn title="attr-item"><code>item</code></dfn> attribute</h4>
 
-  <p>Every <span title="HTML elements">HTML element</span> may have an
-  <code title="attr-item">item</code> attribute specified.</p>
 
-  <p>An element with the <code title="attr-item">item</code> attribute
-  specified creates a new <span title="concept-item">item</span>, a
-  group of name-value pairs.</p>
+  <h4>Items</h4>
 
-  <p>The attribute, if specified, must have a value that is either:</p>
+  <p>Every <span title="HTML elements">HTML element</span> except the
+  <code>itemref</code> element may have an <dfn
+  title="attr-itemscope"><code>itemscope</code></dfn> attribute
+  specified. The <code title="attr-itemscope">itemscope</code>
+  attribute is a <span>boolean attribute</span>.</p>
 
+  <p>An element with the <code title="attr-itemscope">itemscope</code>
+  attribute specified, and that is not an <code>itemref</code>
+  element, creates a new <dfn title="concept-item">item</dfn>, a group
+  of name-value pairs.</p>
+
+  <p>The <code title="attr-itemscope">itemscope</code> attribute must
+  not be specified on <code>itemref</code> elements.</p>
+
+  <hr>
+
+  <p>Elements with an <code title="attr-itemscope">itemscope</code>
+  attribute may have an <dfn
+  title="attr-itemtype"><code>itemtype</code></dfn> attribute
+  specified, to give the <span>item type</span> of the <span
+  title="concept-item">item</span>.</p>
+
+  <p>The <code title="attr-itemtype">itemtype</code> attribute, if
+  specified, must have a value that is either:</p>
+
   <ul>
 
-   <li>The empty string, or</li>
-
    <li>A <span>valid URL</span> that is an <span>absolute URL</span>
    for which the string "<code
    title="">http://www.w3.org/1999/xhtml/custom#</code>" is not a
    <span>prefix match</span>, or</li>
 
-   <li>A <span>valid reversed DNS identifier</span>, or</li>
+   <li>A <span>valid reversed DNS identifier</span>.</li>
 
-   <li>A <span>predefined type</span>.</li>
-
   </ul>
 
-  <p>The <dfn>item type</dfn> of an element with an <code
-  title="attr-item">item</code> attribute is the value of the
-  element's <code title="attr-item">item</code> attribute. If the
-  attribute's value is the empty string, the element is said to have
-  no <span>item type</span>.</p>
+  <p>The <dfn>item type</dfn> of an <span
+  title="concept-item">item</span> is the value of its element's <code
+  title="attr-itemtype">itemtype</code> attribute, if it has one and
+  its value is not the empty string. If the <code
+  title="attr-itemtype">itemtype</code> attribute is missing or its
+  value is the empty string, the <span
+  title="concept-item">item</span> is said to have no <span>item
+  type</span>.</p>
 
+  <p>The <span>item type</span> must be a type defined in an <span
+  title="other applicable specifications">applicable
+  specification</span>.</p>
 
-  <h4>Associating names with items</h4>
+  <p>The <code title="attr-itemtype">itemtype</code> attribute must
+  not be specified on elements that do not have an <code
+  title="attr-itemscope">itemscope</code> attribute specified.</p>
 
-  <p>The <dfn title="attr-itemfor"><code>itemfor</code></dfn>
-  attribute may be specified on any <span title="HTML elements">HTML
-  element</span> to associate the element with an element with an
-  <code title="attr-item">item</code> attribute. If the <code
-  title="attr-itemfor">itemfor</code> attribute is specified, the
-  attribute's value must be the ID of an element with an <code
-  title="attr-item">item</code> attribute, in the same
-  <code>Document</code> as the element with the <code
-  title="attr-itemfor">itemfor</code> attribute.</p>
+  <hr>
 
-  <p>An element's <dfn
-  title="concept-item-corresponding">corresponding item</dfn> is
-  determined by its position in the DOM and by any <code
-  title="attr-itemfor">itemfor</code> attributes on the element, and
-  is defined as follows:</p>
+  <p>Elements with an <code title="attr-itemscope">itemscope</code>
+  attribute and an <code title="attr-itemtype">itemtype</code>
+  attribute that references a vocabulary that is defined to
+  <dfn>support global identifiers for items</dfn> may also have an
+  <dfn title="attr-itemid"><code>itemid</code></dfn> attribute
+  specified, to give a global identifier for the <span
+  title="concept-item">item</span>, so that it can be related to other
+  <span title="concept-item">items</span> on pages elsewhere on the
+  Web.</p>
 
-  <dl>
+  <p>The <code title="attr-itemid">itemid</code> attribute, if
+  specified, must have a value that is a <span>valid URL</span> that
+  is an <span>absolute URL</span>.</p>
 
-   <dt>If the element has a <code title="attr-itemfor">itemfor</code>
-   attribute</dt>
+  <p>The <dfn>global identifier</dfn> of an <span
+  title="concept-item">item</span> is the value of its element's <code
+  title="attr-itemid">itemid</code> attribute, if it has one. If the
+  <code title="attr-itemid">itemid</code> attribute is missing or its
+  value is the empty string, it is said to have no <span>global
+  identifier</span>.</p>
 
-   <dd><p>If there is an element in the document with an ID equal to
-   the value of the <code title="attr-itemfor">itemfor</code>
-   attribute, and if the first such element has an <code
-   title="attr-item">item</code> attribute specified, then that
-   element is the <span
-   title="concept-item-corresponding">corresponding
-   item</span>. Otherwise, there is no <span
-   title="concept-item-corresponding">corresponding
-   item</span>.</p></dd>
+  <p>The <code title="attr-itemid">itemid</code> attribute must not be
+  specified on elements that do not have both an <code
+  title="attr-itemscope">itemscope</code> attribute and an <code
+  title="attr-itemtype">itemtype</code> attribute specified, and must
+  not be specified on elements with an <code
+  title="attr-itemscope">itemscope</code> attribute whose <code
+  title="attr-itemtype">itemtype</code> attribute specifies a
+  vocabulary that does not <span>support global identifiers for
+  items</span>, as defined by that vocabulary's specification.</p>
 
-   <dt>If the element has no <code title="attr-itemfor">itemfor</code>
-   attribute but does have an ancestor with an <code
-   title="attr-item">item</code> attribute specified</dt>
 
-   <dd><p>The nearest ancestor element with the <code
-   title="attr-item">item</code> attribute specified is the element's
-   <span title="concept-item-corresponding">corresponding
-   item</span>.</p></dd>
-
-   <dt>If the element has neither <code
-   title="attr-itemfor">itemfor</code> attribute nor an ancestor with
-   an <code title="attr-item">item</code> attribute specified</dt>
-
-   <dd><p>The element has no <span
-   title="concept-item-corresponding">corresponding
-   item</span>.</p></dd>
-
-  </dl>
-
-  <p>The list of elements that create <span
-  title="concept-item">items</span> but do not themselves have a <span
-  title="concept-item-corresponding">corresponding item</span> forms
-  the list of <dfn>top-level microdata items</dfn>.</p>
-
-
   <h4>Names: the <dfn title="attr-itemprop"><code>itemprop</code></dfn> attribute</h4>
 
-  <p>Every <span title="HTML elements">HTML element</span> that has a
-  <span title="concept-item-corresponding">corresponding item</span>
-  may have an <code title="attr-itemprop">itemprop</code> attribute
-  specified.</p>
+  <p>Every <span title="HTML elements">HTML element</span> may have an
+  <code title="attr-itemprop">itemprop</code> attribute specified, if
+  doing so <span title="the properties of an item">adds a
+  property</span> to one or more <span
+  title="concept-item">items</span> (as defined below).</p>
 
-  <p>An element with the <code title="attr-itemprop">itemprop</code>
-  attribute specified adds one or more name-value pairs to its
-  <span title="concept-item-corresponding">corresponding item</span>.</p>
-
   <p>The <code title="attr-itemprop">itemprop</code> attribute, if
   specified, must have a value that is an <span>unordered set of
   unique space-separated tokens</span> representing the names of the
@@ -49629,27 +49729,35 @@
 
    <li>A <span>valid reversed DNS identifier</span>, or</li>
 
-   <li>A <span>predefined global property name</span> allowed in this
-   situation, or</li>
+   <li>If the item is a <span>typed item</span>: a string allowed in
+   this situation according to the specification that defines the
+   <span>relevant type</span> for the item, or</li>
 
-   <li>If the item's <span>item type</span> is a <span>predefined
-   type</span>: a <span>predefined property name</span> allowed in
-   this situation, or</li>
+   <li>If the item is not a <span>typed item</span>: a string that
+   contains no U+002E FULL STOP (.) characters and no U+003A COLON (:)
+   characters.</li>
 
-   <li>If the item has no <span>item type</span> but it is itself the
-   value of a property whose property name is a <span>predefined
-   property name</span>: a <span>predefined property name</span>
-   allowed in this situation, or</li>
+  </ul>
 
-   <li>If the item's <span>item type</span> is not a <span>predefined
-   type</span> and the item is not the value of a property whose
-   property name is a <span>predefined property name</span>: a string
-   that contains no U+002E FULL STOP (.) or U+003A COLON (:)
-   characters, and that is not a <span>predefined global property
-   name</span>.</li>
+  <p>When an element with an <code
+  title="concept-itemprop">itemprop</code> attribute <span title="the
+  properties of an item">adds a property</span> to multiple <span
+  title="concept-item">items</span>, the requirement above regarding
+  the tokens applies for each <span title="concept-item">item</span>
+  individually.</p>
 
-  </ul>
+  <!--
 
+   e.g.:
+
+     <div itemscope itemtype="http://example.com/a"> <ref refid="x"> </div>
+     <div itemscope itemtype="http://example.com/b"> <ref refid="x"> </div>
+     <meta id="x" itemprop="z" content="">
+
+     "z" had better be valid for both http://example.com/a and http://example.com/b
+
+  -->
+
   <p>The <dfn>property names</dfn> of an element are the tokens that
   the element's <code title="attr-itemprop">itemprop</code> attribute
   is found to contain when its value is <span title="split a string on
@@ -49657,9 +49765,10 @@
   duplicates removed (leaving only the first occurrence of each
   name).</p>
 
-  <p>With an <span title="concept-item">item</span>, the properties
+  <p>Within an <span title="concept-item">item</span>, the properties
   are unordered with respect to each other, except for properties with
-  the same name, which are ordered in <span>tree order</span>.</p>
+  the same name, which are ordered in the order they are given by the
+  algorithm that defines <span>the properties of an item</span>.</p>
 
   <div class="example">
 
@@ -49667,7 +49776,7 @@
    and "2", <em>in that order</em>, but whether the "a" property comes
    before the "b" property or not is not important:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p itemprop="a">1</p>
  <p itemprop="a">2</p>
  <p itemprop="b">test</p>
@@ -49675,7 +49784,7 @@
 
    <p>Thus, the following is equivalent:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p itemprop="b">test</p>
  <p itemprop="a">1</p>
  <p itemprop="a">2</p>
@@ -49683,15 +49792,28 @@
 
    <p>As is the following:</p>
 
-   <pre><div item>
+   <pre><div itemscope>
  <p itemprop="a">1</p>
  <p itemprop="b">test</p>
  <p itemprop="a">2</p>
 </div></pre>
 
+   <p>And the following:</p>
+
+   <pre><div itemscope>
+ <itemref refid="x">
+ <p itemprop="b">test</p>
+ <p itemprop="a">2</p>
+</div>
+<div id="x">
+ <p itemprop="a">1</p>
+</div>
+</pre>
+
   </div>
 
 
+
   <h4>Values</h4>
 
   <p>The <dfn title="concept-property-value">property value</dfn> of a
@@ -49701,8 +49823,8 @@
 
   <dl>
 
-   <dt>If the element also has an <code title="attr-item">item</code>
-   attribute</dt>
+   <dt>If the element also has an <code
+   title="attr-itemscope">itemscope</code> attribute</dt>
 
    <dd><p>The value is the <span title="concept-item">item</span>
    created by the element.</p></dd>
@@ -49775,6 +49897,107 @@
 
 
 
+  <h4>Associating names with items</h4>
+
+  <p>To find <dfn>the properties of an item</dfn>, the user agent must
+  run the following steps:</p>
+
+  <ol>
+
+   <li><p>Let <var title="">root</var> be the element with the <code
+   title="attr-itemscope">itemscope</code> attribute. This element
+   cannot be an <code>itemref</code> element.</p></li>
+
+   <li><p>Let <var title="">queue</var> be a stack of elements
+   initially containing the child elements of <var
+   title="">root</var>, if any, in <span>tree order</span> (so that
+   the first child element of <var title="">root</var> will be the
+   first one to be popped from the stack). This list will be the one
+   that holds the elements that still need to be crawled.</p></li>
+
+   <li><p>Let <var title="">properties</var> be an empty list of
+   elements. This list will be the result of the algorithm: a list of
+   elements with properties that apply to <var
+   title="">root</var>.</p></li>
+
+   <li><p>Let <var title="">visited nodes</var> be a list of elements
+   containing just <var title="">root</var>. This list is used to
+   avoid loops caused by <code>itemref</code> elements.</p></li>
+
+   <li><p>Let <var title="">error found</var> be false. If it is set
+   to true by the algorithm below, then an <code>itemref</code> error
+   has been found.</p></li>
+
+   <li><p><i>Loop</i>: Pop the top element from <var
+   title="">queue</var> and let <var title="">current</var> be that
+   element.</p></li>
+
+   <li><p>If <var title="">current</var> is already in <var
+   title="">visited nodes</var> then let <var title="">error
+   found</var> be true, and skip down to the step marked <i>end of
+   loop</i>.</p></li>
+
+   <li><p>If <var title="">current</var> has an <code
+   title="attr-itemprop">itemprop</code> attribute, then append <var
+   title="">current</var> to <var title="">properties</var>.</p></li>
+
+   <li><p>Append <var title="">current</var> to <var title="">visited
+   nodes</var>.</p></li>
+
+   <li><p>If <var title="">current</var> is an <code>itemref</code>
+   element with a <code title="attr-itemref-refid">refid</code>
+   attribute, and there is an element in the document whose <span
+   title="concept-id">ID</span> matches the value of <var
+   title="">current</var>'s <code
+   title="attr-itemref-refid">refid</code> attribute, then push the
+   first element in the document whose <span
+   title="concept-id">ID</span> matches the value of <var
+   title="">current</var>'s <code
+   title="attr-itemref-refid">refid</code> attribute onto <var
+   title="">queue</var> (so that it will be the next element to be
+   popped from <var title="">queue</var>).</p></li>
+
+   <li><p>Otherwise, if <var title="">current</var> is not a
+   <code>refid</code> element, and <var title="">current</var> does
+   not have an <code title="attr-itemscope">itemscope</code>
+   attribute, and <var title="">current</var> is an element with child
+   elements, then: push all the child elements of <var
+   title="">current</var> onto <var title="">queue</var>, in
+   <span>tree order</span> (so the first child of <var
+   title="">current</var> will be the next element to be popped from
+   <var title="">queue</var>).</p></li>
+
+   <li><p><i>End of loop</i>: If <var title="">queue</var> is not
+   empty, return to the step marked <i>loop</i>.</p></li>
+
+   <li><p>Return <var title="">properties</var>. That is the list of
+   <span title="the properties of an item">properties of the
+   item</span> <var title="">root</var>.</p></li>
+
+  </ol>
+
+  <p>A document must not contain any <code>itemref</code> elements
+  that would cause the <var title="">error found</var> flag in the
+  algorithm above to be set to true if the <span title="the properties
+  of an item">properties</span> of all the <span
+  title="concept-item">items</span> in that document were to be
+  determined.</p>
+
+  <p>A document must not contain any elements that have an <code
+  title="attr-itemprop">itemprop</code> attribute that would not be
+  found to be a property of any of the <span
+  title="concept-item">items</span> in that document were their <span
+  title="the properties of an item">properties</span> all to be
+  determined.</p>
+
+  <p>An <span title="concept-item">item</span> is a <dfn
+  title="top-level microdata items">top-level microdata item</dfn> if
+  its element does not have an <code
+  title="attr-itemprop">itemprop</code> attribute.</p>
+
+
+
+
   <h3>Microdata DOM API</h3>
 
   <dl class="domintro">
@@ -49832,21 +50055,22 @@
   containing all the <span>top-level microdata items</span> in the
   document.</p>
 
-  <p>The <dfn title="dom-item"><code>item</code></dfn> IDL attribute
-  on elements must <span>reflect</span> the element's <code
-  title="attr-item">item</code> content attribute.</p>
+  <p>The <dfn title="dom-itemscope"><code>itemscope</code></dfn>, <dfn
+  title="dom-itemtype"><code>itemtype</code></dfn>, <dfn
+  title="dom-itemid"><code>itemid</code></dfn>, and <dfn
+  title="dom-itemprop"><code>itemprop</code></dfn> IDL attributes on
+  <span>HTML elements</span> must <span>reflect</span> the respective
+  content attributes of the same name.</p>
 
-  <p>The <dfn title="dom-itemprop"><code>itemprop</code></dfn> IDL
-  attribute on elements must <span>reflect</span> the element's <code
-  title="attr-itemprop">itemprop</code> content attribute.</p>
-
   <p>The <dfn title="dom-properties"><code>properties</code></dfn> IDL
-  attribute on elements must return an
+  attribute on <span>HTML elements</span> must return an
   <code>HTMLPropertyCollection</code> rooted at the
   <code>Document</code> node, whose filter matches only elements that
-  have <span>property names</span> and have a <span
-  title="concept-item-corresponding">corresponding item</span> that is
-  equal to the element on which the attribute was invoked.</p>
+  have <span>property names</span> and are <span title="the properties
+  of an item">the properties of the item</span> created by the element
+  on which the attribute was invoked, while that element is an <span
+  title="concept-item">item</span>, and matches nothing the rest of
+  the time.</p>
 
   <p>The <dfn title="dom-content"><code>content</code></dfn> IDL
   attribute's behavior depends on the element, as follows:</p>
@@ -49900,20 +50124,13 @@
 
   </dl> 
 
-  <p>The <dfn title="dom-subject"><code>itemfor</code></dfn> IDL
-  attribute on elements must <span>reflect</span> the element's <code
-  title="attr-itemfor">itemfor</code> content attribute.</p>
-
   </div>
 
-<!--END microdata1--><!--END html5-->
-<!--START microdata2-->
-<!--END microdata2-->
-<!--START microdata3-->
-<!--END microdata3-->
-<!--START html5-->
 
+<!--END html5-->
+<!--START vocabs-->
 
+
   <h3>Predefined vocabularies</h3>
 
   <p>A number of <dfn title="predefined type">predefined types</dfn>
@@ -49926,20 +50143,6 @@
 
 
 
-  <h4>General</h4>
-
-  <p>The <span>predefined global property name</span> <dfn
-  title="md-about"><code>about</code></dfn> can be used to name an
-  <span title="concept-item">item</span> for the purposes of
-  identifying or referring to the data defined in that item.</p>
-
-  <p>A single property with the name <code
-  title="md-about">about</code> may be present within each <span
-  title="concept-item">item</span>. Its <span
-  title="concept-property-value">value</span> must be an
-  <span>absolute URL</span>.</p>
-
-
   <h4>vCard</h4>
 
   <p>An item with the <span>predefined type</span> <dfn
@@ -51414,8 +51617,29 @@
 
   </div>
 
+  <div class="example">
 
+   <p>The <span title="md-vcard">vCard</span> vocabulary can be used
+   to just mark up people's names:</p>
 
+   <pre><span itemscope itemtype=vcard><span itemprop=fn>George Washington</span></span></pre>
+
+   <p>This creates a single item with a single name-value pair, with
+   the name "fn" and the value "George Washington". This is defined to
+   map to the following vCard:</p>
+
+   <pre>BEGIN:VCARD
+PROFILE:VCARD
+VERSION:3.0
+SOURCE:<var title="">document's address</var>
+FN:George Washington
+N:Washington;George;;;
+END:VCARD</pre>
+
+  </div>
+
+
+
   <h4>vEvent</h4>
 
   <p>An item with the <span>predefined type</span> <dfn
@@ -52216,14 +52440,13 @@
   </div>
 
 
+  <!--START html5-->
 
   <div class="impl">
 
   <h3>Converting HTML to other formats</h3>
 
-  <p>In all these algorithms, except where otherwise stated,
-  operations that iterate over a series of elements (whether items,
-  properties, or otherwise) must do so in <span>tree order</span>.</p>
+  <!--END html5-->
 
   <p>A generic API upon which the vocabulary-specific conversions
   defined below (vCard, iCalendar) can be built will need to provide
@@ -52264,7 +52487,10 @@
 
   </ul>
 
+  <!--START html5-->
+  <!--END vocabs-->
 
+
   <h4>JSON</h4>
 
   <p>Given a list of nodes <var title="">nodes</var> in a
@@ -52300,19 +52526,27 @@
 
    <li><p>Let <var title="">result</var> be an empty object.</p></li>
 
-   <li><p>Add an entry to <var title="">result</var> called "<code
-   title="">type</code>" whose value is the <span>item type</span> of
-   <var title="">item</var>.</p></li>
+   <li><p>If the <var title="">item</var> has an <span>item
+   type</span>, add an entry to <var title="">result</var> called
+   "<code title="">type</code>" whose value is the <span>item
+   type</span> of <var title="">item</var>.</p></li>
 
+   <li><p>If the <var title="">item</var> has an <span>global
+   identifier</span>, add an entry to <var title="">result</var>
+   called "<code title="">id</code>" whose value is the <span>global
+   identifier</span> of <var title="">item</var>.</p></li>
+
    <li><p>Let <var title="">properties</var> be an empty
    object.</p></li>
 
    <li>
 
     <p>For each element <var title="">element</var> that has one or
-    more <span>property names</span> and whose <span
-    title="concept-item-corresponding">corresponding item</span> is
-    <var title="">item</var>, run the following substeps:</p>
+    more <span>property names</span> and is one of <span title="the
+    properties of an item">the properties of the item</span> <var
+    title="">item</var>, in the order those elements are given by the
+    algorithm that returns <span>the properties of an item</span>, run
+    the following substeps:</p>
 
     <ol>
 
@@ -52455,9 +52689,8 @@
 
    <li>
 
-    <p>For each <code>article</code>, <code>section</code>,
-    <code>blockquote</code>, and <code>q</code> element in the
-    <code>Document</code> that has a <code title="">cite</code>
+    <p>For each <code>blockquote</code> and <code>q</code> element in
+    the <code>Document</code> that has a <code title="">cite</code>
     attribute that <span title="resolve a url">resolves</span>
     successfully relative to the element, generate the following
     triple:</p>
@@ -52498,6 +52731,7 @@
 
      </li>
 
+<!--
      <li>
 
       <p>If the element is, or is a descendant of, an
@@ -52514,6 +52748,7 @@
       </dl>
 
      </li>
+-->
 
     </ol>
 
@@ -52527,34 +52762,23 @@
 
   <ol>
 
-   <li><p>If of the elements whose <span
-   title="concept-item-corresponding">corresponding item</span> is
-   <var title="">item</var>, there are any with a <span
-   title="property names">property name</span> equal to the string
-   "<code title="md-about">about</code>", and the first such element
-   is a <span title="URL property elements">URL property
-   element</span>, and its <span
-   title="concept-property-value">value</span> is not an <span
-   title="concept-item">item</span>, let <var title="">subject</var>
-   be the <span title="concept-property-value">value</span> of that
-   property. Otherwise, let <var title="">subject</var> be a new blank
-   node.</p></li>
+   <li><p>If <var title="">item</var> has a <span>global
+   identifier</span> and that <span>global identifier</span> is an
+   <span>absolute URL</span>, let <var title="">subject</var> be that
+   <span>global identifier</span>. Otherwise, let <var
+   title="">subject</var> be a new blank node.</p></li>
 
    <li><p>Let <var title="">type</var> be the <span>item type</span>
    of <var title="">item</var>.</p></li>
 
-   <li>
+   <li><p>If <var title="">type</var> is neither the empty string nor
+   an <span>absolute URL</span>, then let <var title="">type</var> be
+   the result of concatenating the string "<code
+   title="">http://www.w3.org/1999/xhtml/custom#</code>" with the <var
+   title="">type</var>, with any characters in <var
+   title="">type</var> that are not valid in the <ifragment>
+   production of the IRI syntax being %-escaped.</p></li>
 
-    <p>If <var title="">type</var> is neither the empty string nor an
-    <span>absolute URL</span>, then let <var title="">type</var> be
-    the result of concatenating the string "<code
-    title="">http://www.w3.org/1999/xhtml/custom#</code>" with the
-    <var title="">type</var>, with any characters in <var
-    title="">type</var> that are not valid in the <ifragment>
-    production of the IRI syntax being %-escaped.</p>
-
-   </li>
-
    <li>
 
     <p>If <var title="">type</var> is not the empty string, generate
@@ -52571,9 +52795,11 @@
    <li>
 
     <p>For each element <var title="">element</var> that has one or
-    more <span>property names</span> and whose <span
-    title="concept-item-corresponding">corresponding item</span> is
-    <var title="">item</var>, run the following substeps:</p>
+    more <span>property names</span> and is one of <span title="the
+    properties of an item">the properties of the item</span> <var
+    title="">item</var>, in the order those elements are given by the
+    algorithm that returns <span>the properties of an item</span>, run
+    the following substeps:</p>
 
     <ol>
 
@@ -52589,7 +52815,7 @@
 
      <!-- could support <time> here somehow, though we'd have to
      reserialise it, check if the <time> was valid, check if it had a
-     .date, a .time, a .timezone, etc. -->
+     date, a time, a timezone, etc. -->
 
      <li><p>Otherwise, if <var title="">element</var> is not one of
      the <span>URL property elements</span>, let <var
@@ -52604,10 +52830,7 @@
       following substeps:</p>
 
       <ol>
-
-       <li><p>If <var title="">name</var> is equal to the string
-       "<code title="md-about">about</code>", skip this name.</p></li>
-
+<!--
        <li><p>Otherwise, if <var title="">type</var> is <code
        title="md-work">work</code>, and <var title="">name</var> is
        equal to the string "<code title="md-work-title">title</code>",
@@ -52627,10 +52850,10 @@
        title="md-work-license">license</code>", let <var
        title="">name</var> be the string "<code
        title="">http://www.w3.org/1999/xhtml/vocab#license</code>".</p></li>
-
-       <li><p>Otherwise, if <var title="">name</var> is not an
-       <span>absolute URL</span>, then let <var title="">name</var> be
-       the result of concatenating the string "<code
+-->
+       <li><p><!--Otherwise...--> If <var title="">name</var> is not
+       an <span>absolute URL</span>, then let <var title="">name</var>
+       be the result of concatenating the string "<code
        title="">http://www.w3.org/1999/xhtml/custom#</code>" with <var
        title="">name</var>, with any characters in <var
        title="">name</var> that are not valid in the <ifragment>
@@ -52661,8 +52884,9 @@
 
   </ol>
 
+<!--END html5-->
+<!--START vocabs-->
 
-
   <h4>vCard</h4>
 
   <p>Given a list of nodes <var title="">nodes</var> in a
@@ -53652,9 +53876,9 @@
   names</span>.</p> <!-- of course since icalendar doesn't define
   error handling, this is somewhat problematic. -->
 
+<!--END vocabs-->
+<!--START html5-->
 
-
-
   <h4>Atom</h4>
 
   <p>Given a <code>Document</code> <var title="">source</var>, a user
@@ -53676,6 +53900,7 @@
    <li><p>Append a <code title="">feed</code> element in the
    <span>Atom namespace</span> to <var title="">R</var>.</p></li>
 
+<!--
    <li>
 
     <p>For each element <var title="">candidate</var> that is, or is a
@@ -53696,6 +53921,7 @@
     title="">property</var>.</p>
 
    </li>
+-->
 
    <li>
 
@@ -53925,6 +54151,7 @@
 
      </li>
 
+<!--
      <li>
 
       <p>For each element <var title="">candidate</var> that is, or is
@@ -53947,6 +54174,7 @@
       title="">property</var>.</p>
 
      </li>
+-->
 
      <li>
 
@@ -69126,6 +69354,8 @@
 
    </li>
 
+<!-- v2: deal with multiple vCards -->
+<!--
    <li>
 
     <p>The user agent must take the <span>list of dragged nodes</span>
@@ -69134,7 +69364,6 @@
     <code title="dom-DragEvent-dataTransfer">dataTransfer</code>
     member, associated with the <code
     title="">text/directory;profile=vcard</code> format.</p>
-    <!-- v2: deal with multiple vCards -->
 
    </li>
 
@@ -69148,6 +69377,7 @@
     title="">text/calendar;component=vevent</code> format.</p>
 
    </li>
+-->
 
    <!-- v2: text/html -->
 
@@ -74513,8 +74743,8 @@
      "<code title="">set-cookie2</code>" or another cookie-related
      header name</dt>
 
-     <dd><p>Handle the cookie as defined by the appropriate spec, with
-     the resource being the one with the host <var
+     <dd><p>Handle the cookie as defined by the appropriate
+     specification, with the resource being the one with the host <var
      title="">host</var>, the port <var title="">port</var>, the path
      (and possibly query parameters) <var title="">resource
      name</var>, and the scheme <code title="">http</code> if <var
@@ -91221,6 +91451,7 @@
   Larry Page,
   Lars Gunther<!-- Keryx Web -->,
   Lars Solberg,
+  Laura Granka,
   Laura L. Carlson,
   Laura Wisewell,
   Laurens Holst,
@@ -91419,6 +91650,10 @@
   features first widely deployed by the Windows Internet Explorer
   browser.</p>
 
+  <p>Thanks to the participants of the microdata usability study for
+  allowing us to use their mistakes as a guide for designing the
+  microdata feature.</p>
+
   <div class="impl">
 
   <p>Special thanks and $10,000 to David Hyatt who came up with a




More information about the Commit-Watchers mailing list