この文書はDAISY Consortium の "Specification for the DAISY Online Delivery Protocol V1 (Approved May 29, 2010 by the DAISY Consortium Board)"の日本語訳である。本文書の原文もしくは完全な情報は、"Specification for the DAISY Online Delivery Protocol V1 (Approved May 29, 2010 by the DAISY Consortium Board)"を参照されたい。
この日本語訳は参考である。公式な文書ではなく、翻訳・解釈の正確性を保証していない。
DAISYコンソーシアム理事会によって2010年5月29日に承認
本バージョン:
http://www.daisy.org/projects/daisy-online-delivery/drafts/20100402/do-spec-20100402.html
本バージョンのzipアーカイブ:
http://www.daisy.org/projects/daisy-online-delivery/drafts/20100402/do-spec-20100402.zip
旧バージョン:
http://www.daisy.org/projects/daisy-online-delivery/drafts/20100218/do-spec-20100218.html
http://www.daisy.org/projects/daisy-online-delivery/drafts/20090927/do-spec-20090927.html
http://www.daisy.org/projects/daisy-online-delivery/drafts/20090910/do-spec-20090910.html
編集者
(Co-Chair) Kenny Johar, Vision Australia
(Co-Chair) Markus Gylling, DAISY Consortium
Matt Garrish, CNIB
Geoff Gilmour-Taylor, CNIB
Jelle Martijn Kok, Solutions Radio
Nick Williamson, RNIB
Simon Roy, HumanWare
Johan Abbors, Pratsam
概要
DAISYオンライン配信プロトコルは、サービス(Service)プロバイダからエンドユーザー(User)へのデジタルリソースの配信を容易にするWebサービス(Service)APIである。このプロトコルは、様々なダウンロードモデルを実現する設定を可能とするオペレーションのコアセットを特徴とするもので、出版されたコンテンツのオンライン配信への高まるニーズに対するフレキシブルで軽量なソリューションである。
このセクションは、公開時点におけるこの文書のステータスを説明する。他の文書がこの文書を置き換える場合がある。現在のDAISY出版物の一覧や本仕様の最新のバージョンをDAISY projects http://www.daisy.org/projects/ のインデックスで見つけることができる。
この文書は、DAISY Online Working Groupがその活動の一環として作成した。発行時点での完全なメンバ一覧については、付録B 謝辞を参照すること 。
この文書は、DAISYコンソーシアムの技術勧告(Technical Recommendation)であり、DAISY Online Delivery Project憲章 [http://www.daisy.org/projects/daisy-online-delivery/charter.html]の下でDAISY Online Working Groupの運営によって作成されたものである。
ワーキンググループへのこの文書内の誤りの報告やこのプロトコルの将来のバージョンに対する提案は、DAISYコンソーシアムのサイトで公開されている一般のフィードバックフォーム http://www.daisy.org/contact を通して行ってほしい。
本仕様の英語版が標準を定める唯一のバージョンである。
目次
logOn
オペレーション(Operation)logOff
オペレーション(Operation)setReadingSystemAttributes
オペレーション(Operation)issueContent
オペレーション(Operation)getContentMetadata
オペレーション(Operation)getContentResources
オペレーション(Operation)getServiceAttributes
オペレーション(Operation)getContentList
オペレーション(Operation)例のリスト
このセクションは参考情報である。
DAISYオンライン配信プロトコルは、コンテンツをクライアントとユーザー(User)にタイムリーかつ費用対効果の高い方法で配信できるようにしたいというDAISY製作者のニーズから生まれた。物理的な媒体によるコンテンツの配布の課題は、これらの解決法の実装が困難になり、これらの解決法の維持が煩雑になり、環境に対して優しくないことである。
DAISY デジタル録音図書(Digital Talking Book)は、DAISY規格の主要な構成要素であるが、標準そのものが進化しており、様々なタイプのアクセシブルな媒体を配布する必要性は、DAISYコンソーシアムの多くのメンバーがすでに直面しているものである。その結果、プロバイダからリーディングシステムへのリソースの伝達を目的として、このプロトコルのためのサービス(Service)アーキテクチャを開発した。アクセシブルパブリッシングの領域を超えてコンテンツ配信メカニズムとしても有用なプロトコルにするべき設計原理に基づいている。
第2の主要な開発の目的は、このプロトコルを、個人または組織の配信ニーズに合わせてカスタマイズし、調整ができるよう十分に柔軟なものにするためであった。最小限のコア機能は、たとえば、ユーザー(User)が夜、彼らのリーディングシステム(Reading System)を接続し、自動的に新しいコンテンツをダウンロードできるようにすることができるような、シンプルなサービス(Service)の開発を容易する。機能の拡張セットは、ユーザー(User)がブラウズして 彼ら独自のコンテンツをダウンロードするような、より豊かでよりインタラクティブなモデルを可能にする。
このプロトコルは、コンテンツの配信だけではなく、コンテンツの貸出を容易にするためにも設計された。期間を限定したユーザー(User)へのコンテンツ配信の手段が求められる図書館やその他の機関は、この種の配信モデルを容易にする多くの機能を見つけるだろう。明示的なデジタル著作権管理の問題が懸念事項であるため、このプロトコルではPDTB2コンテンツ保護スキームの使用も可能としている。
このプロトコルは、このコンテンツ配信モデルを実装する意向のある個人や組織の実装やメンテナンスのコストを削減するために既存の技術の確固たる土台の上に構築される、リーディングシステム(Reading System)とサービス(Service)との間の相互作用は、HTTPプロトコルを介したSOAPメッセージによって行われる。 サービス(Service)オペーレションは規範的なWSDLドキュメントで全て定義されている。そして、このプロトコルそのものは、WS-I Basic Profile 1.1に準拠している。
このプロトコルのこのバージョンでは取り組むことができなかった1つの機能は、DAISYオンライン配信サービス(Service)の発見である。DAISYコンソーシアムは、後日、オンラインサービスの追跡し、位置を特定するためのシステムや仕様を開発するかもしれないが、このプロトコルと統合しうるそのような機能は、現時点では存在しない。
このセクションは規範的である。
この文書で利用されているキーワード "MUST"、"MUST NOT"、"REQUIRED"、 "SHALL”、"SHALL NOT" 、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、 "MAY"、そして、 "OPTIONAL" は[RFC 2119]で規定されている通りに解釈されることとする。
加えて、この文書を通して次の用語がこのセクションで述べられて意味で使用されている。
ユーザー(User)に貸与してよく(MAY)、貸与の後に返却されなければならない(MUST)コンテンツ(Content)。コンテンツ(Content)の所有権はユーザー(User)には渡されない。借りることができるコンテンツ(Borrowable Content)は有料で貸与されるコンテンツ(Content)が含まれる。
DAISYデジタル録音図書のような、サービス(Service)を通してサービスプロバイダ(Service Provider)によって利用可能になった単数のリソースまたは複数のリソース。(単数形:コンテンツアイテム(Content item))
コンテンツアイテム(Content item)に割り当てられた一意の識別子。この識別子は、サービス(Service)によって定義され、contentMetadataタイプ(Type)の
[Dublin Core]
]
identifier
フィールドによって公開される。識別子は、サービス(Service)の範囲内で一意でなければならない(MUST)し、それが時間の経過とともに変化してはならない(MUST NOT)。
コンテンツ識別子(Content Identifier)とコンテンツアイテム(Content item)内で使用される識別子(例えば、DAISYデジタル録音図書のメタデータ内の識別子)を一致させることは求められない。
サービス(Service)からリーディングシステム(Reading System)へのコンテンツ(Content)の転送。このリーディングシステム(Reading System)は不揮発性メモリにコンテンツ(Content)を格納する。
ダウンロード(Download)とストリーミング(Streaming)は、このプロトコルの一面ではなく、リーディングシステム(Reading System)の行為である。
[SOAP 1.1]障害(Fault)。障害(Fault)は、SOAPメッセージのエラーおよび/またはステータス情報を搬送する。5.3 障害(Fault)で、このプロトコルで使用される障害(Fault)を定義している。
[WSDL 1.1]ポートタイプ。サービス(Service)がサポートするオペレーション(Operation)のセット。
コンテンツアイテム(Content item)へのアクセスを許可すること。リーディングシステム(Reading System)は、サービス(Service)からアクセスを要求するためにissueContent
オペレーションを使用する。
[WSDL 1.1]オペレーション。サービス(Service)でサポートされているアクションである。
ユーザー(User)に販売してもよく(MAY)、返却される べきではない(SHOULD NOT)コンテンツ(Content)。コンテンツ(Content)の所有権は、そのユーザー(User)に渡してもよいし(MAY)、渡さなくてもよい。購入することができるコンテンツ(Purchasable Content)には、無料で提供されているコンテンツ(Content)が含まれている。また、返却の必要がない失効したDRMで保護されたコンテンツ(Content)のような、返却が要求されないコンテンツ(Content)も含まれている。
サービス(Service)にアクセスし、ユーザー(User)のためにコンテンツ(Content)をレンダリングするハードウェアおよび/またはソフトウェアの組み合わせ。リーディングシステム(Reading System)は、1つのデバイス上で完全に実装されてもよいし(MAY)、いくつかに分割してもよい(MAY)。[WS-I Basic Profile 1.1 適合性対象]の利用者に対応する。
コンテンツアイテム(Content item)へのアクセスをやめること。リーディングシステム(Reading System)がローカルに保存されたデータを削除し、issuedのコンテンツ(Content)を、ユーザー(User)のコレクションからアクセスを無効にし、削除するため、サービス(Service)に通知するためにreturnContent
オペレーションをコールした時にコンテンツアイテム(Content item)は返却される。この用語は、借りることができるコンテンツ(Borrowable Content)のみに適用され、購入することができるコンテンツ(Purchasable Content)には適用されない。
DAISYオンライン配信プロトコルを実装するWebサービス(Service)。[WS-I Basic Profile 1.1 適合性対象]のインスタンスに対応する。
サービスプロバイダ(Service Provider)の管理下にないファイルホステイィングサーバー
サービス(Service)を所有している人(単一または複数)または組織(単一または複数)。サービスプロバイダ(Service Provider)は、そのサービス(Service)が動作しているサーバを所有する同じエンティティであってもよいし(MAY)、同じエンティティでなくてもよい。
あるリーディングシステム(Reading System)とあるサービス(Service)の間の一連のオペレーション(Operation)。サービス(Service)によって定義された一意の識別子を使用する。1つのセッションが、複数のHTTPコネクションを跨いで持続してよい(MAY)。セッション(Session)識別子は、サービス(Service)の裁量において再利用してもよい(MAY)。セッション(Session)識別子は、[HTTP Cookie]を使用して リーディングシステム(Reading System)に送信される。
サービス(Service)からリーディングシステム(Reading System)へのコンテンツ(Content)の転送。リーディングシステム(Reading System)は転送されてすぐにそのコンテンツ(Content)をレンダリングし、一時的にそのコンテンツ(Content)を保存する。
ダウンロード(Download)とストリーミング(Streaming)は、このプロトコルの一面ではなく、リーディングシステム(Reading System)の行為である。
[XML Schema 2]のデータタイプ。
リーディングシステム(Reading System)を使用してサービス(Service)とやりとりし、かつ/またはそのサービス(Service)のコンテンツ(Content)にアクセスする人。
このセクションは規範的である。
DAISYオンライン配信プロトコルは次のように[HTTP 1.1]を使用する。
サービス(Service)によって送受信される全てのSOAPメッセージのトランスポート層として
コンテンツ(Content)データの転送のために
リーディングシステム(Reading System)は [HTTP 1.1] と、[SSL 3.0]または[TLS 1.0]を介してセキュアな HTTP (HTTPS) を対応しなければならない(MUST)。
HTTPの使用は、[HTTP 1.1]と[RFC 2617] に準拠しなければならない(MUST)。
サービス(Service)とリーディングシステム(Reading System)は[RFC 2109]で規定されているHTTPセッションをサポートしなければならない(MUST)。
確立されたHTTPセッションは、それ自身によって、リーディングシステム(Reading System)がサービス(Service)にログオンに成功したことを示す有効なインジケーターではない(セクション4.2. 「ユーザー(User)認証とセッション(Session)管理」 を参照すること)。
リーディングシステム(Reading System)から送られてきた全てのHTTP及びHTTPSリクエストに対し、サービス(Service)は、HTTPレスポンスの中で適切なHTTPステータスコード( [HTTP 1.1] セクション10で規定されているように)を返さなければならない(MUST)。
DAISYオンライン配信プロトコルは、ステートフルなセッションを維持するために([WS-I Basic Profile 1.1]の中で規定されているように)[HTTP Cookies] の使用を求めている。
リーディングシステム(Reading System)は、サービス(Service)によって送信されるすべてのCookieを送受信できなければならない(MUST)。 [WS-I Basic Profile 1.1] のとおり、準拠したリーディングシステム(Reading System)は、Cookieを加工したり、操作してはいけない(MUST NOT)。
準拠したサービス(Service)は、HTTP Cookieを管理できなければならない(MUST)。
交換されるデータに秘密情報を含めてもよい(MAY)ため、サービス(Service)との全てのやり取りには、HTTPSの使用が推奨される(RECOMMENDED)。また、HTTPSは、リーディングシステム(Reading System)が証明書の使用によってサービス(Service)が本物であるかどうか確認することも認めている。
HTTPSを実装する時には、自己署名証明書を使用するのではなく、全ての証明書を認証機関(certificate authority)に登録することが推奨される(RECOMMENDED)。
HTTPSを介して提供されるリソースを識別する全てのURIには標準的なURIプレフィックスであるhttps:
を使用しなければならない(MUST)。
準拠したリーディングシステム(Reading System)は、HTTPSをサポートしなければならない(MUST)。 HTTPSへのサポートは、サービス(Service)にも推奨される(RECOMMENDED)。
[RFC 2617]で述べられているHTTP Basic認証スキームは、不正アクセスからコンテンツ(Content)を保護するために使用されてもよい(MAY)。
HTTP Basic認証を使用する時には、サービス(Service)はURIのサーバコンポーネントフィールドにあるクレデンシャルを提供しなければならない(MUST)。 userinfo
フィールドのスキームは([RFC 2396]のセクション3.2.2にあるとおり) userinfo
@host
:port
である。
クレデンシャルがパスワードを要求する場合は、userinfo
フィールドは、 userid
:password
@ host
:port
という形式でなければならない(MUST)。
パスワードが暗号化されていない状態で転送される可能性があり、全てのケースにおいて セキュリティリスクであることが知られているため、userid
:password
を使用しないことを[RFC 2396]は、推奨している。サービス(Service)は、HTTPSのようなセキュアな接続を介して、このスキームを使用するのみにするべきである(SHOULD)。そして、リーディングシステム(Reading System)は この方法について知られた突破口を回避できるよう開発されるべきである(SHOULD)。
パスワードを保存するための現在のベストプラクティスは、データベースが危険にさらされた時に備え、それぞれのパスワードの暗号化したハッシュを格納することのみである。しかし、サービス(Service)は、userinfo
フィールドで提供するために、暗号化されていない認証証明書をユーザー(User)のために取得する必要があってもよい(MAY)安全な取得方法が実装されていない限り、このスキームを使用してBasic認証を実装するサービス(Service)は、結果としてデータベースのセキュリティを損なう危険性がある。
リソースを取得する時には、リーディングシステム(Reading System)は、サービス(Service)によって返されたURIで提供されたBasic認証証明書のみを送信しなければならない(MUST)。
コンテンツ(Content)にアクセスするために求められる証明書は、logOn
オペレーションで提供される証明書と同じであることは求められない。
HTTP Basic認証の証明書は、サービス(Service)へのログオンに使用してはいけない(MUST NOT)。SOAPセッションを認証するための、セッション(Session)初期化シーケンス を参照すること。
仕様に準拠したリーディングシステム(Reading System)は、Basic認証をサポートしていなければならない(MUST)。サービス(Service)はBasic認証をサポートすることを推奨する(RECOMMENDED)。
HTTPまたはHTTPSを使用してリソースを提供する時、サービス(Service)はレンジ取得リクエストを尊重しなければならない(RFC 2616のセクション14.35で説明されているように)。
(RFC 2616のセクション14.16で説明されているように)コンテンツの一部分を提供する時、サービス(Service)は、正しいステータスコード、Content-Rangeヘッダ、Content-Lengthヘッダを使用しなければならない(MUST)。
サービスデリゲート(Service Delegate)にRangeヘッダのサポートを求めるのは可能ではないため、リーディングシステム(Reading System)は、Rangeヘッダをサポートしていないサーバを処理できなければならない(MUST)。
DAISYオンライン配信プロトコルは、 [WS-I Basic Profile 1.1] の要件に準拠している。このプロトコルの仕様に準拠した全ての実装も[WS-I Basic Profile 1.1]に準拠しなければならない(MUST)。
付録A WSDL抽象定義の抽象的なWSDLドキュメントで使用されるWSDLバインディングスタイルは、document-literalのwrapedパターンである。document-literal のwrappedスタイルはdocument-literal スタイルのサブセットであり、[WS-I Basic Profile 1.1]の規範的な要件R2712を満たすものである。
準拠したサービス(Service)は、wrapped document-literal
バインディングスタイルを使用しなければならない(MUST)。
このセクションは規範的である。
DAISYオンライン配信プロトコルは、2つの基本的なサービスモデルをサポートしている。
サービス(Service)は、借りることができるコンテンツ(Borrowable Content)か 購入することができるコンテンツ(Purchasable Content)のどちらか一方を、またはその両方を提供してよい(MAY)。
両方のサービスモデルの下で同一のコンテンツ(Content)を提供するならば、サービス(Service)は異なるコンテンツ識別子(Content Identifier)を紐付けた2つのコンテンツアイテム(Content item)を提供しなければならない(MUST)。コンテンツアイテム(Content item)は、リソースの同じセットを有してもよい(MAY)。
コンテンツアイテム(Content item)が発行されるモデルを示すために、サービス(Service)は、コンテンツアイテム(Content item)のcontentMetadata
にrequiresReturn
属性を使用しなければならない(MUST)。requiresReturn
がtrue
である場合、コンテンツアイテム(Content item)は借りることができる
。requiresReturn
がfalse
ならば 、コンテンツアイテム(Content item)は購入することができる
。
コンテンツアイテム(Content item)が一度発行されたら 、サービス(Service)はrequiresReturn
属性の値を変更してはならない(MUST NOT)。
サービス(Service)が提供する借りることができるコンテンツ(Borrowable Content)は次の条件を満たさなければならない(MUST)。
returnContent
オペレーションを実装すること
issued
のcontentListを提供すること。
借りることができるコンテンツ(Borrowable Content)のアイテムに次の条件が適用される。
コンテンツアイテム(Content item)のcontentMetadataのrequiresReturn
属性はtrue
に設定しなければならない(MUST)。
コンテンツアイテム(Content item)が発行されたら 、 返却されるまでは、ユーザー(User)のissued
のcontentListかexpired
のcontentListにコンテンツアイテム(Content item)が記載されなければならない(MUST)。
公開済みのコンテンツアイテム(Content item)を返却するため、リーディングシステム(Reading System)が任意のセッション(Session)の間の任意の時間にreturnContent
を呼び出すことをサービス(Service)は可能としなければならない(MUST)。
リーディングシステム(Reading System)は、コンテンツアイテム(Content item)のすべてのローカルのコピーが削除されない限り、そのコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)とともにreturnContent
を呼び出してはいけない(MUST NOT)。
このプロトコルは、リーディングシステム(Reading System)によるコンテンツ(Content)の自動的な返却
を支援するため、次の2つのメソッドを定義する。resourcesタイプ(Type)のreturnBy
属性と、 expired
のcontentListである。このプロトコルは、リーディングシステム(Reading System)にこれらのメソッドの強制を求めるものではない。サービスプロバイダ(Service Provider)は、(例えば、[PDTB2]
のような DRM
スキームによって )特定の時間に有効期限が満了ならなければならない(MUST)コンテンツ(Content)を保護するために他のメソッドを調査するべきである(SHOULD)。
returnBy
属性は、ユーザー(User)がコンテンツアイテム(Content item)を返却するべき(SHOULD)時間の前であることを示している。リアルタイムクロックを持っている場合は、リーディングシステム(Reading System)は、指定した時間にコンテンツアイテム(Content item)を削除するべきであり(SHOULD)、次のセッションでサービス(Service)に返却するべきである(MUST)。リーディングシステム(Reading System)は、returnBy
属性にある返却期限日をユーザー(User)に伝達するべきである(SHOULD)。
サービスプロバイダ(Service Provider)がコンテンツアイテム(Content item)の返却を望んでいることを示すため、サービス(Service)はexpired
のContentListに発行された借りることができるコンテンツアイテム(Borrowable Content item)を追加してもよい(MAY)。リーディングシステム(Reading System)が借りることができるコンテンツ(Borrowable Content)のアイテムを持っている場合、リーディングシステム(Reading System)は、各セッションで少なくとも1回このリストを取得するためexpired
のid
のパラメータを用いてgetContentList
を呼び出すべきである(SHOULD)。そして、指し示されたコンテンツアイテム(Content item)を返却するべきである(SHOULD)。expired
のContentListにあるコンテンツアイテム(Content item)はまだ公開される。
サービスプロバイダ(Service Provider)は、expired
のcontentListを例外的な場合にのみ使用すべきである(SHOULD)。ユーザー(User)は、コンテンツアイテム(Content item)の有効期限がきれたことを通知されるべきであり(SHOULD)、削除されるだろう。
購入することができるコンテンツ(Purchasable Content)のアイテムに次の条件が適用される。
コンテンツアイテム(Content item)のcontentMetadataのrequiresReturn
属性はfalse
に設定されなければならない(MUST)。
コンテンツアイテム(Content item)が発行されたら、ユーザー(User)のissued
のcontentListにコンテンツアイテム(Content item)が記載されてもよい(MAY)。しかし、expired
の contentList
に記載されてはいけない(MUST NOT)。この仕様は、issued
のcontentListにおける購入することができるコンテンツ(Purchasable Content)の入手可能性の有効期間を規定しない。
リーディングシステム(Reading System)はcontentMetadataのrequiresReturn
属性がfalse
となっているコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)とともにreturnContent
を呼び出してはいけない(MUST NOT)。
コンテンツを(Content)を取得するためにサービス(Service)とやりとりできるようにする前にリーディングシステム(Reading System)は、認証を成功させ、サービス(Service)と有効なセッション(Session)を確立しなければならない(MUST)。次項から、このプロセスの手順について概要を述べる。
リーディングシステム(Reading System)をサービス(Service)に認証させるため、セッション(Session)を開始するときは、次の手順に従わなくてはならない(MUST)。
サービスプロバイダ(Service Provider)は、リーディングシステム(Reading System)を認証するために必要なクレデンシャルを規定し、ユーザー(User)に提供する責任がある。サービス(Service)は、ユーザー(User)ごと、グループごと、ユーザー(User)のクラスごと、リーディングシステム(Reading System)ごと、もしくはその他の方法によってクレデンシャルを提供しなければならない(MUST)。
リーディングシステム(Reading System)は、logOn
オペレーションを呼び出して、サービス(Service)に対するユーザー(User)のクレデンシャルを通過しなくてはならない(MUST)。
サービス(Service)は提供されたクレデンシャルを検証しなければならない(MUST)。そして、それが有効であるならば、そのセッション(Session)のための一意の識別子をもったCookieを発行しなければならない(MUST)。logOn
オペレーションに対して成功応答を戻す場合には、サービス(Service)はCookieをリーディングシステム(Reading System)に送らなければならない(MUST)。
ログオンの成功応答を受信した後に、リーディングシステム(Reading System)は、指定された順序で次のオペレーション(Operation)を呼び出さなくてはならない(MUST)。
getServiceAttributes
。サービス(Service)に関する必要な情報を発見するために呼び出さなくてはならない(MUST)。
setReadingSystemAttributes
。リーディングシステム(Reading System)の能力に関する情報をサービス(Service)へ提供するために呼び出さなくてはならない(MUST)。この呼び出しが成功した場合、サービス(Service)は、true
([XML Schema 2])を返さなくてはならない(MUST)。
サービス(Service)が初期化の段階で障害(Fault)を返すか、求められた戻り値が提供されない場合、リーディングシステム(Reading System)はセッション(Session)を再初期化させる、またはログオンプロセスを終了させてもよい(MAY)。リーディングシステム(Reading System)は、ユーザー(User)に警告してもよいし(MAY)、自動的に再接続を試みてもよいし(MAY)、そのデバイスに特有のアクションをとってもよい(MAY)。
リーディングシステム(Reading System)がこのセクションで概説しているもの以外のオペレーション(Operation)を呼び出そうとした場合、サービス(Service)は、初期化シーケンスの全てがうまく完了する前にinvalidOperation障害(Fault)を返さなければならない(MUST)。このルールの唯一の例外は、 初期化シーケンス内であればどこでも呼び出してよい(MAY)logOff
オペレーションである。
ログオンが成功し、初期化シーケンスが完了した後、リーディングシステム(Reading System)は、この仕様で規定されたどのオペレーション(Operation)を呼び出してもよい(MAY)。しかし、もしlogOn
を呼び出す場合は、このセクションで概説した初期化シーケンスを完了しなくてはならない(MUST)。
たとえlogOn
が失敗した場合でも、サービス(Service)はCookieを発行してもよい(MAY)。
logOn
オペレーションが成功した後、セッション(Session)は開始する。リーディングシステム(Reading System)がlogOff
を呼び出すことに成功するか、サービス(Service)がセッション(Session) を終了させるまでは、セッション(Session)はアクティブなままでなければならない(MUST)。このプロトコルは、セッション(Session)の終了に関連した振る舞いを定義しない。タイムアウトインターバル、強制終了の理由、関連するアスペクトは、実装によって定義される。
セッション(Session)がアクティブである限り、サービス(Service)は複数のHTTP接続を跨いでリーディングシステム(Reading System)によるセッション(Session)を持続するべきである(SHOULD)。サービス(Service)は、同じセッションIDを持つ複数の同時接続を可能としてよい(MAY)。
DAISYオンライン配信プロトコルは、次の2つのコンテンツの選択方式をサポートしている。
サービスプロバイダ(Service Provider)は、ユーザー(User)に少なくとも1つのコンテンツ選択方式を提供しなければならない(MUST)。
リーディングシステム(Reading System)は、相互運用性の最大化のために、両方のコンテンツ選択方法をサポートするべきである(SHOULD)。しかし、この仕様に準拠するためには、1つの方式をサポートしていることのみが求められている(REQUIRED)。
Out-of-band コンテンツ(Content)選択方式を提供するサービス(Service)が次の条件に合致するならば、そのサービス(Service)は、仕様に準拠している。
サービス(Service)がコンテンツ(Content)の選択/割り当てのための1つ以上のout-of-bandメカニズムを提供している。
サービス(Service)が serviceAttributesのsupportedContentSelectionMethods 要素でのOut-of-band コンテンツ(Content)選択方式のサポートを宣言している。
サービス(Service)が選択されたコンテンツアイテム(Content item)を新しい
contentList
を通じてリーディングシステム(Reading System)に公開する。
既に公開されているコンテンツアイテム(Content item)にアクセスするために、リーディングシステム(Reading System)はもし利用可能であるならば、issued
のcontentListも利用してよい(MAY)。
out-of-band選択方式を使用して自動的にダウンロードするシナリオでは、リーディングシステム(Reading System)は、コンテンツ(Content)を取得するためにセクション4.4.「コンテンツ(Content)の発行と転送」で概説されている手順も実行しなければならない(MUST)。
次の条件に合致するならば、Browse コンテンツ(Content)選択方式を提供するサービス(Service)は、仕様に準拠している。
サービス(Service)が 動的メニュープロトコルの機能を使用し、1つ以上のbrowseメカニズムを提供している。
サービス(Service)が serviceAttributesのsupportedContentSelectionMethods要素でのBrowse コンテンツ(Content)選択方式のサポートを宣言している。
リーディングシステム(Reading System)が、サービス(Service)にコンテンツ(Content)を発行することを要求し、コンテンツ(Content)をダウンロード(Download)もしくはコンテンツ(Content)のストリーミング(Steaming)を開始する手順を、次のセクションで概説する。
サービス(Service)からコンテンツアイテム(Content item)をダウンロードするために、リーディングシステム(Reading System)は与えられた順序で次のオペレーション(Operation)を最初に呼び出さなければならない(MUST)。オペレーション(Operation)を次から次へのすぐに呼び出す必要はない(他のコンテンツアイテム(Content item)のために、他のオペレーション(Operation)を呼び出してよい(MAY))。しかし、順序は維持されなければならない(MUST)。
このセクションで識別される全てのオペレーション(Operation)はコンテンツ識別子(Content Identifier)をパラメータとする。
getContentMetadata
。コンテンツアイテム(Content item)に関する情報を取得するためにこのオペレーション(Operation)を呼び出さなければならない(MUST)。返されたメタデータには、出版情報、ファイル形式、戻りステータスとサイズが含まれている。
issueContent
。リーディングシステム(Reading System)が、コンテンツアイテム(Content item)にアクセスしようとしていることをサービス(Service)に通知するためにこのオペレーション(Operation)を呼び出さなければならない(MUST)。このオペレーションは、アクセスのための正式な要求を構成している。サービス(Service)は、次の手順に進むためにtrue
を返さなければならない(MUST)
サービス(Service)がfalse
、または障害(Fault)を返す場合は、コンテンツアイテム(Content item)は発行されてはいない。サービス(Service)がtrue
を返さない限り、リーディングシステム(Reading System)は次の手順に進んではいけない(MUST)。
getContentResources
。コンテンツアイテム(Content item)を構成する全てのリソースのURIを取得するためにこのオペレーションが呼び出されなければならない(MUST)。サービス(Service)は、それぞれの発行したコンテンツアイテム(Content item)ごとにgetContentResources
の複数の呼び出しを認めてもよい(MAY)。
リーディングシステム(Reading System)がまだ発行されていないコンテンツアイテム(Content item)のgetContentResources
を呼び出した時、サービス(Service)は、invalidParameter障害(Fault)を返さなくてはならない(MUST)。
サービス(Service)は、複数のセッション(Session)を跨ぐ同じコンテンツアイテム(Content item)に対するgetContentResources
の呼び出しを認めるべきである(SHOULD)。
リーディングシステム(Reading System)は一般的に、サービス(Service)にアイテムを発行するよう要求する前に、コンテンツ(Content)選択方式に説明されている方式の1つを使用するサービス(Service)からcontentList を取得するだろう。
issueContent
を呼び出すためのリーディングシステム(Reading System)の要件は、サービス(Service)に要求に関するいかなる情報の追跡をサービス(Service)に要求しないことである。例えば、サービスプロバイダ(Service Provider)が希望するなら、サービス(Service)はすべての要求に対してtrue
を返してもよい(MAY)。
リーディングシステム(Reading System)が、コンテンツアイテム(Content item)のリソースのリストを一度取得したら、そのリーディングシステム(Reading System)は、リソース要素で提供されるURIを使用してリソースのダウンロードやストリーミングを開始してもよい(MAY)、
リソースタイプ(Type)はuri
属性とlocalURI
属性の両方をもっている。uri
がリソースのデータの位置である一方で、 localURI
は、リーディングシステム(Reading System)がリソースを参照するために使用するローカル名である。このシステムは、リーディングシステム(Reading System)が、例えばDAISY
DTBのようなコンテンツアイテム(Content item)内の内部リンクをたどることを認めている一方で、サービス(Service)に任意のURI(例えば、スクリプトによって提供されるもの)とともにリソースを提供させるものである。localURI
パスはコンテンツアイテム(Content item)のルートパスからの相対パスである。
URI
は 、スクリプトや他のコンテンツ配信メカニズムによって解決されてもよい(MAY)ため、リーディングシステム(Reading System)はリソースをローカルで名付けるためにuri
属性を使うべきではない(SHOULD NOT)。
リーディングシステム(Reading System)は、リソースの転送を命令するためにリソースのmimeType
属性で[MIME]
タイプの情報を使用してもよい(MAY)。例えば、ストリーミングリーディングシステム(Streaming Reading System)は、音声データをダウンロードする前にユーザー(User)にすべてのナビゲーションを提供するためにDAISYデジタル録音図書の OPF、NCX、そして、SMILファイルを取得してもよい(MAY)。
サービスデリゲート(Service Delegate)に所属するサーバ上にリソースを格納してもよい(MAY)。サービス(Service)は、サービスデリゲート(Service Delegate)サーバに格納されたコンテンツにアクセスをするときに要求される任意のクレデンシャルをリーディングシステム(Reading System)に提供しなくてはならない(MUST)。Basic認証でセキュリティを確保された各リソースのURIは、そのリソースにアクセスするために要求されるクレデンシャルを含めなければならない(MUST)。セクション3.1.3「HTTPBasic認証」 を参照すること。
サービス(Service)は、リーディングシステム(Reading System)がアクティブなセッション(Session)外にあるリソースにアクセスにすることを認めるべきである(SHOULD)。
このセクションでは、サービスプロバイダ(Service Provider)が、このプロトコルを使用してコンテンツアイテム(Content item)の更新を公開する方法を説明する。
contentList内のresourcesタイプとそれぞれのcontentItem
は、コンテンツアイテム(Content item)が最後に修正された時間を指し示す任意の(OPTIONAL)lastModifiedDate
属性を持つ。リーディングシステム(Reading System)はこの情報をサービス(Service)上のコンテンツアイテム(Conten item)が最後にアクセスされてからアップデートされているかどうかを決定するために使用することができる。resourceリスト内の各resourceも任意の(OPTIONAL)lastModifiedDate
属性を持つ。リーディングシステム(Reading System)は、そのlastModifiedDate
属性をどのリソースがアップデートされたかを決定するために使用してよい(MAY)。
このセクションで詳しく述べられた機能は、コンテンツアイテム(Content item)の新しいセクションが作成されるような、同じコンテンツアイテム(Content item)を徐々にアップデートすることによる数回に分けたコンテンツ(Content)の公開に使用することができる。
このセクションは参考情報である。
Out-of-band コンテンツ(Content)選択方式では 、リーディングシステム(Reading System)はローカルで保有しているコンテンツ(Content)をサービス(Service)上でユーザー(User)が利用できるコンテンツ(Content)を自動的に同期することができる。コンテンツ(Content)を同期するために次の一連の手順を取ることができる。セッション(Session)を初期化しなければならない(MUST)が、その他のオペレーション(Operation)は同期する前に呼び出してもよい(MAY)。
リーディングシステム(Reading System)がオフラインの間にユーザー(User)がコンテンツ(Content)を返すことを選択した場合には、リーディングシステム(Reading System)は各コンテンツアイテム(Content item)ごとにreturnContent(itemid)
を呼び出す。
リーディングシステム(Reading System)は getContentList("expired", 0, -1)
を呼び出す。
リーディングシステム(Reading System)はexpired
リスト内のコンテンツアイテム(Content item)を1つ1つ返却する。
リーディングシステム(Reading System)はgetContentList("new", 0, -1)
を呼び出す。
セクション 4.4.1. 「コンテンツ(Content)取得シーケンス」で述べられているように、new
リスト内のコンテンツアイテム(Content item)ごとにリーディングシステム(Reading System)はgetContentMetadata(itemid)
を呼び出し、続いて issueContent(itemid)
、続いてgetContentResources(itemid)
を呼び出す。
リーディングシステム(Reading System)はgetContentList("issued", 0, -1)
を呼び出す。
issued
リスト内のコンテンツアイテム(Content item)ごとに、リーディングシステム(Reading System)はgetContentResources(itemid)
を呼び出す。
この時点で、リーディングシステム(Reading System)はユーザー(User)が利用可能な全てのコンテンツアイテム(Content item)のcontentMetadataとリソースを持っているだろう。リーディングシステム(Reading System)は、新規コンテンツ(Content)や更新コンテンツ(Content)のダウンロードを開始することができる。また、ユーザー(User)にそれらのタイトルのストリーミングを提供することができるほか、オペレーション(Operation)を呼び続けることもできる。
サービス(Service)はcontentListの一部を自由に返すことができるため、 完全なリストを取得するために、適切なインデックスパラメータでgetContentList
オペレーションを数回呼び出してもよい(MAY)。
障害(Fault)が、このシーケンスの中で発生してもよい(MAY)。例えば、サービス(Service)は、 new
のcontentList内のコンテンツアイテム(Content item)を多く提供してよい(MAY)が、同時に発行できるのは少しのみである。
コンテンツ(Content)を保護するために[PDTB2]フォーマットを使用してもよい(MAY)。このプロトコルでは、鍵交換メカニズムとしてgetKeyExchangeObject
オペレーションを提供する。このオペレーションで、リーディングシステム(Reading System)が、暗号化されたコンテンツ(Content)にアクセスするためにサービス(Service)からの鍵を要求することを可能にする。
リーディングシステム(Reading System)とサービス(Service)はPDTB2をサポートすることを求められてはいない。例えば、リーディングシステム(Reading System)に鍵が提供されている場合など、鍵を提供する代替手段が実装している場合、サービス(Service)は、getKeyExchangeObject
へのサポートをしないで、PDTB2で保護されたコンテンツ(Content)を提供してもよい(MAY)。
このプロトコルは、信頼メカニズムを提供しない。リーディングシステム(Reading System)がこのプロトコルを使用してサービス(Service)にその公開鍵を提供する方法はない。PDTB2をサポートしているサービス(Service)は、リーディングシステム(Reading System)制作者からの鍵を登録するために、out-of-band方式を使用しなければならない(MUST)。
このプロトコルでは、鍵の有効期限を終了するためのメカニズムはない。
リーディングシステム(Reading System)がPDTB2をサポートしている場合、リーディングシステム(Reading System)は、サービス(Service)にPDTB2
の値を持つ
supportedContentProtectionFormats要素と、キーリング内の鍵の名前をリスト化したkeyRing要素をreadingSystemAttributes
に含めて通知するべきである(SHOULD)。提供されたキーの名前は、リーディングシステム(Reading System)がサポートしている公開鍵の一部または全てである。
サービス(Service)がPDTB2鍵交換をサポートすることを示すために、サービス(Service)はPDTB2_KEY_PROVISION
という値を持つoperation要素をserviceAttributesに含めなければならない(MUST)。
PDTB2を使用してコンテンツアイテム(Content item)を保護している場合、
サービス(Service)は、2005-1
という値を持つpdtb2:specVersion
と名付けられたmeta
要素をcontentMetadataに含めなければならない(MUST)。
さらに、resourcesリスト内の保護されたリソースのmimeType
は、[PDTB2]仕様のセクション4.1.1.「パッケージファイル」で定義されているようでなければならない(MUST)。
それらのMIMEタイプapplication/x-pdtb
…. で始まる。
あらゆるリーディングシステム(Reading System)はPDTB2で保護されているとマークされたコンテンツアイテム(Content item)にアクセスしてもよい(MAY)。PDTB2をサポートしないリーディングシステム(Reading System)は、リソースの一部またはすべてをレンダリングすることができないだろう。
PDTB2で保護されたコンテンツアイテム(Content item)は、そのリソース内にAuthorization Object (AO)を持たなくてはならない(MUST)。リーディングシステム(Reading System)は、コンテンツアイテムを解読するために必要な鍵をセキュアにする鍵の名前のために、AOを検査することができる。リーディングシステム(Reading System)がAOの暗号化されたセクションにアクセスするための鍵を持っていない場合は、リーディングシステム(Reading System)は、サービス(Service)にKey Exchange Object (KXO)を要求してもよい(MAY)。
KXOを取得するには、リーディングシステム(Reading System)は要求された鍵の名称とともにgetKeyExchangeObject
オペレーションを呼び出さなくてはならない(MUST)。
サービス(Service)はKXOを暗号化するためにreadingSystemAttributes内で提供されるどの鍵を選択してもよい(MAY)。サービス(Service)が鍵を全く持っていないか、ユーザー(User)がコンテンツアイテム(Content item)へのアクセスの権限が与えられていない場合、サービス(Service)はinvalidParameter 障害(Fault)とともに返さなくてはならない(MUST)。
リーディングシステム(Reading System)がサービス(Service)から有効なKXOを受け取ったら、リーディングシステム(Reading System)は、保護されたコンテンツアイテム(Content item)の鍵をはずすための AO 内の鍵にアクセスするために、そのKXOを使用することができる。
DAISYオンライン配信プロトコルは、サービスプロバイダ(Service Provider)がサービスアナウンスメントをユーザー(User)のリーディングシステム(Reading System)に配信することを認めている。サービスアナウンスメントとは、情報を伝達するテキスト及び/または音声フォーマットによる ユーザー(User)への短いメッセージである。予期されるサービス(Service)が停止する時間に関するアラートまたはコンテンツアイテム(Cotent item)の期限超過に関する警告などが例に挙げられる。
サービス(Service)がサービスアナウンスメントに対応していることを示すために、サービス(Service)はSERVICE_ANNOUNCEMENTS
の値を持つoperation要素をserviceAttributes
に含めなくてはならない(MUST)。
サービス(Service)は、サービスアナウンスメントをサポートすることは求められてはいない。リーディングシステム(Reading System)は相互運用性を最大化するために、テキストと音声のサービスアナウンスメントを取得し、レンダリングすることができるべきである(SHOULD)。
リーディングシステム(Reading System)は、サービス(Service)と接続している間は、getServiceAnnouncements
オペレーションを呼び出すことで新しいメッセージをいつでも確認してよい(MAY)。リーディングシステム(Reading System)は、新しいセッション(Session)の初期化が完了した後すぐにアナウンスメントを確認することを推奨する(RECOMMENDED)。
サービス(Service)は、1(最も重要)から3(最も重要でない)のレベルで各アナウンスに重要度のレベルを設定し、ユーザー(User)に示すためのアナウンスを要求するリーディングシステム(Reading System)を支援するためにERROR
、 SYSTEM
、 WARNING
またはINFORMATION
のうち1つをアナウンスメントのタイプとして規定することができる。
サービス(Service)は、サービス(Service)からの未読のアナウンスをいつでも、いかなる理由によっても削除してもよい(MAY)。潜在的な取得の競合を避けるため、リーディングシステム(Reading System)はアクティブセッション(Session)の持続時間よりも短い有効期間のannouncement IDを取り扱わなくてはならない(MUST)。
サービス(Service)がサービスアナウンスメントに対応してない場合、リーディングシステム(Reading System)がgetServiceAnnouncements
を呼び出した時にはサービス(Service)はoperationNotSupported障害(Fault)を返さなくてはならない(MUST)。
リーディングシステム(Reading System)がアナウンスをユーザー(User)に提供した後、次回、ユーザー(User)がサービス(Service)と接続した時に再度同じアナウンスを送信しないよう(Service)に伝えるために、リーディングシステム(Reading System)はmarkAnnouncementsAsRead
オペレーションを呼び出してもよい(MAY)。
サービス(Service)から削除されたアナウンスメントより生じる衝突を防ぐために、リーディングシステム(Reading System)は、アクティブなセッション(Session)の間のgetServiceAnnouncements
の最後の呼び出しからmarkAnnouncementsAsRead
の呼び出しで獲得した識別値のみを通さなくてはならない(MUST)。
リーディングシステム(Reading System)がmarkAnnouncementsAsRead
を呼び出し 、サービス(Service)がfalse
を返した場合、アナウンスメントはすでに既読とマークされている。サービス(Service)がinvalidParameter障害(Fault)を返す場合、その識別子は、サービス(Service)上に存在しない。
リーディングシステム(Reading System)は、markAnnouncementsAsRead
の1つの呼び出しにおいて 1つ以上のアナウンスを既読としてマークしてもよい(MAY)。invalidParameter
障害(Fault)が返された場合、リーディングシステム(Reading System)はどの識別子が障害(Fault)の原因となったかを決定するために、順次アナウンスごとにmarkAnnouncementsAsRead
を呼び出さなくてはならない(MUST)。
DAISYオンライン配信プロトコルは、setBookmarks
オペレーションによってユーザー(User)のブックマークを記録するために [Z39-86.2005]のポータブルブックマーク(Portable Bookmark)とハイライト(Highlight)の文法を使用する。
リーディングシステム(Reading System)は、コンテンツアイテム(Content item)の最後の読み取り位置を記録するためにこのオペレーションを使用することもできる。リーディングシステム(Reading System)はgetBookmarks
オペレーションで保存されたブックマークを取得することができる。サービス(Service)は、ユーザー(User)がアクセスするためのブックマークを事前に定義することもできます。
[Z39-86.2005-BOOKMARKS]
は利用とこのタイプのセマンティクスに関して規範的な参照を構成する。しかし、このバージョンのこのプロトコルにおけるsetBookmarks
とgetBookmarks
オペレーションでは、音声による注釈はサポートされていない。
サービス(Service)がブックマークの取得をサポートしていることを示すために、サービス(Service)はserviceAttributesにGET_BOOKMARKS
の値を持つoperation要素を含めなければならない(MUST)。
サービス(Service)がブックマークの設定をサポートしていることを示すために、サービス(Service)はserviceAttributesにSET_BOOKMARKS
の値を持つ operation要素を含めなければならない(MUST)。
サービス(Service)はブックマークの設定と取得の両方をサポートしている場合は、リーディングシステム(Reading System)はユーザー(User)の最後に読み取り位置を保存するためにbookmarkSetのlastMark
要素を使用してもよい(MAY)。リーディングシステム(Reading System)は、再生を再開する前に最後の読み取り位置を確認するべきである(SHOULD)。
サービス(Service)はブックマークの取得またはブックマークの設定と取得の両方をサポートしてもよい(MAY)。リーディングシステム(Reading System)は、相互運用性の最大化ための両方のオペレーションをサポートするべきである(SHOULD)。
このセクションは参考情報です。
DAISYオンライン配信プロトコルは、仕様に準拠したリーディングシステム(Reading System)に動的なメニューをサービス(Service)が提供するための機能を提供している。ユーザー(User)は、サービス(Service)の目録をブラウジングしたり、調査に回答をしたり、オンラインストアからアイテムを購入するなどの、サービス(Service)によって提供された多種多様な行為を行うためにこれらのメニューを使用することができる。
以下のセクションでは、動的なメニューシステムの基本原理について説明する。参考となる使用例については、 [Dynamic Menus Primer] を参照すること。
このセクションは規範的である。
動的メニューをサポートするために、リーディングシステム(Reading System)またはサービス(Service)はgetQuestions
オベレーションを実装していなければならない(MUST)。
サービス(Service)が動的メニューをサポートしていることを示すために、サービス(Service)はserviceAttributesにDYNAMIC_MENUS
という値を持つoperation
要素を含めなければならない(MUST)。
動的メニューをサポートするリーディングシステム(Reading System)は、readingSystemAttributesでどの入力タイプをサポートしているかを宣言しなければならない(MUST)。サービス(Service)は、リーディングシステム(Reading System)がサポートしていないインプットタイプを要求する質問を送信するべきではない(SHOUDL NOT)。リーディングシステム(Reading System)がどのインプットタイプも宣言していない場合は、サービス(Service)は、multipleChoiceQuestionのみを送信するべきである(SHOULD)。
Browse コンテンツ(Content)選択方式をサポートするサービス(Service)は、ユーザー(User)がコンテンツ(Content)を選択することを可能にするために動的メニューもサポートしなければならない(MUST)。Out-of-band コンテンツ(Content)選択方式 のみをサポートするサービス(Service)は、他の相互作用の目的のために動的メニューをサポートしてもよい(MAY)が、サポートは求められない。
このセクションは規範的である。
すべての動的なメニューシステムは、ルート質問を持たなければならない(MUST)。ルート質問は、基本開始メニュー、またはメインメニューである。 default
のid
を持っている。
ルート質問を取得するために、1つのセッション(Session)でのgetQuestions
の最初の呼び出しはquestionID
がdefault
である単一のuserResponseとセットでなければならない(MUST)。
このセクションは規範的である。
1つの質問は、動的メニューシステムにおけるナビゲーションの基本単位であり、メニューの選択肢の各セットは概念的にユーザー(User)に対する次にとる手順についての質問として見ることができる。
getQuestions
は、userResponses
という1つのパラメータをとる。userResponsesタイプは、以前の質問(単一または複数)に対する回答か、セクション4.7.6.「予約済のID」
で定義された3つのキーワードのうちの1つがセットされた1つのquestionID
を持っている。
ユーザー(User)は、セクション4.7.5.「エンドポイント」で概説されているエンドポイントの1つに到達するまで、繰り返しgetQuestions
の呼び出しに対して返ってきた質問への回答を選択して、メニューシステムをナビゲートする。
サービス(Service)は、getQuestions
のどの呼び出し応じて1つ以上の質問を送信してもよい(MAY)。リーディングシステム(Reading System)は、再度、getQuestions
を呼び出す前にそれぞれの質問に対する回答を集めるべきであり(SHOULD)、それぞれの回答は、別々のuserResponse要素に格納されていなければならない(MUST)。
このセクションは規範的である。
DAISYオンライン配信プロトコルは、メニューシステムをナビゲートするための質問として、次の2つのタイプが定義されている。
Multiple Choice Questions(複数選択式質問)は、選択するための選択肢のセットである。Multiple Choice Questions(複数選択式問題)は、questions タイプのmultipleChoiceQuestion子要素によって表現される。
Input Questions(入力式質問)は、ユーザー(User)がテキストおよび/または音声を入力することで回答するものである。Input Questions(入力式問題)は、questionsタイプの inputQuestion子要素によって表現される。
サービス(Service)は、Input Questions(入力式質問)が数値による回答、英数字による回答、音声による回答のどれを要求しているかを、inputQuestionタイプのinputTypes子要素で規定しなければならない(MUST)。複数入力タイプは、 規定されたタイプのどれを使用してもよい(MAY)ことを意味する。
このセクションは規範的である。
getQuestions
の呼び出しを通じて受信したquestions
要素は、子として次の1つを格納する。そして、メニューシーケンスのエンドポイントを示す。
label。labelを使用して購入の確認や調査完了のお礼など、ユーザー(User)に参考情報または終了声明を提供してもよい(MAY)。
contentListRef。メニューシケンスが、ユーザー(User)がアクセスしてよいコンテンツアイテム(Content item)のリストの生成で終了する時はcontentList のIDをcontentListRefは格納する。
このセクションは規範的である。
3つの予約済みの質問識別子の値がある。
default
リーディングシステム(Reading System)が、ルートの質問を要求していることを示す。セクション4.7.2.「ルート問題」 を参照すること。
search
リーディングシステム(Reading System)が、検索メニューを要求していることを示す。
サービス(Service)は、serviceAttributesのsupportsSearch要素でこの値をサポートしているか否かを明示的にを宣言しなければならない(MUST)。
back
リーディングシステム(Reading System)は、そのシーケンスでに1つ前のメニューに戻ることを要求している子とを示す。
サービス(Service)は、serviceAttributesのsupportsServerSideBack 要素でこの値をサポートしているか否かを明示的にを宣言しなければならない(MUST)。
サービス(Service)は、リーディングシステム(Reading System)がback
という値でgetQuestions
オペレーションを呼び出し、アクティブセッションでこのオペレーションが優先呼び出しがなされなかったらinvalidParameter障害(Fault)を返さなければならない(MUST)。
動的メニューをサポートするリーディングシステム(Reading System)はdefault
の値はサポートしなければならない(MUST)。 search
とback
のサポートは任意である(OPTIONAL)。
サービス(Service)がsearch
またはback
をサポートしていない時にsearch
またはback
の値でリーディングシステム(Reading System)がgetQuestions
オペレーションを呼び出した際はinvalidParameter障害(Fault)を返さなければならない(MUST)。
このセクションは規範的である。
このセクションでは、すべてのサービス(Service)をサポートしなければならない(MUST)このプロトコルのオペレーションについて記述する。
logOn
オペレーション(Operation)サービス(Service)にリーディングシステム(Reading System)がログインする。
Type: xs:string [XML Schema 2]
サービス(Service)にアクセスするために使用されるアカウント名。
Type: xs:string [XML Schema 2]
アカウントのパスワード。
Type: xs:boolean [XML Schema 2]
ログオンが成功したかどうかを明示する。
logOff
オペレーション(Operation)リーディングシステム(Reading System)がサービス(Service)からログオフする。
false
という戻り値または障害(Fault)は両方ともオペレーションが成功しなかったことを示す。
logOff
オペレーションはパラメータを受け取らない。
Type: xs:boolean [XML Schema 2]
ログオフが成功したかどうかどうかを明示する。
setReadingSystemAttributes
オペレーション(Operation)サービス(Service)にリーディングシステム(Reading System)のプロパティを送信する。
リーディングシステム(Reading System)は、セッション初期化シーケンス の一部としてこのオペレーションを呼び出さなくてはならない(MUST)。リーディングシステム(Reading System)のプロパティに動的な変化を記録するために、セッション(Session)の間、このオペレーションを追加で呼び出してもよい(MAY)。
Type: readingSystemAttributes
リーディングシステム(Reading System)の属性を格納している。
Type: xs:boolean [XML Schema 2]
サービス(Service)が正常にReadingSystemAttributesを受け取ったかどうかを明示する。
internalServerError, invalidOperation, invalidParameter, noActiveSession
issueContent
オペレーション(Operation)指定されたコンテンツアイテムを発行するサービス(Service)を要求する。
Type: xs:string [XML Schema 2]
要求されたコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)。
Type: xs:boolean [XML Schema 2]
コンテンツアイテム(Content item)が正常に発行されたかどうかを明示する。
呼び出しがされた時にそのコンテンツアイテム(Content item)がすでに発行された場合、サービス(Service)はtrue
を返さなければならない(MUST)。
internalServerError, invalidOperation, invalidParameter, noActiveSession
getContentMetadata
オペレーション(Operation)指定されたコンテンツアイテム(Content item)のcontentMetadataを取得する。
このオペレーションは、コンテンツ(Content)取得シーケンス の一部として呼び出されなければならない(MUST)。
Type: xs:string [XML Schema 2]
メタデータが要求されているコンテンツアイテム(Content ite)コンテンツ識別子(Content Identifier )を含む
Type: contentMetadata
指定されたコンテンツアイテム(Content item)のメタデータを含む。
internalServerError、 invalidParameter、noActiveSession、 invalidOperation
getContentResources
オペレーション(Operation)指定されたコンテンツアイテム(Content item)のresourcesリストを取得する。
このオペレーションが呼び出される前にコンテンツアイテム(Content item)が発行(issued)されなければならない(MUST)。そうでない場合、サービス(Service)は invalidParameter障害(Fault)でレスポンスするべきである(SHALL)。
Type: xs:string [XML Schema 2]
resourcesリストが要求されているコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)が含まれている。
Type: resources
指定されたコンテンツアイテム(Content item)のresources リストを格納する。
internalServerError, invalidOperation, invalidParameter, noActiveSession
getServiceAttributes
オペレーション(Operation)サービス(Service)がサポートするオプションの(OPTIONAL)オペレーションに関する情報を含むサービス(Service)のプロパティを取得する
リーディングシステム(Reading System)はセッション(Session)初期化シーケンスはこのオペレーションを呼び出さなくてはならない(MUST)。そして、リーディングシステム(Reading System)は、サービス(Service)のプロパティの想定される変化に関する情報を取得するために、セッション(Session)の間に他のタイミングでもこのオペレーションを呼び出してもよい(MAY)。
getServiceAttributes
はパラメータを受け取らない。
Type: serviceAttributes
サービス(Service)の属性を格納している。
getContentList
オペレーション(Operation)コンテンツアイテム(Content item)のリストを取得する。
サービス(Service)によって返されるリストは、事前に作成しておくことができる。その場合は、そのリストは、以下のid
パラメーターで定義された3つの予約済みの値の1つを渡すことによって取得される。(これらの予約されている値が使用されるコンテキストに関する情報については、4. プロトコルの基礎を参照すること。)
リストは動的にすることもできる(例: 動的メニュー検索オペレーションシーケンスの結果)。この場合、リストを参照するために使用されるid
の値は、getQuestions
の事前の呼び出しの戻り値によって提供される(より詳細な情報については、questions
タイプ(Type)を参照すること)。
Type: xs:NMTOKEN [XML Schema 2]
取得するコンテンツリストの識別子。
次の3つの値が予約されており、以下で定義されている場合を除き、識別子として使用してはならない(MUST NOT)。
サービス(Service)が現在、ユーザー(User)に対して発行済として記録しているコンテンツアイテム(Content item)のリストを参照する(issueContent
を参照すること)。
リストにはダウンロードされたか否かに関わらず、発行された全ての借りることができるコンテンツアイテム(Borrowable Content item)が含まれていなければならない(MUST)。リストには、発行された購入することができるコンテンツアイテム(Purchasable Content item)を含めてもよい(MAY)。有効期限が期限れた コンテンツアイテム(Content item)はリストから除外する。
借りることができるコンテンツ(Borrowable Content)を提供するサービス(Service)はこの識別子を認識しなければならない(MUST)。
ユーザー(User)に発行し利用させることができるコンテンツアイテム(Content item)のリストを参照する。
すでに発行されている全てのコンテンツアイテム(Content item)がリストから除外する。
Out-of-band コンテンツ(Content)選択方法をサポートするサービス(Service)はこの識別子を認識しなければならない(MUST)。
すでにユーザー(User)に発行されているが、有効期限が切れた コンテンツアイテム(Content item)のリストを参照する。
Type: xs:int [XML Schema 2]
contentListのサブセットを取得する場合に、取得するためのサブセット内の最初のアイテムのインデックスが格納されている。リストの最初のアイテムは、インデックス0
を持つ。
Type: xs:int [XML Schema 2]
contentListのサブセットを取得する場合に、取得するためのサブセット内の最後のアイテムのインデックスが格納されている。-1
の値は、 firstItem
からリストの最後までのを全てのアイテムを取得する要求を示している。
Type: contentList
要求されたコンテンツ(Content)のリスト(または、リストのセグメント)を格納している。
返された contentListの id
属性の値は、getContentList
オペレーションに渡されたid
パラメーターの値と一致していなければならない(MUST)。
firstItem
パラメータ及び/または lastItem
パラメータの値が有効ではない場合、サービスは、全体のcontentList
のアイテムの総数を設定したtotalItems
属性の値とともに空の contentList
を返さなくてはならない(MUST)。
internalServerError, invalidOperation, invalidParameter, noActiveSession
このセクションでは、サービス(Service)がサポートしてもよい(MAY)追加のプロトコルオペレーションについて記述する。サポートが任意である(OPTIONAL)これらのオペレーションが求められる際の状況については、コンテンツ(Content)選択方式を参照すること。
getServiceAnnouncements
オペレーション(Operation)ユーザー(User)がまだ読んでいないサービス(Service)からのアナウンスを取得する。
getServiceAnnouncements
はパラメータを受け取らない。
Type: announcements
サービス(Service)からのお知らせが格納されている。
internalServerError, invalidOperation, operationNotSupported, noActiveSession
markAnnouncementsAsRead
オペレーション(Operation)指定されたアナウンス(複数可)を既読としてマークする。
このオペレーションは、前のgetServiceAnnouncements
への呼び出しが同じセッション(Session)の間になされた時のみ有効である。
Type: read
既読としてマークするためのアナウンスのIDを格納している。
Type: xs:boolean [XML Schema 2]
アナウンスが正常にサービス(Service)によって既読とマークされたかどうかを明示する。
internalServerError, invalidOperation, invalidParameter, operationNotSupported, noActiveSession
returnContent
オペレーション(Operation)指定されたコンテンツアイテム(Content item)がリーディングシステム(Reading System)から削除されていることをサービス(Service)に通知する。
このオペレーションに対する呼び出しが正常に行われた後は、指定されたコンテンツアイテム(Content item)がユーザー(User)に発行されることはない。
リーディングシステム(Reading System)は 値がfalse
であるrequiresReturn
属性を持つコンテンツアイテム(Content item)のためにこの機能を呼び出してはいけない(MUST NOT)。
リーディングシステム(Reading System)はreturnContentを呼び出す前にコンテンツアイテム(Content item)を削除しなくてはならない(MUST)。 リーディングシステム(Reading System)はそのリーディングシステム(Reading System)上でユーザー(User)に発行されていないコンテンツアイテム(Content item)のために
returnContent
を呼び出してはいけない(MUST NOT)。
returnContent
を呼び出す前にリーディングシステム(Reading System)が実際にコンテンツアイテム(Content itme)を削除したことをこのプロトコルが保証することはできない。この呼び出しを受信したサービス(Service)の存在がコンテンツアイテム(Content item)が削除されたことの証明にはならない。サービスプロバイダ(Service Provider)がコピー防止メカニズムを必要とする場合は、DRMソリューションを使用するべきである(SHOULD)。
Type: xs:string [XML Schema 2]
返されたコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)
Type: xs:boolean [XML Schema 2]
コンテンツアイテム(Content item)が正常に返されたかどうかを明示する。
returnContent
はtrue
もしくは障害(Fault)を返さなくてはならない(MUST)。false
を返してはならない(MUST NOT)。
この呼び出しの前にコンテンツアイテム(Content item)がすでに戻された場合、サービス(Service)はtrue
を返さなければならない(MUST)。
internalServerError, invalidOperation, invalidParameter, operationNotSupported, noActiveSession
setBookmarks
オペレーション(Operation)サービス(Service)がコンテンツアイテムに対して提供されたブックマークを保存するように要求する。
このオペレーションは、一度に1つのコンテンツアイテム(Content item)に対するブックマークの保存のみをサポートしている。
Type: xs:string [XML Schema 2]
ブックマークが関連付けられているコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)。
Type: bookmarkSet
保存するためのブックマークが格納されている。
Type: xs:boolean [XML Schema 2]
サービス(Service)が正常にブックマークを保存したかどうかを明示する。
internalServerError, invalidOperation, invalidParameter, operationNotSupported, noActiveSession
getBookmarks
オペレーション(Operation)サービス(Service)からのコンテンツアイテム(Content item)のブックマークを取得する。
Type: xs:string [XML Schema 2]
ブックマークが取得されようとしているコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)。
Type: bookmarkSet
コンテンツアイテム(Content item)のブックマークが格納されている。
internalServerError, invalidOperation, invalidParameter, operationNotSupported, noActiveSession
getQuestions
オペレーション(Operation)動的なメニューシステムを構成する一連の質問からの質問を取得する。
Type: userResponses
質問への回答を格納する。もしくはuserResponse
で定義されている3つの予約済みIDのdefault
、search
、 back
のいずれか1つを格納する。
Type: questions
1つもしくは複数の複数選択式質問や入力式質問が格納されている。1つのlabel子要素もしくはcontentListRef子要素も格納してもよい(MAY)。
internalServerError, invalidOperation, invalidParameter, operationNotSupported, noActiveSession
getKeyExchangeObject
オペレーション(Operation)サービス(Service)から[PDTB2]Key Exchange Objectを要求する。
Type: xs:string [XML Schema 2]
要求された鍵の識別子 .
Type: KeyExchange
[PDTB2] Key Exchange Object。これはリーディングシステム(Reading System)のキーリングで識別された鍵のいずれかを使用して暗号化され、要求された鍵を格納する。
internalServerError, invalidOperation, invalidParameter, operationNotSupported, noActiveSession
サービス(Service)がSOAP障害(Fault)を使用してオペレーションにレスポンスすると、次のいずれかのタイプのインスタンスはdetail要素の子でなければならない(MUST)。
これらの障害(Fault)タイプのそれぞれは、 reason子要素、リーディングシステム(Reading System)に、デバッグ情報を送信するために使用することができる文字列を持っている。この情報は、ほとんどの状況でユーザー(User)にレンダリングされるべきではない(SHOULD NOT)。
1つのオペレーションが呼び出されたときに1つ以上の障害(Fault)状態が引き起こされてもよい(MAY)。例えば、サポートされていないオペレーションは、アクティブなセッション(Session)の外で呼び出してもよい(MAY)。2つ以上の障害(Fault)状態が適用された場合、以下で一覧されている障害の優先順位の最初に現れる障害(Fault)が発行されなければならない(MUST)。障害の優先順位は、次のとおりである。
internalServerError
noActiveSession
operationNotSupported
invalidOperation
invalidParameter
状態: サービス(Service)で内部サーバーエラーが発生し、オペレーションの実行が停止された。
invalidOperation、 invalidParameter、operationNotSupportedとnoActiveSession 障害(Fault)によって記述されなかったエラーが生じた時にこの障害(Fault)を発する。この障害(Fault)が発せれた場合、リーディングシステム(Reading System)は失敗したオペレーションを再度呼び出すことを試みてもよい(MAY)。
状態: アクティブなセッションが存在しない時にそのオペレーションは許可されていない。
セッション(Session)が有効期限が切れたか正常に初期化しなかった時に行われるセッションの初期化シーケンスで定義されるオペレーションシーケンスの中のオペレーションを除き、全てのオペレーションの呼び出しでこの障害(Fault)は発せられる。
状態: サービス(Service)はこのオペレーションをサポートしていない。
サービス(Service)がサポートしていないオプションの(OPTIONAL)オペレーションをリーディングシステム(Reading System)が呼び出した時にこの障害(Fault)が発せられる。
このセクションは規範的である。
次のセクションでは、 [XML Schema 1] スキーマdo-types-10.xsdで定義されている要素について説明する。このスキーマは、抽象WSDLドキュメントの規範的な部分である(付録 A, WSDL 抽象定義を参照すること)。
SGMLの構文規則の次の単純化された次のセットは、コンテンツモデルを定義するためにこのセクションを通して使用されている。
丸括弧は、要素のセット 及び/または その他のグループをグループ化するために使用される。
グループ内のカンマ' ,' 要求されるシーケンスは示す。パイプ '|' はオプション(OPTIONAL)のシーケンスを示す。
グループや要素の後の疑問符 '?' は、そのアイテムが0回もしくは1回発生されなければならない(MUST)ことを示す。プラス記号 '+'は1つまたはそれ以上を示す。アスタリスク '*' は、0かそれ以上を示す。修飾子がない場合は、その要素またはグループが1回だけ発生しなければならない(MUST)ことを意味する。
この仕様における記述と、 do-types-10.xsdにおける定義の間で不一致が生じた場合は、後者を権威があるものとしてみなすことになる(SHALL)。
サービス(Service)のアナウンスのリスト。
getServiceAnnouncements
(response)
( announcement* )
例6.1. アナウンス
<announcements xmlns="http://www.daisy.org/ns/daisy-online/"> <announcement id="downtime" priority="1" type="WARNING"> <label xml:lang="en"> <text>The Service will not be available on Friday the 10th of September due to maintenance.</text> <audio uri="http://example.com/content/messages/current.mp3" rangeBegin="0" rangeEnd="65856" size="65856"/> </label> </announcement> <announcement id="survey" priority="2" type="INFORMATION"> <label xml:lang="en"> <text>A new survey is available, fill it in online at our home page, or use your Daisy Online Reading System if it has the required capabilities. Chance to win a Phantom Pocket Reader!</text> <audio uri="http://example.com/content/messages/current.mp3" rangeBegin="65857" size="92112"/> </label> </announcement> </announcements>
コンテンツアイテム(Content item)の完全または部分的なリスト。
getContentList
(response)
( label?, contentItem* )
totalItems
リスト全体におけるcontentItem
の合計数。これがリストのほんの一部である場合、 totalItems
は返されるcontentItem
の数よりも大きくなる。そうでなければ、彼らは等しくなる。
使用: 必須(REQUIRED)
データタイプ: xs:int
firstItem
リスト全体の中のこのcontentListにおける最初のcontentItemのゼロベースのインデックス。これが部分的なリストである場合、この属性が提供されなければならない(MUST)。この属性が存在する場合、 lastItem
属性も存在しなければならない(MUST)。
使用: 任意(OPTIONAL)
データタイプ: xs:int
lastItem
リスト全体の中のこのcontentListにおける最後のcontentItemのゼロベースのインデックス。これが部分的なリストである場合、この属性が提供されなければならない(MUST)。この属性が存在する場合、 firstItem
属性も存在しなければならない(MUST)。
使用: 任意(OPTIONAL)
データタイプ: xs:int
id
contentListの識別子。
識別子は、予約済みの3つの値、new
、issued
、expired
のいずれかでもよい(MAY)。または、典型的には、動的メニューオペレーションシーケンスにおけるエンドポイントのcontentListRef
で公開されるような、任意の値でもよい(MAY)。
サービス(Service)は、セッションの間、contentListの識別子を維持するべきである(SHOULD)。サービス(Service)は、同じセッション中に同じ任意の識別子を使用した複数のcontentList を公開してはならない(MUST NOT)。
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
例 6.2. audio labelがついた1つの完全なcontentList
この例では、1つの完全なcontentListを示している (firstItem
とlastItem
属性は、ルート要素には存在しない)。
<contentList xmlns="http://www.daisy.org/ns/daisy-online/" id="cl123" totalItems="2"> <label xml:lang="en"> <text>Please select from these publications.</text> <audio uri="http://example.com/static/PleaseChooseFrom.mp3" size="12342"/> </label> <contentItem id="com-example-001"> <label xml:lang="en"> <text>Harry Potter and the Chamber of Secrets</text> <audio uri="http://example.com/content/titles/hp_cs.mp3" size="130821"/> </label> </contentItem> <contentItem id="com-example-002"> <label xml:lang="en"> <text>Harry Potter and the Goblet of Fire</text> <audio uri="http://example.com/content/titles/hp_gf.mp3" size="130821"/> </label> </contentItem> </contentList>
例 6.3. 1つの部分的なcontentList
この例では、1つの部分的なcontentListを示している(firstItem
とlastItem
属性は、このセグメントでどのアイテムに含まれているのかを指定している)。
<contentList xmlns="http://www.daisy.org/ns/daisy-online/" id="cl125" firstItem="0" lastItem="1" totalItems="25"> <label xml:lang="en"> <text>Please select from these publications.</text> </label> <contentItem id="com-example-001"> <label xml:lang="en"> <text>Harry Potter and the Chamber of Secrets</text> </label> </contentItem> <contentItem id="com-example-002"> <label xml:lang="en"> <text>Harry Potter and the Goblet of Fire</text> </label> </contentItem> </contentList>
コンテンツアイテム(Content item)のメタデータ。
getContentMetadata
(response)
category
コンテンツアイテム(Content item)の出版物のカテゴリ。
リーディングシステム(Reading System)は、コンテンツアイテム(Content item)を分類またはソートするためにここで提供された値を使用してもよい(MAY)。
任意の値が認められる。BOOK
、MAGAZINE
、NEWSPAPER
そしてOTHER
の値は、これらの値の1つに一致するコンテンツアイテム(Content item)がある場合は、その使用が推奨される。
使用: 任意(OPTIONAL)
データタイプ: xs:string
requiresReturn
サービス(Service)が返されるべきコンテンツアイテム(Content item)を要求するかどうかを指定する。
この属性がはtrue
である場合、コンテンツアイテム(Content item)が発行されるなら、リーディングシステム(Reading System)がそのコンテンツアイテム(Content item)をある時点で返すというサービス(Service)からリーディングシステム(Reading System)への契約である。
ユーザー(User)が購入することができるコンテンツ(Purchasable Content item)を返そうとした場合、リーディングシステム(Reading System)は、適切なプロンプトでユーザー(User)に提示するべきである(SHOULD)。
使用: 必須(REQUIRED)
データタイプ: xs:boolean
例 6.4. contentMetadataの例
この例では、[PDTB2]で保護された、借りられた書籍のcontentMetadataを示している(セクション4.4.5 著作権管理を参照すること)。
<contentMetadata xmlns="http://www.daisy.org/ns/daisy-online/" requiresReturn="true" category="BOOK"> <sample id="hp_cos-sample"/> <metadata xmlns:dc="http://purl.org/dc/elements/1.1/"> <dc:title>Harry Potter and the Chamber of Secrets</dc:title> <dc:identifier>com-example-hp_cos</dc:identifier> <dc:format>Daisy 2.02</dc:format> <dc:language>en-GB</dc:language> <narrator>Mary Svensson</narrator> <size>8119213</size> <meta name="pdtb2:specVersion" content="2005-1" /> </metadata> </contentMetadata>
getKeyExchangeObject
(response)
( Issuer, ( ds:KeyInfo | Keys )+ )
質問の順序。
questions要素には以下のいずれかが含まれていなければならない(MUST)。
ちょうど1つの contentListRef
ちょうど1つの label
任意の順序で1つ以上のmultipleChoiceQuestions 及び/ または inputQuestions
questions要素がcontentListRefまたはlabel子要素を格納している場合は、それは動的メニューを構成する一連の質問のエンドポイントである。
questionsタイプの使用に関する参考情報については、[Dynamic Menus Prime]を参照すること 。
getQuestions
(response)
( ( multipleChoiceQuestion | inputQuestion )+ | contentListRef | label )
announcement 識別子のリスト。
markAnnouncementsAsRead
(parameter)
( item* )
リーディングシステム(Reading System)のプロパティを指定する。
指定されたプロパティは、セッション(Session)が終了するまで有効である。
setReadingSystemAttributes
(parameter)
( manufacturer, model, serialNumber?, version, config )
この要素は、拡張可能である。
例6.5. ポータブルのオーディオ中心のリーディングシステム(Reading System)のためのreadingSystemAttributes
この例では、小型のポータブルのオーディオを中心としたリーディングシステム(Reading System)(単一のフォーマットのサポート、数値入力、text-to-speech機能なし、PDTB2対応 )のためのreadingSystemAttributesを示している。
<readingSystemAttributes xmlns="http://www.daisy.org/ns/daisy-online/"> <manufacturer>ACME Corporation</manufacturer> <model>Pocket Phantom</model> <serialNumber>123456</serialNumber> <version>1.23</version> <config> <supportsMultipleSelections>false</supportsMultipleSelections> <preferredUILanguage>en</preferredUILanguage> <bandwidth>8000000</bandwidth> <supportedContentFormats> <contentFormat>ANSI/NISO Z39.86-2005</contentFormat> </supportedContentFormats> <supportedContentProtectionFormats> <protectionFormat>PDTB2</protectionFormat> </supportedContentProtectionFormats> <keyRing> <item>DAISY.lv-acme.ACME</item> <item>DAISY.lv-acme.Phantom-1</item> <item>DAISY.lv-acme.SN123456</item> <item>DAISY.ca-qqhb.006442</item> <item>DAISY.au-atbi.userKey-4C452DB4</item> </keyRing> <supportedMimeTypes> <mimeType type="audio/mpeg"/> </supportedMimeTypes> <supportedInputTypes> <input type="TEXT_NUMERIC" /> </supportedInputTypes> <requiresAudioLabels>true</requiresAudioLabels> </config> </readingSystemAttributes>
例6.6. より機能的なリーディングシステム(Reading System)のためのreadingSystemAttributes
この例は、ソフトゥエアのリーディングシステム(Reading System)のような、より機能的なリーディングシステム(Reading System)(マルチフォーマットサポート、フルキーボード入力、ビルトインtext-to-speech機能、しかし、このケースではPDTB2 サポートはない)のためのreadingSystemAttributesを示している。
<readingSystemAttributes xmlns="http://www.daisy.org/ns/daisy-online/"> <manufacturer>ACME Corporation</manufacturer> <model>Pro Phantom III</model> <serialNumber>64321</serialNumber> <version>1.23</version> <config> <supportsMultipleSelections>true</supportsMultipleSelections> <preferredUILanguage>en</preferredUILanguage> <supportedContentFormats> <contentFormat>ANSI/NISO Z39.86-2005</contentFormat> <contentFormat>Daisy 2.02</contentFormat> </supportedContentFormats> <supportedContentProtectionFormats /> <supportedMimeTypes> <mimeType type="text/plain" xml:lang="en"/> <mimeType type="audio/mpeg"/> </supportedMimeTypes> <supportedInputTypes> <input type="TEXT_ALPHANUMERIC"/> <input type="AUDIO"/> </supportedInputTypes> </config> <requiresAudioLabels>false</requiresAudioLabels> </readingSystemAttributes>
コンテンツアイテム(Content item)を構成するすべてのリソースのリスト。
getContentResources
(response)
( resource+ )
returnBy
サービスプロバイダ(Service Provider)がこのコンテンツアイテム(Content item)を返すよう要求する時間を指定する。
コンテンツアイテム(Content item)の contentMetadataのrequiresReturn
属性がtrue
である時にこの属性は存在してもよい(MAY)。requiresReturn
属性がfalse
である時はこの属性は存在してはならない(MUST NOT)。
コンテンツアイテム(Content item)が発行されている間、この属性は値を変更しなくてもよい。
contentMetadataのrequiresReturn
属性と異なり、この属性は契約を構成しない。
使用: 任意(OPTIONAL)
データタイプ: xs:dateTime
lastModifiedDate
コンテンツアイテム(Content item)の最終更新時間。
使用: 任意(OPTIONAL)
データタイプ: xs:dateTime
例6.7.スクリプトのURIを使用してリソースインスタンス
この例は、 uri
属性がリソースの名前を公開しないスクリプトを参照するリソースのインスタンスを示している。
<resources xmlns="http://www.daisy.org/ns/daisy-online/"> <resource mimeType="text/xml" size="123456" uri="https://example.com/content/get.php?a123891" localURI="package.opf"/> <resource mimeType="application/x-dtbncx+xml" size="123456" uri="https://example.com/content/get.php?a123892" localURI="nav.ncx"/> <resource mimeType="application/smil" size="567890" uri="https://example.com/content/get.php?a123893" localURI="chapter_1.smil"/> <resource mimeType="audio/mpeg" size="123456789" uri="https://example.com/content/get.php?a123894" localURI="chapter_1.mp3"/> <resource mimeType="image/jpeg" size="23456" uri="https://example.com/content/get.php?a123895" localURI="./images/sun001.jpg"/> </resources>
サービス(Service)のプロパティ。
指定されたプロパティは、セッション(Session)の間は不変でなければならない(MUST)。
getServiceAttributes
(response)
( serviceProvider?, service?, supportedContentSelectionMethods, supportsServerSideBack, supportsSearch, supportedUplinkAudioCodecs, supportsAudioLabels, supportedOptionalOperations )
例6.8. 最小限の図書館サービス(Service)のためのserviceAttributes
この例は、out-of-bandコンテンツ(Content)選択方式のみをサポートするサービス(Service)のためのserviceAttributesを示している。
<serviceAttributes xmlns="http://www.daisy.org/ns/daisy-online/"> <serviceProvider id="uk.com.example" /> <service id="uk.com.example.libraryServiceBasic" /> <supportedContentSelectionMethods> <method>OUT_OF_BAND</method> </supportedContentSelectionMethods> <supportsServerSideBack>false</supportsServerSideBack> <supportsSearch>false</supportsSearch> <supportedUplinkAudioCodecs> <codec>audio/mpeg</codec> </supportedUplinkAudioCodecs> <supportsAudioLabels>true</supportsAudioLabels> <supportedOptionalOperations> <operation>SET_BOOKMARKS</operation> <operation>GET_BOOKMARKS</operation> <operation>SERVICE_ANNOUNCEMENTS</operation> </supportedOptionalOperations> </serviceAttributes>
例6.9. より充実したサービス(Service)のためのserviceAttributes
この例では、コンテンツ(Content)選択方式両方をサポートし、[PDTB2] を使用して保護されたコンテンツ(Content)の一部または全てを提供するサービス(Service)のためのserviceAttributesを示している。
<serviceAttributes xmlns="http://www.daisy.org/ns/daisy-online/"> <serviceProvider id="gy-zenith" /> <service id="gy-zenith-libraryServiceDeluxe" /> <supportedContentSelectionMethods> <method>BROWSE</method> <method>OUT_OF_BAND</method> </supportedContentSelectionMethods> <supportsServerSideBack>true</supportsServerSideBack> <supportsSearch>true</supportsSearch> <supportedUplinkAudioCodecs> <codec>audio/mpeg</codec> </supportedUplinkAudioCodecs> <supportsAudioLabels>true</supportsAudioLabels> <supportedOptionalOperations> <operation>DYNAMIC_MENUS</operation> <operation>SET_BOOKMARKS</operation> <operation>GET_BOOKMARKS</operation> <operation>SERVICE_ANNOUNCEMENTS</operation> <operation>PDTB2_KEY_PROVISION</operation> </supportedOptionalOperations> </serviceAttributes>
サービス(Service)が提供される質問に対するユーザー(User)の回答のセット。
userResponsesタイプの参考となる例については、[Dynamic Menus Primer]を参照すること。
getQuestions
(parameter)
( userResponse+ )
HTTPとHTTPSを越えて、リーディングシステム(Reading System)によってサポートされている追加の転送プロトコルを指定する。
コンテンツモデル: ( protocol+ )
親要素: config
サービス(Service)アナウンス。
コンテンツモデル: ( label )
親要素: announcements
id
このアナウンスメントの識別子。この識別子は、セッション(Session)の間のみ有効である。
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
type
このアナウンスメントの性質を示す値。
使用: 任意(OPTIONAL)
一覧:
WARNING
ERROR
INFORMATION
SYSTEM
初期値: INFORMATION
priority
このアナウンスメントの優先順位。 1
が優先順位が最も高く、 3
が優先順位が最も低い。
使用: 任意(OPTIONAL)
整数設定:
最小値: 1
最大値: 3
初期値: 3
コンテンツモデル: 空の要素
親要素: label
uri
labelのaudioコンポーネントのURI。
使用: 必須(REQUIRED)
データタイプ: xs:anyURI
rangeBegin
uri
属性で名付けられるリソースにおけるaudio labelの開始点のバイトオフセット。rangeBegin
属性が存在しない場合、開始点のオフセットは0
である 。
使用: 任意(OPTIONAL)
データタイプ: xs:long
rangeEnd
uri
属性で名付けられるリソースにおけるaudio labelの終了点のバイトオフセット。rangeBegin
属性が存在しない場合、終了点はリソースの最後のバイトである 。
使用: 任意(OPTIONAL)
データタイプ: xs:long
size
labelの音声データのサイズ(バイト数)。
使用: 任意(OPTIONAL)
データタイプ: xs:long
そのセッション(Session) にリーディングシステム(Reading System)が割り当てる帯域幅の毎秒キロビットでの推定値。
データタイプ: pe: xs:int
親要素: config
コンテンツモデル: ( label )
親要素: choices
id
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
コンテンツモデル: ( supportsMultipleSelections, preferredUILanguage, bandwidth?, supportedContentFormats, supportedContentProtectionFormats, keyRing?, supportedMimeTypes, supportedInputTypes, requiresAudioLabels, additionalTransferProtocols? )
単一のコンテンツアイテム(Content item)。
コンテンツモデル: ( label )
親要素: contentList
id
このコンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)。
使用: 必須(REQUIRED)
データタイプ: xs:string
lastModifiedDate
コンテンツアイテム(Content item)の最終更新時刻。
使用: 任意(OPTIONAL)
データタイプ: xs:dateTime
contentListの識別子。
questions要素の子要素としてcontentListRefは、動的メニューを構成する一連の質問のエンドポイントを示している。
データタイプ: xs:NMTOKEN
親要素: questions
オーディオユーザー(User)レスポンスのbase64でエンコードされたデータ。
サービス(Service)は[RIFF WAVE]フォーマットの音声を受け入れなければならない(MUST)。サービス(Service) は追加の音声フォーマットをサポートしてもよい(MAY)。その場合、サービス(Service) はserviceAttributesにそれらのフォーマットを明示しなければならない(MUST)。
認められた値: xs:base64Binary
親要素: userResponse
コンテンツモデル: 空要素
親要素: inputTypes, supportedInputTypes
type
使用: 必須(REQUIRED)
一覧:
TEXT_NUMERIC
リーディングシステム(Reading System)は、数値の入力をサポートしている。
サービス(Service)は、質問に数値のみによる応答を認める。
TEXT_ALPHANUMERIC
リーディングシステム(Reading System)は、テキストと数値の入力をサポートしている。
サービス(Service)は、質問にテキストと数値による応答を認める。
AUDIO
リーディングシステム(Reading System)は、音声入力をサポートしている。
サービス(Service)は、質問に音声による応答を認める。
テキストまたは音声による応答を受け付ける入力フィールド。
コンテンツモデル: ( inputTypes, label )
親要素: questions
id
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
テキストと任意で音声を含む多目的ラベル。
相互運用性を最大限確保するために、リーディングシステム(Reading System)は、ユーザーへのサービス(Service)からメッセージを処理するためにaudio labelを要求してもよい(MAY)ため、サービス(Service)はaudio labelの提供をサポートするべきである(SHOULD)。
親要素: announcement, choice, contentItem, contentList, inputQuestion, multipleChoiceQuestion, questions, service, serviceProvider
xml:lang
labelの言語。
使用: 必須(REQUIRED)
dir
テキストの方向。
使用: 任意(OPTIONAL)
一覧:
ltr
左から右。
rtl
右から左。
任意のメタデータ要素。Dublin Core以外のスキームからの独自のメタデータフィールドを可能にする。
コンテンツモデル: 空要素
親要素: metadata
name
使用: 必須(REQUIRED)
データタイプ: xs:string
content
使用: 必須(REQUIRED)
データタイプ: xs:string
コンテンツアイテム(Content item)の書誌情報およびその他のメタデータ。
Dublin Core名前空間内の要素は、[Dublin Core]によって規範的に定義されている。Dublin Coreのidentifier
要素の値は、コンテンツアイテム(Content item)のコンテンツ識別子(Content Identifier)と一致しなければならない(MUST)。
追加の非Dublin Coreメタデータを一般的なmeta要素を使用して提供してもよい(MAY)。
meta要素のname
属性にあるプレフィックス pdtb2:
は[PDTB2]のプロパティを参照するために予約されている。
meta要素のname
属性にあるpdtb2:specVersion
という値はコンテンツアイテム(Content item)が[PDTB2]を使用して保護されていることを意味している。
コンテンツモデル: ( dc:title, dc:identifier, dc:publisher?, dc:format, dc:date?, dc:source?, dc:type*, dc:subject*, dc:rights*, dc:relation*, dc:language*, dc:description*, dc:creator*, dc:coverage*, dc:contributor*, narrator*, size, meta* )
この要素は、拡張可能である。
親要素: contentMetadata
認められた値:
OUT_OF_BAND
このサービス(Service)がOut-of-band コンテンツ(Content)選択方式をサポートしている。
BROWSE
このサービス(Service)がBrowse コンテンツ(Content)選択方式をサポートしている。
コンテンツモデル: 空要素
親要素: supportedMimeTypes
type
[MIME]タイプ。
使用: 必須(REQUIRED)
データタイプ: xs:string
xml:lang
使用: 任意(OPTIONAL)
親要素: questions
id
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
allowMultipleSelections
この質問に対するユーザー(User)の応答に複数の選択肢が許可されるかどうかを指定する。
使用: 任意(OPTIONAL)
データタイプ: xs:boolean
初期値: false
以下で定義されるサポートが任意である(OPTIONAL)オペレーションの1つまたはグループ。
認められた値:
SET_BOOKMARKS
このサービス(Service)はsetBookmarks
オペレーションをサポートする。
GET_BOOKMARKS
このサービス(Service)はgetBookmarks
オペレーションをサポートする。
DYNAMIC_MENUS
このサービス(Service)はgetQuestions
オペレーションをサポートする。
SERVICE_ANNOUNCEMENTS
このサービス(Service)はgetServiceAnnouncements
オペレーションとmarkAnnouncementsAsRead
オペレーションをサポートする。
PDTB2_KEY_PROVISION
このサービス(Service)はgetKeyExchangeObject
オペレーションをサポートする。
認められた値:
PDTB2
このリーディングシステム(Reading System)は DAISY Protected Digital Talking Book 2をサポートする。
リーディングシステム(Reading System)がサービス(Service)から提供されるメッセージのためにaudio labelを要求するかどうか(すなわち、label の子要素であるaudio要素が要求されるかどうか)を指定する。
サービス(Service)のlabelでのaudioのサポートの宣言については、serviceAttributesにあるsupportsAudioLabels要素を参照すること。
リーディングシステム(Reading System)がaudio labelが要求し、サービス(Service)がaudio labelをサポートしていない場合は、リーディングシステム(Reading System)はこのセッションの初期化を継続するかどうかを決定しなくてはならない(MUST)。セッションがこのシナリオで確立されている場合、サービス(Service)は、そのサービス(Service)が提供する各labelでaudio要素を含むことが要求されない。
データタイプ: xs:boolean
親要素: config
コンテンツモデル: 空要素
親要素: resources
uri
リソースのURI。
使用: 必須(REQUIRED)
データタイプ: xs:anyURI
mimeType
リソースの[MIME]タイプ。
使用: 必須(REQUIRED)
データタイプ: xs:string
size
バイト単位でのリソースのサイズ。
使用: 必須(REQUIRED)
データタイプ: xs:long
localURI
リソースのローカル相対パス。
この属性の値は、コンテンツアイテム(Content item)のルートディレクトリからの相対URIである。
使用: 必須(REQUIRED)
データタイプ: xs:anyURI
lastModifiedDate
リソースの最終更新日時。
使用: 任意(OPTIONAL)
データタイプ: xs:dateTime
ユーザー(User)がコンテンツアイテム(Content item)の発行なしに取得してもよい(MAY)コンテンツアイテム(Content item)のサンプル。
コンテンツモデル: 空要素
親要素: contentMetadata
id
サンプルのコンテンツ識別子(Content Identifier)。
リーディングシステム(Reading System)は、パラメータとしてこの識別子でgetContentResources
を呼び出すことでサンプルのリソースリストを取得してもよい(MAY)。リーディングシステム(Reading System)はサンプルの識別子を使用して、issueContent
を呼び出してはいけない(MUST NOT)。
使用: 必須(REQUIRED)
データタイプ: xs:string
サービス(Service)のID。
コンテンツモデル: ( label? )
親要素: serviceAttributes
id
サービス(Service)の識別子。
この仕様は、この識別子で使用される特定のスキームを要求しない。サービス(Service)はアクティブである間は、この識別子は変更されるべきではない(SHOULD NOT)。そして、その識別子は普遍的にユニークであるべきである(SHOULD)。
推奨される(RECOMMENDED)表現形式は、[ISO 3166]による国コード、続いてその国の中でユニークなエージェンシーコード、続いてプロバイダによって提供されるサービス(Service)の中でユニークなサービス(Service)コードで構成されるハイフンで区切られた文字列である。例えば、us-afb-onlineLibrary
である。
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
サービス(Service)プロバイダのID。
コンテンツモデル: ( label? )
親要素: serviceAttributes
id
サービス(Service)プロバイダの識別子。
この仕様は、この識別子に使用する特定のスキームを要求しない。サービスプロバイダ(Service Provider)がアクティブである間は、識別子は変更されるべきではない(SHOULD NOT)。そして、識別子は普遍的にユニークであるべきである(SHOULD)。
推奨される(RECOMMENDED)表現形式は、[ISO 3166]による国コード、続いてその国の中でユニークなエージェンシーコードで構成されるハイフンで区切られた文字列である。例えば、 us-afb
である。
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
リーディングシステム(Reading System)がサポートするコンテンツ(Content)のフォーマットを指定する。サービス(Service)は、リーディングシステム(Reading System)に提供するフォーマットの選択にこの情報を使用してもよい(MAY)。このドキュメントでは、このリストが空の場合のサービス(Service)の挙動を指定しない。
コンテンツモデル: ( contentFormat* )
親要素: config
もしあれば、リーディングシステム(Reading System)がサポートするコンテンツ(Content)保護(デジタル著作権管理 : Digital Rights Management) 規格を指定する。
コンテンツモデル: ( protectionFormat* )
親要素: config
このサービス(Service)でサポートされているコンテンツ(Content)選択方式 のリスト。サービス(Service)は2つの方式のうち少なくとも1つの方式はサポートしなければならない(MUST)。
コンテンツモデル: ( method{1, 2} )
親要素: serviceAttributes
リーディングシステム(Reading System)がサポートしているユーザ(User)のサービス(Service)への入力の方法。
リーディングシステム(Reading System)がどの方法の入力方法もサポートしていない場合は、nputTypes要素が空でなければならない(MUST)。
コンテンツモデル: ( input* )
親要素: config
リーディングシステム(Reading System)がサポートする[MIME]タイプを指定する。
これは、コンテンツ(Content)とサービス(Service)のメッセージ(label)両方に適用される。
サービス(Service)は、labelとコンテンツ(Content)としてリーディングシステム(Reading System)に提供するリソースタイプを選択するためにこの情報を使用してもよい(MAY)。supportedContentFormatsでのコンテンツ(Content)フォーマットによってサポートが暗示されているコンテンツ(Content)タイプはここに含める必要はない。この仕様では、このsupportedMimeTypesとsupportedContentFormatsのリストの両方が空の場合のサービス(Service)の挙動を指定しない。
コンテンツモデル: ( mimeType* )
親要素: config
(もしあれば)サービス(Service)によってサポートされているオプションの(OPTIONAL)オペレーションを指定する。
コンテンツモデル: ( operation* )
親要素: serviceAttributes
[RIFF WAVE] に加えて(もしあれば)userResponsesでサポートされているオーディオコーデックのリスト。
コンテンツモデル: ( codec* )
親要素: serviceAttributes
このサービス(Service)がlabelでのaudioの包含をサポートするかどうかを指定する。
この要素の値がtrue
であり、リーディングシステム(Reading System)の最も最近のsetReadingSystemAttributes
に対する呼び出しでreadingSystemAttributesのrequiresAudioLabels要素がtrue
である場合は、サービス(Service)は自身が提供する各labelにaudio要素を含まなければならない(MUST)。
データタイプ: xs:boolean
親要素: serviceAttributes
リーディングシステム(Reading System)がmultipleChoiceQuestionのための複数選択式をサポートしているかどうかを指定する 。
この要素をfalseに設定するならば、サービス(Service)はtrue
とセットしたallowMultipleSelections
属性といっしょにmultipleChoiceQuestionをリーディングシステム(Reading System)に出してはならない(MUST NOT)。
データタイプ: xs:boolean
親要素: config
予約されたパラメータsearch
を持つgetQuestions
がサービス(Service)によってサポートされているかどうかを指定する。
データタイプ: xs:boolean
親要素: serviceAttributes
予約されたパラメータback
を持つgetQuestions
がサービス(Service)によってサポートされているかどうかを指定する。
データタイプ: xs:boolean
親要素: serviceAttributes
質問に対する回答 。questionID
属性の値が以下で予約された識別子の1つでない限り、(inputQuestionまたはmultipleChoiceQuestionへの応答のための)value
属性または(音声ベースの応答のための)data
要素のいずれかが存在しなければならない(MUST)。
userResponses要素が、複数選択が認められているmultipleChoiceQuestionへの応答である場合、複数のuserResponse要素は、それぞれの選択を表現するために使用されなくてはならない(MUST)(それぞれのuserResponseはquestionID
属性を通して同じ質問を参照する)。
コンテンツモデル: ( data? )
親要素: userResponses
questionID
回答される質問の識別子。
以下で定義されるように、この属性の次の3つの値が予約されている。
default
サービス(Service)からルート質問(メインメニュー)。(この値は、動的メニューのオペレーションを初期化するために使用される。回答された質問には反映されない)。
動的メニューをサポートするサービス(Service)は、この予約された識別子をサポートしなければならない(MUST)。
search
サービス(Service)の検索メニュー。
サービス(Service)は、search
予約済識別子をサポートすることは求められていない。サービス(Service)はこの識別子をサポートしているかどうかをserviceAttributesで明示的に宣言しなくてはならない(MUST)。
back
動的メニューオペレーションのシーケンスの中で、サービス(Service)からの前の質問。
サービス(Service)はback
予約済識別子をサポートすることは求められていない。サービス(Service)は、この識別子をサポートしているかどうかをserviceAttributesで明示的に宣言しなくてはならない(MUST) 。
使用: 必須(REQUIRED)
データタイプ: xs:NMTOKEN
value
inputQuestionの場合には、この属性はテキスト形式のレスポンスを格納している。multipleChoiceQuestionの場合には、この属性は選択肢のIDが格納している。
使用: 任意(OPTIONAL)
データタイプ: xs:string
[DAISY 2.02] DAISY 2.02 Specification . 28 February 2001.
[Document-Literal Conformance] Child Element for Document-Literal Bindings (part of [WS-I Basic Profile 1.1]) . 24 August 2004.
[Dublin Core] Dublin Core Metadata Element Set, Version 1.1 . 14 January 2008.
[HTTP 1.1] HyperText Transfer Protocol 1.1, RFC 2616 . June 1999.
[HTTP Cookies] HTTP cookies in WS-I Basic Profile 1.1 (part of [WS-I Basic Profile 1.1]) . 24 August 2004.
[ISO 3166] ISO 3166-1 - Codes for the representation of names of countries and their subdivisions - Part 1: Country codes .
[MIME] Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, RFC 2046 . November 1996.
[MTOM] SOAP Message Transmission Optimization Mechanism . January 2005.
[PDTB2] DAISY Protected Digital Talking Book 2 . January 2005.
[RFC 2109] HTTP State Management Mechanism . February 1997.
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels . March 1997.
[RFC 2396] Uniform Resource Identifiers (URI): Generic Syntax . August 1998.
[RFC 2617] HTTP Authentication: Basic and Digest Access Authentication . June 1999.
[RIFF WAVE] Multimedia Programming Interface and Data Specifications 1.0 (Unofficial transcript) . August 1991.
[SOAP 1.1] Simple Object Access Protocol 1.1 . 8 May 2000.
[SSL 3.0] Secure Sockets Layer 3.0 . 18 November 1996.
[TLS 1.0] Transport Layer Security 1.0, RFC 2246 . January 1999.
[WS-I Basic Profile 1.1] WS-I Basic Profile 1.1 . 24 August 2004.
[WS-I Basic Profile 1.1 Conformance Targets] WS-I Basic Profile 1.1 Conformance Targets (part of [WS-I Basic Profile 1.1]) . 24 August 2004.
[WSDL 1.1] Web Services Definition Language 1.1 . 15 March 2001.
[XML Schema 1] XML Schema Part 1: Structures Second Edition . 28 October 2004.
[XML Schema 2] XML Schema Part 2: Datatypes Second Edition . 28 October 2004.
[Z39-86.2005] ANSI/NISO Z39-86.2005 - Specifications for the Digital Talking Book . 21 April 2005.
[Z39-86.2005-BOOKMARKS] Portable Bookmarks and Highlights (part of [Z39-86.2005]) . 21 April 2005.
[Dynamic Menus Primer] DAISY Online Delivery Protocol - Dynamic Menus Primer . 2 April 2010.
[Z39-86.2002] ANSI/NISO Z39-86.2002 - Specifications for the Digital Talking Book . 6 March 2002.
この付録は規範的である。
付属のdo-wsdl-10.wsdlドキュメントで定義された[WSDL 1.1]エンティティは準拠する全てのサービス(Service)が必ず守らなくてはならない(MUST)抽象的なWebサービス契約を構成する。
サービスプロバイダ(Service Provider)は、いくつかのURIでWSDLドキュメントを公開しなければならない(MUST)。WSDL
ドキュメントは http://www.daisy.org/projects/daisy-online-delivery/do-wsdl-10.wsdl
を名前空間 http://www.daisy.org/ns/daisy-online/
にインポートしなくてはならない(MUST)。そのWSDLドキュメントは名前空間 http://www.daisy.org/ns/daisy-online/
のDaisyOnlineService
に結びつけられた1つのport
のあるservice
を定義しなくてはならない(MUST)。
例A.1."example"が公開したWSDLドキュメント
<?xml version="1.0" encoding="utf-8"?> <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.daisy.org/ns/daisy-online/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.daisy.org/ns/daisy-online/"> <import namespace="http://www.daisy.org/ns/daisy-online/" location="http://www.daisy.org/projects/daisy-online-delivery/do-wsdl-10.wsdl"/> <service name="example"> <documentation> Example DAISY Online Service </documentation> <port name="examplePort" binding="tns:DaisyOnlineService"> <soap:address location="http://example.org/daisy-online/"/> </port> </service> </definitions>
この付録は参考情報である
次に挙げる個人はこの仕様の発行時のDAISY Online Working Groupの優良メンバーだった。
Johan Abbors, Pratsam
Hiro Fujimori, Plextor
Geoff Gilmour-Taylor, CNIB
Markus Gylling, DAISY Consortium (co-chair)
Kenny Johar, Vision Australia (co-chair)
Jelle Martijn Kok, Solutions Radio
Simon Roy, HumanWare
Nick Williamson, RNIB
次に挙げる個人の、DAISY Online Working Groupの元メンバーとして、または個々の貢献者としての貢献に対して感謝する。
David Andrews, Minnesota State Services for the Blind
Neil Bernstein, NLS
Sean Brooks, CNIB
Ed Chandler, RNIB
Gerry Chevalier, HumanWare
Andrew Furlong, Vision Australia
Matt Garrish, CNIB
Leon Gulikers, Dedicon
Kathy Kahl, DAISY
Dinesh Kaushal, Code Factory
Mattias Karlsson, Dolphin
Greg Kearney, Individual Supporter
George Kerscher, DAISY
Dominic Labbé, HumanWare
Clive Lansink, RNZFB
Lynn Leith, DAISY
Tatsu Nishizawa, Plextor
Peter Osborne, RNIB
James Pritchett, RFB/D
Karel Raven, Solutions Radio
Ron Stewart, Dolphin US
Marc Van der Aa, Plextor Europe
Markus Wildi, Swiss Library for the Blind