FrontPage  Index  Search  Changes  RSS  Login

[OpenID] Yadis Specification 1.0 -- 読みメモ

表紙と原文

  • Yadis Specification 1.0
  • Yadis Specification
  • Version 1.0
  • 18 March 2006
  • Joaquin Miller, editor
  • www.yadis.org

0 Introduction (導入)

Yadis uses URLs as identifiers.

YadisはIdentifierとしてURLを使います。

It provides a mechanism for determining the services that are available with a given identifier.

与えられたIdentifierに関して有効なサービスを決定する為のメカニズムを提供します。

Section 1 describes the scope of this Specification.

Section 1 は、この仕様書の範囲を説明します。

Sections 2 through 5 provide references, definitions, abbreviations and conventions.

Section 2 から 5 は、リファレンスと定義と略語と慣習を提供します。

Section 6 specifies the Yadis protocol.

Section 6 は Yadis プロトコルを明確に述べます。

Section 7 specifies the Yadis Resource Descriptor document.

Section 7 は Yadis リソース記述子ドキュメントを明確に述べます。

This Version 1.0 Yadis Specification has been prepared by the Yadis project. For more information on the Yadis project, see the Yadis wiki and Yadis Overview. For information on implementations, see the Yadis Implementations page at he Yadis wiki.

このバージョン 1.0 の Yadis 仕様書は Yadis プロジェクトによって用意されています。Yadis プロジェクトの更なる情報は、Yadis wiki と Yadis 概観をご覧ください。実装の更なる情報は、Yadis wiki の Yadis 実装のページをご覧ください。

Users of this Specification may find ambiguity, lack of clarity or specificity, or errors in the specification, provisions of the specification that are difficult to implement, holes in the specification where we have missed something or other problems.

この仕様書の利用者は、曖昧さや、不明瞭さか詳細さの不足、誤り、実装の為に困難である事の仕様書の予感、仕様書の中の我々のミスによる何かしらか他の問題に関する穴、をこの仕様書の中で見つけるかもしれません。

Please let us know. Send your comments on this text to the editor, Joaquin Miller.

我々に知らせてください。テキストに関するあなたのこのコメントを編集者の Joaquin Miller に送ってください。

This text is made available under Attribution-ShareAlike 2.5 when attributed to the Yadis project.

?(このテキストは、Yadis プロジェクトに属すとき、Attribution-ShareAlike 2.5 下で利用する事が可能です。)

1 Scope (範囲)

This Yadis Specification provides:

この Yadis 仕様書は提供します:

  • A general purpose identifier for a person and any other entity, which can be used with a variety of services.
  • いろいろなサービスのために使う事が出来る、個人の為の汎用的な目的のIdentifierと他のエンティティ
  • A syntax for a resource description document identifying services available using that identifier and an interpretation of the elements of that document.
  • Identifierとして利用する事が可能なサービスを識別するリソース記述ドキュメントのシンタックスと、そのドキュメントの要素の解釈
  • A protocol for obtaining that resource description document, given that identifier.
  • Identifierとして与えられ、リソース記述ドキュメントとして獲得する為のプロトコル

Together these enable coexistence and interoperation of a rich variety of services using a single identifier. The identifier uses a standard syntax and a well-established namespace; it requires no additional namespace administration infrastructure. This Specification is intended to be used to implement software for requesting a resource description document and to implement software for providing a resource description document or a locator for that document. The document syntax and interpretation and the protocol are specified to a level of detail sufficient to enable the determination of the compliance of any implementation to this Specification.

これらとともに、共存と1つのIdentifierを使った価値ある複数のサービスのインターオペレーションを可能とします。Identifierは標準的なシンタックスと妥当な確立された名前空間を使います; それは管理基盤に追加の名前空間を要求しません。この仕様書はリソース記述ドキュメントを要求するためのソフトウェアの実装とリソース記述ドキュメントを提供するかそのドキュメントの位置を示すためのソフトウェアの実装のために使われる事について意図されます。ドキュメントシンタックスとインターオペレーションとプロトコルは、この仕様書のいかなる実装に対して服従の決意を有効にするために十分な詳細の水準で明記されます。

2 Normative References (標準の参照)

The following specifications contain provisions which, through reference in this text, constitute provisions of this Yadis Specification. At the time of publication, the editions indicated were valid, with the exception of those in Clause 2.3 (see the discussion there). All specifications are subject to revision, and parties to agreements based on this Specification are encouraged to investigate the possibility of applying the most recent edition of the specifications listed below.

次に述べる仕様はこのテキストの中の参照を通して、この Yadis 仕様書の規定を構成する、規定を含みます。公表の回数について示される版は、2.3節のものを除いて、妥当です(そこでの議論をご覧ください)。全ての仕様書は改訂を条件としていて、この仕様書を基本とする承諾の関係者はいかに列挙される仕様書の最も最近の版の適用の可能性の調査が勧められます。

2.1 Requests for Comments (RFC)

  • RFC 2046
    • Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, November 1996.
  • RFC 2119
    • Key words for use in RFCs to Indicate Requirement Levels, March 1997.
  • RFC 2616
    • Hypertext Transfer Protocol -- HTTP/1.1, June 1999.
  • RFC 3986
    • Uniform Resource Identifier (URI): Generic Syntax, January 2005.
  • RFC 3987
    • Internationalized Resource Identifiers (IRIs), January 2005.

2.2 W3C Recommendations (W3C勧告)

  • HTML 4.01
    • HTML 4.01 Specification, 24 December 1999.
  • XHTML 1.0
    • The Extensible HyperText Markup Language (Second Edition), 1 August 2002.
  • XML
    • Extensible Markup Language (XML) 1.0 (Third Edition), 4 February 2004
  • XML Schema Part 1
    • XML Schema Part 1: Structures Second Edition, 28 October 2004
  • XML Schema Part 2
    • XML Schema Part 2: Datatypes Second Edition, 28 October 2004

2.3 OASIS Specifications (OASISの仕様書)

The following documents have not been adopted by OASIS. They are listed here for two reasons:

  • These documents were used in preparing this Yadis Specification.
  • When and if OASIS adopts such specifications, it is expected that this Yadis Specification will conform to them and will at that time reference them here as normative references.

次に述べるドキュメントはOASISによって採用されていません。それらは2つの理由からここに列挙されます:

  • これらのドキュメントはこの Yadis 仕様の作成の中で使われました
  • OASISがそのような仕様書を採用するとして、この Yadis 仕様書がそれらに従うだろう事とさらに標準の参照としてここでそれらを参照するだろう事を期待します。
  • XRI Syntax
    • Extensible Resource Identifier (XRI) Syntax V2.0, Committee Specification, 14 November 2005.
  • XRI Resolution
    • Extensible Resource Identifier (XRI) Resolution V2.0, Working Draft 10, 18 March 2006.

3 Terms and Definitions (用語と定義)

3.1 Implementor Terms

Yadis User

An entity using a Yadis ID as an identifier.

IdentifierとしてYadis IDを利用する立場です。

Yadis ID

A identifier used with one or more Yadis Services. A Yadis ID may be a URL; it may be any other identifier, such as an XRI, that can be resolved to a URL.

1つ以上の Yadis サービスとともに使われるIdentfierです。Yadis IDはURLかもしれません; 他のIdentifier、たとえばXRIなど、はURLに解決されるかもしれません。

Yadis URL

A Yadis ID, if it is a URL, otherwise the URL to which that Yadis ID resolves. A Yadis URL may be used in the Yadis Protocol to obtain a Yadis Resource Descriptor.

Yadis IDがURLであればYadis IDで、さもなければYadis IDを解決するURLです。Yadis URLはYadisリソース記述子を獲得する為のプロトコルの中で使われるかもしれません。

Yadis Resource

A computer software process (or system of processes) that provides one or more services located using the Yadis Protocol.

Yadisプロトコルを使って位置を示される1つ以上のサービスを提供するコンピュータソフトウェアプロセス(もしくはプロセスのシステム)です。

Yadis Service

A service provided by a Yadis Resource.

Yadisリソースによって提供されるサービスです。

Yadis document

A document containing a Yadis Resource Descriptor

Yadisリソース記述子を含むドキュメントです。

Yadis Resource Descriptor

An element of a Yadis document identifying the services that are available using a Yadis ID.

Yadis IDの利用が可能なサービスを識別するYadisドキュメントの要素です。

Resource Descriptor URL

A URL that locates a Yadis document.

Yadisドキュメントの位置を示すURLです。

Agent

A computer software process (or system of processes) acting on behalf of a party.

関係者の援助の為に作用するコンピュータソフトウェア(もしくはプロセスのシステム)です。

Yadis User Agent

An agent acting on behalf of a Yadis User (for example, a regular web browser).

Yadis Userの援助の為に作用するAgentです(例えば、一般のウェブブラウザ)。

Relying Party

A party responsible for a Relying Party Agent and on whose behalf that Agent acts. A Relying Party is relying on the services provided by a Yadis Resource, in particular on data provided by that service concerning the person identified by a Yadis ID.

Relying Party AgnetとAgentが行う援助について責任がある関係者です。Relying Partyは Yadisリソースによって提供されるサービスについて、個々ではYadis IDによって識別される個人に関するサービスによって提供されるデータについて、信頼しています。

Relying Party Agent

A role to be fulfilled by an agent that uses a Yadis ID (and the data accessible using that Yadis ID) provided by a Yadis User Agent. The Relying Party Agent discovers the services available for a Yadis ID using the Yadis Protocol, and may modify its own behavior accordingly.

Yadis User Agentによって提供されるYadis ID(と、Yadis IDを使って手に入れやすいデータ)を使うAgentによって果たされる役割です。Relying Party AgentはYadis IDを使うYadisプロトコルで利用可能なサービスを発見し、それに応じて自身の振る舞いを変えるかもしれません。

RESTful

Having the REST architectural style.

RESTアーキテクチャスタイルを持つものです。

Note: Yadis IDs are intended to be used not only by persons and other parties, such as clubs, crowds, businesses and governments, but also to identify agents of any such parties, such as RFID tags and software processes. The Yadis Protocol is intended to be used by any software agent wishing to discover the services available for use with any Yadis ID.

Note: Yadis IDは個人利用のみならず、他の関係者、例えばクラブや大衆や企業や行政によって使われる事が意図されており、それだけでなくそのような関係者のAgent、例えばRFIDタグやソフトウェアプロセス、の識別の為にも使われます。

3.2 Definitions from other specifications (他の仕様書からの定義)

This Specification makes use of the following terms as defined in the indicated specifications:

  • absolute URL
    • RFC 3986 4.3
  • Accept request-header
    • RFC 2616 14.1
  • agent
    • X.911 6.5.7
  • authentication
    • X.903 15.4
  • failure
    • X.902 13.5.1
  • GET request
    • RFC 2616 9.3
  • <head> element
    • HTML 4.01 7.4.1
  • HEAD request
    • RFC 2616 9.4
  • HTTP
    • RFC 2616
  • identifier
    • X.902 12.2
  • IRI
    • RFC 3987
  • <meta> element
    • HTML 4.01 7.4.4
  • <meta> element http-equiv attribute
    • HTML 4.01 7.4.4
  • MIME media type
    • RFC 2616 14.1 and RFC 2046 3
  • party
    • X.911 6.5.1
  • relative reference
    • RFC 3986 4.2
  • request-header
    • RFC 2616 5.3
  • response-header
    • RFC 2616 6.2
  • REST architectural style
    • REST 5
  • scheme
    • RFC 3986 3.1
  • URI
    • RFC 3986
  • URL
    • RFC 3986 1.1.3
  • Vary: Accept response-header
    • RFC 2616 14.44
  • XRI
    • XRI Syntax
  • XRD
    • XRI Resolution 3
  • XRDS
    • XRI Resolution 3

4 Abbreviations (略語)

These abbreviations are use in this Specification:

これらの略語をこの仕様書の中で使います:

  • HTTPS
    • The HTTP protocol when that protocol is used, in accordance with current conventions, so that the session data is encrypted using a version of the Transport Layer Security or Secure Socket Layer protocols
  • HTTPS
    • 現在の慣習と合致する中で、もしトランスポート層セキュリティ(TLS)かセキュアソケット層プロトコル(SSL)のバージョンを使ってセッションデータが暗号化されたなら、そこで使われたHTTPプロトコルをさします。

5 Conventions (慣習)

The key words and word pairs, 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'MAY', and 'OPTIONAL', in this document are to be interpreted as described in RFC 2119.

Notes and examples in this document are not normative.

このドキュメント中の注意書きと例は標準ではありません。

6 The Yadis Protocol (Yadisプロトコル)

6.1 Overview of the Yadis Protocol (Yadisプロトコルの概観)

The purpose of the Yadis protocol is to enable a Relying Party to obtain a Yadis Resource Descriptor that describes the services available using a Yadis ID.

Yadisプロトコルの目的はRelying PartyがYadis IDの利用に応じられるサービスを記述するYadisリソース記述子を手に入れる事が出来る様にする事です。

6.1.1 Obtaining the Yadis Resource Descriptor (Yadisリソース記述子の獲得)

When a User offers a Yadis ID to a Relying Party, that Relying Party will want to discover which services are available using that Yadis ID.

ユーザがRelying PartyにYadis IDを提供するとき、そのRelying PartyはYadis IDの利用が可能なサービスを発見しようとするでしょう。

Examples:

 Is it an OpenID URL, an XRI, a LID, or ...? 
 What authentication services are available for this Yadis ID? 
 What other services? 

それはOpenIDのURLなのか、XRIなのか、LIDなのか、それとも…?
何の認証サービスがこのYadis IDに関して有効なのか?
他の何かのサービス?

To do that, the Relying Party Agent makes an HTTP request. This request may take any one of several forms, specified in Clause 6.2.3 of this Yadis Specification.

そうするために、そのRelying Party AgentはHTTPリクエストを行います。このリクエストは、このYadis仕様書の6.2.3節で述べられる、幾つかの形式をとります。

In response to the request, the Relying Party Agent obtains either:

  1. 1. A Yadis document.
  2. 2. A URL that locates a Yadis document.

そのリクエストへのレスポンスの中で、そのRelying Pargy Agentはどちらか一方を獲得します:

  1. Yadisドキュメント
  2. Yadisドキュメントの位置を示すURL

If the Relying Party Agent obtains a URL, the Relying Party Agent uses that URL to obtain the Yadis document.

もしそのRelying Party AgentがURLを獲得するなら、そのRelying Party AgentはそのURLをYadisドキュメントの獲得の為に利用します。

The Yadis document contains a Yadis Resource Descriptor, which identifies the services available using that Yadis ID, including services that can authenticate the User.

そのYadisドキュメントは、件のYadis IDの利用が可能なサービス(ユーザを認証する事が出来るサービするを含む)を識別する、Yadisリソース記述子を含みます。

For a description of the Yadis document, see Clause 7, Yadis document.

Yadisドキュメントの説明のために、7節のYadisドキュメントをご覧ください。

6.1.2 Authentication services (認証サービス)

The Yadis protocol was originally intended to be used to discover authentication services that can be used with a Yadis ID. This Specification enables discovery of other services.

YadisプロトコルはYadis IDを使う事が出来る認証サービスの発見に使われるためにはじめは意図されました。この仕様書は他のサービスの発見を出来る様にします。

This Specification does not prescribe the operation of authentication services. Authentication is performed using one or more discovered services. The Relying Party Agent uses the information in the Yadis Resource Descriptor to choose an service suitable to its purposes, and uses that service to authenticate the user.

この仕様書は認証サービスのオペレーションを定めません。認証は1つ以上の発見されたサービスを使って行われます。Relying Party Agentはその目的の為にふさわしいサービスを選ぶためにYadisリソース記述子の中の情報を使い、ユーザを認証するためのサービスを使います。

6.1.3 Other services (他のサービス)

Yadis resources offer other services, in addition to authentication. These services are identified in the Yadis Resource Descriptor and each service operates according to the specification of that particular Yadis service.

Yadisリソースは更なる認証について他のサービスを提案します。これらのサービスはYadisリソース記述子の中で識別され、それぞれのサービスは個々のYadisサービスの仕様書に一致するように作動します。

Example: LID defines a RESTful protocol that allows the structured query of data about the Yadis User. LID Profile Exchange can be offered as a Yadis Service.

例: LIDはYadisユーザに関するデータの構造的な問い合わせを許可するRESTfulプロトコルを定義します。LIDプロフィール交換はYadisサービスとして提供される事が出来ます。

6.2 Protocol Specification (プロトコルの仕様)

The HTTP protocol MUST be used for all interactions of the Yadis protocol.

HTTPプロトコルはYadisプロトコルの全ての相互作用のために使われなければなりません(MUST)。

If the scheme name of a Yadis URL is 'https', HTTP must be used, in accordance with current conventions, so that the session data is encrypted using a version of the Transport Layer Security or Secure Socket Layer protocols.

もしYadis URLのスキーム名が'https'なら、HTTPは、セッションデータを暗号化するためにTLSかSSLの現在の慣習に一致するバージョンを使わなければなりません。

6.2.1 Yadis ID (Yadis ID)

A Yadis ID is a identifier used by one or more Yadis Services. A Yadis ID MAY be a URL; it MUST be an identifier that is resolvable to a URL.

Yadis IDは1つ以上のYadisサービスによって使われるIdentifierです。Yadis IDはURLかもしれません(MAY); それはURLに解決されるIdentifierでなければなりません。

Note: This Specification does not require a Relying Party Agent to resolve an XRI or other identifier. Some Relying Party Agents may work only when the Yadis ID is a URL.

Note: この仕様書はRelying Party AgentがXRIや他のIdentifierを解決する事を要求しません。いくつかのRelying Party AgentはYadis IDがURLである時のみ働くかもしれません。

6.2.2 Yadis URL (Yadis URL)

If a Yadis ID is a URL, it is a Yadis URL; if it is not a URL, the URL to which it resolves is the corresponding Yadis URL. The scheme name of a Yadis URL must be 'http' or 'https'.

もしYadis IDがURLであるなら、それはYadis URLです; もしYadis IDがURLでないなら、Yadis IDを解決したURLがYadis IDに対応します。Yadis URLのスキーム名は'http'か'https'でなければなりません。

6.2.3 Alternatives (代替)

A Relying Party Agent MAY use the YADIS URL to make an HTTP GET request. The response MAY contain, in an HTTP response-header or in an HTML document, a Resource Descriptor URL giving the location of the YADIS document. If it does, the Relying Party Agent then obtains the YADIS document using that URL.

Relying Party AgentはHTTP GETリクエストを作る為にYADIS URLを使うかもしれません(MAY)。そのレスポンスは、HTTPレスポンスヘッダかHTMLドキュメントに、YADISドキュメントの位置を示すリソース記述子URLを含むかもしれません(MAY)。もしそうなら、Relying Pargy AgentはそのときそのURLを使ってYADISドキュメントを獲得します。

The Yadis Protocol also includes two alternatives:

Yadisプロトコルは2つの代替もまた含みます:

The Relying Party Agent MAY first issue an HTTP HEAD request. In that case, the Resource Descriptor URL MAY be returned in an HTTP response-header.

Relying Party AgentははじめにHTTP HEADリクエストを行うかもしれません(MAY)。この場合、リソース記述子URLはHTTPレスポンスヘッダの中に返されるかもしれません(MAY)。

The Relying Party Agent MAY include in the HTTP GET request an Accept request-header asking for the Yadis document to be returned. In that case the Yadis document MAY be returned in response to that request, instead of an HTML document.

Relying Party AgentはHTTP GETリクエストの中にYadisドキュメントが返される事を訪ねる為にAcceptリクエストヘッダ含めるかもしれません(MAY)。この場合Yadisドキュメントは、HTMLドキュメントでなく、そのリクエストへのレスポンスの中で返されるかもしれません(MAY)。

Note: If the server supports content negotiation for the Yadis URL, the response needs to include a Vary: Accept header to allow caches to properly interpret future requests. This header needs to be present even in the case where the HTML page is returned (instead of a Yadis document).

Note: もしサーバがYadis URLに関してコンテントネゴシエーションをサポートするなら、そのレスポンスはVaryを含める事を必要とします: 続くリクエストを適切に解釈したキャッシュを許可する為のAcceptヘッダ。このヘッダはHTMLページ(Yadisドキュメントの代わり)が返されるケースと同じく与えられる事を必要とします。

The following Clauses specify the steps of the Yadis Protocol.

次に述べる節はYadisプロトコルの段階を示します。

6.2.4 Initiation (開始)

The Yadis Protocol is initiated by the Relying Party Agent with an initial HTTP request using the Yadis URL.

YadisプロトコルはYadis URLを使った開始のHTTPリクエストを使ってRelying Party Agentによって開始されます。

This request MUST be either a GET or a HEAD request.

このリクエストはGETカHEADリクエストのいずれか一方でなければなりません(MUST)。

A GET or HEAD request MAY include an HTTP Accept request-header (HTTP 14.1) specifying MIME media type, application/xrds+xml.

GETかHEADリクエストはMIMEメディアタイプのapplication/xrds+xmlを示すHTTPのAcceptリクエストヘッダ(HTTP 14.1)を含むかもしれません(MAY)。

6.2.5 Response (レスポンス)

The response MUST be one of:

レスポンスは以下の1つでなければなりません(MUST):

1. An HTML document with a <head> element that includes a <meta> element with http-equiv attribute, X-XRDS-Location,

1. http-equiv属性がX-XRDS-Locationである<meta>要素を含む<head>要素を持つHTMLドキュメント。

2. HTTP response-headers that include an X-XRDS-Location response-header, together with a document

2. ドキュメントと合わせて、X-XRDS-Locationレスポンスヘッダを含むHTTPレスポンスヘッダ

3. HTTP response-headers only, which MAY include an X-XRDS-Location response-header, a content- type response-header specifying MIME media type, application/xrds+xml, or both.

3. HTTPレスポンスヘッダのみで、MIMEメディアタイプのapplication/xrds+xmlを示すcontent-typeレスポンスヘッダとX-XRDS-Locationレスポンスヘッダのどちらかか両方かを含むかもしれない。

4. A document of MIME media type, application/xrds+xml.

4. MIMEメディアタイプがapplication/xrds+xmlであるドキュメント

6.2.6 Resource Descriptor URL (リソース記述子URL)

The response MAY include an X-XRDS-Location HTTP response-header; the value of that header MUST be a Yadis Resource Descriptor URL.

レスポンスはX-XRDS-LocationというHTTPレスポンスヘッダを含むかもしれません(MAY); そのヘッダの値はYadisリソース記述子URLでなければなりません(MUST)。

The response MAY include an HTML document with a <head> element containing a <meta> element whose http-equiv attribute is X-XRDS-Location; the value of that attribute MUST be a Yadis Resource Descriptor URL.

そのレスポンスはhttp-equiv属性がX-XRDS-Locationである<meta>要素を含む<head>要素を持つHTMLドキュメントを含むかもしれません(MAY); その属性の値はYadisリソース記述子URLでなければなりません(MUST)。

If the response includes Yadis Resource Descriptor URLs in both an HTTP response-header and an HTML document <head> element, the Yadis Resource Descriptor URL in the HTTP response-header must be used.

もしレスポンスがHTTPレスポンスヘッダとHTMLドキュメントの<head>要素の両方を含むなら、HTTPレスポンスヘッダの中のYadisリソース記述子URLが使われなければなりません。

A Yadis Resource Descriptor URL MUST be an absolute URL; it MUST locate a Yadis document (see Clause 7).

Yadisリソース記述子URLは絶対URLでなければなりません(MUST); それはYadisドキュメントの位置をしめさなければなりません(7節をご覧ください)(MUST)。

If the response includes both a content-type response-header specifying MIME media type, application/xrds+xml and a Yadis Resource Descriptor URL, then the Yadis document is located by that Yadis Resource Descriptor URL.

もしレスポンスがMIMEメディアタイプのapplication/xrds+xmlを示すcontent-typeレスポンスヘッダとYadisリソース記述子URLの両方を含むなら、そのときはYadisドキュメントはそのYadisリソース記述子URLによって位置を示されます。

6.2.7 Document (ドキュメント)

If the response does not include a Yadis Resource Descriptor URL and the response is a document of MIME media type, application/xrds+xml, then that document MUST be a Yadis document (see Clause 7).

もしレスポンスがYadisリソース記述子URLを含まず、レスポンスがMIMEメディアタイプのapplication/xrds+xmlのドキュメントなら、そのときそのドキュメントはYadisドキュメントでなければなりません(7節をご覧ください)(MUST)。

6.2.8 Second Request (2つめのリクエスト)

If the response includes a Yadis Resource Descriptor URL, the Relying Party Agent MUST request the document located by that URL.

もしレスポンスがYadisリソース記述子URLを含むなら、Relying Party AgentはそのURLによって位置を示されるドキュメントを要求しなければなりません(MUST)。

If the response to an HTTP HEAD request does not contain a Yadis Resource Descriptor URL, the Relying Party Agent MUST then issue an HTTP GET request to the Yadis URL.

もしHTTP HEADリクエストへのレスポンスがYadisリソース記述子URLを含まないなら、Relying Party AgentはYadis URLに対してHTTP GETリクエストを発行しなければなりません(MUST)。

6.2.9 Third Request (3つめのリクエスト)

The response to an HTTP GET request that follows an HTTP HEAD request MUST be handled as prescribed in 6.2.6 for an initial HTTP GET request. This MAY result in a third request using a Yadis Resource Descriptor URL.

HTTP HEADリクエストの次のHTTP GETリクエストへのレスポンスは開始のHTTP GETリクエストについて6.2.6で規定されたように扱われなければなりません(MUST)。これはYadisリソース記述子URLを使った3つめのリクエストについての結果かもしれません(MAY)。

6.2.10 Termination (終了)

When a Yadis document is returned to the Relying Party Agent the Yadis Protocol terminates.

YadisドキュメントがRelying Party Agentに返されたときそのYadisプロトコルは終了します。

Note: Further steps depend on the services identified in the Yadis Resource Descriptor and the intent of the Relying Party Agent; they are outside of the scope of the current Yadis Specification.

Note: 次に続くステップはYadisリソース記述子の中で識別されるサービスとRelying Party Agentの意図に依存します; それらは現在のYadis仕様書の範囲外です。

Example: A Relying Party Agent may, in the next step, authenticate the user agent through OpenID and then perform a LID Profile Exchange.

例: Relying Party Agentは、次のステップの中で、OpenIDを通じてユーザエージェントを認証しそしてLIDプロフィール交換を行います。

6.2.11 Failure (失敗)

If none of the requests succeed in obtaining a Yadis document then the URL used in the initial request is not a Yadis URL or there has been a failure.

もしYadisドキュメントの獲得に関するリクエストの成功が無いなら、開始リクエストの中で使われたURLはYadis URLでないか失敗です。

7. The Yadis document (Yadisドキュメント)

7.1 Overview of the Yadis document (Yadisドキュメントの概観)

The Yadis document is based on a simple, extensible XML document called an Extensible Resource Descriptor (abbreviated 'XRD'). The format of XRD documents is being specified by the a technical committee of OASIS. The XML schemas for the Yadis document are specified in Clause 7.5 of this Specification.

Yadisドキュメントは拡張リソース記述子('XRD'と略されます)と呼ばれるシンプルな拡張XMLドキュメントを基礎としています。XRDドキュメントのフォーマットはOASISの技術委員によって示されています。Yadisドキュメントの為のXMLスキーマはこの仕様書の中の7.5節で示されます。

Note: The Yadis Project considered providing both a plain text format and an XML format, in order to make it as easy as possible for Relying Party Agents to use service information available through Yadis IDs. However, we came to the conclusion that requiring both a plain text format and an XML format provides only small additional value, while using an XML format enables use of standard parsing tools and allows service specifications to include additional information without upsetting parsers that do not understand those extensions.

Note: YadisプロジェクトはYadis IDによって利用可能なサービス情報を使う事が、Relying Party Agentにとって出来る限り簡単になるための手段として、プレーンテキスト形式とXML形式の両方を提供する事を考察しました。しかしながら、我々は、XML形式を使う限り、それらの拡張を理解しない構文解析プログラムを乱す事無く、標準の構文解析ツールの利用とサービスに追加情報を含めるための仕様を認める事が可能になるので、プレーンテキスト形式とXML形式の両方を要求する事について小さな追加の値を提供するにとどめるという結論になりました。

訳注) さっぱり訳せません。結局、XML形式だけを提供するという話でしょうか?

The Yadis document contains a Yadis Resource Descriptor, which provides a list of identifiers of services. These are the services that know the User identified by the Yadis ID used to obtain the Yadis document. In the case of some services, additional data is included in the Yadis Resource Descriptor for use by the Relying Party Agent in making a request to that service. Such additional data is not specified in the Yadis Specification but is specified in the definition of that service.

Yadis ドキュメントはサービスの識別子の一覧を提供するYadisリソース記述子を含みます。これらはYadisドキュメントを獲得するために使われるYadis IDによって識別されるユーザを知るサービスです。幾つかのサービスの場合、そのサービスへのリクエストを行うRelying Party Agentが使うために、Yadisリソース記述子の中に追加データが含まれます。そのような追加データはYadis仕様書の中で明記されませんが、そのサービスの定義の中で明記されます。

The Yadis Resource Descriptor also enables the User to specify which services it prefers be used.

Yadisリソース記述子はユーザがどのサービスが使われる事を好むかを示す事を可能にします。

7.2 A simple Yadis document (単純なYadisドキュメント)

Here is an example of a small Yadis document:

小さなYadisドキュメントの例:

 <?xml version="1.0" encoding="UTF-8"?> 
 <xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"> 
   <XRD> 
 
     <Service> 
       <Type> http://lid.netmesh.org/sso/2.0 </Type> 
     </Service> 
 
     <Service> 
       <Type> http://lid.netmesh.org/sso/1.0 </Type> 
     </Service> 
 
   </XRD> 
 </xrds:XRDS> 

This document specifies two services.

このドキュメントは2つのサービスを示します。

Note: The XML declaration and the XRDS start-tag appear in all Yadis documents, with the attributes and values shown. The XRD element is the Yadis Resource Descriptor.

Note: XML宣言とXRDS開始タグ属性と値の提示を伴ってYadisドキュメントの中に登場します。XRD要素はYadisリソース記述子です。

7.3. Element definitions (要素の定義)

These definitions of the elements of a Yadis document:

これらのYadisドキュメントの要素の定義:

are constraints on the XRDS and XRD schemas specified in Clause 7.5 and specify how the elements specified in those schemas are to be interpreted when used in a Yadis document.

は、XRDSとXRDスキーマは7.5節で明記され、それらスキーマで明記される要素がYadisドキュメントの中で使われるときにどのように解釈されるのかを示す制約です。

7.3.1 XRDS

A Yadis document consists of an XRD container (an XRDS element) enclosing a Yadis Resource Descriptor (an XRD element).

YadisドキュメントはYadisリソース記述子(XRD要素)を納めるXRDコンテナ(XRDS要素)で構成されます。

A Yadis document MAY contain more than one XRD in the XRDS and MAY contain other elements in the XRDS, in addition to XRD elements.

YadisドキュメントはXRDSの中に1つ以上のXRDを含むかもしれず、XRD要素の追加について、XRDSの中に他の要素を含むかもしれません(MAY)。

If a Yadis XRDS includes more than one XRD element, the Yadis Resource Descriptor is the last XRD element. A Relying Party Agent MAY ignore other XRD elements.

もしYadisのXRDSが1つ以上のXRD要素を含めるなら、Yadisリソース記述子は最後のXRD要素です。Relying Party Agentは他のXRD要素を無視するかもしれません(MAY)。

A Relying Party Agent MAY ignore all other elements in an XRDS.

Relying Party AgentはXRDSの中の全ての他の要素を無視するかもしれません(MAY)。

7.3.2 XRD

A Yadis Resource Descriptor is an XRD element containing a sequence of Service elements. The order of the Service elements is not significant.

Yadisリソース記述子はサービス要素のシーケンスを含むXRD要素です。サービス要素の並び順は意味を持ちません。

7.3.3 Service

A Yadis Resource Descriptor MAY contain Service elements, each describing a Yadis service.

Yadisリソース記述子はサービス要素を含むかもしれず(MAY)、互いにYadisサービスを表現します。

Note: When an XRDS document returned when using the Yadis protocol contains no Service elements describing a Yadis service this indicates that the URL is not intended for use with any Yadis service.

Note: Yadisプロトコルを使った時にYadisサービスを表現するサービス要素を含まないXRDSドキュメントが返った場合、これはURLが何かしらのYadisサービスとともに使われる事を意図していないを示します。

7.3.4 Type

Each Service element MAY contain one or more Type elements.

それぞれのサービス要素は1つ以上のType要素を含むかもしれません(MAY)。

Note: A Service element containing no Type elements does not describe a Yadis service.

Note: Type要素を含まないサービス要素はYadisサービスを表現しません。

Each Type element MUST contain an identifier of some version of some service. This service identifier MUST be a URI or XRI.

それぞれのType要素はいくつかのサービスのいくつかのバージョンの識別子を含まなければなりません(MUST)。このサービス識別子はURIかXRIでなければなりません(MUST)。

Note: It is our intention that this element may contain an IRI, as specified by RFC 3987. This will be specified in a later version of this Specification.

Note: この要素はRFC3987によって明記されるIRIを含むかもしれない事を我々は意図します。これはこの仕様書の後のバージョンの中で明記されるでしょう。

For each service identified by a Type element there SHOULD be a service specification document. It is RECOMMENDED that the service identifier be a URL that can be used in an ordinary web browser to display that service specification document.

Type要素によって識別されるそれぞれのサービスに関して、サービス仕様書があるべきです(SHOULD)。サービス識別子は、そのサービス仕様書を表示するために、通常のウェブブラウザーで使えるURLである事が推奨されます(RECOMMENDED)。

It is RECOMMENDED that each service identifier include an explicit version identifier, in order to assist the evolution of the service in the future.

それぞれのサービス識別子は、将来サービスの進化を助ける為に、明快なバージョン識別子を含む事が巣称されます(RECOMMENDED)。

7.4 Other parts of a Yadis Resource Descriptor (Yadisリソース記述子の他の部分)

Here is an example of a larger Yadis document:

大きなYadisドキュメントの例:

 <?xml version="1.0" encoding="UTF-8"?> 
 <xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)" 
       xmlns:openid="http://openid.net/xmlns/1.0”> 
   <XRD> 
 
     <Service priority="10"> 
       <Type>http://openid.net/signon/1.0</Type> 
       <URI>http://www.myopenid.com/server</URI> 
       <openid:Delegate>http://smoker.myopenid.com/</openid:Delegate> 
     </Service> 
 
     <Service priority="50"> 
       <Type>http://openid.net/signon/1.0</Type> 
       <URI>http://www.livejournal.com/openid/server.bml</URI> 
       <openid:Delegate> 
         http://www.livejournal.com/users/frank/ 
       </openid:Delegate> 
     </Service> 
 
     <Service priority="20"> 
       <Type>http://lid.netmesh.org/sso/2.0</Type> 
     </Service> 
 
     <Service> 
       <Type>http://lid.netmesh.org/sso/1.0</Type> 
     </Service> 
 
   </XRD> 
 </xrds:XRDS> 

7.4.1 URI element (URI要素)

A Yadis Service element MAY contain one or more URI elements.

Yadisサービス要素は1つ以上のURI要素を含むかもしれません(MAY)。

Each URI element MUST contain a URI that resolves to a resource providing the service (or services) specified by the Type element(s) of that Service element.

それぞれのURI要素はそのサービス要素のType要素によって示されるサービスを提供するリソースを解決するURIを含まなければなりません(MUST)。

That URI MUST be an absolute URL, not a relative reference or other URI.

そのURIは、相対参照や他のURIではない、絶対URIでなければなりません(MUST)。

Note: It is our intention that this element may contain any absolute URI that identifies a resource providing the service(s) or may contain an absolute IRI, as specified by RFC 3987. This will be specified in a later version of this Specification.

Note: この要素はサービスを提供するリソースを識別する何かしらの絶対URIを含むかもしれませんし、RFC3987によって明記される絶対IRIを含むかもしれない、という事を意図します。

If there is more than one URI element, the URIs in those elements MUST be equivalent for the purpose of using the identified service(s). A Relying Party Agent MAY attempt to use any one or all of the URIs.

1つ以上のURI要素があるなら、それらの要素の中のURIは識別されたサービスを使うという目的に関して同等でなければなりません。Relying Party Agentは1つか全てのURIを使う事を試みます。

If one or more URI elements has a priority attribute, a Relying Party Agent MAY use the priority values as specified in Clause 3.3.3 of the XRI Resolution 2.0 specification.

もし1つ以上のURI要素がpriority属性を持つなら、Relying Party AgentはXRI Resolution 2.0仕様書の3.3.3節に明記されるようにpriorityの値を使うかもしれません(MAY)。

The order of URI elements is not significant.

URI要素の並び順に意味はありません。

The URI element is OPTIONAL. If a URI element is provided, the service determines the meaning of that element and the protocol to use with it.

URI要素は任意です(OPTIONAL)。もしURI要素が提供されるなら、サービスはその要素の意味とそれとともに使う為のプロトコルを決定します。

7.4.2 Priority attribute (priority属性)

The OPTIONAL priority attribute MAY be used with the Service element, allowing the User to specify preferences for the service to be used.

任意(OPTIONAL)のpriority属性は、使われる事が好ましいサービスをユーザに示す事を許可するために、サービス要素とともに使われるかもしれません(MAY)。

Example: The example document at 7.4 above indicates that the User prefers the OpenID protocol using the server, www.myopenid.com/server, and that the last choice is LID version 1.0.

例: 前述の7.4の例えのドキュメントはユーザがサーバ"www.myopenid.com/server"を使うOpenIDプロトコルを好む事と、最後の選択がLIDバージョン1.0である事を示します。

The OPTIONAL priority attribute MAY be used with the URI element, allowing the User to specify preferences for the URI to be used.

任意(OPTIONAL)のpriority属性は、ユーザに使われる事が好ましいURIを示す事を許可するために、URI要素とともに使われるかもしれません(MAY)。

Note: The LID SSO service elements in the document at 7.4 above do not contain a URI element because in LID SSO the LID URL itself is used to obtain LID services.

Note: LID SSOのLID URLそれ自身はLIDサービスを獲得する為に使われるために、前述の7.4節のドキュメント中のLID SSOサービス要素はURI要素を含みません。

In keeping with the goal of ease of implementation, a Relying Party Agent MAY ignore priority attributes.

実装を容易にする目的を保つ中で、Relying Party Agentはpriority属性を無視するかもしれません(MAY)。

A Relying Party Agent that recognizes and uses the priority attribute in one or more Service or URI elements MUST follow the specification of priority attributes in Clause 3.3.3 of the XRI Resolution 2.0 specification.

1つ以上のサービスかURI要素の中でpriority属性を認めて使うRelying Party AgentはXRI Resolution 2.0仕様書の3.3.3節のpriority属性に関する仕様に従わなければなりません(MUST)。

Note: The XRI Resolution 2.0 specification provides that the User prefers first the element with the smallest number in the value of the priority attribute, then those with higher numbers in the order of that number, and prefers last those elements with no priority attribute.

Note: XRI Resolution 2.0仕様書はユーザはpriority属性の値が最小数である先頭の要素を好み、そのときそれらはその数にふさわしいより大きな数とともにあり、そしてpriority属性を持たないならそれらの最後の要素を好む事を規定します。

7.4.3 Other elements in a Service element (サービス要素の中の他の要素)

Yadis does not specify any other elements for use inside a Service element. A service may specify additional service-specific elements for use inside a Service element. The use of these elements is dictated by the service specification of that service.

Yadisはサービス要素の中で使う為の何かしらの他の要素を明記しません。サービスはサービス要素の中で使うための追加のサービス固有の要素を明記するかもしれません。これら要素の利用はそのサービスのサービス仕様書によって指図されます。

Note: This allows a Service element to indicate information that is specific to that service.

Note: これはサービス要素にそのサービスの為に明記される情報を示す事を許可します。

Example: The OpenID specification defines the optional Delegate element, which specifies a URL by which the OpenID server knows the User.

例: OpenIDの仕様書はOpenIDサーバがユーザを知るためのURLを示す任意のDelegate要素を定義します。

Note: We encourage protocol designers to be brief.

Note: 我々はプロトコル設計者に簡潔である事を勧めます。

7.4.4 Other elements in an XRD (XRDの中の他の要素)

A Relying Party Agent MAY ignore all elements in an XRD element other than the Service elements.

Relying Party Agentはサービス要素以外のXRD要素の中の全ての要素を無視するかもしれません(MAY)。

A Relying Party Agent MAY recognize and use all elements found in a Service element that are specified by the XRD schema for inclusion in a Service element.

Relying Party Agentは サービス要素の中に含めるためにXRDスキーマによって明記される、サービス要素の中でみつかった全ての要素を認めて使うかもしれません(MAy)。

A Yadis resource MUST NOT require the use of any elements of an XRD other than the Service elements that identify the services provided by that Yadis resource.

YadisリソースはそのYadisリソースによって提供されるサービスを識別するサービス要素以外のXRDの何かしらの要素のの利用を要求してはなりません(MUST NOT)。

7.4.5 Other services (他のサービス)

A Yadis resource MAY offer services other than authentication services. A Yadis resource is NOT REQUIRED to offer an authentication service.

Yadisリソースは認証サービス以外のサービスを示すかもしれません(MAY)。Yadisリソースは認証サービスを示す事を要求されません(NOT REQUIRED)。

Example: The following Resource Descriptor specifies a number of LID services available at the resource identified by the user's Yadis ID:

例: 次に述べるリソース記述子はユーザのYadis IDによって識別されるリソースで利用可能なLIDサービスの数を明記します:

 <?xml version="1.0" encoding="UTF-8"?> 
 <xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"> 
   <XRD> 
 
     <Service priority="10"> 
       <Type>http://lid.netmesh.org/sso/2.0</Type> 
     </Service> 
 
     <Service priority="20"> 
       <Type>http://lid.netmesh.org/sso/1.0</Type> 
     </Service> 
 
    <Service priority="30"  xmlns:openid="http://openid.net/xmlns/1.0"> 
       <Type>http://openid.net/signon/1.0</Type> 
       <URI>http://www.livejournal.com/openid/server.bml</URI> 
       <openid:Delegate> 
         http://www.livejournal.com/users/frank/ 
       </openid:Delegate> 
     </Service> 
     <Service> 
       <Type>http://lid.netmesh.org/post/sender/2.0</Type> 
     </Service> 
 
     <Service> 
       <Type>http://lid.netmesh.org/post/receiver/2.0</Type> 
     </Service> 
 
     <Service> 
       <Type>http://lid.netmesh.org/relying-party/2.0</Type> 
     </Service> 
 
     <Service> 
       <Type>http://lid.netmesh.org/traversal/2.0</Type> 
     </Service> 
 
     <Service> 
       <Type>http://lid.netmesh.org/format-negotiation/2.0</Type> 
     </Service> 
 
   </XRD> 
 </xrds:XRDS> 

7.5 Schemas for the Yadis document (Yadisドキュメントのスキーマ)

The schemas of the Yadis document are the XRDS and XRD schemas contained in this clause.

Yadisドキュメントのスキーマはこの節の中に含まれるXRDSとXRDのスキーマです。

A Yadis document MUST be a valid XML document and MUST conform to the XRDS schema. A Yadis Resource Descriptor is an XRD element; it MUST be contained in an XRDS element and MUST conform to the XRD schema.

Yadisドキュメントは妥当な(valid)XMLドキュメントでなければならず(MUST)、XRDSスキーマに従わなければなりません(MUST)。Yadisリソース記述子はXRD要素です; それはXRDS要素に含まれなければならず(MUST)、XRDスキーマに従わなければなりません。

Note: It is our intention to incorporate the XRDS and XRD schemas by reference when and if they have been adopted by OASIS. In the meantime, we reproduce the schemas here. For the latest information on the OASIS work, see XRI Resolution 2.0 specification.

Note: OASISによって採択される場合に参照としてXRDSとXRDのスキーマを受け入れる事を意図します。それまでは、我々はそのスキーマをここに複写します。OASISの作業に関する最終情報については、XRI Resolution 2.0仕様書をご覧ください。

7.5.1 XRDS Schema

  <?xml version="1.0" encoding="UTF-8"?>   
  <xs:schema targetNamespace="xri://$xrds" elementFormDefault="qualified" 
       xmlns:xs="http://www.w3.org/2001/XMLSchema" 
       xmlns:xrds="xri://$xrds"> 
     <!-- Utility patterns --> 
     <xs:attributeGroup name="otherattribute"> 
        <xs:anyAttribute namespace="##other" processContents="lax"/> 
     </xs:attributeGroup> 
     <xs:group name="otherelement"> 
        <xs:choice> 
           <xs:any namespace="##other" processContents="lax"/> 
           <xs:any namespace="##local" processContents="lax"/> 
        </xs:choice> 
     </xs:group> 
     <!-- Patterns for elements --> 
     <xs:element name="XRDS"> 
        <xs:complexType> 
           <xs:sequence> 
              <xs:group ref="xrds:otherelement" minOccurs="0" maxOccurs="unbounded"/> 
           </xs:sequence> 
           <xs:attributeGroup ref="xrds:otherattribute"/> 
        </xs:complexType> 
     </xs:element> 
  </xs:schema> 

7.5.2 XRD Schema

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema targetNamespace="xri://$xrd*($v*2.0)" 
     elementFormDefault="qualified" 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
     xmlns:xrd="xri://$xrd*($v*2.0)"> 
        <!-- Utility patterns --> 
        <xs:attributeGroup name="otherattribute"> 
                <xs:anyAttribute namespace="##other" processContents="lax"/> 
        </xs:attributeGroup> 
        <xs:group name="otherelement"> 
                <xs:choice> 
                        <xs:any namespace="##other" processContents="lax"/> 
                        <xs:any namespace="##local" processContents="lax"/> 
                </xs:choice> 
        </xs:group> 
        <xs:attributeGroup name="priorityAttrGrp"> 
                <xs:attribute name="priority" type="xs:nonNegativeInteger" use="optional"/> 
        </xs:attributeGroup> 
        <xs:attributeGroup name="selectionAttrGrp"> 
                <xs:attribute name="match" use="optional" default="default"> 
                        <xs:simpleType> 
                                <xs:restriction base="xs:string"> 
                                        <xs:enumeration value="default"/> 
                                        <xs:enumeration value="content"/> 
                                        <xs:enumeration value="any"/> 
                                        <xs:enumeration value="non-null"/> 
                                        <xs:enumeration value="null"/> 
                                        <xs:enumeration value="none"/> 
                                </xs:restriction> 
                        </xs:simpleType> 
                </xs:attribute> 
                <xs:attribute name="select" type="xs:boolean" use="optional" default="false"/> 
        </xs:attributeGroup> 
        <xs:complexType name="URIPattern"> 
                <xs:simpleContent> 
                        <xs:extension base="xs:anyURI"> 
                                <xs:attributeGroup ref="xrd:otherattribute"/> 
                        </xs:extension> 
                </xs:simpleContent> 
        </xs:complexType> 
        <xs:complexType name="URIPriorityPattern"> 
                <xs:simpleContent> 
                        <xs:extension base="xrd:URIPattern"> 
                                <xs:attributeGroup ref="xrd:priorityAttrGrp"/> 
                        </xs:extension> 
                </xs:simpleContent> 
        </xs:complexType> 
        <xs:complexType name="StringPattern"> 
                <xs:simpleContent> 
                        <xs:extension base="xs:string"> 
                                <xs:attributeGroup ref="xrd:otherattribute"/> 
                        </xs:extension> 
                </xs:simpleContent> 
        </xs:complexType> 
        <xs:complexType name="StringSelectionPattern"> 
                <xs:simpleContent> 
                        <xs:extension base="xrd:StringPattern"> 
                                <xs:attributeGroup ref="xrd:selectionAttrGrp"/> 
                        </xs:extension> 
                </xs:simpleContent> 
        </xs:complexType> 
        <!-- Patterns for elements --> 
        <xs:element name="XRD"> 
                <xs:complexType> 
                        <xs:sequence> 
                                <xs:element ref="xrd:Query" minOccurs="0"/> 
                                <xs:element ref="xrd:Status" minOccurs="0"/> 
                                <xs:element ref="xrd:Expires" minOccurs="0"/> 
                                <xs:element ref="xrd:ProviderID" minOccurs="0"/> 
                                <xs:element ref="xrd:LocalID" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:element ref="xrd:CanonicalID" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:element ref="xrd:Ref" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:element ref="xrd:Service" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:group ref="xrd:otherelement" minOccurs="0" maxOccurs="unbounded"/> 
                        </xs:sequence> 
                        <xs:attribute name="id" type="xs:ID"/> 
                        <xs:attribute name="idref" type="xs:IDREF" use="optional"/> 
                        <xs:attribute name="version" type="xs:string" use="optional" fixed="2.0"/> 
                        <xs:attributeGroup ref="xrd:otherattribute"/> 
                </xs:complexType> 
        </xs:element> 
        <xs:element name="Query" type="xrd:StringPattern"/> 
        <xs:element name="Status"> 
                <xs:complexType> 
                        <xs:simpleContent> 
                                <xs:extension base="xrd:StringPattern"> 
                                        <xs:attribute name="code" type="xs:int" use="required"/> 
                                        <xs:attributeGroup ref="xrd:otherattribute"/> 
                                </xs:extension> 
                        </xs:simpleContent> 
                </xs:complexType> 
        </xs:element> 
        <xs:element name="Expires"> 
                <xs:complexType> 
                        <xs:simpleContent> 
                                <xs:extension base="xs:dateTime"> 
                                        <xs:attributeGroup ref="xrd:otherattribute"/> 
                                </xs:extension> 
                        </xs:simpleContent> 
                </xs:complexType> 
        </xs:element>
        <xs:element name="ProviderID" type="xrd:URIPattern"/> 
        <xs:element name="LocalID"> 
                <xs:complexType> 
                        <xs:simpleContent> 
                                <xs:extension base="xrd:StringPattern"> 
                                        <xs:attributeGroup ref="xrd:priorityAttrGrp"/> 
                                </xs:extension> 
                        </xs:simpleContent> 
                </xs:complexType> 
        </xs:element> 
        <xs:element name="CanonicalID" type="xrd:URIPriorityPattern"/> 
        <xs:element name="Ref" type="xrd:URIPriorityPattern"/> 
        <xs:element name="Service"> 
                <xs:complexType> 
                        <xs:sequence> 
                                <xs:element ref="xrd:ProviderID" minOccurs="0"/> 
                                <xs:element ref="xrd:Type" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:element ref="xrd:Path" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:element ref="xrd:MediaType" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:element ref="xrd:URI" minOccurs="0" maxOccurs="unbounded"/> 
                                <xs:group ref="xrd:otherelement" minOccurs="0" maxOccurs="unbounded"/> 
                        </xs:sequence> 
                        <xs:attributeGroup ref="xrd:priorityAttrGrp"/> 
                        <xs:attributeGroup ref="xrd:otherattribute"/> 
                </xs:complexType> 
        </xs:element> 
        <xs:element name="Type"> 
                <xs:complexType> 
                        <xs:simpleContent> 
                                <xs:extension base="xrd:URIPattern"> 
                                        <xs:attributeGroup ref="xrd:selectionAttrGrp"/> 
                                </xs:extension> 
                        </xs:simpleContent> 
                </xs:complexType> 
        </xs:element> 
        <xs:element name="MediaType" type="xrd:StringSelectionPattern"/> 
        <xs:element name="Path" type="xrd:StringSelectionPattern"/> 
        <xs:element name="URI"> 
                <xs:complexType> 
                        <xs:simpleContent> 
                                <xs:extension base="xrd:URIPattern"> 
                                        <xs:attributeGroup ref="xrd:priorityAttrGrp"/> 
                                        <xs:attribute name="append"> 
                                                <xs:simpleType> 
                                                        <xs:restriction base="xs:string"> 
                                                                <xs:enumeration value="none"/> 
                                                                <xs:enumeration value="local"/> 
                                                                <xs:enumeration value="authority"/> 
                                                                <xs:enumeration value="path"/> 
                                                                <xs:enumeration value="query"/> 
                                                                <xs:enumeration value="qxri"/> 
                                                        </xs:restriction> 
                                                </xs:simpleType> 
                                        </xs:attribute> 
                                </xs:extension> 
                        </xs:simpleContent> 
                </xs:complexType> 
        </xs:element> 
</xs:schema> 
Last modified:2008/02/07 00:18:45
Keyword(s):
References: