- From: Mingli Yuan <mingli.yuan@gmail.com>
- Date: Tue, 7 Jun 2011 13:27:08 +0800
- To: "Kang-Hao (Kenny) Lu" <kennyluck@w3.org>
- Cc: 中文HTML5同樂會ML <public-html-ig-zh@w3.org>
- Message-ID: <BANLkTin-0kV3NW_7b3WYQ2hZiSuefnx-Rg@mail.gmail.com>
刚才又读了一边规范。 我的理解是,规范的原意,是用itemscope和itemprop来定义数据,而itemtype仅仅起修饰itemscope的作用。 针对第一个问题,在我的理解里,仍然有下面这样的可能性: <section itemscope itemtype="http://example.org/animals#cat"> <h1 itemprop="name">Hedral</h1> <p itemprop="desc">Hedral is a male american domestic shorthair, with a fluffy black fur with white paws and belly.</p> <img itemprop="img" src="hedral.jpeg" alt="" title="Hedral, age 18 months"> <p itemprop="color">Yellow</p> </section> 这里提供了name、desc、img、color四项数据,然而有可能在 Type("http://example.org/animals#cat")里, 实际上只定义了 name、desc、img 三项类型。所以,可以不要求数据和类型严格一致,itemtype仅仅提供一个上下文。 在这种松散的类型约束之下,itemtype作为一种修饰出现,是比较合适的。 如果反之,把itemtype和itemscope并列为两种定义数据的机制, 那么上面这种混合了类型和自定义的扩展数据项的数据,就不好处理了。 不知道,我的理解对不对。如有错误还请指正。 2011/6/7 Kang-Hao (Kenny) Lu <kennyluck@w3.org> > 最近的一個大新聞是 Google、Microsoft Bing 跟 Yahoo! 推出了 schema.org 的 > 語意搜尋用的 Microdata 字彙庫[1]。撇開到底 Facebook Open Graph Protocol > 跟 schema.org 的 Microdata 到底能不能一起用這個大家雖然都關心但是 FAQ[2] > 還無解的問題,這個新聞讓我認真的去看了一下 Microdata 提供的 DOM API,想 > 跟大家討論一下跟 Microdata 標準[3]裡面的一些問題。 > > [1] http://schema.org/ > [2] http://schema.org/docs/faq.html > [3] http://dev.w3.org/html5/md/#dom-itemid > > 1. 規範寫到,要用 itemtype 就一定要先有 itemscope 屬性,而要用 itemid 就 > 一定要先有 itemtype 屬性,問題是 itemscope 除了標示說這是一個 "item" 以 > 外,似乎沒有其他功能,加上文檔如果要合乎 XHTML5 的語法的話,勢必要寫冗長 > 的 itemscope="itemscope" 。 > > 我個人是覺得在有 itemtype 的時候 itemscope 可以省略,不過根據 HTML5 編輯 > Ian Hickson 跟 Google 做的可用性測試,不省使用者比較不會出錯。我強烈懷疑 > 這個結果、、 > > 2. document.getItems(type) - 回傳有某 itemtype 的 item(也就是 HTML 元素) > > a. 規範寫到它只回傳「頂層」的 item,也就是沒有 itemprop 屬性的 item。 > 我可以理解這項決定的好處跟壞處,壞處是這似乎是這有一點讓人意外,好處是如 > 果要全部的 item 而不是只有頂層的,似乎用 > document.querySelectorAll("[itemtype=TYPE"]) 就好了,就不需要多一個 API 了。 > b. 除了 document.getItems 以外,該不該有 element.getItems,不過有這個 > 的話,須不需要更改「頂層」的定義。 > > 3. 該不該有 document.getItemById?還是用 > document.querySelector("[itemid=ID") 就好? > > 我覺得這些 API 的好處是似乎可以在不更改AJAX JS 碼的情形下更改頁面的 HTML > 設計,比如說我每次要更改微博狀態: > > var statusObj = ... // 先得到一個 JSON 物件 (現在流行用 JSON 嗎?還是直 > 接 AJAX 傳 HTML 比較多?) > var newItem = document.getItems("status")[0].cloneNode(true); > newItem.properties["statusText"].itemValue = statusObj.text; > ... > > 現在會有 AJAX 網站使用這種模式嗎?可能用 document.getElementsByClassName > (或是$(.xxx) )代替 getItems之類的? > > 我的問題是,Microdata 的規範定義了把 Microdata 轉 JSON 的方法,我們需要 > 把 JSON 轉回成 HTML 的 API 嗎?如果要,怎麼樣的設計比較好? > > > 此致 > > 呂 康豪(Kenny), 中文興趣小組W3C連絡人 > 推特: http://twitter.com/kanghaolu > 噗浪: http://www.plurk.com/kennyluck > 新浪微博: http://t.sina.com.cn/1950042164 > > >
Received on Tuesday, 7 June 2011 05:27:36 UTC