microdataおよびmicrodata DOM API

はじめに





HTML5が解決しようずした問題の1぀は、<header>、<nav>、<figure>などの暙準的なセマンティック芁玠の導入によっお蚌明されるように、論理したがっおマシンの可読性マヌクアップを増やすこずでした。 これはすべお良いこずですが、コンテンツ芁玠に特定の機械可読属性を远加しお、異なるコンテンツに䜿甚されるマヌクアップが異なる堎合でも、予枬可胜なスクリプトで䜿甚できるようにする必芁がある堎合がありたす。 このニヌズは、シンプルで䞋䜍互換性のあるMicroformatsの助けず、より難解なRDFaの助けを借りお、ある皋床たではすでに満たされおいたす。



この点で、この問題の解決策がHTML5仕様にmicrodata仕様以降Microdataずしお远加されたこずは驚くこずではありたせん。これには、任意の芁玠に远加できる属性のセットず、䞊のmicrodataを凊理/集玄するための関連DOM APIペヌゞ。





Microdataは、過去に既に持っおいたこずを改善しようずしおいたす。マむクロフォヌマットず同じくらい理解しやすく、独自のパヌサヌを䜜成せずにデヌタを凊理できる組み蟌みメカニズムを提䟛したす。 もちろん、必芁に応じおJavaScriptを䜿甚したネむティブMicrodata DOM APIサポヌトなしで、ブラりザヌサポヌト甚に独自のMicrodataパヌサヌを䜜成できたす。 この蚘事では、Microdata HTML属性ずDOM API構文に぀いお説明したす。



: Opera Microdata .









HTML構文





microdataは䞀連の芁玠で構成され、各芁玠にはキヌず倀のペアで衚される䞀連のプロパティがありたす。 実際、実際のWebオタクのように、microdata圢匏で自分を説明したしょう。 あなたは私のパタヌンであなた自身の䟋を曞くこずができたす。



: Microdata HTML5-. Microdata , .







たず、 itemscope属性を䜿甚しお、適切な芁玠を芁玠のコンテナずしおマヌクできたす

 <article itemscope> </article>
      
      







明らかに、必芁なデヌタを含む芁玠を遞択する必芁がありたすが、マヌクするデヌタは重芁ではありたせん。 この堎合、䌝蚘カヌドをマヌクしたす。最初のプロパティは名前であり、 itemprop属性を䜿甚しおマヌクしたす。

 <article itemscope> <h2 itemprop="name">Chris Mills</h2> </article>
      
      







itemprop属性は、デヌタを含むアむテムを遞択したす。 属性倀はプロパティの名前であり、芁玠のコンテンツはプロパティの倀です。 プロパティをいく぀か远加しお、芁点を確実に把握したしょう。

 <article itemscope> <h2 itemprop="name">Chris Mills</h2> <ul> <li>Nationality: <span itemprop="nationality">British</span></li> <li>Age: <span itemprop="age">33</span></li> <li>Hair colour: <span itemprop="colour">Brown</span></li> </ul> </article>
      
      







堎合によっおは、プロパティ倀は芁玠のテキストコンテンツではなく、同じ芁玠の属性の倀です。 䟋

  1. <media>タグの堎合、プロパティ倀はsrc属性の倀です。
  2. <a>タグの堎合、href属性の倀。
  3. <time>タグの堎合、「datetime」属性の倀。


泚翻蚳者他の芁玠の倀は仕様にありたす 



䞀方、プロパティ倀がURLの堎合、察応する芁玠を介しお衚珟する必芁がありたす。察応する芁玠は、たずえば<a>芁玠を介しお、倖郚リ゜ヌスをポむントたたはロヌドしたす。 プロパティ倀が日付たたは時刻たたはその䞡方である堎合、プロパティは<time>芁玠ず「datetime」属性で衚珟する必芁がありたす。 itemprop属性はたったく同じ方法で远加されたすが 、同時に、プロパティ倀は芁玠のテキストコンテンツではなく属性倀になりたす。



いく぀かの䟋

 <article itemscope> <h2 itemprop="name">Chris Mills</h2> <p><img itemprop="image" src="Chris-Mills.png" alt="Photo of Chris Mills - this is me"></p> <ul> <li>Nationality: <span itemprop="nationality">British</span></li> <li>Age: <span itemprop="age">33</span></li> <li>Date of birth: <time itemprop="birthday" datetime="1978-06-27">June 27th 1978</time></li> <li>Hair colour: <span itemprop="colour">Brown</span></li> </ul> </article>
      
      







: (10 2011), <data>, .









ネストされたMicrodataノヌド




たた、互いに簡単にMicrodata芁玠を導入するこずもできたすトランスレヌタヌに泚意しおください混乱しないように、「Microdataノヌド」。 最䞊䜍のMicrodataノヌドはitemscope属性でマヌクされ、ネストされたMicrodataノヌドもitemscope属性でマヌクされたす。 グルヌプに関する情報を䌝蚘カヌドに远加したしょう。

 <article itemscope itemtype="http://example.org/biography"> ... <li> <div itemscope itemprop="band"> <h3>My band</h3> <ul> <li>Name: <span itemprop="name">Conquest of Steel</span></li> <li>Band: <span itemprop="style">Heavy metal</span></li> <li>Members: <span itemprop="size">5</span></li> </ul> </div> </li> ... </article>
      
      







異なるプロパティ、1぀の名前。 1぀のプロパティ、異なる名前




たずえば、次のように、耇数の芁玠に同じプロパティ名を指定できたす。

 <li>Members: <ul> <li itemprop="member">Claymore Clark</li> <li itemprop="member">DD Danger</li> <li itemprop="member">Dan Durrant</li> <li itemprop="member">Chris Mills</li> <li itemprop="member">Vic Victory</li> </ul> </li>
      
      







その結果、5぀のプロパティを持぀Microdataノヌドが䜜成されたす。すべおのプロパティの名前は「memeber」で、それぞれに独自の倀がありたす。



たた、逆に、1぀の芁玠に耇数のプロパティを配眮しお、これらのプロパティに同じ倀を䞎えるこずもできたす。

 <li>Band: <span itemprop="style favouritemusic">Heavy metal</span></li>
      
      







itemcope芁玠の倖偎のプロパティを指す




Microdataノヌドに、この句芁玠の倖郚で実際に定矩されおいないプロパティを含める堎合がありたす。 これを行うには、 itemref属性内の倖郚プロパティのIDを参照したす。 次の䟋を考えおみたしょう。この䟋では、グルヌプのメンバヌを芁玠の倖でhtmlマヌクアップの別の堎所に移動したした。

 <article> ... <li> <div itemscope itemprop="band" itemref="members"> <h3>My band</h3> <ul> <li>Name: <span itemprop="name">Conquest of Steel</span></li> <li>Band: <span itemprop="style">Heavy metal</span></li> <li>Members: <span itemprop="bandsize">5</span></li> </ul> </div> </li> </ul> </article> <ul id="members"> <li itemprop="member">Claymore Clark</li> <li itemprop="member">DD Danger</li> <li itemprop="member">Dan Durrant</li> <li itemprop="member">Chris Mills</li> <li itemprop="member">Vic Victory</li> </ul>
      
      







この堎合、「メンバヌ」プロパティは、Microdataアむテムのitemref属性が参照する識別子を持぀芁玠内にありたす。



: ID itemref . : itemref="members instruments gigdates"







埌で䜿甚できるMicrodataノヌドのプロパティディクショナリの定矩




Microdataマヌクアップを自分で䜿甚する限り、すべおが問題ありたせん。Microdataノヌドのプロパティセットを自分で定矩したす。 ただし、他のWeb開発者ず䜜業する堎合、特定のMicrodataノヌドのプロパティディクショナリを定矩する必芁がありたす。 これを行うには、 itemtype属性を䜿甚しお各ノヌドにタむプを指定したす。 この属性の倀はURLの圢匏であり、このURLによっお参照されるリ゜ヌスは存圚する堎合ず存圚しない堎合がありたす。 URLを他のナヌザヌにプロパティディクショナリに぀いお通知するむンタヌネット䞊の実際のペヌゞにポむントするず良いですが、そうする必芁はありたせん。



䟋に戻りたしょう。

 <article itemscope itemtype="http://example.org/biography"> ... <div itemscope itemprop="band" itemtype="http://example.org/band" itemref="members"> ... </div> ... </article>
      
      







Microdataノヌドは1぀のタむプのみを持぀こずができ、タむプはプロパティのディクショナリを定矩したす。 したがっお、この䟋では、タむプexample.org/biographyの芁玠には、名前、スタむル、バンドサむズ、およびメンバヌずいう4぀のプロパティがありたす。 これにより、同様のプロパティ名ずの混乱を避けるこずができたす。 Microdataを䜿甚しお、同じプロパティitemprop = "member"で、court審に関する情報をマヌクアップするこずもできたすが、これは異なるプロパティになりたす。 Microdataノヌドには、別のitemtypeがあり たす -“ example.org/jury ”、たたはその他の任意の遞択。



信頌性、柔軟性、および拡匵性を遞択するために、䜿甚するプロパティディクショナリに぀いお慎重に怜蚎する必芁がありたす。詳现ずヒントに぀いおは、「ディクショナリの定矩」仕様のセクション「 名前の遞択」を参照しおください。 たた、りェブを怜玢する必芁がありたす。おそらく、誰かがあなたの目的に合った適切な蟞曞をすでに曞いおいるかもしれたせん。 vCardやvEventなどのマむクロフォヌマットから移行された既存のディクショナリに぀いおは、「 マむクロデヌタディクショナリの仕様」セクションをご芧ください。



Midrodataノヌドのグロヌバル識別子の割り圓お




曞籍のISBNやストア内の補品のUPCなど、決枈識別子の契玄によっお既に識別子が割り圓おられおいるものもありたす。 䞀郚のMicrodataディクショナリはこれらの識別子をサポヌトしたすこのような質問は自分で調べる必芁がありたす。そのため、独自のプロパティディクショナリを䜜成するずきは、 itemtype属性で指定されたURLに質問を曞くこずをお勧めしたす 同様の識別子を䜿甚する堎合、 itemscopeずitemtypeを指定した同じ芁玠のitemid属性で指定したす。 このようなマヌクアップを理解しおいるクロヌラヌたたは怜玢゚ンゞンそのようなマヌクアップはただありたせんは、コンテンツが同じitemidを持぀他のコンテンツず同じISBN / UPCオブゞェクトであるこずを理解したす。 さらに、ネットワヌクが意識を取り戻し、マシンが立ち䞊がるたで、情報をスムヌズに蓄積できたす。



たずえば、次のマヌクアップは、 example.com / bookディクショナリがISBN識別子の䜿甚を明瀺的に指瀺しおいる堎合にのみ凊理されたすこれに぀いおは埌で詳しく説明したす。

 <article itemscope itemtype="http://example.com/book" itemid="urn:isbn:978-0321703521"> <h2 itemprop="title">InterACT with web standards</h2> <p>Authors:</p> <ul> <li itemprop="author">Leslie Jensen-Inman</li> <li itemprop="author">Chris Mills</li> <li itemprop="author">Glenda Sims</li> <li itemprop="author">Aarron Walter</li> ...
      
      







Microdata DOM API





microdataは、DOM APIを䜿甚しおjavascriptを䜿甚しおペヌゞ䞊のノヌドずそのプロパティを操䜜し、おそらく情報を怜玢方法で衚瀺したり、他のアプリケヌションに配信したりするずさらに䟿利になりたす。



APIは非垞に単玔です-document.getItems関数を䜿甚しお、ペヌゞ䞊のすべおのMicrodataノヌドを含むNodelistオブゞェクトを取埗したす翻蚳者泚すべおの最䞊䜍レベルのノヌドのみ、぀たり、他のノヌドにネストされおおらず、 itemprop属性を持ちたせん。 匕数なしで関数を呌び出すず、すべおのMicrodataノヌドのリストが取埗されたす。 たたは、呌び出しパラメヌタヌずしお枡すこずで、探しおいるアむテムタむプを指定できたす。この堎合、関数は、アむテムタむプがパラメヌタヌに等しいMicrodataノヌドでのみNodelistを返したす。 䟋

 var biography = document.getItems("http://example.org/biography");
      
      







経歎ノヌドを返し、倉数に保存したす。 ノヌドを受け取った埌、プロパティプロパティを䜿甚しおそのプロパティを操䜜できたす。

 var biography = document.getItems("http://example.org/biography")[0]; alert('Hi there ' + biography.properties['name'][0].textContent + '!');
      
      







そしお、真剣に耇雑なものは䜕もありたせん。 microdata DOM API仕様の䜿甚で孊習する他の䟋を芋぀けるこずができたす。 さらに、 PhilipJÀgenstedtは非垞に゚レガントなラむブ microdataビュヌアを䜜成したした。これはコヌドのチェックに非垞に䟿利であり、MicrodataをJSONなどのさたざたな圢匏にすばやく倉換するためにも䜿甚できたす。



Microdata. , Opera Microdata, W3C







マむクロデヌタの簡単なレビュヌは終了したした。 これが、この興味深い新しいテクノロゞヌの理解に圹立぀こずを願っおいたす。 ご意芋をお聞かせください。たた、microdataをサポヌトするOperaのパむロットビルドをご芧ください 。



翻蚳者から

この蚘事は8月からDev.Operaに茉っおおり、誰も翻蚳しおいたせん。 なぜなら この蚘事は泚目に倀するものであり、倚くの開発者にずっお興味深いものになるでしょう。私はこの䞍正を修正する自由を取りたした。 私は英語の知識も翻蚳経隓もないので、翻蚳に䞍正確な点を芋぀けたら、私に個人的に曞いおください。 この蚘事が他のブログにふさわしいず思うなら、私に個人的に曞いおください



All Articles