[html5] r4070 - [] (0) Split out the microdata vocabularies into their own specs
whatwg at whatwg.org
whatwg at whatwg.org
Sun Oct 4 03:23:23 PDT 2009
Author: ianh
Date: 2009-10-04 03:23:22 -0700 (Sun, 04 Oct 2009)
New Revision: 4070
Added:
vocabs-index
Modified:
index
source
Log:
[] (0) Split out the microdata vocabularies into their own specs
Modified: index
===================================================================
--- index 2009-10-04 08:50:10 UTC (rev 4069)
+++ index 2009-10-04 10:23:22 UTC (rev 4070)
@@ -73507,9 +73507,11 @@
<tr><td> <code title=event-load>load</code>
<td> The element or page has finished loading
<tr><td class=XXX colspan=2> ...
- </table><h2 class=no-num id=references>References</h2><!--REFS-->
+ </table><!--START vCard--><!--START vEvent--><h2 class=no-num id=references>References</h2><!--REFS-->
+<!--END vCard--><!--END vEvent-->
<p>All references are normative unless marked "Non-normative".</p>
+<!--START vCard--><!--START vEvent-->
<dl><dt id=refsABNF>[ABNF]</dt>
<dd><cite><a href=http://www.ietf.org/rfc/std/std68.txt>Augmented
@@ -74099,7 +74101,7 @@
Transformations (XSLT) Version 1.0</a></cite>, J. Clark. W3C,
November 1999.</dd>
- </dl><h2 class=no-num id=acknowledgements>Acknowledgements</h2> <!-- ACKS -->
+ </dl><!--END vCard--><!--END vEvent--><h2 class=no-num id=acknowledgements>Acknowledgements</h2> <!-- ACKS -->
<p>Thanks to
Modified: source
===================================================================
--- source 2009-10-04 08:50:10 UTC (rev 4069)
+++ source 2009-10-04 10:23:22 UTC (rev 4070)
@@ -50134,10 +50134,32 @@
<!--START vocabs-->
+ <h3 class="no-num no-toc">Table of contents</h3>
+ <!--toc-->
+ <hr>
+
+ <h4>Introduction</h4>
+
+ <p>This specification defines microdata vocabularies. <a
+ href="#refsHTML5">[HTML5]</a></p>
+
+
<h4>vCard</h4>
+<!--END vocabs-->
<!--START vCard-->
+ <h4 class="no-num no-toc">Table of contents</h4>
+ <!--toc-->
+ <hr>
+
+ <h5>The vocabulary</h5>
+
+ <p>This section defines a microdata vocabulary. <a
+ href="#refsHTML5">[HTML5]</a></p>
+
+<!--START vocabs-->
+
<p>An item with the <span>item type</span> <dfn
title="md-vcard"><code>http://microformats.org/profile/hcard</code></dfn>
represents a person's or organization's contact information.</p>
@@ -52378,10 +52400,22 @@
<h4>vEvent</h4>
+<!--END vocabs-->
<!--START vEvent-->
+ <h4 class="no-num no-toc">Table of contents</h4>
+ <!--toc-->
+ <hr>
+
+ <h5>The vocabulary</h5>
+
+ <p>This section defines a microdata vocabulary. <a
+ href="#refsHTML5">[HTML5]</a></p>
+
+<!--START vocabs-->
+
<p>An item with the <span>item type</span> <dfn
- title="md-vevent"><code>http://microformats.org/profile/hcalendar</code></dfn>
+ title="md-vevent"><code>http://microformats.org/profile/hcalendar#vevent</code></dfn>
represents an event.</p>
<p>The following are the type's <span title="defined property
@@ -52409,7 +52443,7 @@
<p>Any number of properties with the name <code
title="md-vevent-attach">attach</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52427,7 +52461,7 @@
<p>Any number of properties with the name <code
title="md-vevent-categories">categories</code> may be present
within each <span title="concept-item">item</span> with the type
- <code title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ <code title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52454,7 +52488,7 @@
<p>A single property with the name <code
title="md-vevent-class">class</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52471,7 +52505,7 @@
<p>Any number of properties with the name <code
title="md-vevent-comment">comment</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52488,7 +52522,7 @@
<p>A single property with the name <code
title="md-vevent-description">description</code> may be present
within each <span title="concept-item">item</span> with the type
- <code title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ <code title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52545,7 +52579,7 @@
<p>A single property with the name <code
title="md-vevent-geo">geo</code> may be present within each <span
title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52562,7 +52596,7 @@
<p>A single property with the name <code
title="md-vevent-location">location</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52582,7 +52616,7 @@
<p>Any number of properties with the name <code
title="md-vevent-resources">resources</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52605,7 +52639,7 @@
<p>A single property with the name <code
title="md-vevent-status">status</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52626,7 +52660,7 @@
<p>A single property with the name <code
title="md-vevent-summary">summary</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52640,7 +52674,7 @@
<p>If the property with the name <code
title="md-vevent-dtend">dtend</code> is present within an <span
title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>
that has a property with the name <code
title="md-vevent-dtstart">dtstart</code> whose value is a
<span>valid date string</span>, then the <span
@@ -52666,9 +52700,9 @@
<p>A single property with the name <code
title="md-vevent-dtend">dtend</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>,
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>,
so long as that <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>
does not have a property with the name <code
title="md-vevent-duration">duration</code>.</p>
@@ -52688,7 +52722,7 @@
<p>Exactly one property with the name <code
title="md-vevent-dtstart">dtstart</code> must be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52708,9 +52742,9 @@
<p>A single property with the name <code
title="md-vevent-duration">duration</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>,
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>,
so long as that <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>
does not have a property with the name <code
title="md-vevent-dtend">dtend</code>.</p>
@@ -52735,7 +52769,7 @@
<p>A single property with the name <code
title="md-vevent-transp">transp</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52756,7 +52790,7 @@
<p>Any number of properties with the name <code
title="md-vevent-contact">contact</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52785,7 +52819,7 @@
<p>A single property with the name <code
title="md-vevent-url">url</code> may be present within each
<span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52807,7 +52841,7 @@
<p>Any number of properties with the name <code
title="md-vevent-exdate">exdate</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52826,7 +52860,7 @@
<p>Any number of properties with the name <code
title="md-vevent-exrule">exrule</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52859,7 +52893,7 @@
<p>Any number of properties with the name <code
title="md-vevent-rdate">rdate</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52878,7 +52912,7 @@
<p>Any number of properties with the name <code
title="md-vevent-rrule">rrule</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52896,7 +52930,7 @@
<p>A single property with the name <code
title="md-vevent-created">created</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52917,7 +52951,7 @@
<p>A single property with the name <code
title="md-vevent-last-modified">last-modified</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -52934,7 +52968,7 @@
<p>A single property with the name <code
title="md-vevent-sequence">sequence</code> may be present within
each <span title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>.</p>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>.</p>
</dd>
@@ -53013,7 +53047,7 @@
<li><p>If none of the nodes in <var title="">nodes</var> are <span
title="concept-item">items</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>,
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>,
then there is no vEvent data. Abort the algorithm, returning
nothing.</p></li>
@@ -53037,7 +53071,7 @@
<p>For each node <var title="">node</var> in <var
title="">nodes</var> that is an <span
title="concept-item">item</span> with the type <code
- title="md-vevent">http://microformats.org/profile/hcalendar</code>,
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>,
run the following steps:</p>
<ol>
@@ -53241,7 +53275,7 @@
<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">http://microformats.org/profile/hcalendar</code>
+ title="md-vevent">http://microformats.org/profile/hcalendar#vevent</code>
<span>item type</span> and <span title="defined property
name">defined property names</span>.</p> <!-- of course since
iCalendar doesn't define error handling, this is somewhat
@@ -53258,7 +53292,7 @@
<p>Here is an example of a page that uses the vEvent vocabulary to
mark up an event:</p>
- <pre><body item="http://microformats.org/profile/hcalendar">
+ <pre><body itemscope itemtype="http://microformats.org/profile/hcalendar#vevent">
...
<h1 itemprop="summary">Bluesday Tuesday: Money Road</h1>
...
@@ -53280,7 +53314,7 @@
this:</p>
<pre>function getCalendar(node) {
- while (node && (!node.nodeScope || !node.itemType == 'http://microformats.org/profile/hcalendar'))
+ while (node && (!node.nodeScope || !node.itemType == 'http://microformats.org/profile/hcalendar#vevent'))
node = node.parentNode;
if (!node) {
alert('No event data found.');
@@ -53321,7 +53355,7 @@
<p>The same page could offer some markup, such as the following,
for copy-and-pasting into blogs:</p>
- <pre><div itemscope itemtype="http://microformats.org/profile/hcalendar">
+ <pre><div itemscope itemtype="http://microformats.org/profile/hcalendar#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>
@@ -53338,8 +53372,20 @@
<h4>Licensing works</h4>
+<!--END vocabs-->
<!--START work-->
+ <h4 class="no-num no-toc">Table of contents</h4>
+ <!--toc-->
+ <hr>
+
+ <h5>The vocabulary</h5>
+
+ <p>This section defines a microdata vocabulary. <a
+ href="#refsHTML5">[HTML5]</a></p>
+
+<!--START vocabs-->
+
<p>An item with the <span>item type</span> <dfn
title="md-work"><code>http://n.whatwg.org/work</code></dfn>
represents a work (e.g. an article, an image, a video, a song,
@@ -53459,8 +53505,8 @@
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">
+ <pre><figure <strong>itemscope itemtype="http://n.whatwg.org/work"</strong>>
+ <dd><img <strong>itemprop="work"</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>
@@ -90429,11 +90475,13 @@
<!--START websocket-api--><!--START storage--><!--START database--><!--START eventsource--><!--START workers-->
+<!--START vocabs--><!--START vCard--><!--START vEvent--><!--START work-->
-
<h2 class="no-num" id="references">References</h2><!--REFS-->
+<!--END vocabs--><!--END vCard--><!--END vEvent--><!--END work-->
<p>All references are normative unless marked "Non-normative".</p>
+<!--START vocabs--><!--START vCard--><!--START vEvent--><!--START work-->
<dl>
<!--REFERENCES ON-->
@@ -91148,6 +91196,7 @@
<!--REFERENCES OFF-->
</dl>
+<!--END vocabs--><!--END vCard--><!--END vEvent--><!--END work-->
<!--END websocket-api--><!--END storage--><!--END database--><!--END eventsource--><!--END workers-->
Added: vocabs-index
===================================================================
--- vocabs-index (rev 0)
+++ vocabs-index 2009-10-04 10:23:22 UTC (rev 4070)
@@ -0,0 +1,2826 @@
+<!DOCTYPE html><html lang="en-US-x-hixie"><meta charset="ascii"><title>Microdata Vocabularies: vCard, vEvent, and works</title><link href="/style/specification" rel="stylesheet"><link href="/images/icon" rel="icon"><style type="text/css">
+
+ .applies thead th > * { display: block; }
+ .applies thead code { display: block; }
+ .applies tbody th { whitespace: nowrap; }
+ .applies td { text-align: center; }
+ .applies .yes { background: yellow; }
+
+ .matrix, .matrix td { border: none; text-align: right; }
+ .matrix { margin-left: 2em; }
+
+ .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+ .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+ .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+ #table-example-1 { border: solid thin; border-collapse: collapse; margin-left: 3em; }
+ #table-example-1 * { font-family: "Essays1743", serif; line-height: 1.01em; }
+ #table-example-1 caption { padding-bottom: 0.5em; }
+ #table-example-1 thead, #table-example-1 tbody { border: none; }
+ #table-example-1 th, #table-example-1 td { border: solid thin; }
+ #table-example-1 th { font-weight: normal; }
+ #table-example-1 td { border-style: none solid; vertical-align: top; }
+ #table-example-1 th { padding: 0.5em; vertical-align: middle; text-align: center; }
+ #table-example-1 tbody tr:first-child td { padding-top: 0.5em; }
+ #table-example-1 tbody tr:last-child td { padding-bottom: 1.5em; }
+ #table-example-1 tbody td:first-child { padding-left: 2.5em; padding-right: 0; width: 9em; }
+ #table-example-1 tbody td:first-child::after { content: leader(". "); }
+ #table-example-1 tbody td { padding-left: 2em; padding-right: 2em; }
+ #table-example-1 tbody td:first-child + td { width: 10em; }
+ #table-example-1 tbody td:first-child + td ~ td { width: 2.5em; }
+ #table-example-1 tbody td:first-child + td + td + td ~ td { width: 1.25em; }
+
+ .apple-table-examples { border: none; border-collapse: separate; border-spacing: 1.5em 0em; width: 40em; margin-left: 3em; }
+ .apple-table-examples * { font-family: "Times", serif; }
+ .apple-table-examples td, .apple-table-examples th { border: none; white-space: nowrap; padding-top: 0; padding-bottom: 0; }
+ .apple-table-examples tbody th:first-child { border-left: none; width: 100%; }
+ .apple-table-examples thead th:first-child ~ th { font-size: smaller; font-weight: bolder; border-bottom: solid 2px; text-align: center; }
+ .apple-table-examples tbody th::after, .apple-table-examples tfoot th::after { content: leader(". ") }
+ .apple-table-examples tbody th, .apple-table-examples tfoot th { font: inherit; text-align: left; }
+ .apple-table-examples td { text-align: right; vertical-align: top; }
+ .apple-table-examples.e1 tbody tr:last-child td { border-bottom: solid 1px; }
+ .apple-table-examples.e1 tbody + tbody tr:last-child td { border-bottom: double 3px; }
+ .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
+ .apple-table-examples sup { line-height: 0; }
+
+ </style><body class="draft">
+
+ <div class="head">
+ <p><a class="logo" href="http://www.whatwg.org/" rel="home"><img alt="WHATWG" src="/images/logo"></a></p>
+ <h1>Microdata Vocabularies: vCard, vEvent, and works</h1>
+ <h2 class="no-num no-toc" id="draft-standard-4-october-2009">Draft Standard — 4 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>
+ <dl><dt>This specification:</dt>
+ <dd><a href="http://www.whatwg.org/specs/web-apps/current-work/">http://www.whatwg.org/specs/web-apps/current-work/</a></dd>
+ <dt>Version history:</dt>
+ <dd>Twitter messages (non-editorial changes only): <a href="http://twitter.com/WHATWG">http://twitter.com/WHATWG</a></dd>
+ <dd>Commit-Watchers mailing list: <a href="http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org">http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org</a></dd>
+ <dd>Interactive Web interface: <a href="http://html5.org/tools/web-apps-tracker">http://html5.org/tools/web-apps-tracker</a></dd>
+ <dd>Subversion interface: <a href="http://svn.whatwg.org/">http://svn.whatwg.org/</a></dd>
+ <dt>Issues:</dt>
+ <dd>To send feedback: <a href="http://www.whatwg.org/mailing-list">whatwg at whatwg.org</a></dd>
+ <dd>To view and vote on feedback: <a href="http://www.whatwg.org/issues/">http://www.whatwg.org/issues/</a></dd>
+ <dt>Editor:</dt>
+ <dd>Ian Hickson, Google, ian at hixie.ch</dd>
+ </dl><p class="copyright">© Copyright 2004-2009 Apple Computer, Inc.,
+ Mozilla Foundation, and Opera Software ASA.</p>
+ <p class="copyright">You are granted a license to use, reproduce
+ and create derivative works of this document.</p>
+ </div>
+
+ <hr><h2 class="no-num no-toc" id="abstract">Abstract</h2>
+
+ <p>This specification defines some microdata item types and their
+ defined property names. Three vocabularies are defined: one for
+ marking up contact information, one for marking up events, and one
+ for marking up authorship and licensing information for works.</p>
+
+
+ <h2 class="no-num no-toc" id="status">Status of this document</h2>
+
+ <p><strong>This is a work in progress!</strong> This document is
+ changing on a daily if not hourly basis in response to comments and
+ as a general part of its development process. Comments are very
+ welcome, please send them to <a href="mailto:whatwg at whatwg.org">whatwg at whatwg.org</a>. Thank
+ you.</p>
+
+ <p>The current focus is in responding to the <a href="http://www.whatwg.org/issues/">outstanding
+ feedback</a>. (There is <a href="http://www.whatwg.org/issues/data.html">a chart</a> showing
+ current progress.)</p>
+
+ <p>Implementors should be aware that this specification is not
+ stable. <strong>Implementors who are not taking part in the
+ discussions are likely to find the specification changing out from
+ under them in incompatible ways.</strong> Vendors interested in
+ implementing this specification before it eventually reaches the
+ call for implementations should join the <a href="/mailing-list">WHATWG mailing list</a> and take part in the
+ discussions.</p>
+
+ <p>This specification is also being produced (in three parts) by the
+ <a href="http://www.w3.org/html/wg">W3C HTML WG</a>. This
+ specification and the corresponding W3C specifications are generated
+ from the same source document and as such have the same content.</p>
+ <h3 class="no-num no-toc" id="table-of-contents">Table of contents</h3>
+
+<!--begin-toc-->
+<ol class="toc">
+ <li><a href="#introduction"><span class="secno">1 </span>Introduction</a></li>
+ <li><a href="#vcard"><span class="secno">2 </span>vCard</a>
+ <ol>
+ <li><a href="#conversion-to-vcard"><span class="secno">2.1 </span>Conversion to vCard</a></li>
+ <li><a href="#examples"><span class="secno">2.2 </span>Examples</a></ol></li>
+ <li><a href="#vevent"><span class="secno">3 </span>vEvent</a>
+ <ol>
+ <li><a href="#conversion-to-icalendar"><span class="secno">3.1 </span>Conversion to iCalendar</a></li>
+ <li><a href="#examples-0"><span class="secno">3.2 </span>Examples</a></ol></li>
+ <li><a href="#licensing-works"><span class="secno">4 </span>Licensing works</a>
+ <ol>
+ <li><a href="#conversion-to-rdf"><span class="secno">4.1 </span>Conversion to RDF</a></li>
+ <li><a href="#examples-1"><span class="secno">4.2 </span>Examples</a></ol></li>
+ <li><a class="no-num" href="#references">References</a></ol>
+<!--end-toc-->
+ <hr><h2 id="introduction"><span class="secno">1 </span>Introduction</h2>
+
+ <p>This specification defines microdata vocabularies. <a href="#refsHTML5">[HTML5]</a></p>
+
+
+ <h2 id="vcard"><span class="secno">2 </span>vCard</h2>
+
+
+ <p>An item with the <span>item type</span> <dfn id="md-vcard" title="md-vcard"><code>http://microformats.org/profile/hcard</code></dfn>
+ represents a person's or organization's contact information.</p>
+
+ <p>The following are the type's <span title="defined property
+ name">defined property names</span>. 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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ an <span title="concept-item">item</span> 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 <span title="concept-item">item</span> with
+ the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-item">item</span> 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
+ <span title="concept-property-value">values</span> that are
+ strings and those strings are identical when compared in a
+ <span>case-sensitive</span> manner.</dt>
+
+ <dd>
+
+ <p>The contact information must be for an organization.</p>
+
+ </dd>
+
+ <dt>The <span title="concept-item">item</span> with the type
+ <code title="">vcard</code> has an <code title="md-vcard-fn"><a href="#md-vcard-fn">fn</a></code> property whose <span title="concept-property-value">value</span> consists of a string
+ with zero <span title="space character">space
+ characters</span>.</dt>
+
+ <dd>
+
+ <p>The <span title="concept-property-value">value</span> of the
+ <code title="md-vcard-fn"><a href="#md-vcard-fn">fn</a></code> property must be a
+ nickname.</p>
+
+ </dd>
+
+ <dt>The <span title="concept-item">item</span> with the type
+ <code title="">vcard</code> has an <code title="md-vcard-fn"><a href="#md-vcard-fn">fn</a></code> property whose <span title="concept-property-value">value</span> consists of a string
+ with exactly one sequence of <span title="space character">space
+ characters</span>, which occurs neither at the immediate start
+ nor the immediate end of the string.</dt>
+
+ <dd>
+
+ <p>The <span title="concept-property-value">value</span> 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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the
+ <span title="concept-property-value">value</span> of the <code title="md-vcard-n"><a href="#md-vcard-n">n</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the
+ <span title="concept-property-value">value</span> of the <code title="md-vcard-n"><a href="#md-vcard-n">n</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of the
+ <code title="md-vcard-n"><a href="#md-vcard-n">n</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of the
+ <code title="md-vcard-n"><a href="#md-vcard-n">n</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of the
+ <code title="md-vcard-n"><a href="#md-vcard-n">n</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be a
+ <span>valid date string</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ an <span title="concept-item">item</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ text that, when compared in a <span>case-sensitive</span> manner,
+ is equal to one of the <a href="#address-type-strings">address type strings</a>.</p>
+
+ <p>Within each <span title="concept-item">item</span> with the
+ type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property <span title="concept-item">item</span> 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
+ <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of an <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, but within each such <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property <span title="concept-item">item</span> 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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the
+ <span title="concept-property-value">value</span> of an <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of an <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the
+ <span title="concept-property-value">value</span> of an <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-adr"><a href="#md-vcard-adr">adr</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ either text or an <span title="concept-item">item</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of a
+ <code title="md-vcard-label"><a href="#md-vcard-label">label</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, or if the <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ text that, when compared in a <span>case-sensitive</span> manner,
+ is equal to one of the <a href="#address-type-strings">address type strings</a>.</p>
+
+ <p>Within each <span title="concept-item">item</span> with the
+ type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title="md-vcard-label"><a href="#md-vcard-label">label</a></code> property <span title="concept-item">item</span> 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
+ <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of a <code title="md-vcard-label"><a href="#md-vcard-label">label</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, but within each such <code title="md-vcard-label"><a href="#md-vcard-label">label</a></code> property <span title="concept-item">item</span> 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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of a <code title="md-vcard-label"><a href="#md-vcard-label">label</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of a
+ <code title="md-vcard-tel"><a href="#md-vcard-tel">tel</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, or if the <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ text that, when compared in a <span>case-sensitive</span> manner,
+ is equal to one of the <a href="#telephone-type-strings">telephone type strings</a>.</p>
+
+ <p>Within each <span title="concept-item">item</span> with the
+ type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title="md-vcard-tel"><a href="#md-vcard-tel">tel</a></code> property <span title="concept-item">item</span> 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
+ <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of a <code title="md-vcard-tel"><a href="#md-vcard-tel">tel</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, but within each such <code title="md-vcard-tel"><a href="#md-vcard-tel">tel</a></code> property <span title="concept-item">item</span> 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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of a <code title="md-vcard-tel"><a href="#md-vcard-tel">tel</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ either text or an <span title="concept-item">item</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-email"><a href="#md-vcard-email">email</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, or if the <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ text that, when compared in a <span>case-sensitive</span> manner,
+ is equal to one of the <a href="#e-mail-type-strings">e-mail type strings</a>.</p>
+
+ <p>Within each <span title="concept-item">item</span> with the
+ type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title="md-vcard-email"><a href="#md-vcard-email">email</a></code> property <span title="concept-item">item</span> 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
+ <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of an <code title="md-vcard-email"><a href="#md-vcard-email">email</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, but within each such <code title="md-vcard-email"><a href="#md-vcard-email">email</a></code> property <span title="concept-item">item</span> 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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of an <code title="md-vcard-email"><a href="#md-vcard-email">email</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span>valid non-negative integer</span> 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 <span>valid non-negative integer</span> 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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ either an <span title="concept-item">item</span> with the type
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, or an <span>absolute
+ URL</span>, 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ either text or an <span title="concept-item">item</span> 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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span>
+ that forms the <span title="concept-property-value">value</span>
+ of an <code title="md-vcard-org"><a href="#md-vcard-org">org</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span>
+ that forms the <span title="concept-property-value">value</span>
+ of the <code title="md-vcard-org"><a href="#md-vcard-org">org</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ text that is a <span>valid global date and time string</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>.</p>
+
+ </dd>
+
+
+ <!-- UID not included - use "itemid" -->
+
+
+ <dt><dfn id="md-vcard-url" title="md-vcard-url"><code>url</code></dfn></dt>
+
+ <dd>
+
+ <p>Gives a <span>URL</span> relating to the person or
+ organization.</p>
+
+ <p>The <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span>URL</span> for instant messaging and presence
+ protocol communications with the person or organization.</p>
+
+ <p>The <span title="concept-property-value">value</span> must be
+ either an <span>absolute URL</span> or an <span title="concept-item">item</span> 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 <span title="concept-item">item</span> that
+ forms the <span title="concept-property-value">value</span> of an
+ <code title="md-vcard-impp"><a href="#md-vcard-impp">impp</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, or if the <span title="concept-property-value">value</span> of such an <code title="md-vcard-impp"><a href="#md-vcard-impp">impp</a></code> property is an <span>absolute
+ URL</span>, 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
+ <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span>URL</span>.</p>
+
+ <p>The <span title="concept-property-value">value</span> must be
+ text that, when compared in a <span>case-sensitive</span> manner,
+ is equal to one of the <a href="#impp-type-strings">IMPP type strings</a>.</p>
+
+ <p>Within each <span title="concept-item">item</span> with the
+ type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, there must be no more
+ than one <code title="md-vcard-impp"><a href="#md-vcard-impp">impp</a></code> property <span title="concept-item">item</span> 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
+ <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of an <code title="md-vcard-impp"><a href="#md-vcard-impp">impp</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</a></code>, but within each such <code title="md-vcard-impp"><a href="#md-vcard-impp">impp</a></code> property <span title="concept-item">item</span> 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 <span>URL</span> for instant messaging and
+ presence protocol communications with the person or
+ organization.</p>
+
+ <p>The <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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 <span title="concept-item">item</span> that forms the <span title="concept-property-value">value</span> of an <code title="md-vcard-impp"><a href="#md-vcard-impp">impp</a></code> property of an <span title="concept-item">item</span> with the type <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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
+ <span>URL</span> 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
+ <span>URL</span>.</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
+ <span>URL</span>s are specified.</p>
+ <dd>
+
+ </dl><h3 id="conversion-to-vcard"><span class="secno">2.1 </span>Conversion to vCard</h3>
+
+ <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 vCard 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 <span title="concept-item">items</span> with the <span>item type</span>
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-item">item</span> with the <span>item type</span>
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span>the document's current
+ address</span> as the value to <var title="">output</var>.</li>
+
+ <li><p>If <span>the <code>title</code> element</span> 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 <span>the <code>title</code> element</span> as the value to <var title="">output</var>.</li>
+
+ <li><p>If <var title="">node</var> has a <span>global
+ identifier</span>, <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> of that <span>global identifier</span>
+ as the value to <var title="">output</var>.</li>
+
+ <li><p>Let <var title="">first-n</var>, <var title="">first-org</var>, and <var title="">first-fn</var> be
+ null.</li>
+
+ <li>
+
+ <p>For each element <var title="">element</var> that is <span title="the properties of an item">a property of the item</span>
+ <var title="">node</var>: for each name <var title="">name</var>
+ in <var title="">element</var>'s <span>property names</span>, run
+ the following substeps:</p>
+
+ <ol><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 <span title="concept-property-value">value</span> is an <span title="concept-item">item</span> <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>If <var title="">first-n</var> is null, let <var title="">first-n</var> be <var title="">element</var>.</li>
+
+ <li><p>Let <var title="">n1</var> be the <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span>.</li>
+
+ <li><p>Let <var title="">n2</var> be the <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span>.</li>
+
+ <li><p>Let <var title="">n3</var> be the <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span>.</li>
+
+ <li><p>Let <var title="">n4</var> be the <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span>.</li>
+
+ <li><p>Let <var title="">n5</var> be the <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span>.</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 <span title="concept-property-value">value</span> is an <span title="concept-item">item</span> <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
+ <span title="concept-property-value">value</span> that is not
+ an <span title="concept-item">item</span> and whose value
+ consists only of <span>alphanumeric ASCII characters</span>,
+ then add a parameter named "<code title="">TYPE</code>" whose
+ value is the <span title="concept-property-value">value</span> of that property
+ to <var title="">parameters</var>.</li>
+
+ </ol></dd>
+
+ <dt>If the property's <span title="concept-property-value">value</span> is an <span title="concept-item">item</span> <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>If <var title="">first-org</var> is null, let <var title="">first-org</var> be <var title="">element</var>.</li>
+
+ <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 <span title="concept-property-value">value</span> of the property
+ is an <span title="concept-item">item</span>, 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 <span title="concept-property-value">value</span> of the property
+ to <var title="">value</var>.</li>
+
+ </ol></li>
+
+ </ol></dd>
+
+ <dt>If the property's <span title="concept-property-value">value</span> is an <span title="concept-item">item</span> <var title="">subitem</var>
+ with the <span>item type</span> <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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 <span title="concept-property-value">value</span> is an <span title="concept-item">item</span> 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 <span title="concept-property-value">value</span> that is not an
+ <span title="concept-item">item</span> and whose value
+ consists only of <span>alphanumeric ASCII characters</span>,
+ then add a parameter named "<code title="">TYPE</code>" whose
+ value is the <span title="concept-property-value">value</span> of that property
+ to <var title="">parameters</var>.</li>
+
+ </ol></dd>
+
+ <dt>Otherwise (the property's <span title="concept-property-value">value</span> is not an <span title="concept-item">item</span>)</dt>
+
+ <dd>
+
+ <ol><li>
+
+ <p>If <var title="">name</var> is <code title="md-vcard-fn"><a href="#md-vcard-fn">fn</a></code> and <var title="">first-fn</var> is null, let <var title="">first-fn</var> be <var title="">element</var>.</p>
+
+ <p>Otherwise, if <var title="">name</var> is <code title="md-vcard-org"><a href="#md-vcard-org">org</a></code> and <var title="">first-org</var> is null, let <var title="">first-org</var> be <var title="">element</var>.</p>
+
+ </li>
+
+ <li><p>Let <var title="">value</var> be the property's <span title="concept-property-value">value</span>.</li>
+
+ <li><p>If <var title="">element</var> is one of the <span>URL
+ property elements</span>, 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>time</code> element and the <var title="">value</var> is
+ a <span>valid date string</span>, 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>time</code> element and the <var title="">value</var> is
+ a <span>valid global date and time string</span>, 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 <var title="">first-n</var> is null, then run the following
+ substeps:</p>
+
+ <ol><li><p>If <var title="">first-fn</var> is also null, then skip
+ the remainder of these substeps.</li>
+
+ <li><p>If <var title="">first-fn</var> has a <span title="concept-property-value">value</span> that is an <span title="concept-item">item</span>, then skip the remainder of
+ these substeps.</li>
+
+ <li><p>If <var title="">first-org</var> is not null, and the
+ <span title="concept-property-value">value</span> of <var title="">first-org</var> is not an <span title="concept-item">item</span> and is equal to <var title="">first-fn</var>, 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 <span title="space character">space
+ characters</span> in <var title="">first-fn</var>, if any, are
+ not all contiguous, then skip the remainder of these
+ substeps.</li>
+
+ <li><p><span title="split a string on spaces">Split <var title="">first-fn</var> on spaces</span>, 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>, <span>converted to
+ ASCII uppercase</span>, 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 <span title="concept-property-value">value</span>
+ of the property is itself an <span title="concept-item">item</span>, 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 <span title="concept-property-value">value</span> 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 <span title="concept-property-value">value</span> of
+ the first property named <var title="">subname</var> in <var title="">subitem</var> is an <span title="concept-item">item</span>, 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 <span title="concept-property-value">value</span> 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">http://microformats.org/profile/hcard</a></code>
+ <span>item type</span> and <span title="defined property
+ name">defined property names</span>.</p> <!-- of course since vcard
+ doesn't define error handling, this is somewhat problematic. -->
+
+
+
+ <h3 id="examples"><span class="secno">2.2 </span>Examples</h3>
+
+ <div class="example">
+
+ <p>Here is a long example vCard for a fictional character called
+ "Jack Bauer":</p>
+
+ <pre><section id="jack" itemscope itemtype="http://microformats.org/profile/hcard">
+ <h1 itemprop="fn">Jack Bauer</h1>
+ <img itemprop="photo" alt="" src="jack-bauer.jpg">
+ <p itemprop="org" itemscope>
+ <span itemprop="organization-name">Counter-Terrorist Unit</span>
+ (<span itemprop="organization-unit">Los Angeles Division</span>)
+ </p>
+ <p>
+ <span itemprop="adr" itemscope>
+ <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" itemscope><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" itemscope><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" itemscope
+ itemtype="http://microformats.org/profile/hcard"><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" itemscope>
+ <meta itemprop="type" content="date-time">
+ <meta itemprop="value" content="2008-07-20T21:00:00+0100">
+ </span>
+ <p itemprop="tel" itemscope><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>address</code> element) containing an address with two street
+ components:</p>
+
+ <pre><address itemscope itemtype="http://microformats.org/profile/hcard">
+ <strong title="fn">Alfred Person</strong> <br>
+ <span itemprop="adr" itemscope>
+ <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>
+
+ <div class="example">
+
+ <p>The vCard vocabulary can be used to just mark up people's
+ names:</p>
+
+ <pre><span itemscope itemtype="http://microformats.org/profile/hcard"
+><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>
+
+<!--END vCard-->
+
+ <h2 id="vevent"><span class="secno">3 </span>vEvent</h2>
+
+
+ <p>An item with the <span>item type</span> <dfn id="md-vevent" title="md-vevent"><code>http://microformats.org/profile/hcalendar#vevent</code></dfn>
+ represents an event.</p>
+
+ <p>The following are the type's <span title="defined property
+ name">defined property names</span>. 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 <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type
+ <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type
+ <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> must be
+ text.</p>
+
+ <p>User agents should replace U+000A LINE FEED (LF) characters in
+ the <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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
+ <span>valid date string</span>, then the <span title="concept-property-value">value</span> 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 <span>valid date string</span> also. Otherwise, the
+ <span title="concept-property-value">value</span> of the property
+ must be text that is a <span>valid global date and time
+ string</span>.</p>
+
+ <p>In either case, the <span title="concept-property-value">value</span> be later in time than
+ the value of the <code title="md-event-dtstart">dtstart</code>
+ property of the same <span title="concept-item">item</span>.</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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#vevent</a></code>,
+ so long as that <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> must be
+ text that is either a <span>valid date string</span> or a
+ <span>valid global date and time string</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#vevent</a></code>,
+ so long as that <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span>URL</span> for the event.</p>
+
+ <p>The <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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
+ <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#vevent</a></code>.</p>
+
+ </dd>
+
+
+ <!-- UID not included - use "itemid" -->
+
+
+ <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 <span title="concept-property-value">value</span> must be
+ text that is either a <span>valid date string</span> or a
+ <span>valid global date and time string</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> must be
+ text that is one of the following:
+
+ <ul><li>A <span>valid date string</span>.</li>
+
+ <li>A <span>valid global date and time string</span>.</li>
+
+ <li>A <span>valid global date and time string</span> followed by
+ a U+002F SOLIDUS character (/) followed by a second <span>valid
+ global date and time string</span> representing a later time.</li>
+
+ <li>A <span>valid global date and time string</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> 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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> must be
+ text that is a <span>valid global date and time string</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> must be
+ text that is a <span>valid global date and time string</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-property-value">value</span> must be
+ text that is a <span>valid non-negative integer</span>.</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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span>valid non-negative integer</span> 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 <span>valid non-negative integer</span> 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 <span>valid non-negative integer</span> followed by
+ a U+0048 LATIN CAPITAL LETTER H character. The integer
+ represents a duration of that number of hours. </li>
+
+ <li> A <span>valid non-negative integer</span> followed by
+ a U+004D LATIN CAPITAL LETTER M character. The integer
+ represents a duration of that number of minutes. </li>
+
+ <li> A <span>valid non-negative integer</span> 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><h3 id="conversion-to-icalendar"><span class="secno">3.1 </span>Conversion to iCalendar</h3>
+
+ <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 vEvent data
+ represented by those nodes</dfn>:</p>
+
+ <ol><li><p>If none of the nodes in <var title="">nodes</var> are <span title="concept-item">items</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 <span title="concept-item">item</span> with the type <code title="md-vevent"><a href="#md-vevent">http://microformats.org/profile/hcalendar#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 the <span title="concept-item">item</span> has a
+ <span>global identifier</span>, <a href="#add-an-icalendar-line">add an iCalendar
+ line</a> with the type "<code title="">UID</code>" and that
+ <span>global identifier</span> as the value to <var title="">output</var>.</li>
+
+ <li>
+
+ <p>For each element <var title="">element</var> that is <span title="the properties of an item">a property of the item</span>
+ <var title="">node</var>: for each name <var title="">name</var>
+ in <var title="">element</var>'s <span>property names</span>,
+ run the appropriate set of substeps from the following list:</p>
+
+ <dl><dt>If the property's <span title="concept-property-value">value</span> is an <span title="concept-item">item</span></dt>
+
+ <dd>
+
+ <p>Skip the property.</p>
+
+ </dd>
+
+
+ <dt>If <var title="">element</var> is a <code>time</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 <span title="concept-property-value">value</span>.</p>
+
+ <p>If the property's <span title="concept-property-value">value</span> is a <span>valid
+ date string</span> 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 <span title="concept-property-value">value</span> is a <span>valid
+ global date and time string</span> 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>, <span>converted to
+ ASCII uppercase</span>, 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">http://microformats.org/profile/hcalendar#vevent</a></code>
+ <span>item type</span> and <span title="defined property
+ name">defined property names</span>.</p> <!-- of course since
+ iCalendar doesn't define error handling, this is somewhat
+ problematic. -->
+
+
+
+ <h3 id="examples-0"><span class="secno">3.2 </span>Examples</h3>
+
+<!-- get more from http://www.ietf.org/rfc/rfc2445.txt -->
+
+ <div class="example">
+
+ <p>Here is an example of a page that uses the vEvent vocabulary to
+ mark up an event:</p>
+
+ <pre><body itemscope itemtype="http://microformats.org/profile/hcalendar#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.nodeScope || !node.itemType == 'http://microformats.org/profile/hcalendar#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';
+ if (node.itemId)
+ calendar += 'UID:' + node.itemId + '\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 itemscope itemtype="http://microformats.org/profile/hcalendar#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>
+
+<!--END vEvent-->
+
+ <h2 id="licensing-works"><span class="secno">4 </span>Licensing works</h2>
+
+
+ <p>An item with the <span>item type</span> <dfn id="md-work" title="md-work"><code>http://n.whatwg.org/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 <span title="defined property
+ name">defined property names</span>.</p>
+
+ <dl><dt><dfn id="md-work-work" title="md-work-work"><code>work</code></dfn></dt>
+
+ <dd>
+
+ <p>Identifies the work being described.</p>
+
+ <p>The <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</p>
+
+ <p>Exactly one property with the name <code title="md-work-work"><a href="#md-work-work">work</a></code> must be present within each <span title="concept-item">item</span> with the type <code title="md-work"><a href="#md-work">http://n.whatwg.org/work</a></code>.</p>
+
+ </dd>
+
+
+ <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
+ <span title="concept-item">item</span> with the type <code title="md-work"><a href="#md-work">http://n.whatwg.org/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 <span title="concept-property-value">value</span> must be
+ either an <span title="concept-item">item</span> with the type
+ <code title="md-vcard"><a href="#md-vcard">http://microformats.org/profile/hcard</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
+ <span title="concept-item">item</span> with the type <code title="md-work"><a href="#md-work">http://n.whatwg.org/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 <span title="concept-property-value">value</span> must be
+ an <span>absolute URL</span>.</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
+ <span title="concept-item">item</span> with the type <code title="md-work"><a href="#md-work">http://n.whatwg.org/work</a></code>.</p>
+
+ </dd>
+
+ </dl><h3 id="conversion-to-rdf"><span class="secno">4.1 </span>Conversion to RDF</h3>
+
+ <p>For the purposes of RDF processors, blank nodes that are the
+ subject of a triple with the predicate "<code title="">http://www.w3.org/1999/xhtml/microdata#http%3A%2F%2Fn.whatwg.org%2Fwork%23%3Awork</code>"
+ and the object <var title="">s</var> must be treated as if the node
+ was identified by <var title="">s</var>.</p>
+
+ <p>For the purposes of RDF processors, the predicate "<code title="">http://www.w3.org/1999/xhtml/microdata#http%3A%2F%2Fn.whatwg.org%2Fwork%23%3Atitle</code>"
+ must be considered equivalent to the predicate "<code title="">http://purl.org/dc/elements/1.1/title</code>".
+
+ <p>For the purposes of RDF processors, the predicate "<code title="">http://www.w3.org/1999/xhtml/microdata#http%3A%2F%2Fn.whatwg.org%2Fwork%23%3Aauthor</code>"
+ must be considered equivalent to the predicate "<code title="">http://creativecommons.org/ns#attributionName</code>".
+
+ <p>For the purposes of RDF processors, the predicate "<code title="">http://www.w3.org/1999/xhtml/microdata#http%3A%2F%2Fn.whatwg.org%2Fwork%23%3Alicense</code>"
+ must be considered equivalent to the predicate "<code title="">http://www.w3.org/1999/xhtml/vocab#license</code>".
+
+
+
+
+ <h3 id="examples-1"><span class="secno">4.2 </span>Examples</h3>
+
+ <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>itemscope itemtype="http://n.whatwg.org/work"</strong>>
+ <dd><img <strong>itemprop="work"</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>
+
+
+
+
+ <h2 class="no-num" id="references">References</h2><!--REFS-->
+
+
+ <dl><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="refsHTML5">[HTML5]</dt>
+ <!--
+ <dd><cite><a href="http://www.w3.org/TR/html5/">HTML5</a></cite>,
+ I. Hickson, D. Hyatt. W3C, April 2009.</dd>
+ <dd><cite><a
+ href="http://www.w3.org/html/wg/html5/">HTML5</a></cite>,
+ I. Hickson, D. Hyatt. W3C, August 2009.</dd>
+ -->
+ <dd><cite><a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML5</a></cite>,
+ I. Hickson. WHATWG, August 2009.</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="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="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>
+
+ </dl>
More information about the Commit-Watchers
mailing list