【FYI】 XRD vs. XRDS, Side by Side Comparison

http://www.hueniverse.com/hueniverse/2009/03/xrd-vs-xrds.html

EranがXRDとXRDSの比較をしているみたいなので読んでみる。
なんか、イメージがわいてきた。
私の訳はひどいので、興味がある人は原文読んでください。

■ ちょい訳開始

  • 要素は両方に出てくるが、namespaceは異なる
  • 2つの要素は、名前以外にはほとんど共有するものはない
  • このサンプルではXMLのnamespaceを省略する

■ サンプル

  • Joeはプロフィールページを持っている
  • オンラインカレンダーへのアクセスに関する情報を提供したい
  • プロフィールページに関連付けられたカレンダーサービスはXRDとXRDSで異なる形式で表わされる
  • カレンダーのdelegation仕様を用いると、descriptor documentsは次のようになる

◆ XRD

  • XRDドキュメントはリンクのリストを提供し、それらのリンクとリソースの関係を表現する
  • XRDドキュメントを解析するクライアントはリンクされたそれぞれのXRDSを見て選択を行う
<XRD>
  <Subject>http://joe.example.org</Subject>
  <Link>
    <Rel>http://example.net/cal/personal</Rel>
    <URI>http://supercal.example.com/joe</URI>
  </Link>
  <Link>
    <Rel>http://example.net/cal/personal</Rel>
    <URI>http://mycal.example.com/joe74</URI>
  </Link>
</XRD>

これは次のような2つのXRDにリンクされている。

<XRD>
  <Subject>http://supercal.example.com/joe</Subject>
  <Type>http://example.net/cal/ver/1.0</Type>
</XRD>
<XRD>
  <Subject>http://mycal.example.com/joe</Subject>
  <Type>http://example.net/cal/ver/2.0</Type>
  <Type>http://example.net/cal/ext/freebusy</Type>
</XRD>
  • プロフィールページのXRDは「私のカレンダー」として、関連するエンドポイントを管理するだけ
  • それぞれのカレンダーサービスのバージョンやサポートする拡張は必要ない
  • XRDを利用するクライアントはプロフィールページに関連付けられているカレンダーサービスから選択する
  • 今回の場合、選択に対する情報はない
  • クライアントがサービスの特性を気にする場合は、それぞれのXRDを読みに行く
  • クライアントがサービスの特性を気にしない場合は、今回の場合"proprity"の属性がないので、どちらでも選択できる

◆ XRDS

  • XRDSには関連するサービスリストとプロパティが記述される
  • クライアントはXRDSに記述されたサービス情報から選択を行う
<XRDS>
  <XRD>
    <CanonicalID>http://joe.example.org</CanonicalID>
    <Service>
      <Type>http://example.net/cal/personal</Type>
      <Type>http://example.net/cal/ver/1.0</Type>
      <URI>http://supercal.example.com/joe</URI>
    </Service>
    <Service>
      <Type>http://example.net/cal/personal</Type>
      <Type>http://example.net/cal/ver/2.0</Type>
      <Type>http://example.net/cal/ext/freebusy</Type>
      <URI>http://mycal.example.com/joe74</URI>
    </Service>
  </XRD>
</XRDS>
  • プロフィールページのXRDSは、私のカレンダーサービスの両方の特性とサービスを含む
  • 各サービスの内容が変わるとき、XRDSがそれと同期して変更されるように要求されなくてはいけない
  • プロフィールとサービス特性の属性情報の両方をまとめて含んでいるため、XRDSはクライアントの仕事を簡単にする
  • でも、XRDSの管理者がそれぞれのサービスの管理者と異なる場合、クライアントはXRDSが各サービスの現在の状況を完全に反映していると信用できない場合がある
  • 単純に試してみて、XRDSがサポートしているバージョンや拡張を見ることを強制される
  • XRDSはそれぞれのサービスが自分自身の内容を記述する方法を提供しない