hixie: Rather than having such a minor variant, just make the item='' property always have a single type, and remove all the multitype features. (whatwg r3665)

hixie: Rather than having such a minor variant, just make the item=''
property always have a single type, and remove all the multitype
features. (whatwg r3665)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.2843&r2=1.2844&f=h
http://html5.org/tools/web-apps-tracker?from=3664&to=3665

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.2843
retrieving revision 1.2844
diff -u -d -r1.2843 -r1.2844
--- Overview.html 23 Aug 2009 09:01:30 -0000 1.2843
+++ Overview.html 24 Aug 2009 08:00:41 -0000 1.2844
@@ -169,7 +169,7 @@
    <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2>
    <!--ZZZ:-->
    <h2 class="no-num no-toc" id="w3c-working-draft-25-august-2009">W3C Working Draft 25 August 2009</h2>
-   <!--<h2 class="no-num no-toc">Editor's Draft 23 August 2009</h2>-->
+   <!--<h2 class="no-num no-toc">Editor's Draft 24 August 2009</h2>-->
    <!--:ZZZ-->
    <dl><!-- ZZZ: update the month/day (twice), (un)comment out--><dt>This Version:</dt>
     <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090825/">http://www.w3.org/TR/2009/WD-html5-20090825/</a></dd>
@@ -267,7 +267,7 @@
   track.
   <!--ZZZ:-->
   This specification is the 25 August 2009 Working Draft.
-  <!--This specification is the 23 August 2009 Editor's Draft.-->
+  <!--This specification is the 24 August 2009 Editor's Draft.-->
   <!--:ZZZ-->
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href="http://www.whatwg.org/">WHATWG</a>. The two specifications are
   identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of)
@@ -6735,7 +6735,7 @@
   readonly attribute <a href="#domstringmap">DOMStringMap</a> <a href="#dom-dataset" title="dom-dataset">dataset</a>;
 
   // <a href="#microdata">microdata</a>
-  [PutForwards=<a href="#dom-domsettabletokenlist-value" title="dom-DOMSettableTokenList-value">value</a>] readonly attribute <a href="#domsettabletokenlist">DOMSettableTokenList</a> <a href="#dom-item" title="dom-item">item</a>;
+           attribute DOMString <a href="#dom-item" title="dom-item">item</a>;
   [PutForwards=<a href="#dom-domsettabletokenlist-value" title="dom-DOMSettableTokenList-value">value</a>] readonly attribute <a href="#domsettabletokenlist">DOMSettableTokenList</a> <a href="#dom-itemprop" title="dom-itemprop">itemprop</a>;
   readonly attribute <a href="#htmlpropertycollection">HTMLPropertyCollection</a> <a href="#dom-properties" title="dom-properties">properties</a>;
            attribute DOMString <a href="#dom-content" title="dom-content">content</a>;
@@ -37580,14 +37580,14 @@
   attribute is used.<p>To add a property to an item, the <code title="attr-itemprop"><a href="#names:-the-itemprop-attribute">itemprop</a></code> attribute is used on one of
   the <a href="#concept-item" title="concept-item">item's</a> descendants.<div class="example">
 
-   <p>Here there are two items, each of which have the property "com.example.name":</p>
+   <p>Here there are two items, each of which have the property "name":</p>
 
    <pre>&lt;div item&gt;
- &lt;p&gt;My name is &lt;span itemprop="com.example.name"&gt;Elizabeth&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;My name is &lt;span itemprop="name"&gt;Elizabeth&lt;/span&gt;.&lt;/p&gt;
 &lt;/div&gt;
 
 &lt;div item&gt;
- &lt;p&gt;My name is &lt;span itemprop="com.example.name"&gt;Daniel&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;My name is &lt;span itemprop="name"&gt;Daniel&lt;/span&gt;.&lt;/p&gt;
 &lt;/div&gt;</pre>
 
   </div><p>Properties generally have values that are strings.<div class="example">
@@ -37595,9 +37595,9 @@
    <p>Here the item has three properties:</p>
 
    <pre>&lt;div item&gt;
- &lt;p&gt;My name is &lt;span itemprop="com.example.name"&gt;Neil&lt;/span&gt;.&lt;/p&gt;
- &lt;p&gt;My band is called &lt;span itemprop="com.example.band"&gt;Four Parts Water&lt;/span&gt;.&lt;/p&gt;
- &lt;p&gt;I am &lt;span itemprop="com.example.nationality"&gt;British&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;My name is &lt;span itemprop="name"&gt;Neil&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;My band is called &lt;span itemprop="band"&gt;Four Parts Water&lt;/span&gt;.&lt;/p&gt;
+ &lt;p&gt;I am &lt;span itemprop="nationality"&gt;British&lt;/span&gt;.&lt;/p&gt;
 &lt;/div&gt;</pre>
 
   </div><p>Properties can also have values that are <a href="#url" title="URL">URLs</a>. This is achieved using the <code><a href="#the-a-element">a</a></code>
@@ -37605,10 +37605,10 @@
   attribute, the <code><a href="#the-img-element">img</a></code> element and its <code title="attr-img-src"><a href="#attr-img-src">src</a></code> attribute, or other elements that
   link to or embed external resources.<div class="example">
 
-   <p>In this example, the item has one property, "com.example.image", whose value is a URL:</p>
+   <p>In this example, the item has one property, "image", whose value is a URL:</p>
 
    <pre>&lt;div item&gt;
- &lt;img itemprop="com.example.image" src="google-logo.png" alt="Google"&gt;
+ &lt;img itemprop="image" src="google-logo.png" alt="Google"&gt;
 &lt;/div&gt;</pre>
 
   </div><p>Properties can also have values that are dates, times, or dates
@@ -37616,10 +37616,10 @@
   its <code title="attr-time-datetime"><a href="#attr-time-datetime">datetime</a></code> attribute.<div class="example">
 
    <p>In this example, the item has one property,
-   "com.example.birthday", whose value is a date:</p>
+   "birthday", whose value is a date:</p>
 
    <pre>&lt;div item&gt;
- I was born on &lt;time itemprop="com.example.birthday" datetime="2009-05-10"&gt;May 10th 2009&lt;/time&gt;.
+ I was born on &lt;time itemprop="birthday" datetime="2009-05-10"&gt;May 10th 2009&lt;/time&gt;.
 &lt;/div&gt;</pre>
 
   </div><p>Properties can also themselves be groups of name-value pairs, by
@@ -37631,16 +37631,16 @@
    inner one represents a band:</p>
 
    <pre>&lt;div item&gt;
- &lt;p&gt;Name: &lt;span itemprop="com.example.name"&gt;Amanda&lt;/span&gt;&lt;/p&gt;
- &lt;p&gt;Band: &lt;span itemprop="com.example.band" item&gt; &lt;span itemprop="com.example.name"&gt;Jazz Band&lt;/span&gt; (&lt;span itemprop="com.example.size"&gt;12&lt;/span&gt; players)&lt;/span&gt;&lt;/p&gt;
+ &lt;p&gt;Name: &lt;span itemprop="name"&gt;Amanda&lt;/span&gt;&lt;/p&gt;
+ &lt;p&gt;Band: &lt;span itemprop="band" item&gt; &lt;span itemprop="name"&gt;Jazz Band&lt;/span&gt; (&lt;span itemprop="size"&gt;12&lt;/span&gt; players)&lt;/span&gt;&lt;/p&gt;
 &lt;/div&gt;</pre>
 
-   <p>The outer item here has two properties, "com.example.name" and
-   "com.example.band". The "com.example.name" is "Amanda", and the
-   "com.example.band" is an item in its own right, with two
-   properties, "com.example.name" and "com.example.size". The
-   "com.example.name" of the band is "Jazz Band", and the
-   "com.example.size" is "12".</p>
+   <p>The outer item here has two properties, "name" and
+   "band". The "name" is "Amanda", and the
+   "band" is an item in its own right, with two
+   properties, "name" and "size". The
+   "name" of the band is "Jazz Band", and the
+   "size" is "12".</p>
 
    <p>The outer item in this example is a top-level microdata
    item.</p>
@@ -37655,16 +37655,15 @@
    properties are separated from their <a href="#concept-item" title="concept-item">items</a>:</p>
 
    <pre>&lt;div item id="amanda"&gt;&lt;/div&gt;
-&lt;p&gt;Name: &lt;span subject="amanda" itemprop="com.example.name"&gt;Amanda&lt;/span&gt;&lt;/p&gt;
-&lt;div subject="amanda" itemprop="com.example.band" item id="jazzband"&gt;&lt;/div&gt;
-&lt;p&gt;Band: &lt;span subject="jazzband" itemprop="com.example.name"&gt;Jazz Band&lt;/span&gt;&lt;/p&gt;
-&lt;p&gt;Size: &lt;span subject="jazzband" itemprop="com.example.size"&gt;12&lt;/span&gt; players&lt;/p&gt;</pre>
+&lt;p&gt;Name: &lt;span subject="amanda" itemprop="name"&gt;Amanda&lt;/span&gt;&lt;/p&gt;
+&lt;div subject="amanda" itemprop="band" item id="jazzband"&gt;&lt;/div&gt;
+&lt;p&gt;Band: &lt;span subject="jazzband" itemprop="name"&gt;Jazz Band&lt;/span&gt;&lt;/p&gt;
+&lt;p&gt;Size: &lt;span subject="jazzband" itemprop="size"&gt;12&lt;/span&gt; players&lt;/p&gt;</pre>
 
    <p>This gives the same result as the previous example. The first
-   item has two properties, "com.example.name", set to "Amanda", and
-   "com.example.band", set to another item. That second item has two
-   further properties, "com.example.name", set to "Jazz Band", and
-   "com.example.size", set to "12".</p>
+   item has two properties, "name", set to "Amanda", and "band", set
+   to another item. That second item has two further properties,
+   "name", set to "Jazz Band", and "size", set to "12".</p>
 
   </div><p>An <a href="#concept-item" title="concept-item">item</a> can have multiple
   properties with the same name and different values.<div class="example">
@@ -37674,13 +37673,13 @@
    <pre>&lt;div item&gt;
  &lt;p&gt;Flavors in my favorite ice cream:&lt;/p&gt;
  &lt;ul&gt;
-  &lt;li itemprop="com.example.flavor"&gt;Lemon sorbet&lt;/li&gt;
-  &lt;li itemprop="com.example.flavor"&gt;Apricot sorbet&lt;/li&gt;
+  &lt;li itemprop="flavor"&gt;Lemon sorbet&lt;/li&gt;
+  &lt;li itemprop="flavor"&gt;Apricot sorbet&lt;/li&gt;
  &lt;/ul&gt;
 &lt;/div&gt;</pre>
 
    <p>This thus results in an item with two properties, both
-   "com.example.flavor", having the values "Lemon sorbet" and "Apricot
+   "flavor", having the values "Lemon sorbet" and "Apricot
    sorbet".</p>
 
   </div><p>An element introducing a property can also introduce multiple
@@ -37688,11 +37687,11 @@
   have the same value.<div class="example">
 
    <p>Here we see an item with two properties,
-   "com.example.favorite-color" and "com.example.favorite-fruit", both
+   "favorite-color" and "favorite-fruit", both
    set to the value "orange":</p>
 
    <pre>&lt;div item&gt;
- &lt;span itemprop="com.example.favorite-color com.example.favorite-fruit"&gt;orange&lt;/span&gt;
+ &lt;span itemprop="favorite-color favorite-fruit"&gt;orange&lt;/span&gt;
 &lt;/div&gt;</pre>
 
   </div><p>It's important to note that there is no relationship between the
@@ -37704,10 +37703,10 @@
 
    <pre>&lt;figure&gt;
  &lt;img src="castle.jpeg"&gt;
- &lt;legend&gt;&lt;span item&gt;&lt;span itemprop="net.example.name"&gt;The Castle&lt;/span&gt;&lt;/span&gt; (1986)&lt;/legend&gt;
+ &lt;legend&gt;&lt;span item&gt;&lt;span itemprop="name"&gt;The Castle&lt;/span&gt;&lt;/span&gt; (1986)&lt;/legend&gt;
 &lt;/figure&gt;</pre>
 
-   <pre>&lt;span item&gt;&lt;meta itemprop="net.example.name" content="The Castle"&gt;&lt;/span&gt;
+   <pre>&lt;span item&gt;&lt;meta itemprop="name" content="The Castle"&gt;&lt;/span&gt;
 &lt;figure&gt;
  &lt;img src="castle.jpeg"&gt;
  &lt;legend&gt;The Castle (1986)&lt;/legend&gt;
@@ -37715,7 +37714,7 @@
 
    <p>Both have a figure with a caption, and both, completely
    unrelated to the figure, have an item with a name-value pair with
-   the name "net.example.name" and the value "The Castle". The only
+   the name "name" and the value "The Castle". The only
    difference is that if the user drags the caption out of the
    document, in the former case, the item will be included in the
    drag-and-drop data. In neither case is the image in any way
@@ -37726,8 +37725,8 @@
   re-used. Microdata is most useful, though, when it is used in
   contexts where other authors and readers are able to cooperate to
   make new uses of the markup.<p>For this purpose, it is necessary to give each <a href="#concept-item" title="concept-item">item</a> a type, such as
-  "com.example.person", or "com.example.cat", or
-  "com.example.band". Types are identified in three ways:<ul class="brief"><li>As <a href="#url" title="URL">URLs</a>.
+  "com.example.person", or "org.example.cat", or
+  "net.example.band". Types are identified in three ways:<ul class="brief"><li>As <a href="#url" title="URL">URLs</a>.
 
    <li>As <a href="#valid-reversed-dns-identifier" title="valid reversed DNS identifier">reversed DNS
    labels</a>.
@@ -37738,35 +37737,67 @@
   </ul><p><a href="#url" title="URL">URLs</a> are self-explanatory. <a href="#valid-reversed-dns-identifier" title="valid reversed DNS identifier">Reversed DNS labels</a> are
   strings such as "org.example.animals.cat" or "com.example.band".<p>The type for an <a href="#concept-item" title="concept-item">item</a> is given
   as the value of the <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code>
-  attribute.<p>When using custom typed items, the property names are also given
-  in the form of <a href="#url" title="URL">URLs</a> or <a href="#valid-reversed-dns-identifier" title="valid
-  reversed DNS identifier">reversed DNS labels</a>.<div class="example">
+  attribute.<div class="example">
 
    <p>Here, the item is "org.example.animals.cat":</p>
 
 <pre>&lt;section item="org.example.animal.cat"&gt;
- &lt;h1 itemprop="org.example.name"&gt;Hedral&lt;/h1&gt;
- &lt;p itemprop="org.example.desc"&gt;Hedral is a male american domestic
+ &lt;h1 itemprop="name"&gt;Hedral&lt;/h1&gt;
+ &lt;p itemprop="desc"&gt;Hedral is a male american domestic
  shorthair, with a fluffy black fur with white paws and belly.&lt;/p&gt;
- &lt;img itemprop="org.example.img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
+ &lt;img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
 &lt;/section&gt;</pre>   
 
    <p>In this example the "org.example.animals.cat" item has three
-   properties, an "org.example.name" ("Hedral"), an "org.example.desc"
-   ("Hedral is..."), and an "org.example.img" ("hedral.jpeg").</p>
+   properties, a "name" ("Hedral"), a "desc" ("Hedral is..."), and an
+   "img" ("hedral.jpeg").</p>
 
-  </div><p>An item can have several types, in the same way that an element
-  can declare several properties at once.<div class="example">
+  </div><p>An item can only have one type. The type gives the context for
+  the properties: a property named "class" given for an item with the
+  type "com.example.census.person" might refer to the class of an
+  individual, while a property named "class" given for an item with
+  the type "com.example.school.teacher" might refer to the classroom a
+  teacher has been assigned.<h4 id="selecting-names-when-defining-vocabularies"><span class="secno">5.1.4 </span>Selecting names when defining vocabularies</h4><p><i>This section is non-normative.</i><p>Using microdata means using a vocabulary. For some purposes, an
+  ad-hoc vocabulary is adequate. For others, a vocabulary will need to
+  be designed. Where possible, authors are encouraged to re-use
+  existing vocabularies, as this makes content re-use easier.<p>When designing new vocabularies, identifiers can be created
+  either using <a href="#url" title="URL">URLs</a>, <a href="#valid-reversed-dns-identifier" title="valid
+  reversed DNS identifier">reversed DNS labels</a>, or, for
+  properties, as plain words (with no dots or colons). For URLs
+  conflicts with other vocabularies can be avoided by only using
+  identifiers that correspond to pages that the author has control
+  over. Similarly, for reversed DNS labels conflicts can be avoided by
+  using a domain name that the author has control over, or by using
+  suffixes that correspond to the path components of pages that the
+  author has control over.<div class="example">
 
-   <p>Here, the item is both an "org.example.animals.cat" and a "com.example.feline":</p>
+   <p>For instance, if Jon and Adam both write content at <code title="">example.com</code>, at <code title="">http://example.com/jon/...</code> and <code title="">http://example.com/adam/...</code> respectively, then they
+   could select identifiers of the form "com.example.jon.name" and
+   "com.example.adam.name" respectively.</p>
 
-<pre>&lt;section item="org.example.animal.cat com.example.feline"&gt;
- &lt;h1 itemprop="org.example.name com.example.fn"&gt;Hedral&lt;/h1&gt;
- &lt;p itemprop="org.example.desc"&gt;Hedral is a male american domestic
+  </div><p>Properties whose names are just plain words can only be used
+  within the context of the types for which they are intended;
+  properties named using URLs or reversed DNS labels can be reused in
+  items of any type. If an item has no type, and is not part of
+  another item, then if its properties have names that are just plain
+  words, they are not intended to be globally unique, and are instead
+  only intended for limited use. Generally speaking, authors are
+  encouraged to use either properties with globally unique names
+  (URLs, reversed DNS labels) or ensure that their items are
+  typed.<div class="example">
+
+   <p>Here, an item is an "org.example.animals.cat", and most of the
+   properties have names that are words defined in the context of that
+   type. There are also a few additional properties whose names come
+   from other vocabularies.</p>
+
+<pre>&lt;section item="org.example.animal.cat"&gt;
+ &lt;h1 itemprop="name com.example.fn"&gt;Hedral&lt;/h1&gt;
+ &lt;p itemprop="desc"&gt;Hedral is a male american domestic
  shorthair, with a fluffy &lt;span
  itemprop="com.example.color"&gt;black&lt;/span&gt; fur with &lt;span
  itemprop="com.example.color"&gt;white&lt;/span&gt; paws and belly.&lt;/p&gt;
- &lt;img itemprop="org.example.img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
+ &lt;img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
 &lt;/section&gt;</pre>   
 
    <p>This example has one item with two types and the following
@@ -37774,36 +37805,19 @@
 
    <table><thead><tr><td>Property
       <td>Value
-    <tbody><tr><td>org.example.name
+    <tbody><tr><td>name
       <td>Hedral
      <tr><td>com.example.fn
       <td>Hedral
-     <tr><td>org.example.desc
+     <tr><td>desc
       <td>Hedral is a male american domestic shorthair, with a fluffy black fur with white paws and belly.
      <tr><td>com.example.color
       <td>black
      <tr><td>com.example.color
       <td>white
-     <tr><td>org.example.img
+     <tr><td>img
       <td>.../hedral.jpeg
-   </table></div><h4 id="selecting-names-when-defining-vocabularies"><span class="secno">5.1.4 </span>Selecting names when defining vocabularies</h4><p><i>This section is non-normative.</i><p>Using microdata means using a vocabulary. For some purposes, an
-  ad-hoc vocabulary is adequate. For others, a vocabulary will need to
-  be designed. Where possible, authors are encouraged to re-use
-  existing vocabularies, as this makes content re-use easier.<p>When designing new vocabularies, identifiers can be created
-  either using <a href="#url" title="URL">URLs</a> or <a href="#valid-reversed-dns-identifier" title="valid
-  reversed DNS identifier">reversed DNS labels</a>. For URLs
-  conflicts with other vocabularies can be avoided by only using
-  identifiers that correspond to pages that the author has control
-  over. Similarly, for reversed DNS labels conflicts can be avoided by
-  using a domain name that the author has control over, or by using
-  suffixes that correspond to the path components of pages that the
-  author has control over.<div class="example">
-
-   <p>For instance, if Jon and Adam both write content at <code title="">example.com</code>, at <code title="">http://example.com/jon/...</code> and <code title="">http://example.com/adam/...</code> respectively, then they
-   could select identifiers of the form "com.example.jon.name" and
-   "com.example.adam.name" respectively.</p>
-
-  </div><h4 id="predefined-vocabularies"><span class="secno">5.1.5 </span>Predefined vocabularies</h4><p><i>This section is non-normative.</i><p>To make the most common tasks simpler, certain vocabularies have
+   </table></div><h4 id="predefined-vocabularies"><span class="secno">5.1.5 </span>Predefined vocabularies</h4><p><i>This section is non-normative.</i><p>To make the most common tasks simpler, certain vocabularies have
   been predefined. These use short names for types and properties.<div class="example">
 
    <p>For example, the <a href="#md-vcard" title="md-vcard">vCard</a> vocabulary
@@ -37829,11 +37843,10 @@
   <a href="#top-level-microdata-items">top-level microdata items</a>. It returns a
   <code>NodeList</code> containing the items with the specified types,
   or all types if no argument is specified.<p>Each <a href="#concept-item" title="concept-item">item</a> is represented in the
-  DOM by the element on which the relevant <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute is found. The various types
-  that the element has can be obtained using the <code title="dom-item"><a href="#dom-item">element.item</a></code> DOM attribute, which returns a
-  <code><a href="#domsettabletokenlist">DOMSettableTokenList</a></code> object.<div class="example">
+  DOM by the element on which the relevant <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute is found. The type of that
+  element can be obtained using the <code title="dom-item"><a href="#dom-item">element.item</a></code> DOM attribute.<div class="example">
 
-   <p>This sample how the <code title="dom-document-getItems"><a href="#dom-document-getitems">getItems()</a></code> method can be used
+   <p>This sample shows how the <code title="dom-document-getItems"><a href="#dom-document-getitems">getItems()</a></code> method can be used
    to obtain a list of all the top-level microdata items of one type
    given in the document:</p>
 
@@ -37851,11 +37864,11 @@
   <div class="example">
 
    <p>This sample gets the first item of type "net.example.user" and
-   then pops up an alert using the "net.example.name" property from
+   then pops up an alert using the "name" property from
    that item.</p>
 
    <pre>var user = document.getItems('net.example.user')[0];
-alert('Hello ' + user.properties['net.example.name'][0].content + '!');</pre>
+alert('Hello ' + user.properties['name'][0].content + '!');</pre>
 
   </div><p>The <code><a href="#htmlpropertycollection">HTMLPropertyCollection</a></code> object, when indexed by
   name in this way, actually returns a <code><a href="#propertynodelist">PropertyNodeList</a></code>
@@ -37864,11 +37877,11 @@
   values at once using <em>its</em> <code title="dom-PropertyNodeList-contents"><a href="#dom-propertynodelist-contents">contents</a></code> attribute,
   which returns an array of all the values.<div class="example">
 
-   <p>In an earlier example, a "com.example.feline" item had two
+   <p>In an earlier example, a "org.example.animals.cat" item had two
    "com.example.color" values. This script looks up the first such
    item and then lists all its values.</p>
 
-   <pre>var cat = document.getItems('com.example.feline')[0];
+   <pre>var cat = document.getItems('org.example.animals.cat')[0];
 var colors = cat.properties['com.example.color'].contents;
 var result;
 if (colors.length == 0) {
@@ -37905,23 +37918,23 @@
 
    <p>If faced with the following from an earlier example:</p>
 
-   <pre>&lt;section item="org.example.animal.cat com.example.feline"&gt;
- &lt;h1 itemprop="org.example.name com.example.fn"&gt;Hedral&lt;/h1&gt;
- &lt;p itemprop="org.example.desc"&gt;Hedral is a male american domestic
+   <pre>&lt;section item="org.example.animal.cat"&gt;
+ &lt;h1 itemprop="name com.example.fn"&gt;Hedral&lt;/h1&gt;
+ &lt;p itemprop="desc"&gt;Hedral is a male american domestic
  shorthair, with a fluffy &lt;span
  itemprop="com.example.color"&gt;black&lt;/span&gt; fur with &lt;span
  itemprop="com.example.color"&gt;white&lt;/span&gt; paws and belly.&lt;/p&gt;
- &lt;img itemprop="org.example.img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
+ &lt;img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"&gt;
 &lt;/section&gt;</pre>
 
    <p>...it would result in the following output:</p>
 
    <ul><li>
-     <ul><li>org.example.name</li>
+     <ul><li>name</li>
       <li>com.example.fn</li>
-      <li>org.example.desc</li>
+      <li>desc</li>
       <li>com.example.color</li>
-      <li>org.example.img</li>
+      <li>img</li>
      </ul></li>
    </ul><p>(The duplicate occurrence of "com.example.color" is not included
    in the list.)</p>
@@ -37932,9 +37945,9 @@
   name-value pairs.<h4 id="items:-the-item-attribute"><span class="secno">5.2.2 </span>Items: the <dfn title="attr-item"><code>item</code></dfn> attribute</h4><p>Every <a href="#html-elements" title="HTML elements">HTML element</a> may have an
   <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute specified.<p>An element with the <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute
   specified creates a new <a href="#concept-item" title="concept-item">item</a>, a
-  group of name-value pairs.<p>The attribute, if specified, must have a value that is an
-  <a href="#unordered-set-of-unique-space-separated-tokens">unordered set of unique space-separated tokens</a>
-  representing the types (if any) of the <a href="#concept-item" title="concept-item">item</a>.<p>Each token must be either:<ul><li>A <a href="#valid-url">valid URL</a> that is an <a href="#absolute-url">absolute URL</a>
+  group of name-value pairs.<p>The attribute, if specified, must have a value that is either:<ul><li>The empty string, or</li>
+
+   <li>A <a href="#valid-url">valid URL</a> that is an <a href="#absolute-url">absolute URL</a>
    for which the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" is not a
    <a href="#prefix-match">prefix match</a>, or</li>
 
@@ -37942,12 +37955,10 @@
 
    <li>A <a href="#predefined-type">predefined type</a>.</li>
 
-  </ul><p>If any of the tokens are a <a href="#predefined-type">predefined type</a>, then
-  there must not be any other tokens that are <a href="#predefined-type" title="predefined
-  type">predefined types</a>.<p>The <dfn id="item-types">item types</dfn> of an element with an <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute are the tokens that the
-  element's <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute is found to
-  contain when its value is <a href="#split-a-string-on-spaces" title="split a string on
-  spaces">split on spaces</a>.<h4 id="associating-names-with-items"><span class="secno">5.2.3 </span>Associating names with items</h4><p>The <dfn id="attr-subject" title="attr-subject"><code>subject</code></dfn>
+  </ul><p>The <dfn id="item-type">item type</dfn> of an element with an <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute is the value of the
+  element's <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute. If the
+  attribute's value is the empty string, the element is said to have
+  no <a href="#item-type">item type</a>.<h4 id="associating-names-with-items"><span class="secno">5.2.3 </span>Associating names with items</h4><p>The <dfn id="attr-subject" title="attr-subject"><code>subject</code></dfn>
   attribute may be specified on any <a href="#html-elements" title="HTML elements">HTML
   element</a> to associate the element with an element with an
   <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> attribute. If the <code title="attr-subject"><a href="#attr-subject">subject</a></code> attribute is specified, the
@@ -37993,7 +38004,17 @@
 
    <li>A <a href="#valid-reversed-dns-identifier">valid reversed DNS identifier</a>, or</li>
 
-   <li>A <a href="#predefined-property-name">predefined property name</a> allowed in this situation.</li>
+   <li>A <a href="#predefined-global-property-name">predefined global property name</a> allowed in this
+   situation, or</li>
+
+   <li>If the item's <a href="#item-type">item type</a> is itself a
+   <a href="#predefined-type">predefined type</a>: a <a href="#predefined-property-name">predefined property
+   name</a> allowed in this situation, or</li>
+
+   <li>If the item's <a href="#item-type">item type</a> is not a <a href="#predefined-type">predefined
+   type</a>: a string that contains no U+002E FULL STOP (.) or
+   U+003A COLON (:) characters, and that is not a <a href="#predefined-global-property-name">predefined
+   global property name</a>.</li>
 
   </ul><p>The <dfn id="property-names">property names</dfn> of an element are the tokens that
   the element's <code title="attr-itemprop"><a href="#names:-the-itemprop-attribute">itemprop</a></code> attribute
@@ -38099,9 +38120,9 @@
 
    <dd>
 
-    <p>Returns a <code>NodeList</code> of the elements in the <code>Document</code> that create <a href="#concept-item" title="concept-item">items</a>, that are not part of other <a href="#concept-item" title="concept-item">items</a>, and that have all the types given in the argument, if any.</p>
+    <p>Returns a <code>NodeList</code> of the elements in the <code>Document</code> that create <a href="#concept-item" title="concept-item">items</a>, that are not part of other <a href="#concept-item" title="concept-item">items</a>, and that are of one of the types given in the argument, if any are listed.</p>
 
-    <p>The <var title="">types</var> argument is interpreted as a space-separated list of classes.</p>
+    <p>The <var title="">types</var> argument is interpreted as a space-separated list of types.</p>
 
    </dd>
 
@@ -38133,12 +38154,13 @@
   space-separated tokens</a> representing types. When called, the
   method must return a live <code>NodeList</code> object containing
   all the elements in the document, in <a href="#tree-order">tree order</a>, that
-  are <a href="#top-level-microdata-items">top-level microdata items</a> that have all the <a href="#item-types" title="item types">types</a> specified in that argument, having
-  obtained the types by <a href="#split-a-string-on-spaces" title="split a string on
-  spaces">splitting a string on spaces</a>. If there are no tokens
-  specified in the argument, or if the argument is missing, then the
-  method must return a <code>NodeList</code> containing all the
-  <a href="#top-level-microdata-items">top-level microdata items</a> in the document.</p>
+  are each <a href="#top-level-microdata-items">top-level microdata items</a> with a <a href="#item-type" title="item type">type</a> equal to one of the types specified in
+  that argument, having obtained the types by <a href="#split-a-string-on-spaces" title="split a
+  string on spaces">splitting the string on spaces</a>. If there
+  are no tokens specified in the argument, or if the argument is
+  missing, then the method must return a <code>NodeList</code>
+  containing all the <a href="#top-level-microdata-items">top-level microdata items</a> in the
+  document.</p>
 
   <p>The <dfn id="dom-item" title="dom-item"><code>item</code></dfn> DOM attribute
   on elements must <a href="#reflect">reflect</a> the element's <code title="attr-item"><a href="#items:-the-item-attribute">item</a></code> content attribute.</p>
@@ -38196,10 +38218,12 @@
   </div><h3 id="predefined-vocabularies-0"><span class="secno">5.4 </span>Predefined vocabularies</h3><p>A number of <dfn id="predefined-type" title="predefined type">predefined types</dfn>
   exist, for describing common structures. Each such type has a set of
   <dfn id="predefined-property-name" title="predefined property name">predefined property
-  names</dfn> that are used to describe data of that type.<h4 id="general"><span class="secno">5.4.1 </span>General</h4><p>The <dfn id="md-about" title="md-about"><code>about</code></dfn> property can
-  be used to name an <a href="#concept-item" title="concept-item">item</a> for the
-  purposes of identifying or refering to the data defined in that
-  item.<p>A single property with the name <code title="md-about"><a href="#md-about">about</a></code> may be present within each <a href="#concept-item" title="concept-item">item</a>. Its <a href="#concept-property-value" title="concept-property-value">value</a> must be an
+  names</dfn> that are used to describe data of that type. In
+  addition, there are some <dfn id="predefined-global-property-name" title="predefined global property
+  name">predefined global property names</dfn> that can be used for
+  any item.<h4 id="general"><span class="secno">5.4.1 </span>General</h4><p>The <a href="#predefined-global-property-name">predefined global property name</a> <dfn id="md-about" title="md-about"><code>about</code></dfn> can be used to name an
+  <a href="#concept-item" title="concept-item">item</a> for the purposes of
+  identifying or refering to the data defined in that item.<p>A single property with the name <code title="md-about"><a href="#md-about">about</a></code> may be present within each <a href="#concept-item" title="concept-item">item</a>. Its <a href="#concept-property-value" title="concept-property-value">value</a> must be an
   <a href="#absolute-url">absolute URL</a>.<h4 id="vcard"><span class="secno">5.4.2 </span>vCard</h4><p>An item with the <a href="#predefined-type">predefined type</a> <dfn id="md-vcard" title="md-vcard"><code>vcard</code></dfn> represents a person's or
   organization's contact information.<p>The following are the type's <a href="#predefined-property-name" title="predefined property
   name">predefined property names</a>. They are based on the
@@ -40111,11 +40135,8 @@
 
   <ol><li><p>Let <var title="">result</var> be an empty object.</li>
 
-   <li><p>Let <var title="">types</var> be an empty array.</li>
-
-   <li><p>For each <a href="#item-types" title="item types">item type</a> <var title="">type</var> of <var title="">item</var>, append <var title="">type</var> to <var title="">types</var>.</li>
-
-   <li><p>Add an entry to <var title="">result</var> called "<code title="">type</code>" whose value is the array <var title="">types</var>.</li>
+   <li><p>Add an entry to <var title="">result</var> called "<code title="">type</code>" whose value is the <a href="#item-type">item type</a> of
+   <var title="">item</var>.</li>
 
    <li><p>Let <var title="">properties</var> be an empty
    object.</li>
@@ -40292,31 +40313,28 @@
    property. Otherwise, let <var title="">subject</var> be a new blank
    node.</li>
 
-   <li><p>Let <var title="">is-work</var> be false.</li>
+   <li><p>Let <var title="">type</var> be the <a href="#item-type">item type</a>
+   of <var title="">item</var>.</li>
 
    <li>
 
-    <p>For each <a href="#item-types" title="item types">item type</a> <var title="">type</var> of <var title="">item</var>, run the following
-    substeps:</p>
-
-    <ol><li><p>If <var title="">type</var> is <code title="md-work"><a href="#md-work">work</a></code>, let <var title="">is-work</var> be
-     true.</li>
-
-     <li><p>If <var title="">type</var> is not an <a href="#absolute-url">absolute
-     URL</a>, then let <var title="">type</var> be the result of
-     concatenating the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" with <var title="">type</var>, with any characters in <var title="">type</var> that are not valid in the &lt;ifragment&gt;
-     production of the IRI syntax being %-escaped. <a href="#refsRFC3987">[RFC3987]</a></li>
+    <p>If <var title="">type</var> is neither the empty string nor an
+    <a href="#absolute-url">absolute URL</a>, then let <var title="">type</var> be
+    the result of concatenating the string "<code title="">http://www.w3.org/1999/xhtml/custom#</code>" with the
+    <var title="">type</var>, with any characters in <var title="">type</var> that are not valid in the &lt;ifragment&gt;
+    production of the IRI syntax being %-escaped.</p>
 
-     <li>
+   </li>
 
-      <p>Generate the following triple:</p>
+   <li>
 
-      <dl class="triple"><dt>subject   <dd> <var title="">subject</var>
-       <dt>predicate <dd> <code title="">http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code>
-       <dt>object    <dd> <var title="">type</var>
-      </dl></li>
+    <p>If <var title="">type</var> is not the empty string, generate
+    the following triple:</p>
 
-    </ol></li>
+    <dl class="triple"><dt>subject   <dd> <var title="">subject</var>
+     <dt>predicate <dd> <code title="">http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code>
+     <dt>object    <dd> <var title="">type</var>
+    </dl></li>
 
    <li>
 
@@ -40347,12 +40365,15 @@
       <ol><li><p>If <var title="">name</var> is equal to the string
        "<code title="md-about"><a href="#md-about">about</a></code>", skip this name.</li>
 
-       <li><p>Otherwise, if <var title="">is-work</var> is true, and <var title="">name</var> is equal to the string "<code title="md-work-title"><a href="#md-work-title">title</a></code>", let <var title="">name</var> be the string "<code title="">http://purl.org/dc/elements/1.1/title</code>".</li>
+       <li><p>Otherwise, if <var title="">type</var> is <code title="md-work"><a href="#md-work">work</a></code>, and <var title="">name</var> is
+       equal to the string "<code title="md-work-title"><a href="#md-work-title">title</a></code>",
+       let <var title="">name</var> be the string "<code title="">http://purl.org/dc/elements/1.1/title</code>".</li>
 
-       <li><p>Otherwise, if <var title="">is-work</var> is true, and <var title="">name</var> is equal to the string "<code title="md-work-author"><a href="#md-work-author">author</a></code>", let <var title="">name</var> be the string "<code title="">http://creativecommons.org/ns#attributionName</code>".</li>
+       <li><p>Otherwise, if <var title="">type</var> is <code title="md-work"><a href="#md-work">work</a></code>, and <var title="">name</var> is
+       equal to the string "<code title="md-work-author"><a href="#md-work-author">author</a></code>", let <var title="">name</var> be the string "<code title="">http://creativecommons.org/ns#attributionName</code>".</li>
 
-       <li><p>Otherwise, if <var title="">is-work</var> is true, and
-       <var title="">name</var> is equal to the string "<code title="md-work-license"><a href="#md-work-license">license</a></code>", let <var title="">name</var> be the string "<code title="">http://www.w3.org/1999/xhtml/vocab#license</code>".</li>
+       <li><p>Otherwise, if <var title="">type</var> is <code title="md-work"><a href="#md-work">work</a></code>, and <var title="">name</var> is
+       equal to the string "<code title="md-work-license"><a href="#md-work-license">license</a></code>", let <var title="">name</var> be the string "<code title="">http://www.w3.org/1999/xhtml/vocab#license</code>".</li>
 
        <li><p>Otherwise, if <var title="">name</var> is not an
        <a href="#absolute-url">absolute URL</a>, then let <var title="">name</var> be

Received on Monday, 24 August 2009 08:01:53 UTC