[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