この標準情報(TR)は,1999年5月にInternet Engineering Task Force (IETF)から公表された Internet Printing Protocol 1.1: Model and Semantics (draft-ietf-ipp-model-v11-02)を翻訳し,技術的内容を変更することなく作成した標準情報(TR)である。
インタネット印刷プロトコル(Internet Printing Protocol,以降IPP)は, インタネットのツール及び技術を用いて分散型印刷に利用できるアプリケーションレベルのプロトコルとする。IPPの1.1版(IPP/1.1)は, エンドユーザ機能だけに焦点を絞る。この規定は, IPPのすべてを定義する一連の規定の一つとする。一連のIPP規定を次に示す。
これらのIPP規定を初めて読む場合には, この順序で読むことを強く推奨する。
この規定は, 次に示す構成をとる。
1.の残りで, 分散型印刷のためのIPP簡易モデルを示す。
2.に, そのモデルで扱うオブジェクト型を, その基本的な振る舞い, 属性及び相互動作によって示す。
3.は, IPP/1.1に含まれる操作を規定する。IPP操作は, 操作ごとに同期しているため, 要求及び応答がある。
4.は, そのモデルで用いる属性(及びその構文)を規定する。
7.,8.,9.,10.及び11.は, 参考文献, 著者連絡先及び登録提案フォーマットに加えて, 国際化及びセキュリティの検討を示す。
附属書A,附属書B及び附属書Cでは, 用語, 状態のコード及びメッセージ, 並びに"メディア"キーワード値を示す。
備考 この規定は, "属性", "キーワード"及び"サポート"などの用語を用いる。これらの用語は特定の意味をもち, 附属書A.2のIPPモデルのための用語において定義される。"でなければならない(MUST)", "してはならない(MUST NOT)", "必要な(REQUIRED)", "であることが望ましい(SHOULD)", "でないことが望ましい(SHOULD NOT)", "推奨の(RECOMMENDED)", "してよい(MAY)"及び"オプションの(OPTIONAL)"という用語は, 適合性に関する特定の意味をもつ。これらの用語は, 附属書A.2の適合性の用語において定義され, そのほとんどは, RFC 2119[RFC2119]に基づく。
附属書Dでは, 関係する属性とその値との間の相互動作の効果を明らかにする。
附属書Eでは, 共通ディレクトリスキーマを生成するプリンタ属性の部分集合を列挙する。この属性は, プリンタを登録するときに有効であって, これによって,クライアントは, プリンタを名前だけではなく絞込み検索によっても見つけることができる。
附属書Fでは, IPP/1.1の規定を作成するために行った,IPP/1.0 "モデル及び機能定義"規定[RFC2566]から追加及び変更を要約する。
附属書Gでは, 著作権を表示する。
インタネットで動作可能な印刷プロトコルの実現を達成するために,インタネット印刷プロトコル(IPP)は, 実世界での印刷課題解決の多くの構成要素を抽象化する簡易印刷モデルに基づく。インタネットは分散型計算環境であって, そこでは印刷サービスの要求者(クライアント, アプリケーション, プリンタドライバなど)は, 印刷サービスの提供者と協同し対話する。このモデル及び機能定義の規定は, 基本構成は複雑な"n段"のクライアントサーバシステムになってもよいが, 簡単なIPP用の抽象モデルを示す。IPPモデルにおける重要な簡素化ステップは, 印刷に必要となる主要オブジェクト及び主要インタフェースだけを開示することにある。このモデル規定に示すモデルは, IPPの最初の版(IPP/1.1)の適用範囲外の機能, インタフェース及び関係を含まない。IPP/1.1は, [HTPP],[ISO10175],[LDPA],[P1387.4],[PSIS],[RFC1179],[SWP]などの他の規定及び他の開発の作業から得た知見並びに関連する考えを数多く取り込んでいる。 IPPは, 文書印刷応用(DPA)[ISO10175]の規格に導入された印刷モデルによって強く影響されている。 DPAは, エンドユーザ機能及び管理機能の両方を規定するが, IPPの版1.1(IPP/1.1)は, 主として, エンドユーザ機能に焦点を絞り, わずかなオプションの追加的な操作者による操作を伴う。
IPP/1.1モデルは, 分散型印刷の重要な構成要素を次の二つのオブジェクト型にカプセル化する。
各オブジェクト型は, 操作(3.参照)及び属性(3.3.5参照)の関連する集合をもつ。
しかし, (IPP/1.1モデルに基づく)実システムの実装においては, IPP/1.1モデルで明示的に定義されてない印刷サービスの他の構成要素が存在することを理解する必要がある。図1は, これらの他の構成要素に関してIPP/1.1がどこに適合するかを示す。
IPP Printerオブジェクトは, 印刷サーバと関連付けられることが多いスプール機能, スケジュール機能及び複数の装置管理機能と共に, 物理的な出力デバイスに通常関連付けられる機能をカプセル化する。Printerオブジェクトは, エンドユーザが絞込み文脈依存探索機構(附属書E参照)などに基づいてエントリを検出し選択するディレクトリの中のエントリとしてオプション登録される。ディレクトリは, Printerに関する比較的静的な情報の記録に用いられ, 名前, 文脈, プリンタ機能などの探索基準にマッチするPrinterを, エンドユーザが探索し検出することを可能にする。状態, ロード済みの準備完了メディア, プリンタのジョブ数, エラー, 警告などのもっと動的な情報は, Printerオブジェクトを表現するだけのディレクトリの中のエントリと関連するのではなく, Printerオブジェクトそのものと直接的に関連する。
IPPクライアントは, クライアント側のIPPプロトコルを実装し, Printerオブジェクトを照会する能力をエンドユーザ(又はエンドユーザのためのプログラム実行)に与えて, 印刷ジョブを提出・管理する。IPPサーバは, サーバ側プロトコルを実装するPrinterオブジェクトの部分とする。Printerオブジェクトの残りの部分は, 印刷サービスそのものの応用セマンティクスを実する(又は応用セマンティクスにゲートウェイする。)。Printerオブジェクトは, 出力デバイスの中に組込まれてよく, 出力デバイスと通信するネットワーク上のホストに実装されてもよい。
ジョブがPrinterオブジェクトに提出され, Printerオブジェクトが提出要求における属性を検証するとき, Printerオブジェクトは新しいJobオブジェクトを生成する。次にエンドユーザは, 新しいJobオブジェクトと対話して, その状態を照会しジョブの進捗をモニタする。エンドユーザは, JobオブジェクトのCancel-Job操作を用いて, 印刷ジョブを取り消すこともできる。エンドユーザは, JobオブジェクトのオプションのHold-Job操作, Release-Job操作, 及びRestart-Job操作が実装されていれば, それらを用いて, 印刷ジョブを保留し, 解放し, 再始動することもできる。
Printerオブジェクトの特権のある操作者又は管理者は,必す(須)のCancel-Job 操作,オプションのHold-Job操作,Release-Job操作,及びRestart-Job操作を用いて,どんなuser's jobをも取り消し,保留し,解放し,再始動することができる。さらに,Printerオブジェクトの特権のある操作者又は管理者は,オプションのPause-Printer操作,Resume-Printer操作,及びPurge-Jobs操作が実装されていれば,それらを用いて,Printerオブジェクト(からジョブ)の一時停止,再開又は破棄を行うことができる。
通知サービスは,このIPP/1.1規定の適用範囲外であるが,その通知サービスを用いて,エンドユーザは,Printer固有イベント及びJob固有イベントを記録し,受信することができる。エンドユーザは,Get-Printer-Attributes操作,Get-Jobs操作,及びGet-Job-Attributes操作を用いたポーリングによって,Printerオブジェクトの状態を照会し,Jobオブジェクトの進捗に従うことができる。
IPP/1.1モデルは,Printer型及びJob型のオブジェクトを導入する。オブジェクトの各型は,実際のプリンタ又は実際の印刷ジョブなどの実世界の実体の関連する様相をモデル化している。各オブジェクト型は,そのオブジェクト型のインスタンスがサポートできる可能な属性の集合として規定される。各オブジェクト(インスタンス)に関して,サポートされる属性及び値の実際の集合は,特定の実装を記述する。オブジェクトの属性及び値は,そのオブジェクトの状態,能力,実現可能な機能,ジョブ処理機能,並びにデフォルトの振る舞い及び特性を記述する。例えば,Printerオブジェクト型は,各Pronterオブジェクトが潜在的にサポートする属性の集合として定義される。同様に,Jobオブジェクト型は,各Jobオブジェクトが潜在的にサポートする属性の集合として定義される。
オブジェクト型を定義する属性の集合に含まれる各属性は,次のとおりラベル付けされる。
属性値については類似のラベル付けはない。しかし,実装がある属性をサポートするとき,その実装はその属性の可能な値を少なくとも一つはサポートしなければならない。
IPP/1.1モデルの主要構成要素として,Printerオブジェクトがある。Pronterオブジェクトは,IPP/1.1プロトコルのサーバ側を実装する。そのプロトコルを使って,エンドユーザは,Printerオブジェクトの属性を照会し,印刷ジョブをPrinterオブジェクトに提出できる。Printerの抽象化の背後にある実際の実装構成要素は,別の形態及び別の構成をとってよい。しかし,モデルの抽象化は,実際の構成要素の詳細構成をエンドユーザに見えないままにできる。3.は,Printer操作のすべてを詳細に規定する。
Printerオブジェクトの能力及び状態は,その属性によって記述される。Printer属性は,次の二つのグループに分割される。
Printerオブジェクトは,共通な文書出力デバイス及び印刷サービス提供者の抽象化であるので,Printerオブジェクトは,ファクシミリ装置,画像装置又はCD書込み装置などの,Printerオブジェクトと一貫性のあるセマンティクスをもつどのような実デバイス又は仮想デバイスをも表現するのに使用できる。
Printerオブジェクトをサポートする構成例を次に示す。
a) | スプーラ機能のない出力デバイス | ||||
b) | 組込みスプーラをもつ出力デバイス | ||||
c) | 一つ以上の関連出力デバイスをもつIPPサポートの印刷サーバ
|
図2は,Printerオブジェクトが多様な分散型印刷の構成の主要部分にどのように実現されるかを例示する。図2の組込みのケースは,構成a)及び構成b)を表す。図2のホストの図及びファンアウトの図は,構成c)の1)及び構成c)の2)を表す。
この規定では,用語"クライアント"とは,IPP操作要求をIPP Pronterオブジェクトに送付し,IPP操作応答を受領するソフトウェア実体のこととする。クライアントは,次のものであってよい。
a) | エンドユーザによって制御されるソフトウェアの中に含まれる。例えば,アプリケーションの中で"Print"メニュー項目によって活性化される。及び/又は |
b) | 出力デバイス又は"downstream"印刷サーバのどちらかと(IPP操作を用いて)通信する印刷サーバの構成要素となる。 |
用語"IPP Printer"は,IPP操作要求を受領し,IPP操作応答を返却するネットワーク実体とする。その意味で,IPPオブジェクトは,次のものであってよい。
a) | デバイスを制御する(組込み)ソフトウェア |
b) | IPP操作要求を受領し,代わりに(IPP又は他の)プロトコルを用いて一つ以上のネットワークデバイスに操作要求を送付する印刷サーバの一部 |
凡例:
Jobオブジェクトは,印刷ジョブをモデル化するために用いられる。Jobオブジェクトは文書を含む。Jobオブジェクトを生成するために必要な情報は,生成要求の中で,エンドユーザからIPPクライアントを介してPrinterオブジェクトに送られる。Printerオブジェクトは生成要求の有効性を確認し,Printerオブジェクトがその要求を受領すると,Printerオブジェクトは新しいJobオブジェクトを生成する。3.は,各Job操作の詳細を規定する。
Jobオブジェクトの特性及び状態は,その属性によって記述される。Job属性は,次の2グループに分けられる。
ある実装は,Jobオブジェクト毎に少なくても1文書をサポートしなければならない。ある実装は,Jobオブジェクト毎に複数文書をサポートしてもよい。文書は次のいずれかとする。
IPP/1.1においては,文書は,IPPオブジェクトとしてはモデル化されないので,オブジェクト識別子又は関連属性をもたない。すべてのジョブ処理命令は,Jobオブジェクト属性としてモデル化される。これらの属性は,Job Template属性と呼ばれ,Jobオブジェクトの中のすべての文書に等しく適用される。
IPPオブジェクトは,オブジェクト属性の永続的記憶と共に永続的に維持管理される関係をもつ。
Printerオブジェクトは,紙面にマークを付けるために,ジョブを"処理する"が決して実際には物理出力デバイスを用いない一つの論理デバイス又は一つ以上の物理出力デバイスのどちらかを表現する。論理デバイスの例は,ウェブページ発行者,又はオンライン文書の書庫若しくはレポジトリへのゲートウェイを含む。Printerオブジェクトは,0個以上のJobオブジェクトを含む。
Jobオブジェクトは,厳密に一つのPrinterオブジェクトに含まれるが,Jobオブジェクトに関連する同一文書データは,同じPrinterオブジェクト又は異なるPrinterオブジェクトのどちらかに送られる。この場合,最初のJobオブジェクトにほとんど同一の2番目のJobオブジェクトが生成されるが,それは新しい(別の)Jobオブジェクト識別子をもつことになる。(2.4を参照。)
Jobオブジェクトは,(すべての文書が追加された以前に)空であるか又は一つ以上の文書を含むかのいずれかとする。含まれる文書が文書データ列であるとき,そのデータ列は,一つだけの文書の中に含まれることができる。しかし,同じか又は異なるJobオブジェクトの中の他の文書には,データ列の同一コピーが存在できる。含まれる文書が文書データの列への参照であるとき,(同じか又は異なるJobオブジェクトの中の)他の文書は同じ参照を含んでもよい。
Printerオブジェクト及びJobオブジェクトのすべては,URI [RFC2396]によって識別されるので,それらは永続的であいまい性なしに参照できる。URIの記法は有用な概念であるが,URIの記法がもっと安定になる(つまり. もっと完全に定義され,もっと広く普及する)まで,IPPオブジェクトに用いられるURIは,実際にはURL [RFC2396]とすることが期待される。各URLはURIの特化されたフォームであるので,この規定の以降では,もっと共通性の高い用語であるURIを用いるが,その利用は,もっと特定なURLの記法をも含むことを意図している。
管理者は,Printerオブジェクトを構築して,TLS [TLS]を用いて(セキュリティ設定用の機構は,このIPP/1.1規定の適用範囲外とする。)認証及び/又はメッセージ機密をサポートするかサポートしないかのどちらかとする。ある状況では,どちらの型(認証済み及び未認証)の接続も,ある種の折衝機構をもつ一つの通信チャネルを用いて確立できる。別の状況では,複数の通信チャネルが使われ,セキュリティ設定の型ごとに一つが使われる。8.に,セキュリティの考慮及び構築のすべてを示す。
Printerオブジェクトが一つ以上の通信チャネルをサポートするとき,それらのチャネルの幾つか又はすべては,異なるセキュリティ機構をサポートし,要求してよい。その場合,管理者は,一つのPrinterオブジェクトについて複数のURIとして,これらの複数通信チャネルの同時サポートを開示できる。そこでは,各URIは,そのPrinterオブジェクトに対して通信チャネルの一つを表す。 この柔軟性をサポートするために,IPP Printerオブジェクト型は,"printer-uri-supported"属性という複数値の識別属性を定義する。それは,少なくても一つのURIをもたなければならない。それは,一つより多いURIをもってもよい。つまり,各Printerオブジェクトは,少なくても一つのURIをもつことになり,そのURIは,Printerオブジェクトに対して少なくても一つの通信チャネルを識別する。しかしそれは,一つより多いURIをもってもよく,そこでは各URIは,そのPrinterオブジェクトに対して別の通信チャネルを識別する。 "printer-uri-supported"属性は,二つの付随属性,"uri-security-supported"及び"uri-authentication-supported"をもつ。どちらも"printer-uri-supported"として同じ基数をもつ。"uri-security-supported"属性は,"printer-uri-supported"にリストされる各URIのために用いられるセキュリティ機構(もしあれば)を示すことを目的とする。 "uri-authentication-supported"属性は,"printer-uri-supported"にリストされる各URIのために用いられる認証機構(もしあれば)を示すことを目的とする。これらの3属性は,4.4.1,4.4.2及び4.4.3で完全に規定される。
ジョブが生成要求を介してPrinterオブジェクトに提出されるとき,クライアントは,一つだけのPrinterオブジェクトURIを供給する。PrinterオブジェクトURIを供給するクライアントは,"printer-uri-supported" Printer属性の値の一つでなければならない。
備考 IPP/1.1は,どのようにしてクライアントがクライアント供給URIを得るかを指定しないが,Printerオブジェクトがディレクトリサービスにおけるエントリとして登録されることを推奨する。そこでエンドユーザ及びプログラムは,Printerをサーチするディレクトリに質問できる。附属書Eは,ディレクトリサービスにおけるPrinterオブジェクトエントリのための共通スキーマを規定し,エントリが実際のIPP Printerオブジェクトに対するブリッジとしてどのようにして動作するかを規定する。IPP Printerオブジェクトを表すディレクトリの中のエントリは,そのPrinterオブジェクトのための多くのURIをその属性の値として含む。
クライアントがPrinterオブジェクトに対して生成要求を提出するとき,Printerオブジェクトは,その要求の有効性を確認し,新しいJobオブジェクトを生成する。Printerオブジェクトは,"job-uri" Job属性の中に記録されるURIを新しいJobオブジェクトに割り当てる。Printerオブジェクトは,構築されたセキュリティ方式に基づくJob URIを生成し,生成要求の中でクライアントによって用いられるURIを生成する。
例えば,("https"スキームのURIをもつSSL3上のHTTPを用いて)SSL3の利用によってセキュリティ付きとされた通信チャネルと,(簡単な"http"スキームのURIを用いて)SSL3でのセキュリティを付与されていないもう一つの開放型通信チャネルとの両方をサポートするPrinterオブジェクトに着目する。クライアントがセキュリティ付きURIを用いてジョブを提出することがあれば,Printerオブジェクトは,セキュリティ付きURIを新しいJobオブジェクトに割り当てる。クライアントが開放型チャネルURIを使ってジョブを提出することがあれば,Printerは,開放型チャネルURIを新しいJobオブジェクトに割り当てる。
さらにPrinterオブジェクトは,Jobオブジェクトの"job-printer-uri"属性をも組み込む。これは,Jobオブジェクトを生成したPrinterオブジェクトに対する戻り参照とする。クライアントがJobオブジェクトの"job-uri"識別子へのアクセスだけをもつとき,クライアントは,どのPrinterオブジェクトがJobオブジェクトを生成したかを決定するために,Jobの"job-printer-uri"属性を照会できる。Printerオブジェクトが一つより多いURIをサポートすれば,値を構成し,Jobの"job-printer-uri"属性を組み込むためにジョブを生成する際に,Printerオブジェクトは,クライアントによって供給される一つのURIを採用する。
JobオブジェクトにURIをもたせることは,柔軟性及びスケーラビリティを可能にする。例えば実装によっては,Printerオブジェクトは,Printerオブジェクトそのものと同じ局所環境で処理されるJobを生成してよい。この場合,Job URIは,PrinterのURIと,この段落中に後で示す一意の32ビット正整数などのJobオブジェクト用のある一意な構成要素との複合となり得る。 他の実装では,Printerオブジェクトは,すべてのJobオブジェクト生成要求を有弘化するための中心のクリアリングハウスとなり得るが,Jobオブジェクトそのものは,Printerオブジェクトから離れた環境で生成され得る。この場合,JobオブジェクトのURIは,PrinterオブジェクトのURIに対する物理位置関係を全くもたなくてよい。 JobオブジェクトがURIをもつことは,柔軟性及びスケーラビリティを可能にするが,多くの既存の印刷システムは,印刷ジョブを,独立のURIではなく32ビット正整数だけで識別されることに強制する局所モデル又はインタフェース制約をもつ。 この数値のJob IDは,生成要求がもともと提出されるPrinterオブジェクトの文脈の中で一意であるだけとする。したがって,クライアントのどちらの型もがIPP Jobオブジェクトに(Job URI又は数値のJob IDのどちらかによって)アクセスすることを可能にするために,Printerオブジェクトが生成要求を成功裏に処理し,新しいJobオブジェクトを生成するとき,Printerオブジェクトは,Job URI及びJob IDの両方を生成しなければならない。("job-id"属性に記録された)Job IDは,生成要求がもともと提出されたPrinterオブジェクトの文脈中での意味だけをもつ。Job URI及びJob IDの両方をサポートするためのこの要求は,すべての型のクライアントが,クライアントの実装に課された局所的制約に拘わらず,Printerオブジェクト及びJobオブジェクトにアクセスすることを可能にする。
識別子に加えて,Printerオブジェクト及びJobオブジェクトは,名前("printer-name"及び"job-name")をもつ。オブジェクト名は,全オブジェクトのすべてのインスタンスにわたって一意である必要はない。Printerオブジェクトの名前は,このIPP/1.1規定の適用範囲外の機構を用いて管理者によって選ばれ設定される。 Jobオブジェクトの名前は,そのジョブを提出するIPPクライアントによって,オプションとして選ばれ供給される。クライアントがJobオブジェクトの名前を供給しなければ,Printerオブジェクトが,新しいJobオブジェクトの名前を生成する。いずれの場合も,名前は局所的な意味をもつだけとする。
まとめて次に示す。
IPPオブジェクトは,操作をサポートする。操作は,要求及び応答からなる。クライアントがIPPオブジェクトと通信するとき,クライアントは,そのオブジェクトに対するURIに操作要求を発行する。操作要求及び操作応答は,操作を認識するパラメタをもつ。操作も,その操作の(意図する対象,現地化情報などの)実行時特徴に影響する属性をもつ。これらの操作特有の属性は,(Printerオブジェクト属性,Jobオブジェクト属性などのオブジェクト属性との比較で,)操作属性と呼ぶ。各要求は,それと共に,あらゆる操作属性,オブジェクト属性,及び/又は操作の実行に要求される文書データを運ぶ。各要求は,オブジェクトからの応答を要求する。各応答は,応答パラメタとしての状態コードで操作の成功又は失敗を表示する。応答は,あらゆる操作属性,オブジェクト属性,及び/又は操作要求の実行中に生成された状態メッセージを含む。
3.は,要求及び応答について,各操作と関連する,パラメタ,属性及びその他のデータに関してIPP操作のセマンティクスを記述する。
IPP/1.1 Printer操作を表1に示す。
ジョブ印刷 | Print-Job (3.2.1) |
URI印刷 | Print-URI (3.2.2) |
ジョブ有効性確認 | Validate-Job (3.2.3) |
ジョブ生成 | Create-Job (3.2.4) |
プリンタ属性取得 | Get-Printer-Attributes (3.2.5) |
ジョブ取得 | Get-Jobs (3.2.6) |
プリンタ一時停止 | Pause-Printer (3.2.7) |
プリンタ再開 | Resume-Printer (3.2.8) |
ジョブ破棄 | Purge-Jobs (3.2.9) |
Job操作を表2に示す。
文書送信 | Send-Document (3.3.1) |
URI送信 | Send-URI (3.3.2) |
ジョブ取消し | Cancel-Job (3.3.3) |
ジョブ属性取得 | Get-Job-Attributes (3.3.4) |
ジョブ保留 | Hold-Job (3.3.5) |
ジョブ解放 | Release-Job (3.3.6) |
ジョブ再始動 | Restart-Job (3.3.7) |
Send-Document及びSend-URI Job操作は,Create-Job操作を用いて生成された既存の複数文書ジョブオブジェクトを新規文書に加えるときに使われる。
すべてのIPP操作は,幾つかの共通パラメタ及び操作属性を要求する。これらの共通要素及びセマンティクスの特徴について,更に詳細な定義及び記述を次に示す。
あらゆる操作要求は,次の必す(須)パラメタを含む。
あらゆる操作応答は,次の必す(須)パラメタを含む。
"符号化及びトランスポート"[IPP-PRO] は,これらのパラメタの符号化のための特別な規則を定義する。すべての他の操作要素は,属性及び属性のグループのための,より一般的な符号化規則を用いることを意味する。
各IPP操作要求は,識別する"operation-id"値を含む。有効な値は,"operations-supported" Printer属性(4.4.13参照)で定義する。クライアントは,正しい"operation-id"値を供給することで,どの操作が要求されるのかを指定する。
さらに,操作の起動は,すべて,"request-id"値で識別される。クライアントは,各要求ごとに1から2**31-1(を含む)までの範囲の(クライアントの要件に依存する恐らく一意な)整数でなければならない"request-id"を選択する。この"要求ID"によって,クライアントは,複数の処理中の要求を管理することができる。受信側のIPPオブジェクトは,クライアントが供給した"request-id"属性の32ビットすべてを応答へコピーする。そうすることで,たとえ"request-id"が範囲外であろうとも,クライアントは応答を正しい処理中の要求に対応させることができる。完全な"request-id"を受信する前に要求が終了する場合は,IPPオブジェクトは,要求を拒否し,"request-id"を0として応答を返す。
備考 IPPの下のトランスポートプロトコルが,対応する要求が送られた順序とは別の順序での応答をクライアントが受信することを不可能とするコネクション指向プロトコルの場合もあるかもしれない。この場合,"request-id"属性は正しいプロトコル操作には,重要でないかもしれない。しかし,他の下位プロトコルへの対応付けでは,操作応答は,任意の順序で戻ることができる。この場合には,"request-id"は重要となる。
操作要求及び応答は,共に,属性及び/又は文書データのグループからなる。属性グループを次に示す。
3.1の後半では,各操作を,各々の要求及び応答に対して許可され予期される属性のグループを識別することで形式的に定義する。モデルは,各要求又は各応答における各グループに対して特定の順序を指定するが,各グループ内の属性は,特に指定しない場合は,いかなる順序でもよい。
各属性規定には,属性名に続き括弧内にその属性の構文の名前を含まれる。さらに,各'integer'属性は,その属性の値に対して,括弧内に許される範囲を(m:n)として続ける。 'text'属性又は'name'属性は,各々,その属性の値に対して,括弧内にオクテット単位での最大サイズを続ける。属性構文記法の詳細については,4.1の属性構文を参照のこと。
備考1 操作に含まれる文書データは,厳密には属性ではないが,順序付けの目的で特別の属性グループとして扱う。操作要求内での文書データ供給をサポートする操作は,Print-Job及びSend-Documentだけとする。文書データを含む操作応答は存在しない。
備考2 操作には,IPPオブジェクトのサポートを必す(須)とするものがあり,それ以外はオプションとする(5.2.2参照)。そこで,オプションの操作を使用する前に,クライアントは,最初に必す(須)の Get-Printer-Attributes操作を用いて,オプションのどのPrinter操作及びJob操作が実際にサポートされているかを決定するために,Printerの"operations-supported"属性を問い合わせることが望ましい。クライアントは,サポートされていないオプションの操作を使用しないほうがよい。IPPオブジェクトがサポートされていない操作を実行するための要求を受信した場合,'server-error-operation-not-supported'状態コードを返す(附属書B.1.5.2参照)。IPPオブジェクトが必す(須)操作をサポートしない場合は,不適合とする。
Job属性及びPrinter属性の中には,機械理解よりむしろ人間理解のために意図されたテキスト列及び名前の値をもつものがある('text'及び'name'の属性構文は4.1を参照)。"attributes-charset"及び"attributes-natural-language"という二つの特別なOperation Attributesについて,次に記述する。これらの属性は,常に,Operation Attributesグループの一部とする。たいていの属性グループでは,グループ内の属性の順序は,重要ではない。しかし,Operation Attributesグループ内のこれら二つの属性に対しては,順序は極めて重要となる。"attributes-charset"属性は,グループの最初の属性でなければならず,"attributes-natural-language"属性は,グループの2番目の属性でなければならない。言い換えると,これらの属性は,すべてのIPP要求及びIPP応答で供給され,グループの先頭に来なければならず,特定の順序で来なければならない。ジョブ生成操作に対して,IPP Printer実装は,新Jobオブジェクトと共にこれら二つの属性をJob Description属性として記憶する。この規定の簡潔さのために,すべての操作の要求及び応答がもつこれら操作属性の記述は繰り返さず,代わりに3.1を参照することにする。
すべてのIPP/1.1操作要求で,次の必す(須)操作属性を,クライアントは供給し,Printerオブジェクトはサポートしなければならない。
この操作属性は,クライアントがこの要求で供給するあらゆる'text'属性及び'name'属性で用いるcharset(符号化文字集合及び符号化方式)を特定する。この属性は,Printerオブジェクトがすべての'text'属性及び'name'属性で(サポートされていれば)使わなければならないcharset,及びPrinterオブジェクトがこの要求の応答として返す状態メッセージを特定する。'text'属性構文及び'name'属性構文の規定については,4.1.1及び4.1.2を参照すること。
すべてのクライアント及びIPPオブジェクトは,'utf-8' charset [RFC2279]をサポートしなければならず,IANA[IANA-CS]で登録されている付加的なcharsetをサポートしてもよい。Printerオブジェクトがクライアントの提供するcharset値をサポートしていない場合,Printerオブジェクトは,要求を拒否し,応答として"attributes-charset"を'utf-8'に設定し,'client-error-charset-not-supported'状態コード及び'utf-8' charsetを用いた'text'属性又は'name'属性を返さなければならない。Printerは,Unsupported Attributes Groupの属性を返さなくてもよい(3.1.7及び 参照)。Printerオブジェクトは,サポート済みcharsetを"charset-supported" Printer属性の値(4.4.18参照)として示さなければならない。そうすることで,クライアントは,どのcharsetがサポートされているか決定するために問い合わせることができる。
備考 クライアントの実装は,次のことに注意するほうがよい。 IPPオブジェクトは'utf-8' charsetのサポートだけを要求されているので,可能な限り複数のIPPオブジェクト実装との相互接続を可能とするために,クライアントは,US-ASCII,ISO-8859-1などのより単純なcharsetを単に通したり表現できるだけであるにもかかわらず,"attributes-charset"操作属性に'utf-8'を供給することを望むかもしれない。この場合,クライアントは,応答で返される,ユーザに表示できない文字を除去(又はcharset変換)しなければならなくなる。一方で,クライアント及びIPPオブジェクトの両方がutf-8以外のcharsetも共通にサポートしている場合,クライアントは,charset変換又はデータ損失を避けるために,そのcharsetを使いたいと思うかもしれない。
この属性の値の構文及びセマンティクス解釈,並びに例示値に関しては,4.1.7の'charset'属性構文の記述を参照すること。
この操作属性は,クライアントが要求で供給している'text'属性及び'name'属性で用いられる自然言語を特定する。この属性は,Printerオブジェクトが,この要求の応答で返す,すべての'text'属性及び'name'属性並びに状態メッセージのために使用することが望ましい自然言語も特定する。
Printerオブジェクトがサポートすることを要求される必す(須)自然言語はない。しかし,Printerオブジェクトの"generated-natural-language-supported"属性は,PrinterオブジェクトとIPPオブジェクトが生成するすべてのテキスト列のための包含されたJobオブジェクとによってサポートされる自然言語を特定する。クライアントは,生成されたメッセージに対してサポートされた自然言語を決定するために,この属性を問合せてもよい。
Printerオブジェクトがテキストを生成する属性,すなわち,"job-state-message","printer-state-message"など,及び状態メッセージ(3.1.6参照)に対して,Printerオブジェクトは,サポート済みの自然言語のいずれかで,テキスト列を生成できなくてはならない。クライアントがサポートしていない自然言語を要求をした場合,Printerオブジェクトは,Printerの"natural-language-configured"属性(4.4.19参照)で指定されたとおりにPrinterが構成する自然言語で,これらの生成されたメッセージを返さなければならない。
クライアント,認証システム,操作者,システム管理者又は製造者が提供するこの他の'text'属性及び'name'属性(すなわち,"job-originating-user-name","printer-name" (name),"printer-location" (text),"printer-info" (text) 及び"printer-make-and-model" (text))に対しては,Printerオブジェクトの"natural-language-configured"属性によって特定されたPrinterの構成済み自然言語のサポートだけがPrinterオブジェクトに要求される。ただし,これらの属性には付加的な自然言語のサポートが許されている。
"attributes-natural-language"操作属性で供給された値とは異なる自然言語を用いた要求のいかなる'text'属性又は'name'属性に対しても,クライアントは,自然言語上書き(Natural Language Override)機構(4.1.1.2及び4.1.2.1)をこの供給された属性値に対して使用しなければならない。クライアントは,Natural Language Override機構を冗長に用いてもよい。すなわち,たとえ値が要求の"attributes-natural-language"操作属性で供給された値と同じ自然言語を用いた値であったとしても,この上書き機構を使用してもよい。
IPPオブジェクトは,IPPオブジェクトがその自然言語をサポートするしないに関わらず(又は"ipp-attribute-fidelity"操作属性の値に依存せず),任意の自然言語及び任意のNatural Language Overrideを受けいらなければならない。これは,IPPオブジェクトが,Printerオブジェクトの"generated-natural-language-supported"属性でどのような値をとろうと,すべてのクライアントが供給する値を受け入れるということでになる。この属性"generated-natural-language-supported"は,クライアントが供給したメッセージでなく生成されたメッセージだけに適用する。IPPオブジェクトは,すべてのクライアントが供給する属性を覚えていなくてはならない。それらの属性を問合せの応答で返した場合,IPPオブジェクトは,その自然言語を示さなければならない。
属性構文型が'text'又は 'name'(4.1.1及び4.1.2参照)である各値は,関連するNatural-Languageをもつ。この規定は,この関連がPrinterオブジェクト又はJobオブジェクトにどのように記憶されるかは規定しない。要求又は応答でこの値が符号化される場合,その自然言語は暗黙的又は明示的のいずれかとなる。
例えば,"job-name"属性は,生成要求でクライアントが供給してもよい。この属性のtext値は,"attribute-natural-language"属性で識別される自然言語であるか,又はそれと異なる場合は,Natural Language Override機構で識別される。供給される場合,IPPオブジェクトは,"job-name"属性の値を,Jobオブジェクトの"job-name"属性に満たすために使う。クライアントがJobオブジェクトの"job-name"属性を問い合わせる場合は,IPPオブジェクトは記憶された属性を返し,それが応答の"attributes-natural-language"操作属性の報告と異なる場合は,自然言語を指定するためにNatural Language Override機構を用いる。IPPオブジェクトは,Natural Language Override機構を冗長に用いてもよい。すなわち,自然言語が,応答の"attributes-natural-language"操作属性で供給された値と同じ場合でも,その機構を使用してもよい。
IPPオブジェクトは,"attributes-natural-language"操作属性又はNatural Language Overrideを用いるあらゆる属性で供給された自然言語に基づく要求を拒絶してはならない。
この属性の値の構文及び意味的な解釈,並びに例示値については,4.1.8における'naturalLanguage'属性構文記述を参照すること。
クライアントは,自然言語とcharsetとの不正な組合せを用いた'text'属性又は'name'属性を供給しないことが望ましい。例えば,Printerオブジェクトが,charsetの'utf-8','iso-8859-1'及び'iso-8859-7'をサポートしているとする。さらに,このPrinterオブジェクトは,自然言語の'en'(英語),'fr'(フランス語)及び'el'(ギリシャ語)もサポートしていたとする。Printerオブジェクトは,charset 'iso-8859-1'及び自然言語'el'をサポートしているが,恐らく,'iso-8859-1' charsetを用いたギリシャ語のテキスト列の組合せはサポートしていない。Printerオブジェクトは,この明らかな非互換性を,発生する文脈に依存して次の異なる処理を行う。
どちらの場合も,Printerオブジェクトは,明白な非互換性を理由に要求を拒否はしない。charset及び自然言語の可能性のある非互換な組合せは,大域的な操作レベルで,又はNatural Language Overrideの属性ごとのレベルで,発生する。さらに,応答は常に明示的なcharset及び自然言語の情報を含むので,クライアントが応答を解釈する方法に関しての課題又はあいまい性は存在しない。
あらゆるIPP/1.1操作応答における次の必す(須)操作属性を,Printerオブジェクトは供給し,クライアントはサポートしなければならない。
この操作属性は,Printerオブジェクトがこの応答で返す'text'属性及び'name'属性によって使用されるcharsetを識別する。この応答における値は,クライアントが要求で供給した"attributes-charset"操作属性と同じ値でなければならない。これが不可能な場合(すなわち,要求されたcharsetがサポートされていない場合),要求は拒否される。3.1.4.1で示す"attributes-charset"を参照すること。
Printerオブジェクトが'utf-8' charsetだけ以外のものもサポートする場合,Printerオブジェクトは,クライアントが要求するcharsetを用いて'text'属性及び'name'属性を返すために可能な最高の忠実度に基づいてサポートされるcharsetの各々の間でコード変換できなければならない。しかし,関与するcharsetに依存して,charset変換の間に情報欠落が発生してもよい。例えば,Printerオブジェクトが,UTF-8の'a'からUS-ASCIIの'a'への(情報欠落のない)変換,ISO Latin 1 CAPITAL LETTER A WITH ACUTE ACCENTからUS-ASCIIの'A'への(アクセント欠落のある)変換,UTF-8 Japanese Kanji characterから,実装に依存して,'?',等価な16進コードなどのISO Latin 1エラー文字指示又は文字の欠落への変換,などを行ってもよい。
備考 二つ以上のcharsetをサポートする実装が,クライアントが供給するcharsetでデータを記憶するか,他のサポート済みcharsetの一つにコード変換してデータを記憶するかは,実装依存とする。コード変換中の情報欠落が最小となる戦略を試すのがよい。各応答に関しては,実装は,内部charsetから要求されたcharsetへと変換を行う。
すべてのIPP操作は,IPPオブジェクトに向けて行われる。Printer操作では,その操作は,URIの一つ(すなわち,Printerオブジェクトの"printer-uri-supported"属性における値の一つ)を使用して,Printerオブジェクトに向けて行われる。Printerオブジェクトが複数のURIをサポートする場合であっても,クライアントは,操作の対象として一つのURIだけを供給する。クライアントは,"printer-uri (uri)"操作属性において正しいURIを供給することで,対象オブジェクトを特定する。
ジョブ操作では,操作は次のいずれかに向けて行われる。
操作が,JobオブジェクトのURIを使用して直接にJobオブジェクトに向けて行われる場合,クライアントは,余分な"job-id"操作属性を含んではならない。
操作対象属性は,あらゆる操作要求に含まれなければならない必す(須)操作属性とする。charset属性及び自然言語属性(3.1.4参照)と同様に,操作対象属性は,特別仕立ての操作属性とする。すべての場合で,操作対象属性のすぐ後には,操作属性グループ内の"attributes-charset"属性及び"attributes-natural-language"属性が続くが,特に次の順序規則が存在する。
すべての場合で,IPP操作の要求及び応答の本体内に含まれる対象URIは,相対フォーマットでなく,絶対フォーマットでなければならない。(相対URIは,HTTPサーバの有効範囲内の資源を識別するが,スキーム,ホスト又はポートを含まない。)
次の規則は,IPPオブジェクトを識別するURIのポート番号の使用に対して適用される。
a) | URIスキームがURIの文字列に明示的にポート番号を含めることを可能にし,ポート番号がURI内に指定される場合,そのポート番号は,クライアントがIPPオブジェクトと接続するために使われなければならない。 |
b) | URIスキームがURIの文字列に明示的にポート番号を含めることを可能にし,ポート番号がURI内に指定されない場合,クライアントがIPPオブジェクトと接続するためには,URIスキームによって暗黙的に示されるデフォルトポート番号を使わなければならない。 |
c) | URIスキームが明示的なポート番号をURI内で指定することを可能としない場合,クライアントがIPPオブジェクトと接続するためには,そのURIによって暗黙的に示されるデフォルトポート番号を使わなければならない。 |
備考 IPPの"符号化及びトランスポート"の文書[IPP-PRO]は,IPPのHTTP/1.1への対応付けを示し,HTTP/1.1上のIPP使用のための新しいデフォルトポート番号を定義する。
すべての操作応答は,必す(須)の"status-code"パラメタ及びオプションの"status-message"操作属性をもつ。"status-code"は,要求の処理に関する情報を提供する。"status-message"属性は,その操作の状態の短いテキスト記述を提供する。状態コードは,オートマトンが使うことを意図しており,状態メッセージは,人間のエンドユーザが使うことを意図している。"status-message"は,Printerオブジェクトの後の版が,初期の版のクライアントが理解できないかもしれない状態コードに添付し人間のユーザのための付加情報として返す場合に特に有用となる。応答が"status-message"属性を含まない場合,IPPクライアントは,メッセージを調べたり表示したりする必要はないが,実装固有の方法でそれを行うことが望ましい。
"status-code"値は,意味のある数値とする。"status-code"構文は,値が0x0000〜0x7FFFの範囲だけ可能ということを除き,"type2 enum"(4.1 "属性構文"を参照)と類似している。附属書Bは,状態コードを示し,数値を割り当て,各状態コードに対応する状態メッセージの推奨案を示す。"status-message"属性の構文は,"text(255)"とする。IPPのクライアント実装は,状態コードを,エンドユーザに対して意味のある現地化されたメッセージに変換することが望ましい。
Printerオブジェクトが"status-message"操作属性をサポートする場合,Printerオブジェクトは,Printerオブジェクトの"generated-natural-language-supported"属性(3.1.4.1で規定する"attributes-natural-language"操作属性を参照)によって識別される自然言語のいずれかを用いてこのメッセージを生成しなければならない。返却された'text'属性に対して3.1.4.1で示すとおり,このメッセージを生成する選択がある場合は,Printerオブジェクトは,クライアント要求における"attributes-natural-language"の値によって示されるを自然言語を,サポートされていれば使用し,そうでなければ,Printerオブジェクトは,Printerオブジェクト自体の"natural-language-configured"属性における値を使用する。Printerオブジェクトが"status-message"操作属性をサポートしている場合,次のエラー状態コード,'client-error-bad-request', 'client-error-charset-not-supported', 'server-error-internal-error', 'server-error-operation-not-supported'及び'server-error-version-not-supported'に対する状態メッセージ(附属書B参照)を返すために,必す(須)の'utf-8' charsetを用いるほうがよい。この場合,エラー応答では,"attributes-charset"操作属性の値を'utf-8'に設定しなければならない。
Printerがエラーなしで操作を実行し問題に出会わない場合は,応答において'successful-ok'の状態コードを返さなければならない。附属書Bを参照すること。
クライアントが表3に示すパラメタ又は操作属性の未サポート値を供給する場合,Printerオブジェクトは,操作を拒否しなければならないが,Unsupported Attributesグループにおける未サポート値を返す必要はなく,示された状態コードを返さなければならない。
パラメタ | 属性状態コード |
version-number | server-error-version-not-supported |
operation-id | server-error-operation-not-supported |
attributes-charset | client-error-charset-not-supported |
compression | client-error-compression-not-supported |
document-format | client-error-document-format-not-supported |
document-uri | client-error-uri-scheme-not-supported,
client-error-document-access-error |
クライアントが他の属性に対して未サポート値を供給するか,未サポート属性を供給する場合, Printerは,Unsupported Attributesについて示す3.1.7で定義する状態コードを返す。
Unsupported Attributesグループは,操作でサポートされない属性を含む。このグループは,第一にジョブ生成操作のためのものだが,すべての操作は,このグループを返すことができる。
Printerオブジェクトは,状態コードが,'successful-ok-ignored-or-substituted-attributes', 'successful-ok-conflicting-attributes', 'client-error-attributes-or-values-not-supported'又は'client-error-conflicting-attributes'のうちの一つの場合,応答にUnsupported Attributesグループを含めなければならない。
状態コードがこれら四つのうちの一つの場合,Unsupported Attributesグループは,次の属性のすべて及びそれだけを含まなければならない。
a) | 要求において供給されるOperation属性又はJob Template属性。 |
b) | プリンタがサポートしない属性。 |
詳細は,次の未サポート属性の3分類を参照すること。
Printerオブジェクトが応答でUnsupported Attributesを全く返さない場合,Printerオブジェクトは,空のグループを送るのでなく,Group 2を省略するほうがよい。しかし,クライアントは,空のグループを受諾できなければならない。
未サポート属性は,次の三つに分類される。
a) | Printerオブジェクトは,(属性構文か属性値かに関係なく,)供給された属性をサポートしない。 |
b) | Printerオブジェクトは属性をサポートするが,クライアントが供給する属性構文又は属性値の幾つか又はすべてをサポートをしない。(すなわち,Printerオブジェクトは,これらの属性構文又は対応する"xxx-supported"属性における値をもたない。) |
c) | Printerオブジェクトは,供給された属性及び値をサポートするが,特定の値が,OHPシートのステープル止めのように何らかの制約に違反するために,互いに相容れない。 |
未サポート属性名の場合,Printerオブジェクトは,クライアントが供給する属性に'unsupported'の値を代入して返す。この値の構文型は,"範囲外"("out-of-band")であり,その符号化は,"符号化及びトランスポート"規定[IPP-PRO]で示す"範囲外"("out-of-band")の値のための特別規則によって定義される。その値は,属性それ自体に対してはサポートしないことを示す(4.1の始めの部分を参照)。
一つ以上の未サポートな属性構文又は値をともなった属性をサポートする場合,Printerオブジェクトは,クライアントが供給した属性を,クライアントが供給したとおりに,未サポートな属性構文又は値と共に返す。これは,その属性のサポートは示すのだが,その特別な属性構文又は値はサポートしないことを示す。クライアントが複数の値をもつ多重値属性を供給し,Printerオブジェクトはその属性をサポートしているのだが,クライアント供給の属性構文又は値の部分集合だけをサポートする場合,Printerオブジェクトは,未サポートのこれらの属性構文又は値だけを返さなければならない。
(それぞれは独立にサポートされているが,同じジョブ内で一緒に要求する場合に相反する値をもつ)互いに相反する二つ(以上)のサポートされた属性値の場合,Printerオブジェクトは,この相反を解決するために無視する又は置き換える値すべてを返却しなければならないが,使用する値は返却してはならない。相反を解決する方法それ自体の選択は,実装依存とする。3.2.1.2及び附属書D参照すること。例としては,実装者ガイド[IPP-IIG]を参照すること。
各操作の要求及び応答は,"version-number"パラメタを伴う。"version-number"のそれぞれの値は,"X.Y"の形式とし,Xを主版数,Yを副版数とする。クライアント要求に版数を含めることで,クライアントは,どのIPPの版を使用することに関心があるかを識別できる。IPPオブジェクトがその版をサポートしていない場合,IPPオブジェクトは,サポートする最も近い版数を伴った'server-error-version-not-supported'状態コードで応答する(B.1.5.4参照)。
版の折衝それ自体は存在しない。しかし,IPPオブジェクトから'server-error-version-not-supported'状態コードを受け取った後の場合は,クライアントが異なる版数で再試行することを禁止はしない。IPP/1.1に適合するためには,IPPオブジェクト実装は,'1.1'版をサポートしなければならず,'1.0'版をサポートするほうがよい。
"version number"の概念は唯一つとし,これだけで,IPPモデル及びIPPプロトコルの両方の変更を示す。そこで版数は,モデル及び機能定義(この規定)の新版,又は"符号化及びトランスポート"[IPP-PRO]の新版が出版されるときに,変更しなければならない。
主版数の変更は,構造又は構文上の変更を示し,IPPクライアント及びPrinterオブジェクトの古い版が,新しい又は変更された属性,操作及び応答を,正しく構文解析し正しく処理することが不可能な変更とする。主版数が変更された場合,副版数は,ゼロに設定される。例えば,必す(須)の"ipp-attribute-fidelity"属性を(これが'1.1'版にないとして)'1.1'版に追加した場合,主版数の変更が要求されることになる。これは,IPP/1.0のPrinterは,未知の"ipp-attribute-fidelity"属性を含む正しいセマンティクスをもつ要求を処理しないことによる。主版数の変更に影響を与えるかもしれない項目は,モデル及び機能定義(この規定)又は"符号化及びトランスポート"[IPP-PRO]のそれ自体の変更を含む。この変更項目は,次による。
副版数の変更は,すべてのIPPオブジェクトは理解しないかもしれないが,理解しない場合は無視可能な新しい機能,属性及び属性値の追加を示す。副版数の変更に影響を及ぼすかもしれない項目は,符号化及びトランスポートの規則[IPP-PRO]ではなく,モデルオブジェクト及び属性への変更(ただし,属性構文の追加は除く。)を含む。変更項目の例は,次による。
"version-number"の符号化は,(主又は副のいずれの)いかなる版数でも変更してはならない。この規則によって,すべての将来の版が,(少なくとも"version-number"を検査する)すべての旧版の後方互換になることを保証する。さらに,ある版から次の版に引き継がれないあらゆるプロトコル要素(属性,エラーコード,タグなど)は,新しいセマンティクスで再利用されないために,非推奨とする。
ある版をサポートする実装は,すべての旧版をサポートする必要はない。(新しい規定の公表を通して)新版がそれぞれ定義されるごとに,主版は,規定に準拠した実装では,どの旧版をサポートしなければならないか,及びどの版をサポートするのが望ましいか,を規定する。
"印刷ジョブを提出する",及び新規ジョブオブジェクトを生成するために,クライアントは生成要求を発行する。生成要求は,次の三つの操作要求のいづれか一つとする。
このモデル規定を通して,"生成要求"という用語は,これら三つの操作要求のいずれかを参照するために使用する。
ただ一つのSend-Document操作が続くCreate-Job操作は,Print-Job操作と意味的には等価とする。しかし,性能的な理由から,クライアントは,すべての単独文書を伴うジョブに対しては,Print-Job操作を使用するほうがよい。さらに,Print-Jobは,必す(須)操作(すべての実装がサポートしなければならない操作)とする。一方,Create-Jobは,オプションとする。そこで,実装によってはこの操作をサポートしないかもしれない。
ジョブ提出時点(又はジョブ提出時刻)(1)は,クライアントが生成要求を発行する時点とする。すべてのJobオブジェクトの初期状態は,'pending'状態,'pending-held'状態又は'processing'状態とする(4.3.7参照)。
注1 この規定では,各種イベントの発生時を,より抽象的には"時点"と呼び,より具体的には"時刻"と呼ぶこととするが,概念的には同じものを指していることに注意。特に,4.3.12では,3.1.9で規定する各種の発生時点を具体的に示す属性を規定するので,"時刻"と呼ぶ。
Printerオブジェクトが印刷ジョブの処理を開始するとき,Jobオブジェクトの状態は'processing'に移る。これを,ジョブ処理時点(又はジョブ処理時刻)とする。ジョブ提出時点に行わなくてはならないものとして有効性確認検査がある。ジョブ処理時点に行われなければならないものも存在する。
Job提出時点及びValidate-Job操作を受信した時点で,Printerは,次を行わなければならない。
a) | クライアントが供給した属性を処理し,要求を受諾又は拒否する。 |
b) | クライアントが供給したURIの構文の有効性を確認し,そのスキームをサポートする。 |
ジョブ提出時点に,Printerオブジェクトは,供給した属性,属性構文及び値と,Printerオブジェクトの対応する"xxx-supported"属性とを照合することによって,それらがサポートされるかどうかを確認しなければならない。詳細は,3.1.7を参照すること。[IPP-IIG]は,IPPオブジェクトが任意の要求を受諾又は拒否するための段階の案を示し,さらに,生成要求処理の付加的な段階を示す。
ジョブ提出時点には,Printerオブジェクトは,次に示すジョブ処理時点のために予約済みの有効性確認検査を行う必要はない。
a) | 文書データの有効性の確認。 |
b) | クライアントが供給したURIの実際の内容の有効性を確認(参照の解決し,リンクを文書データへとつなぐ。)。 |
ジョブ提出時点には,これら付加的なジョブ処理時点有効性確認検査は,本質的には無意味となる。これは,実際に文書データの構文解析及び解釈を要求するためであって,100%の正確さを保証はできない。さらに,再度,ジョブ処理時点に検査を行われなければならない。URIの場合には,ジョブ提出時点での利用可能性の検査は,ジョブ処理時点での利用可能性を保証もしない。さらに,ジョブ処理時点に,Printerオブジェクトは,ジョブ提出時点に探知できなかった次の条件のいずれかを発見するかもしれない。
ジョブ提出時点に,Printerオブジェクト,特にスプールをしないPrinterは,十分な空きをもたないままジョブを受け入れてもよい。その場合,Printerオブジェクトは,無期限にクライアントからのデータ読込みを中止してもよい。クライアントは,無期限にブロックするための書込み操作の準備をしておかなくてはならない(5.1 クライアント適合性要件を参照)。
Printerオブジェクトが新しいジョブを開始するには空きが小さ過ぎる場合,新しい生成要求を拒否してもよい。この場合,Printerオブジェクトは,'server-error-busy'(C.1.5.8参照)の状態コードをもつ応答を(要求拒否の返答として)返さなくてはならず,操作のすべてのbyteを受け取る前に接続を閉じてもよい。'server-error-busy'状態コードを操作応答で受け取った場合,クライアントは,クライアントが(特にPrint-Job操作のための)そのデータのすべてを送る前に,Printerオブジェクトが接続を閉じる準備をしておかなければならない。クライアントは,IPP Printerオブジェクトが生成要求を受け付けるまで,生成要求の提出を保持する準備をしなければならない。
ジョブ処理時点では,Printerオブジェクトは,生成要求の応答において,成功状態コード付きで既に応答してしまっているので,Printerオブジェクトがエラーを検出した場合,Printerオブジェクトは,エンドユーザに操作状態コードでエラーを知らせることができない。この場合,エラーに依存して,Printerは,後の問合せに正しいジョブ状態を報告可能とするために,ジョブオブジェクトの"job-state"属性, "job-state-reasons"属性又は"job-state-message"属性を適当な値に設定することができる。
備考 イベントの非同期通知は,この規定の範囲外とする。
すべてのPrinter操作は,Printerオブジェクトに向けて行われる。クライアントは,操作の正しい対象を識別するために"printer-uri"操作属性を常に供給しなければならない。
この必す(須)操作は,クライアントが,一つだけの文書をもつ印刷ジョブを提出すること及び(文書データへの参照でなく)その文書データの供給することを可能にする。生成操作処理,そのOperation属性及びJob Template属性に関しては,附属書Dを参照すること。
次に示す属性のグループは,Print-Job Requestの一部として供給される。
a) | クライアントがこの属性を省略する場合,Printerオブジェクトは,データが圧縮されないと仮定する。すなわち,Printerは,クライアントが"compression"属性の値を'none'として供給したものとして,以下の規則従う。 |
b) | クライアントがこの属性を供給するが,Printerオブジェクトがその値をサポートしない場合,すなわち,その値がPrinterオブジェクトの"compression-supported"属性の値の一つではない場合,Printerオブジェクトは,要求を拒否し,'client-error-compression-not-supported'状態コードを返さなければならない。未サポート属性及び値の返却については,3.1.7を参照すること。 |
c) | クライアントが属性を供給し,Printerオブジェクトが属性値をサポートする場合,Printerオブジェクトは,文書データに対応する伸張アルゴリズムを用いる。 |
d) | Printerが操作応答を返す前に伸張アルゴリズムが失敗する場合,Printerオブジェクトは要求を拒否し,'client-error-compression-error'状態コードを返さなければならない。 |
e) | Printerオブジェクトが操作応答を返した後に伸張アルゴリズムが失敗する場合,Printerは,ジョブを異常終了し,'compression-error'値をジョブの"job-state-reasons"属性に追加しなければならない。 |
f) | 伸張アルゴリズムが成功する場合,文書データは,ジョブの"document-format"属性(q.v.)が指定するフォーマットをもたなければならない。 |
a) | クライアントがこの属性を供給しない場合,Printerオブジェクトは,文書データがPrinterオブジェクトの"document-format-default"属性で定義するフォーマットと仮定する。すなわち,Printerは,クライアントがプリンタのデフォルト値と等しい値をもつ"document-format"属性を供給したものとして,以下の規則に従う。 |
b) | クライアントはこの属性を供給するが,Printerオブジェクトがその値をサポートしない場合,すなわち,その値がPrinterオブジェクトの"document-format-supported"属性の値の一つではない場合,Printerオブジェクトは,要求を拒否し,'client-error-document-format-not-supported'状態コードを返さなくてはならない。 |
c) | クライアントが属性を供給し,その値が'application/octet-stream'であって(すなわち,自動検出されることになる。4.1.9.1参照),フォーマットはPrinterが自動検出できるdocument-formatの一つではなく,この検査がPrinterの操作応答の返却前に発生する場合,Printerは,要求を拒否し,'client-error-document-format-not-supported'状態コードを返さなければならない。 |
d) | クライアントがこの属性を供給し,その値がPrinterオブジェクトでサポートされる場合,Printerは,文書データを解釈できる。 |
e) | 文書データの解釈が,Printerが操作応答を返す前に失敗する場合は,Printerオブジェクトは,要求を拒否し,'client-error-document-format-error'状態コードを返さなくてはならない。 |
f) | 文書データの解釈が,Printerが操作応答を返した後に失敗する場合は,Printerオブジェクトは,ジョブを異常終了し,'document-format-error'値をジョブの"job-state-reasons"属性に追加しなければならない。 |
クライアントは,この属性をオプションで供給する。Printerオブジェクトは,この属性及び"job-k-octets-supported"属性(4.4.33参照)をオプションでサポートする。クライアントが供給する"job-k-octets-supported"属性は,キロオクテット単位で提出される文書の全体サイズを識別する(完全なセマンティクスは,4.3.15.1を参照)。クライアントが属性を供給し,Printerオブジェクトがこの属性をサポートする場合,属性の値は,Jobオブジェクトの"job-k-octets" Job Description属性に入れるために使用される。
備考 この属性及びこの属性に続く二つの属性("job-impressions"及び"job-media-sheets")について,クライアントが属性を供給し,Printerオブジェクトがその属性をサポートしない場合,Printerオブジェクトは,client-supplied値を無視する。クライアントが属性を供給し,Printerがその属性をサポートし,値が対応するPrinterオブジェクトの"xxx-supported"属性の範囲内である場合,Printerオブジェクトは,その値をJobオブジェクトの"xxx"属性に入れるために使用しなければならない。クライアントが属性を供給し,Printerが属性をサポートするが,値が対応するPrinterオブジェクトの"xxx-supported"属性の範囲外である場合,Printerオブジェクトは,属性及びその値をUnsupported Attributes応答グループにコピーし,要求を拒絶し,'client-error-attributes-or-values-not-supported'状態コードを返さなければならない。クライアントが属性を供給しない場合,Printerオブジェクトは,その属性をサポートし,正しい値を計算又は識別できるかどうかに依存して,対応するJobオブジェクト属性の使用を選択してもよい。
備考 最も簡単なPrint-Job Requestは,あらゆる操作要求に要求される必す(須)パラメタに加えて,"attributes-charset"操作属性及び"attributes-natural-language"操作属性,"printer-uri"対象操作属性及び文書コンテンツだけから構成される。この簡単な場合には,Printerオブジェクトは,次のことを行う。
Printerオブジェクトは,クライアントにPrint-Job Responseの一部として,次の属性の集合を返さなければならない。
Unsupported Attributeの返却に関する詳細については,3.1.7を参照すること。
クライアントが供給する"ipp-attribute-fidelity"の値は,Printerオブジェクトがこのグループでどの属性を返すかに影響を与えない。"ipp-attribute-fidelity"の値は,Print-Job操作が受諾されるか又は拒否されるかだけに影響する。ジョブが受諾される場合,クライアントは,どの属性が無視されたか(すなわち,Jobオブジェクトに記憶されなかったか)及びどの属性が他の(置き換えられた)値で記憶されたかを知るために,生成応答で返された未サポート属性を要求するGet-Job-Attributes操作を使用してジョブに問い合わせてもよい。
Printerオブジェクトは,Jobオブジェクトのオプションの"number-of-intervening-jobs"属性を,オプションとして返す。Printerオブジェクトがこの属性をサポートする場合は,応答で返さなければならない。この属性が応答で返されない場合は,クライアントは,"number-of-intervening-jobs"属性がサポートされていないと仮定でき,その後のJobオブジェクトの問合せで返されることはない。
備考 Jobの状態に影響を与えるプリンタ状態情報は,"job-state"属性及び"job-state-reasons"属性に反映されるので,これらの属性だけを返せば十分であって,特別なプリンタ状態属性を返す必要はない。
備考 最も簡単な応答は,あらゆる操作応答に対して要求される必す(須)のパラメタに加えて,"attributes-charset"操作属性及び"attributes-natural-language"操作属性,並びに"job-uri", "job-id"及び"job-state"の各Job Object Attributesから構成される。この簡単な場合には,状態コードは'successful-ok'となり,"status-message"操作属性は存在しない。
このオプションの操作は,文書データ自体を含むのではなく,(グループ1における)"document-uri" (uri)操作属性を使用することによって文書データへのURI参照をクライアントが供給すること以外は,Print-Job操作(3.2.1参照)と同じとする。応答を返す前に,Printerは,URIによって暗黙的に示される検索方法(例えばhttp, ftpなど)をPrinterがサポートすることを確認し,妥当なURI構文の検査をしなければならない。client-supplied URIスキームがサポートされていない場合,すなわち,値がPrinterオブジェクトの"referenced-uri-scheme-supported"属性に存在しない場合,Printerオブジェクトは,要求を拒絶し,'client-error-uri-scheme-not-supported'状態コードを返さなければならない。
IPP Printerは,操作又はそれに続くものの一部としての文書のアクセス可能性を確認してもよい。Printerが操作応答を返す前にアクセス可能性に問題があると断定する場合は,要求を拒絶し,'client-error-document-access-error'状態コードを返す。Printerが要求を受け入れ,成功状態コードの一つをもつ応答を返した後で,アクセス可能性に問題があると断定する場合には,Printerは,'document-access-error'値を,ジョブの"job-state-reasons"属性に追加する。提案する追加検査については,実装者ガイド[IPP-IIG]を参照すること。
Printerオブジェクトがこの操作をサポートする場合,"reference-uri-schemes-supported" Printer属性をサポートしなければならない(4.4.27参照)。
URIを解釈し,そのURI文字列によって参照されるソースから文書"引き出す"のは,IPPオブジェクトの責任とする。
この必す(須)操作は,クライアントが,文書データを供給せずPrinterが資源を割り付けない(すなわち,新しいJobオブジェクトを生成しない)こと以外は,Print-Job操作(3.2.1参照)に類似する。この操作は,Validate-Job要求でクライアントによって供給される属性の如何によらず,プリンタオブジェクトの能力を検証するためだけに使用する。Validate-Job操作を使用することで,クライアントは,(文書データをもつ)同等のPrint-Job操作が受け入れられることを確認できる。Validate-Job操作は,Print-Job操作と同じセキュリティ折衝も実行する(8参照)。その結果,クライアントは,Print-Job操作を実行する前に,クライアント及びPrinterオブジェクトのセキュリティ要件を見合うものにできることを検査可能とする。
備考 同じPrint-URI操作が受諾されることを,クライアントに検査可能とするために,Validate-Job操作は,"document-uri"属性を受諾しない。これは,クライアントが, Print-URI操作を用いてデータを送信しないことによる。クライアントは,単に,Print-URI要求を発行することが望ましい。
Printerオブジェクトは,Print-Job操作と同じ状態コード,同じOperation Attributes(グループ 1)及び同じUnsupported Attributes(グループ 2)を返す。しかし,Jobオブジェクトは生成されないので,Job Object Attributes(グループ 3)は返さない。
このオプションの操作は,クライアントが,Create-Job要求において,文書データも文書データへの参照も供給しないこと以外は,Print-Job操作(3.2.1参照)に類似する。さらに,クライアントは,"document-name","document-format","compression"及び "document-natural-language"の操作属性のいずれも供給しない。この操作には,複数のSend-Document操作又はSend-URI操作が続く。これら操作要求のそれぞれにおいて,クライアントは,複数文書Jobオブジェクトでの各文書に対して,"document-name"属性,"document-format"属性及び"document-natural-language"属性をオプションで供給する。
PrinterオブジェクトがCreate-Job操作をサポートする場合,Send-Document操作もサポートしなければならず,Send-URI操作をサポートしてもよい。
Printerオブジェクトがこの操作をサポートする場合,"multiple-operation-time-out" Printer属性(4.4.31参照)をサポートしなければならない。
Printerオブジェクトがこの操作をサポートする場合,"multiple-document-jobs-supported" Printer Description属性をサポートし,複数文書ジョブをサポートするかどうかを示さなければならない。
Printerオブジェクトがこの操作をサポートし,ジョブで複数文書をサポートする場合,少なくとも一つの値をもつ"multiple-document-handling" Job Template Printer属性(4.2.4参照),並びに"multiple-document-handling-default"及び"multiple-document-handling-supported"の各Job Template Printer属性をサポートしなければならない。
Create-Job操作が完了した後,"job-state"属性の値は,たとえ文書データが到着しなくても,Print-Jobの後の"job-state"の値と似ている。Printerは,ジョブの"job-state-eason"属性の'job-data-insufficient'値を,十分なデータが到着するまでは処理を開始できないことを示すために,設定してもよいし,"job-state"を'pending'又は'pending-held'に設定してもよい。'pending'ジョブ状態を実装しないスプールしないプリンタは,処理するデータがまだ存在しなくても,"job-state"を'processing'に設定してもよい。
この必す(須)操作は,クライアントがPrinterオブジェクトの属性の値を要求することを可能にする。要求において,クライアントは,要求者が着目するPrinter属性名及び/又は属性グループ名の集合を供給する。応答において,Printerオブジェクトは,適当な属性値をもつ対応する属性の集合を返す。
Printerオブジェクトに対する属性グループの可能な名前を次に示す。
クライアントは特定の属性又は名前付けされたグループを要求してもよいので,幾つかの重複がでる可能性がある。例えば,クライアントが'printer-name'及び'all'を要求する場合,クライアントは,実際には"printer-name"属性を2回要求している。すなわち,一度は明示的に,もう一度は'all'グループに含まれることによってである。この場合,たとえ複数回の要求があっても,Printerオブジェクトは応答で属性ごとに返す必要はなく,一度だけでよい。クライアントは同じ属性を複数の方法で要求しないことが望ましい。
Printerオブジェクトがグループに属するすべての属性をサポートすることは必す(須)とはしない。(これは,幾つかの属性はオプションのためとする。)しかし,各Printerオブジェクトは,すべてのグループ名をサポートすることは必す(須)とする。
次に示す属性の集合は,Get-Printer-Attributes Requestの一部とする。
クライアントは,この属性をオプションで供給する。Printerオブジェクトは,この属性をサポートしなければならない。この属性は,Printerオブジェクトが,要求された文書フォーマットに関係するサポート済み属性値の集合をサポートするのに有用となる。Printerオブジェクトは,この文書フォーマットが供給される生成操作又はValidate-Job操作のジョブの妥当性を確認するために使用する属性及び値を返さなければならない。Printerオブジェクトは,指定されたフォーマットに対してサポートされる属性, 及び指定された文書に対してサポートされる属性値,だけを返す。文書フォーマットを指定することで,クライアントは,特定の文書フォーマットに対してサポートされない属性及び値を消去するために,Printerオブジェクトを得ることができる。例えば,Printerオブジェクトは,'application/postscript'(PostScript用)及び'text/plain'(テキスト用)の両方の文書をサポートするために,複数のインタプリタをもつかもしれない。しかし,これらインタプリタの一つの一つだけに対して,Printerオブジェクトは,'1', '2'及び'4'の値をもつ"number-up"をサポートをできるかもしれない。他のインタプリタに対しては,'1'の値の"number-up"をサポートするだけかもしれない。そこでクライアントは,生成ジョブ操作を受諾又は拒否するのに使用する属性及び値を獲得するために,Get-Printer-Attributes操作を使うことができる。
Printerオブジェクトが,生成操作及びValidate-Job操作でジョブの妥当性を確認するときに異なる文書ごとにサポート済み値の異なる集合を区別しない場合,Get-Printer-Attributes操作で異なる文書フォーマットを区別してはならない。Printerオブジェクトが,クライアントによって指定される異なる文書フォーマットごとにサポート済み値の異なる集合を区別をする場合,この特殊化は,次に示すPrinterオブジェクト属性だけに適用される。
("document-format-supported"を含む)他のすべてのPrinterオブジェクト属性の値は,クライアントが供給した文書フォーマットに関しては不変のままとする。(ただし,6.2に従い登録された新しいPrinter記述属性を除く。)
クライアントがこの"document-format"操作属性を省略する場合,Printerオブジェクトは,その属性がPrinterオブジェクトの"document-format-default"属性の値で供給されたものとして応答しなければならない。クライアントは,"document-format"に対する値を常に供給するほうがよい。これは,Printerオブジェクトの"document-format-default"が'application/octet-stream'となっているかもしれず,その場合には返される属性及び値は,Printerが自動的に検出できる文書フォーマットの合併となってしまうからである。詳細は,4.1.9の'mimeMediaType'属性構文の記述を参照すること。
クライアントが,Printerによってサポートされない,ずなわち,Printerオブジェクトの"document-format-supported"属性の中にない"document-format" Operation属性に対して値を供給する場合,Printerオブジェクトは,その操作を拒否し,'client-error-document-format-not-supported'状態コードを返さなくてはならない。
Printerオブジェクトは,Get-Printer-Attributes Responseの一部として次の集合を返す。
Unsupported Attributesの返却の詳細は,3.1.7参照すること。
応答は,クライアントが要求しIPPオブジェクトがサポートしない供給された値(属性 keywords)をもつ"requested-attributes"操作属性を含む必要はない。Printerが"requested-attributes"で参照される未サポート属性を含み,その属性が'all'などのグループ名を含む場合,その未サポート属性は,この規定で示されるが実装によってサポートされない属性を含んではならない。
この必す(須)操作は,クライアントが対象Printerオブジェクトに属するJobオブジェクトのリストを検索するのを可能にする。クライアントは,Job属性名及び/又は属性グループ名のリストを供給してもよい。Jobオブジェクト属性のグループは,返された各Jobオブジェクトに対して,返される。
この操作は,Get-Job-Attributes操作と類似している。ただし,Get-Jobs操作は,複数のオブジェクトからの属性を返す可能性があることは異なっている。(3.3.4のJob属性グループ名の記述を参照。)
クライアントは,Get-Jobs要求をPrinterオブジェクトに提出する。
次の属性のグループは,Get-Jobs Requestの一部とする。
クライアントは,この属性をオプションで供給する。Printerオブジェクトは,この属性をサポートしなければならない。この属性は,どのJobオブジェクトがPrinterオブジェクトによって返されなければならないか示す。この属性の値を,次に示す。
Printerオブジェクトは,両方の値をサポートしなければならない。しかし,実装が'completed','canceled'及び'aborted'状態でジョブを保持しない場合は,'completed'値が供給されたとき,ジョブなしと応答する。
クライアントが何か他の値を供給する場合,Printerオブジェクトは,属性及び未サポート値をUnsupported Attributes応答グループにコピーし,'client-error-attributes-or-values-not-supported'状態コードを返さなければならない。
クライアントがこの属性を供給しない場合,Printerオブジェクトは,クライアントが'not-completed'の値をもつ属性を供給したものとして応答しなければならない。
Printerオブジェクトは,要求でクライアントが供給する属性値によって定義される基準に合致する"limit"属性指定の数になるまで,すべてのJobオブジェクトを返す。文字どおりJobオブジェクトがPrinterに存在しないかもしれないし,又はクライアントが供給する基準に合致するJobオブジェクトが存在しないかもしれないので,Jobオブジェクトが返されないこともある。クライアントが何らかのJob属性を要求する場合は,各Jobオブジェクトに対して返されるJob Object Attributesの集合が存在する。
Printerが0ジョブを返すのはエラーではない。基準に合致するジョブが存在しないので応答が0ジョブを返し,基準に合致するジョブが存在すれば応答が'successful-ok'の状態コードで一つ以上のジョブを返したであろうという場合には,0ジョブの状態コードは,'successful-ok'でなければならない。
Unsupported Attributesの返却に関する詳細については,3.1.7参照すること。
応答は,クライアントが要求しIPPオブジェクトがサポートしない,供給された値(属性 keywords)をもつ"requested-attributes"操作属性を含む必要はない。Printerが"requested-attributes"で参照される未サポート属性を含み,それらの属性が'all'などのグループ名を含む場合,未サポート属性は,この規定で示されるが実装でサポートされない属性を含んではならない。
Printerオブジェクトは,Jobオブジェクト返却の度にJob Object Attributesの一つに集合をもって応答する。Printerオブジェクトは,要求するユーザがジョブを提出したユーザ(ジョブ発信ユーザ)であるか,そうでないか(8参照),によらずということを含め,サポートされていない又は実施中の安全方針で制約されている要求された属性又は値を無視する(すなわち,応答しない)。しかし,Printerオブジェクトは,安全方針に違反しない場合は,Printerオブジェクトが値を知らない(必す(須)属性を含む)あらゆるサポート済み属性に'unknown'値で応答しなければならない。4.1の最初にある"out-of-band"値の詳細を参照すること。
Jobは,次の順番で返される。
このオプションの操作は,クライアントがPrinterオブジェクトにすべてのデバイスに関するジョブをスケジューリングするのを停止することを可能にする。実装に依存して,Pause-Printer操作は,Printerに,(一般に複数個の)現ジョブの処理も停止させてもよい。現在印刷中のジョブは,実装に依存して,実装が許す限りすぐに停止するか,又は最後まで完了する。Printerオブジェクトは,そのまま,新しいジョブ生成の生成操作を受け付けなければならないが,いかなるジョブも'processing'状態に入ることは禁止しなければならない。
Pause-Printer操作がサポートされる場合,Resume-Printer操作はサポートされなければならず,その逆も成立しなければならない。
IPP Printerは,実装が許す限り即座に,'processing'状態又は'processing-stopped'状態にあったデバイス上の現ジョブを停止する。実装が停止のための適切な時間をとる場合は,IPP Printerは,'moving-to-paused'値をPrinterオブジェクトの"printer-state-reasons"属性に追加する(4.4.12参照)。デバイスすべてが停止したとき,IPP Printerは,Printerオブジェクトを'stopped'状態に移行し,存在する場合には'moving-to-paused'値を取り除き,'paused'値をPrinterオブジェクトの"printer-state-reasons"属性に追加する。
'processing'状態にあった現ジョブが完了した場合,IPP Printerは,それを'completed'状態に移行する。現'processing'状態にあったジョブが処理中に停止した場合,IPP Printerは,それを'processing-stopped'状態に移行し,'printer-stopped'値をジョブの"job-state-reasons"属性に追加する。
備考 'pending'又は'pending-held'にあるジョブに対しては,ジョブの"job-state-reasons"属性の'printer-stopped'値も適用される。しかし,IPP Printerは,これらのジョブの"job-state-reasons"属性を更新する必要はなく,これらジョブが問い合わせられた場合に'printer-stopped'値を返すことだけを必要とする。(これを,"遅延評価(lazy evaluation)"という。)
Pause-Printer操作が,IPPを用いてIPP Printerオブジェクトに提出されたジョブに影響するのと同じ方法で,IPP Printerオブジェクト以外の他のソースからデバイスに提出されたジョブに影響するかどうかは,実装依存とする。すなわち,一般管理プロトコルとしてIPPプロトコルが用いられているか, 又はIPPジョブを管理するためだけに使用されているか,に依存する。
IPP Printerは,どんな状態であってもこの要求を受け入れ,応答を返す前に,Printerを表4のとおりに示された新しい"printer-state"に遷移させなければならない。
現"printer-state" | 新"printer-state" | "printer-state-reasons" | コード及び動作 |
'idle' | 'stopped' | 'paused' | 'successful-ok' |
'processing' | 'processing' | 'moving-to-paused' | オプション 1:'successful-ok':その後,すべての出力が停止するとき,"printer-state"は,'stopped'となり,"printer-state-reasons"属性の'moving-to-paused'値は,'paused'値に置き換わる。 |
'processing' | 'stopped' | 'paused' | オプション 2:'successful-ok':すべてのデバイス出力は,直ちに停止した。 |
'stopped' | 'stopped' | 'paused' | 'successful-ok' |
アクセス権について。この操作を行う認証済みユーザ(8.3参照)は,Printerオブジェクトの操作者又は管理者でなければならない(1及び8.5参照)。そうでない場合は,IPP Printerは操作を拒否し,'client-error-forbidden','client-error-not-authenticated'又は'client-error-not-authorized'を適切に返さなければならない。
次の属性のグループは,Pause-Printer Requestの一部とする。
次の属性のグループは,Pause-Printer Responseの一部とする。
この操作は,クライアントが,Printerオブジェクトに対してその全デバイス上のジョブのスケジューリングジョブを再開させることを可能にする。Printerオブジェクトは,存在する場合には,Printerオブジェクトの"printer-state-reasons"属性から,'paused'値及び'moving-to-paused'値を取り除かなければならない。(media-jamなどの)デバイスを停止する他の理由が存在しない場合,IPP Printerは,それ自体を,処理する必要があるジョブの存在する又は存在しないに依存して,それぞれ'processing'状態又は'idle'状態へと遷移し,デバイスはジョブの処理を再開する。
Pause-Printer操作がサポートされている場合は,Resume-Printer操作もサポートされなければならなず,その逆も成立しなければならない。
IPP Printerは,そのPrinterに含まれるあらゆるジョブの"job-state-reasons"属性から,'printer-stopped'値を取り除く。
IPP Printerは,どんな状態であっても要求を受け付け,Printerオブジェクトを表5で示される新しい状態へ遷移しなければならない。
現"printer-state" | 新"printer-state" | IPP Printerの応答状態コード及び動作 |
'idle' | 'idle' | 'successful-ok' |
'processing' | 'processing' | 'successful-ok' |
'stopped' | 'processing' | 'successful-ok':処理するジョブがあるとき |
'stopped' | 'idle' | 'successful-ok':処理するジョブがないとき |
アクセス権について。この操作を行う認証済みユーザ(8.3参照)は,Printerオブジェクトの操作者又は管理者でなければならない(1及び8.5参照)。そうでない場合は,IPP Printerは操作を拒否し,'client-error-forbidden','client-error-not-authenticated'又は'client-error-not-authorized'を適切に返さなければならない。
Resume-Printer Request及びResume-Printer Responseは,Pause-Printer操作と同じ属性グループ及び属性をもつ(3.2.7.1及び3.2.7.2参照)。
このオプションの操作は,ジョブ状態に関わらず,クライアントがPrinterオブジェクトのJob Historyの中のジョブを含むすべてのジョブをIPP Printerオブジェクトから削除することを可能にする(4.3.7.1参照)。Purge-Jobs操作が行われた後,Printerオブジェクトは,それに続くGet-Job-Attributes応答及びGet-Jobs応答で,(新らしいジョブが提出されるまでは,)ジョブなしを返さなければならない。
Purge-Jobs(及びGet-Jobs)操作が,Purge-Jobs操作がIPPを用いてIPP Printerに提出されたジョブに影響するのと同じ方法で,IPP Printerオブジェクト以外の他のソースからデバイスに提出されたジョブに影響するかどうかは,実装依存とする。すなわち,一般管理プロトコルとしてIPPプロトコルが使用されているのか,又はIPPジョブを管理するだけに使用されているのか,に依存する。
備考 操作者がJob Historyを消し去ることなしにすべてのジョブをキャンセルしたい場合は,操作者は,Purge-Job操作を用いる代わりに,各ジョブごとにCancel-Jobを使用する。
Printerオブジェクトは,どんな状態であってもこの操作を受け付け,Printerオブジェクトを'idle'状態に遷移させなければならない。
アクセス権について。この操作を行う認証済みユーザ(8.3参照)は,Printerオブジェクトの操作者又は管理者でなければならない(1及び8.5参照)。そうでない場合は,IPP Printerは操作を拒否し,'client-error-forbidden','client-error-not-authenticated'又は'client-error-not-authorized'を適切に返さなければならない。
Purge-Jobs Request及びPurge-Jobs Responseは,Pause-Printer操作と同じ属性グループ及び属性をもつ(3.2.7.1及び3.2.7.2を参照)。
すべてのJob操作はJobオブジェクトに対して行なう。操作の正しい対象を特定するするために,クライアントはJobオブジェクトを特定する手段を常に提供しなければならない。ジョブの特定は単一のJob URIであってもよいし,Printer URI と Job IDとの組み合わせであってもよい。 IPP オブジェクトの実装は,すべてのジョブに対して両方の形式による特定をサポートしなければならない。
このオプション操作によって,クライアントは複数文書Jobオブジェクトを "empty"という初期状態(文書を含んでいない状態)で生成する。 Create-Job応答で,PrinterオブジェクトはJobオブジェクトのURI ("job-uri"属性)及びJobオブジェクトの32ビット識別子("job-id"属性)を返す。クライアントが追加を望む新たな文書それぞれに対して,クライアントは Send-Document操作を使用する。 それぞれのSend-Document Requestは一つの文書に対する文書データのストリーム全体を含む。
もしPrinterがこの操作をサポートするが,一つのジョブでの複数文書をサポートしない場合,Printerはデータと共に用いられる後続するSend-Document操作を拒絶し,'server-error-multiple-document-jobs-not-supported'を返さなければならない。 しかし,Printerは,"last-document"操作属性(以降を参照)の値が'true'又は'false' である最初の文書を受理しなくてはならない。その結果,クライアントは単一文書ジョブを,最初のSend-Documentで"last-document"の値を'false'として, 2番目のSend-Document(データを伴わない)で"last-document"の値を'true'として提出してもよい。
Create-Job及びそれに後続する送信操作(Send-Document又はSend-URI操作)は,特定のジョブに対して任意の長い時間間隔で発生する可能性があるので,クライアントはそのジョブに対する前回の要求の受信の後,IPP Printerが定義する最小時間間隔内で,別の送信操作を送信しなければならない。 もしPrinterオブジェクトが複数文書ジョブをサポートするならば, Printerオブジェクトは"multiple-operation-time-out"属性(4.4.31参照) をサポートしなければならない。この属性は,Printerオブジェクトが何らかの回復動作をとる前に,次回の送信操作を待つ最小の秒数を指示する。
Printerオブジェクトの"multiple-operation-time-out"属性が指定する最小時間間隔の経過後,送信操作を供給しない誤ったクライアントからIPPオブジェクトは回復しなければならない。 回復には次に示す動作を行なってもよいし,他の回復動作を行なってもよい。
a) | 当該Jobが無効ジョブだと推量し,ジョブの状態を'aborted'に変更するプ ロセスを開始し,そのジョブの"job-state-reasons"属性(4.3.8参照)に 'aborted-by-system'値を加え,そのJobに関連付けられた資源す べてを解放する。 この場合,送信操作を最終的に受信した場合,その時点 でJobオブジェクトが存在するか否かによって,Printerは "client-error-not-possible"又は"client-error-not-found"と応答する。 |
b) | 受信した最後の送信操作が実は最後の文書であったと推量し ("last-document"フラグが'true'にセットされていたかのように),Jobオ ブジェクトを閉じ,その処理に進む(Jobの状態を'pending'に移す)。 |
c) | 受信した最後の送信操作が実は最後の文書であったと推量し,Jobオブジェ クトを閉じるが,'pending-held'に移し,ジョブの"job-state-reasons"属 性(4.3.8参照)に'submission-interrupted'値を加える。 この動作は,Release-Job操作(3.3.6参照)を用いてJobを'pending'状態に 戻して処理を続行するか,Cancel-Job操作(3.3.3参照)を用いてジョブをキャ ンセルするかをユーザ又は操作者が決めることを可能にする。 |
独自の方針,文書が追加されたか否か,実装がジョブをスプールするか否か,及び/又は,他の利用可能な情報に基づいて,それぞれの実装は最適な動作を自由に決めることができる。もしJobオブジェクトを中断することを選択する場合,Jobオブジェクトがメディアシートページが印刷された時点まで処理が進んでいてもよい。
アクセス権について。この操作を行なう認証済ユーザ(8.3参照)はジョブ所有者 (Create-Job操作で決まる),操作者,又はPrinterオブジェクトの管理者(1 及び8.5参照)のいずれかでなければならない。そうでない場合は,IPPオブジェクトはその操作を拒絶し, 'client-error-forbidden', 'client-error-not-authenticated', 又は 'client-error-not-authorized'の中の適当なものを返さなければならない。
次の属性集合はSend-Document Requestの一部とする。
次の属性集合はSend-Document Responseの一部とする。
このオプション操作は,クライアントが文書データそのものではなくURI参照 ("document-uri"操作属性)を供給しなければならないという点を除いて, Send-Document操作(3.3.1参照)と同一とする。 Printerオブジェクトがこの操作をサポートする場合,既存の複数文書Jobオブジェクトに新たな文書を追加するために,クライアントはSend-URI操作又は Send-Document操作の両方を使用できる。しかし,クライアントが前回のSend-URI又はSend-Documentが最後の文書であったことを指示する必要がある場合,クライアントはSend-Document操作を,文書データがなく "last-document"フラグが 'true'にセットされた状態で ("document-uri"操作属性をもたないSend-URI操作を使用するのではなく)使用しなければならない。
Printerオブジェクトがこの操作をサポートする場合,Print-URI操作 (3.2.2参照)もサポートしなければならない。
PrinterオブジェクトはPrint-URI操作の場合と同様に,供給されたURIの構文及びURIスキームを,応答を返す前に検証しなければならない。
この必す(須)操作は,ジョブが生成された時点から,それが完了,取消し又は中断される時点までの間で,クライアントがPrint Jobを取消すことを可能にする。 Cancel-Jobを受信した時点でJobはすでに印刷されているかもしれないので,ジョブが実際に終了する前にメディアシートページが何枚か印刷されることもある。
IPPオブジェクトは,ジョブの現在の状態に基づいて要求を受理又は拒絶し,ジョブを次に示す新たな状態に移行させなければならない。
現在の"job-state" | 新たな"job-state" | IPPオブジェクトの応答状態コード及び動作 |
---|---|---|
'pending' | 'canceled' | 'successful-ok' |
'pending-held' | 'canceled' | 'successful-ok' |
'processing' | 'canceled' | 'successful-ok' |
'processing' | 'processing' | 'successful-ok' 備考1参照 |
'processing' | 'processing' | 'client-error-not-possible' 備考2参照 |
'processing-stopped' | 'canceled' | 'successful-ok' |
'processing-stopped' | 'processing-stopped' | 'successful-ok' 備考1参照 |
'processing-stopped' | 'processing-stopped' | 'client-error-not-possible' 備考2参照 |
'completed' | 'completed' | 'client-error-not-possible' |
'canceled' | 'canceled' | 'client-error-not-possible' |
'aborted' | 'aborted' | 'client-error-not-possible' |
備考1 ジョブ状態が'processing'又は 'processing-stopped'であるジョブを取消すのに,計測できる程度の時間を実装が要する場合,IPPオブジェクトはそのジョブの"job-state-reasons"属性に'processing-to-stop-point'値を加え,処理が終了した時にジョブを 'canceled'状態に移行させなければならない (4.3.8参照)。
備考2 Jobオブジェクトがすでに "job-state-reasons"属性に 'processing-to-stop-point'値をもっていれば,Printerオブジェクトは Cancel-Job操作を拒絶しなければならない。
アクセス権について。この操作を行う認証済ユーザ(8.3参照)は,ジョブ所有者,操作者又はPrinterオブジェクトの管理者のいずれかでなければならない (1.及び8.5参照)。そうでない場合,IPPオブジェクトは操作を拒絶し, 'client-error-forbidden', 'client-error-not-authenticated', 又は 'client-error-not-authorized' の適当なものを返さなければならない。
次の属性のグループはCancel-Job Requestの一部とする。
次の属性の集合はCancel-Job Responseの一部とする。
一度成功応答が送信されれば,Jobは'canceled'状態に結局は至ることを実装は保証する。Cancel-Job操作が受理された時点から,ジョブが'canceled'ジョブ状態(4.3.7参照)に至るまでの間は,"job-state-reasons"属性が 'processing-to-stop-point'値を含むことが望ましい。その値は後の問い合わせに対して,Jobは'processing'状態であるかもしれないが,結局は'completed'状態ではなく'canceled'状態に至ることを示す。
この必す(須)操作は,クライアントがJobオブジェクトの属性の値を要求することを許し,Get-Printer-Attributes操作(3.2.5参照)とほぼ同一とする。違いは,操作がPrinterオブジェクトではなくJobオブジェクトに向けられること, Jobオブジェクトに問合わせる時に"document-format"操作属性は使われないこと,及び返される属性グループはPrinterオブジェクトの属性の集合ではなく,Jobオブジェクトの属性の集合であるということになる。
Jobsの可能な属性グループの名前は次のとおりとする。
クライアントは特定の属性又は名前付きグループを要求してもよいので,ある程度の重なりがある可能性がある。例えば,クライアントが 'job-name' 及び'job-description'を要求した場合,クライアントは実際には "job-name"属性を,その名前によって明示的に一度要求し, 'job-description'グループに含まれることによってもう一度要求することになる。この場合, Printerオブジェクトは,複数回要求された属性に対して,応答の中で返す属性を一つだけに絞る必要はない。 クライアントは同一の属性を複数の方法で要求しないことが望ましい。
Jobオブジェクトは,グループに属する属性すべてをサポートする必要はない(いくつかの属性はオプションなので)。しかし,それぞれのJobオブジェクトは,グループ名すべてをサポートしなければならない。
要求がJobオブジェクトに向けられた場合,次の属性のグループは Get-Job-Attributes Requestの一部とする。
Printerオブジェクトは,次の属性の集合をGet-Job-Attributes Responseの一部として返す。
このオプション操作によって,キューの中でペンディングしているジョブをクライアントが保留にし,スケジューリングの対象から外すことを可能にする。もしHold-Job操作をサポートしていれば,Release-Job操作もサポートしなければならない。もしRelease-Job操作をサポートしていれば,Hold-Job操作サポートしなければならない。 オプションの"job-hold-until"操作属性をクライアントがサポートしていれば,ジョブを不定期間保留するのか,指定した時間だけ保留するのかを指定できる。
IPPオブジェクトは,ジョブの現在の状態に基づいて要求を受理又は拒絶し,ジョブを表7に示す新たな状態に移行させなければならない。
現在の"job-state" | 新たな"job-state" | IPPオブジェクトの応答状態コード及び動作 |
---|---|---|
'pending' | 'pending-held' | 'successful-ok' 備考1参照 |
'pending' | 'pending' | 'successful-ok' 備考2参照 |
'pending-held' | 'pending-held' | 'successful-ok' 備考1参照 |
'pending-held' | 'pending' | 'successful-ok' 備考2参照 |
'processing' | 'processing' | 'client-error-not-possible' |
'processing-stopped' | 'processing-stopped' | 'client-error-not-possible' |
'completed' | 'completed' | 'client-error-not-possible' |
'canceled' | 'canceled' | 'client-error-not-possible' |
'aborted' | 'aborted' | 'client-error-not-possible' |
備考1 ジョブが'pending-held'状態にいる複数の理由を実装がサポートしていれば,IPPオブジェクトはそのジョブの"job-state-reasons"属性に 'job-hold-until-specified'値を加えなければならない。
備考2 IPPオブジェクトが"job-hold-until"操作属性をサポートしている場合,その値として指定された時間がすでに経過していて(又は'no-hold'値をもっていて),そのジョブを保留する理由が他にないならば,IPPオブジェクトはそのジョブを 'pending'状態に移して,処理の候補とすることを即座に行わなければならない (4.2.2参照)。
備考3 Hold-Job操作を単純に保つために,ジョブが'processing'状態又は' processing-stopped' 状態にある時には,ジョブ保留要求は拒絶される。もしこれらの状態にある時にジョブ保留操作が必要とされるならば, Hold-Job操作を再定義するのではなく,新たな操作として追加されるであろう。そうすればクライアントにとって,Printerオブジェクトの "operations-supported"属性(4.4.15参照) 及びJobオブジェクトの"job-state"属性(4.3.7参照) を問い合わせることで,どの操作が可能なのかが明確になる。
アクセス権について。この操作を行う認証済ユーザ(8.3参照)は,ジョブ所有者,操作者又はPrinterオブジェクトの管理者のいずれかでなければならない (1及び8.5参照)。そうでない場合,IPPオブジェクトは操作を拒絶し, 'client-error-forbidden', 'client-error-not-authenticated', 又は 'client-error-not-authorized' の適当なものを返さなければならない。
グループ及び操作属性はCancel-Job要求(3.3.3.1参照) と同じであるが,次のGroup 1 Operation属性を追加する。
a) | すでに経過している期間を指定した値,又は 'no-hold' 値(ジョブを保留しないことを意味する)を供給し, |
b) | IPPオブジェクトが"job-hold-until"操作属性をサポートし,ジョブを 保留する他の理由がない場合には, IPPオブジェクトは操作を受理し,ジョブを処理の候補に即座にしなければ ならない(4.2.2参照)。 |
グループ及び属性はCancel-Job応答(3.3.3.2参照)と同じとする。
このオプション操作によって,クライアントは以前に保留していたジョブを解放し,再びスケジューリングの対象にすることができる。Hold-Job操作がサポートされていれば,Release-Job操作もサポートしなければならない。Release-Job操作がサポートされていれば,Hold-Job操作もサポートしなければならない。
この操作は,生成操作又は直近のHold-Job若しくはRestart-Job操作で供給されたジョブオブジェクトに対して,"job-hold-until"ジョブ属性がもし存在すれば破棄し, ジョブに対するその影響を取り除く。
IPPオブジェクトはジョブの"job-state-reasons"属性がもし存在すれば,それから'job-hold-until-specified'値を破棄しなければならない。 4.3.8を参照。
IPPオブジェクトは,ジョブの現在の状態に基づいて要求を受理又は拒絶し,ジョブを表8に示す新たな状態に移行させなければならない。
現在の"job-state" | 新たな"job-state" | IPPオブジェクトの応答状態コード及び動作 |
---|---|---|
'pending' | 'pending' | 'successful-ok' ジョブに影響しない |
'pending-held' | 'pending-held' | successful-ok' 備考1参照 |
'pending-held' | 'pending' | successful-ok' |
'processing' | 'processing' | 'successful-ok' ジョブに影響しない |
'processing-stopped' | 'processing-stopped' | 'successful-ok' ジョブに影響しない |
'completed' | 'completed' | 'client-error-not-possible' |
'canceled' | 'canceled' | 'client-error-not-possible' |
'aborted' | 'aborted' | 'client-error-not-possible' |
備考1 'resources-are-not-ready'のとおり,ジョブを'pending-held'状態に留める他の理由があれば,ジョブは'pending-held'状態に留まる。したがって 'pending-held'状態は,'job-hold-until'が適用されたジョブに対してだけではなく,'resources-are-not-ready'のとおりジョブをスケジューリング及び処理の候補から外す任意の理由のためのものとする。"job-hold-until"属性 (4.2.2)を参照のこと。
アクセス権について。この操作を行う認証済ユーザ(8.3参照)は,ジョブ所有者,操作者又はPrinterオブジェクトの管理者のいずれかでなければならない (1及び8.5参照)。そうでない場合,IPPオブジェクトは操作を拒絶し, 'client-error-forbidden', 'client-error-not-authenticated', 又は 'client-error-not-authorized' の適当なものを返さなければならない。
Release-Job Request 及び Release-Job Response は,Cancel-Job操作 (3.3.3.1及び3.3.3.2参照) と同じ属性グループ及び属性をもつ。
このオプション操作によって,処理が完了した後,キューに保管されていたジョブをクライアントが再始動できる(4.3.7.1参照)。
ジョブは'pending'ジョブ状態に移り,同じIPP Printerオブジェクトの上で同じ属性値で再始動する。"job-impressions-completed", "job-media-sheets-completed", 及び"job-k-octets-processed"などのジョブの進行を計算するJob Description属性は0にリセットされるので,再始動の時点からジョブの正確な記録を与える。ジョブオブジェクトは同じ "job-uri"及び "job-id"属性値を使い続けなければならない。
備考 ジョブの進捗属性をリセットしない操作が将来もし必要になれば,ジョブの複製を作成し,その複製に新たな "job-uri"及び"job-id"を割り当て,複製のジョブの進捗属性だけをリセットする新たな操作が定義されるだろう。
IPPオブジェクトは,ジョブの現在の状態に基づいて要求を受理又は拒絶し,ジョブを表9に示す新たな状態に移行させなければならない。
現在の"job-state" | 新たな"job-state" | IPPオブジェクトの応答状態コード及び動作 |
---|---|---|
'pending' | 'pending' | 'client-error-not-possible' |
'pending-held' | 'pending-held' | 'client-error-not-possible' |
'processing' | 'processing' | 'client-error-not-possible' |
'processing-stopped' | 'processing-stopped' | 'client-error-not-possible' |
'completed' | 'pending' | 'successful-ok' ジョブは開始済 |
'completed' | 'completed' | 'client-error-not-possible'備考1参照 |
'canceled' | 'pending' | 'successful-ok' ジョブは開始済 |
'canceled' | 'canceled' | 'client-error-not-possible'備考1参照 |
'aborted' | 'pending' | 'successful-ok'ジョブは開始済 |
'aborted' | 'aborted' | 'client-error-not-possible'備考1参照 |
備考1 この状態のジョブのJob Retention Periodが満了していれば,IPPオブジェクトは操作を拒絶する。4.3.7.1を参照。
備考2 ユーザが不注意に途中でジョブを再始動しないように,ジョブが 'processing'状態又は'processing-stopped'状態にある時はRestart-Job 要求は拒絶される。これらの状態にある時にジョブを保留又は再始動する操作が将来もし必要になれば,Restart-Job操作を再定義するのではなく,新たな操作が追加され,ユーザが現在のジョブを完了させない意図をもつことが明確にされるであろう。
アクセス権について。この操作を行う認証済ユーザ(8.3参照)は,ジョブ所有者,操作者又はPrinterオブジェクトの管理者のいずれかでなければならない (1及び8.5参照)。そうでない場合,IPPオブジェクトは操作を拒絶し, 'client-error-forbidden', 'client-error-not-authenticated', 又は 'client-error-not-authorized' の適当なものを返さなければならない。
グループ及び属性はCancel-Job要求(3.3.3.1参照) と同じとするが,次のGroup 1 Operation属性を追加する。
クライアントはこの属性を供給してもよい。IPPオブジェクトは,生成操作で"job-hold-until" Job Template属性をサポートするならば,Restart-Job要求でこのOperation属性をサポートしなければならない。 4.2.2を参照のこと。そうでなければIPPオブジェクトは, Restart-Job要求で "job-hold-until" Operation 属性をサポートする必要はない。
Printerの"job-hold-until-supported"属性が供給及びサポートされていれ ば,IPPオブジェクトは供給された操作属性をJobオブジェクトにコピーし, もし存在すればジョブの古い"job-hold-until"属性を置換し,供給された 名前付き期間の間,ジョブをスケジューリングの候補とする。 4.2.2を参照。
"job-hold-until"属性が供給されても, 供給された値がサポートされてい ない場合,IPPオブジェクトは要求を受理し,3.1.7にしたがって Unsupported Attributes Groupの中にサポートしない属性又は値を返し, 'successful-ok-ignored-or-substituted-attribute'状態コードを返し,ク ライアントが引き続きRelease-Job操作を行うまでジョブを不定期間保留す る。
"job-hold-until"属性が供給されても, "job-hold-until" Operation 属 性そのものがサポートされていない場合,IPPオブジェクトは要求を受理し, 3.1.7にしたがってUnsupported Attributes Groupの中で範囲外の 'unsupported'値を返し, 'successful-ok-ignored-or-substituted-attribute'状態コードを返し, ジョブを再始動する。つまり"job-hold-until" 属性を無視する。
もしクライアントが,
a) | すでに開始している期間を指定した値,又は 'no-hold' 値(ジョブを保留しないことを意味する)を供給し, |
b) | IPPオブジェクトが"job-hold-until"操作属性をサポートし,ジョブを 保留する他の理由がない場合には, |
IPPオブジェクトはジョブを即座に処理の候補にする(4.2.2参照)。
クライアントが "job-hold-until" 操作属性を要求で供給しない場合, IPPオブジェクトは "job-hold-until" 属性がもし存在すればジョブから除 去する。ジョブを保留する他の理由がない場合には,Restart-Job操作が ジョブを即座に処理の候補にする(4.2.2参照)。
グループ及び属性はCancel-Job応答(3.3.3.2参照)と同じとする。
備考 将来,オプションのModify-Job操作が指定され,再始動したジョブを起動する前に他の属性をクライアントが修正可能になるかもしれない。
IPPモデルの一部である属性を対応する属性構文及び値と共に4.で定義する。オブジェクト及びそれに関連する,このプロトコルの適用範囲に含まれる属性を 4.で規定する。これらの属性の多くは,他の関連する規定に由来する:
この文書では,それぞれの属性は,属性の名前である "keyword" (附属書A.2.1参照)を用いて一意に特定する。キーワードはその属性を記述する節の見出しに含まれる。
備考 キーワードは属性を特定するために使われるだけでなく,次に記述する属性構文の一つが"keyword"であり,キーワード値をもつ属性はいくつか存在する。したがって,これらの属性はキーワードの集合である属性構文をもつと定義される。
すべてのクライアント及びIPPオブジェクトがそれぞれ応答中及び要求中で受理しなければならない基本属性構文型を4.1で定義する。3.及び3.3.5のそれぞれの属性記述は,見出しに(括弧で括って)属性構文の名前を含む。属性の適合実装は,属性構文のセマンティクスを指定どおりに含まなければならない。6.3では新たな属性構文でプロトコルを拡張する方法を記述する。
属性構文は4.1の箇条で,属性構文のキーワード名を単一引用符で囲んだものを見出しとして規定する。操作要求及び応答でそれぞれの属性値は,その属性に対する箇条の見出しで指定された属性構文の一つとして表現しなければならない。さらに応答中の属性値(要求中ではない)は,特別な符合化規則が"Encoding and Transport"規定[IPP-PRO]で定義された,"範囲外"("out-of-band")の値の一つでもよい。標準的な範囲外の値を次に示す。
要求中の属性はすべて,4.2〜4.4で定義する1つ以上の値をもたなければならない。クライアントは"out-of-band"値を属性に供給してはならない。応答中の属性はすべて,4.2〜4.4で定義する1つ以上の値,又は,単一の "out-of-band"値をもたなければならない。
大部分の属性は単一の属性構文をもつ。しかし,少数の属性(例えば, "job-sheet", "media", "job-hold-until") は値に依存するいくつかの属性構文をもつ。これら複数の属性構文は,選択を示すために箇条の見出しの中で "|"文字で区切られている。それぞれの値は,このプロトコルの属性構文に従ってタグ付けしなければならないので,単一値の属性インスタンスはその可能な属性構文の任意の一つをもってよいし,複数値の属性インスタンスはその可能な属性構文の混合をもってもよい。
テキスト属性とは,最大で1023('MAX') オクテットに符号化された0個以上の文字の列を値としてもつ属性とする。MAXは任意のテキスト属性のそれぞれの値の最大長とする。しかしある属性が,MAXより大幅に短い長さの値しか含まない場合は,その属性の値の最大長を定義する修飾子を含んでもよい。例えば, "printer-location"属性が"printer-location(text(127))"と定義される。この場合,"printer-location"のテキスト値は127オクテットを超えてはならない。もし外部インタフェースから(プロトコル以外から)より長いテキスト列が供給された場合,実装はテキスト列をこの長さの上限値に切り詰めてよい。
この規定では,テキスト属性はすべて 'text'構文を使って定義する。しかし 'text'は単に簡潔さのためだけに使う。'text'の公式な解釈は 'textWithoutLanguage | textWithLanguage'とする。'text'属性構文を用いてこの規定で定義されている任意の属性のために,すべてのIPPオブジェクト及びクライアントは'textWithoutLanguage'及び'textWithLanguage'属性構文の両方をサポートしなければならない。しかし実際の使用及びプロトコルの実行では,オブジェクト及びクライアントは一つの属性につき二つの構文のうちの一方だけを受理及び返信する。構文'text'は"on-the-wire"には決して出現しない。
'textWithoutLanguage' 及び 'textWithLanguage' は両方とも,人のコミュニケーションの基盤として,異なった自然言語を用いているサイト及びシステムの間での相互運用性を実際に確保したいという要求をサポートするために必要である。一般に,ある一つの要求又は応答中のすべてのテキスト属性で一つの資源言語が使われる。その言語は,3.1.4の"attributes-natural-language"操作属性,又は 4.3.18で定義する"attributes-natural-language"ジョブ属性で指示される。値に値をという原則でそれぞれのテキスト列で自然言語を特定する必要はない。これらの場合,属性構文'textWithoutLanguage'がテキスト属性に使用される。他の場合,要求または応答中で残りのテキスト値とは異なる自然言語によるテキスト値をクライアントが供給するか,又はPrinterオブジェクトが返す必要がある。この場合,クライアント又はPrinterオブジェクトは属性構文 'textWithLanguage'をテキスト属性に使用する(これは3.1.4で記述するNatural Language Override機構である)。
'textWithoutLanguage' 及び 'textWithLanguage' 属性構文は以降の節でより詳しく記述する。
'textWithoutLanguage'構文は,0個以上の文字の列である値を指す。テキスト列はいくつかのcharsetの規則を用いて符号化される。Printerオブジェクトは UTF-8 charset [RFC2279]をサポートする必要があり, IANA [IANA-CS]に登録されていれば他のcharsetも 'text'値を表現するためにサポートしてよい。 'charset'属性構文の規定(制限されたセマンティクス及びcharsetの例を含む) は4.1.7を参照のこと。
'textWithLanguage'属性構文は, 次の二つの部分からなる複合属性構文とする。一つは'textWithoutLanguage'部で,もう一つは自然言語を強制的に上書きする付加的な'naturalLanguage'(4.1.8参照)部とする。 'naturalLanguage'部は値のテキスト部分だけに適用される。任意のテキスト属性について,'textWithoutLanguage'部はその属性に定義された最大長に限定されるが,'naturalLanguage'部は常に63オクテットに限定される。通常の'textWithoutLanguage'構文ではなく'textWithLanguage'属性構文を使うことはNatural Language Override機構と呼ばれ,すべてのIPPオブジェクト及びクライアントがサポートしなければならない。
もし属性が複数値 (1setOf text)であれば,自然言語を上書きする必要のある属性値それぞれに対して,'textWithLanguage' 属性構文を使用しなければならない。要求又は応答中の複数値の'text'属性の他の値は,操作属性の自然言語になる。
生成要求では,Printerオブジェクトは, "attributes-natural-language"操作属性の任意の自然言語( Printerオブジェクトがその自然言語をサポートしていてもいなくても)を受理しJobオブジェクトに保存しなければならない。さらにPrinterオブジェクトは,任意の'textWithLanguage'属性値を,Printerオブジェクトがその自然言語をサポートしていてもいなくても受理及び保存しなければならない。これらの要求事項は,クライアントが適用してもよい "ipp-attribute-fidelity"操作属性の値とは独立とする。
例 もしクライアントが"attributes-natural-language"操作属性に'en'値を供給して英語を指示しても,"job-name"属性の値がフランス語であれば,クライアントは'textWithLanguage'属性構文に次の2つの値を使用しなければならない。
'textWithLanguage'属性構文の詳細な例は, "Encoding and Transport"文書[IPP-PRO]を参照すること。
この構文型は,例えばPrinter名のように,人にとって識別子より意味があるユーザになじみの深い文字列に使われる。名前は他の自然言語には決して翻訳されない。'name'属性構文は本質的には'text'と同じで,UTF-8のサポートも必須とする。ただし'name'では,符号化された形式で255 (MAX)オクテットを超えてはならないという点が異なる。
'text'と同様に,'name'も実際には'nameWithoutLanguage' 又は 'nameWithLanguage'を指す省略記法とする。つまりすべてのIPPオブジェクト及びクライアントは'nameWithoutLanguage'及び'nameWithLanguage'属性構文をサポートしなければならない。しかし実際の使用及びプロトコルの実行では,オブジェクト及びクライアントは一つの属性につき二つの構文のうちの一方だけを受理及び返信する。構文'name'は"on-the-wire"には決して出現しない。
備考 'text' 及び 'name' 属性構文だけが Natural Language Override機構を許す。
いくつかの属性は'type3 keyword | name'と定義される。これらの属性はtype3 keywordまたはnameのいずれかの値をサポートする。この二重構文機構は,サイト管理者がこれらの属性を拡張して,サイト管理者がローカルに定義した値を合法的に含めることを可能にする。この名前は, IANAには登録されない。
'nameWithoutLanguage'構文は0個以上の文字の列である値を指す。文字の列の長 さは,符号化された形式でMAXオクテットを超えてはならない。
'nameWithLanguage'属性構文は, 次の二つの部分からなる複合属性構文とする。一つは'nameWithoutLanguage'部で,もう一つは自然言語を強制的に上書きする付加的な'naturalLanguage'(4.1.8参照)部とする。 'naturalLanguage'部はname値だけに適用される自然言語を明示的に特定する。
'nameWithLanguage'属性構文は'textWithLanguage' 構文と同様に振る舞う。もしある言語で表現された名前がオブジェクト又は操作の他の部分と異なるならば,共通の'nameWithoutLanguage'構文ではなく,'nameWithLanguage'構文を用いる。
例 もしクライアントが"attributes-natural-language"操作属性に'en'値を供給して英語を指示しても,"printer-name"属性の値がドイツ語であれば,クライアントは'nameWithLanguage'属性構文を次のとおりに使用しなければならない。
ジョブ検証(クライアントが属性"xxx"に供給した値が,Printerオブジェクトの対応する属性"xxx-supported"の値の一つであるか調べること)のとおりに,二つの'name'属性値がマッチするかどうかを調べるには,次のマッチ規則を適用する。
a) | 'keyword' 値は 'name' 値には決してマッチしない。 | ||||
b) | 'name' (nameWithoutLanguage 及び nameWithLanguage) 値は, (1)
名前部がマッチし,かつ(2) Associated Natural-Language部 (3.1.4.1参照)がマッチする場合にマッチする。マッチ規則は次のとおりとする。
|
'keyword' 属性構文は文字の列で,長さは1から255の間,US-ASCII [ASCII]で符号化された小文字("a" - "z"),数字("0" - "9"),ハイフン("-"),ドット ("."),及び下線("_")だけを含むものとする。最初の文字は小文字でなければならない。さらに,キーワードはアメリカ英語でなければならない。
この構文型は,抽象プロトコルの中の実体,つまりこの文書で特定される実体のセマンティクス的な識別子を列挙するのに使う。 キーワードは属性名及び属性の値として使用する。'text'及び'name'属性値とは異なり,'keyword'値は常に US-ASCII及びアメリカ英語を使わなければならないので,Natural Language Override機構を使ってはならない。
キーワードはプロトコルで使われる。ユーザインタフェースが,プロトコルのキーワードと,ユーザになじみの深い単語や句(ユーザの自然言語で表現される)との変換を行なうことになるであろう。ユーザインタフェースはこの文書の適用範囲外なので,この文書で指定したキーワードをアメリカ英語を使用するユーザに表示してもよいし,アメリカ英語の他の単語に変換してもよい。
この構文型のそれぞれの属性の定義で,その属性に対して定義されたキーワード値がすべて列挙される。
キーワードが属性(の名前)を表現するために使われるとき,そのキーワードはすべてのIPPオブジェクト及び属性のなかで一意でなければならない。キーワードが属性の値を表現するために使われるとき,そのキーワードはその属性の中で一意でなければならない。つまり,一つの属性の中で,2つの異なった意味を表現するために同じキーワードを2つの値として使ってはならない。しかし,2つ以上の属性にまたがって,それぞれの属性で別の意味を表現するために同じキーワードを使ってもよい。6.1で,新たなキーワード値でプロトコルを拡張する方法を記述する。属性名キーワードの例を次に示す。
備考 この規定では"type1","type2"及び"type3"接頭辞を"keyword" 基本構文に冠して,拡張のためのレビューの異なった水準を指示している(6.1参照)。
'enum' 属性構文は,1〜2**31-1(最大値)の範囲にある列挙型整数値とする。各値は,関連する'keyword'名をもつ。この構文型の各属性の定義に,その属性のための可能な値の完全なセットがリストされる。この構文型は,SNMP MIBなどの他の規定によって割り当てられた列挙値のための属性に使用され,この規定のかなりの属性列挙値は,他の規定[RFC1759]の対応する属性にも使用されている。この構文型は,管理者が値を割り当ててよい属性には使用されない。6.1では,いかにプロトコルが新しい列挙値にて拡張されるかを記述する。
列挙値は,プロトコルで使用する。ユーザインタフェースは,プロトコルの列挙値とユーザの自然言語に現地対応された表示可能なユーザに親和性のある単語及び語句との対応付けを提供する。この規定で指定される列挙シンボルは,自然言語がアメリカ英語であるユーザに表示されてよいが,ユーザインタフェースはこの規定の適用範囲外であるので,アメリカ英語ユーザのために他のアメリカ英単語にマップされてもよい。
備考1 SNMP MIBは,IPPの"out-of-band"値の'unknown'に対応する'2'を'unknown'に使用する。4.1の冒頭の"out-of-band"値の記述を参照。それゆえ,型'enum'の属性は'3'から始まる。
備考2 この規定は,拡張のための異なるレベルの審議を示すために,"enum"の基本構文に "type1","type2"及び"type3"の接頭辞を使用する(6.1参照)。
'uri'の属性構文は,何か有効なUniform Resource Identifier 又はURI [RFC2396]とする。たいていの場合, URIは単にUniform Resource Locator 又はURLとする。 IPP属性の値として使われるURIの最大長は,1023オクテットとする。ほとんどのIPP属性の構文型は,小文字の値だけ使用できる,この属性の構文型は,[RFC2396]で指定する大文字・小文字を区別する規則及び大文字・小文字を区別しない規則に適合する。URIに関しては,[IPP-IIG]参照。
'uriScheme'の属性構文は,RFC 2396 [RFC2396]に従って, URIスキームを示す文字の列とする。 RFC 2396は,値は大文字・小文字を区別しないことを要求しているが,IPP は,IPPクライアント及びPrinterオブジェクトによって,比較することを単純化するために,すべての小文字による値をIPP属性に要求している。この構文型の標準値は,次のキーワードとする。
Printerオブジェクトは,IANA [IANA-MT] に登録されているどんなURI 'scheme'をもサポートしてよい。 IPP属性値を示すのに使用されるURI 'scheme'値の最大長は,63オクテットとする。
'charset'の属性構文は,charsetの標準識別子とする。charsetとは,符号化された文字セット及び符号化スキームとする。charsetは,ある特定の文書の内容並びに 'text'及び'name'の属性値にラベル付けするに使用される。この属性構文の構文及びセマンティックスはRFC 2046 [RFC2046]で記述され, IANA手順[RFC2278]に従って,IANA character-set Registry[IANA-CS]に含まれる。 RFC 2046は,値が大文字・小文字を区別しないUS-ASCIIであることを要求しているが, IPPは,IPPクライアント及びPrinterオブジェクトによって,比較することを単純化するために,すべての小文字による値をIPP属性に要求している。 IPPはIANAレジストリ内の文字セットが一つより多くの名前(別名)をもつ場合, "(preferred MIME name)"とラベルされた名前が存在する場合,その名前を使用しなければならない。
IPP属性を示すに使用する'charset'値の最大長は,63オクテットとする。
例
幾つかの属性の記述は,使用されるかもしれないcharset値に,サポートされなくてはならない必す(須)の値,又はcharsetがUS-ASCIIをサブセットcharsetにする条件などの追加制限を加わえてもよい。
'naturalLanguage'の属性構文は,自然言語,及びオプションとして国の標準識別子である。この構文型の値は,RFC 1766 [RFC1766] によって定義されている。RFC 1766は,値が大文字・小文字を区別しないUS-ASCIIであることを要求しているが,IPPは,IPPクライアント及びPrinterオブジェクトによって,比較することを単純化するために,すべての小文字による値をIPP属性に要求している。
例
IPP属性を示すに使用する'naturalLanguage'値の最大長は,63オクテットとする。
'mimeMediaType'の属性構文は,RFC 2046 [RFC2046] で定義されるInternet Media Type (MIME型ともいう)であり,文書フォーマットを識別するRFC 2048 [RFC2048]の手順に従って登録されている。値は,IANA Registry[IANA-MT]のMedia Typeの仕様によって, charsetパラメタを含んでもよい。ほとんどの他のIPP構文型は小文字の値だけ認められているが,この構文型は大文字・小文字を区別しない大文字・小文字混在の値を認めている。
例
一つの特別の型は,'application/octet-stream'とする。Printerオブジェクトがこの値をサポートする場合,Printerオブジェクトは文書データのフォーマットを生成操作の一部としてか,及び/又は文書処理時間に自動検知できなければならない。自動検知の間に,Printerは認識できないフォーマットの文書データがあるかを決定してよい。操作応答を返す前にこの問題を決定する場合,Printerは要求を拒否し,'client-error- document-format-not-supported'の状態コードを返す。要求を受付け後,及び成功の状態コードの一つである操作応答を返した後にこの問題を決定する場合,Printerは 'unsupported-document-format'の値をジョブの"job-state-reasons"の属性に加える。
Printerオブジェクトのデフォルト値の属性"document-format-default"が 'application/octet-stream'に設定されている場合,Printerオブジェクトは文書フォーマットの自動検知のサポートだけではなく,クライアントが"document-format"の属性を供給しないとき,自動検知の結果を頼る。クライアントが,文書フォーマット値を供給する場合,プリンタは自動検知アルゴリズムを信用するのではなく,供給された属性を頼らなければならない。要約すると,
a) | クライアントが文書フォーマット値を供給しない場合,Printerはデフォルト値の設定(自動検知機構を示す'application/octet-stream'等)に頼らなければならない。 |
b) | クライアントが'application/octet-stream'以外の値を供給する場合,クライアントは文書データのフォーマットに関する有効な情報を供給していて,Printerオブジェクトは自動フォーマット検出機構の結果よりもクライアントが供給した値を信用しなければならない。例えば,クライアントは'text/plain'文書として,PostScriptファイルの印刷を要求しているかもしれない。Printerオブジェクトは,PostScriptコマンドのストリームを解釈して,結果を印刷するのではなく,PostScriptコマンドのテキスト表現を印刷しなければならない。 |
c) | クライアントが'application/octet-stream'の値を供給する場合,Printerオブジェクトは,自動検知がPrinterオブジェクトのデフォルトであるか否かに関らず,クライアントが供給した文書データに対して,自動検知機構を使用しなくてはいけないことを示している。 |
備考 自動検知アルゴリズムは確率的であるので,クライアントが自動検知("document- format"を'application/octet-stream'に設定)及び真の忠実度("ipp-attribute-fidelity" を'true'に設定)の両方を要求した場合,Printerオブジェクトはエンドユーザが意図していたことを正しく保証できないかもしれないが(自動検知アルゴリズムは文書フォーマットを間違いてしまうことも有り得る),自動検知機構の使用を保証することはできる。
IPP属性値を示す'mimeMediaType'値の最大長は,255オクテットとする。
'octetString'の属性構文は,octetString(MAX)の表記を使うsub-sectionのヘッダに示される最大1023オクテットで符号化されるオクテットの列とする。この構文タイプは不透明なデータに使用される。
'boolean'属性は,二つの値,'true(真)'及び'false(偽)'だけとする。
'integer'の属性構文は,-2**31 (最小値)〜2**31-1 (最大値)の範囲にある整数値とする。各個々の属性は,範囲が可能な整数値のすべての範囲と異なる場合,sub-sectionのヘッダで明確に範囲制約を指定できる。例えば,"job-priority"属性に対してのjob- priority(integer(1:100))。しかし,その追加制約の実施は,IPPオブジェクトによるものであり,プロトコルの問題ではない。
'rangeOfInteger'の属性は,整数値の包含した範囲を定義する規則正しい一対の整数である。最初の整数は下限を指定し,次の整数は上限を指定する。この規定では,属性構文が 'rangeOfInteger'である属性のヘッダ記述で範囲制約が指定されている場合(例えば, 'X:Y'では,Xは最小値で,Yは最大値である),制約は両方とも整数値を適用する。
'dateTime'の属性構文は,RFC 1903 [RFC1903] で定義する"DateAndTime"構文の規定で固定長の11オクテットの表現とする。 RFC 1903は,"DateAndTime"値の8オクテット表現をも識別するが,IPPオブジェクトは,11オクテット表現を使用しなければならない。ユーザインタフェースは,プロトコルのdateTime値と, ユーザのデータフォーマット及び自然言語に現地対応化された表示可能なユーザ親和性のある単語又は提示値及び語句との間の対応付けを提供する。
'resolution'の属性構文は,表示ユニットでの2次元の解像度を指定する。これは,三つの値から構成される:主走査方向の解像度(正の整数値),副走査方向の解像度(正の整数値),及びユニットの値。この三つの構成要素のセマンティクスは,Printer MIB[RFC1759]の推奨値から引用される。すなわち,主走査方向の解像度構成要素は,Printer MIBのprtMarkerAddressabilityXFeedDirオブジェクトと同じで,副走査方向の構成要素はPrinter MIBのprtMarkerAddressabilityFeedDirと同じで,ユニットの構成要素は Printer MIBのprtMarkerAddressabilityUnitオブジェクトと同じである('3'はインチあたりのドット数,'4'はセンチメートル当りのドット数を示す)。すべての3つの値は,最初の二つの値が同じであるとしても,示されなければならない。例えば:'300', '600', '3' は,'3'はインチ当りのドット数(dpi)を示すので,300 dpiは 主走査方向の解像度, 600 dpiは 副走査方向の解像度となる。
'1setOf X'属性構文は,属性構文型Xの一つ以上の値とする。この構文型は,多重値属性のために使用する。構文型の名称は,単に'setOf'ではなくて,むしろ'1setOf'とする。これは,値の集合が,空 (すなわち,大きさ0の集合)であってはならないことを示すためとする。集合は,通常は順序付けられでいない。しかし,この型の各属性記述は,その値がその属性に対する特定の順序をもっていなければならないことを指定するかもしれない。
Job Template属性は,ジョブ処理の振る舞いを記述する。 PrinterオブジェクトによるJob Template属性のサポートは,オプションとする。 (オプション属性に対するサポートの記述は,附属書A.2.3 を参照。) クライアントは,生成要求におけるJob Template属性をオプションとして供給する。
Job Template属性は,"xxx"と呼ぶ各Job Template属性に対して,次の規則に適合する。
a) | Printerオブジェクトが"xxx"をサポートする場合,"xxx-default"属性及び
"xxx-supported"属性の両方をサポートしなければならない。ただし,"xxx-default"属性のサポートは,表4.2.1
において"No"が存在しない場合とする。 Printerオブジェクトが"xxx"をサポートしない場合,"xxx-default"属性も
"xxx-supported"属性もサポートしてはならないし,クライアントによって供給される属性"xxx"
を未サポートとして処理しなければならない。属性"xxx"は,ある文書フォーマットに対してサポートされるかもしれないし,他の文書フォーマットに対してはサポートされないかもしれない。例えば,Printerオブジェクトは,('text/plain','text/html'などの)
ある文書フォーマットだけに対して"orientation-requested"をサポートし,
('application/postscript'などの)他の文書フォーマットに対してはサポートしない。 |
b) | "xxx"は,生成要求においてクライアントによってオプションとして供給される。
"xxx"が提供される場合,クライアントは,このJobのための望ましいジョブ処理の振る舞いを指示している。
"xxx"が提供されない場合,文書内容がxxxに関係する振る舞いを指示する埋め込まれた命令を含まなければ,クライアントは,ジョブ処理時にデフォルトのジョブ処理振る舞いを適用する。
備考 管理者は,Jobオブジェクトを提供した後でそれが処理される前に,デフォルト値属性を変更してもよいので,ジョブ処理時におけるPrinterオブジェクトが使用するデフォルト値は,ジョブ提供時に有効であったデフォルト値と異なってもよい。 |
c) | "xxx-supported"属性は,Printerオブジェクトがどのジョブ処理振る舞いをサポートしているかを記述するPrinterオブジェクト属性とする。クライアントは,"xxx-supported"属性の返却値を検査することで,
xxxに関係するどの振る舞いがサポートされているかを知るために, Printerオブジェクトに問い合わせることができる。 備考 "xxx" Job Template属性が複数形("finishings","sides"など)ではない場合, "xxx-supported"属性は通常"job-sheet-supported"などの二つ以上の値をもつが,各"xxx-supported"属性名における"xxx"は,単数形とする。 "xxx" Job Template属性が複数形の場合,"xxx-supported"属性名は,"finishings-supported", "sides-supported"などとなる。 |
d) | "xxx-default"デフォルト値属性は,クライアントが他のジョブ処理情報を供給しない場合,ジョブ処理時に何をするかを記述する。ここで,クライアントがジョブ処理情報を提供する方法は,生成要求の中のIPP属性として明示的,又は文書データ内の埋め込まれた命令として暗黙的のいずれかとする。 |
アプリケーションが,そこから選択するサポート済み値のリストを末端ユーザに提供しようとする場合,サポート済み値属性に対してPrinterオブジェクトに問い合わせることが望ましい。アプリケーションは,デフォルト値属性も問い合わせるほうがよい。アプリケーションが選択可能な値をサポート済み値だけに制限する場合,生成要求の中でクライアントが供給する値がすべて, Printerにおいてサポート済み値の集合内に入ることを,アプリケーションは保証できる。 Printerに問い合わせる場合,クライアントは, Get-Printer-Attributes要求の中で名前によって各属性を列挙してもよいし,単に,サポート済み属性の完全な集合(サポート済み属性及びデフォルト属性の両方)を得るために, "job-template"グループに名前を付けてもよい。
"finishings"属性は,Job Template属性の例とする。これは,'staple','punch'及び/又は 'cover'の値の集合上で値を取ることができる。クライアントは,"finishings-supported" 属性及び"finishings-default"属性についてPrinterオブジェクトに問合せできる。サポート済み属性は,サポート済み値の集合を含む。クライアントが生成要求において "finishings"属性を供給せず,文書が対応する仕上げ命令を含まない場合,デフォルト値属性は,新しいJobのために使用する仕上げ値を含む。クライアントが生成要求において "finishings"属性を供給する場合,IPPオブジェクトは,その値の有効性を確認し,その値が, Printerオブジェクトの "finishings-supported"属性で識別されるサポート済み値の部分集合となることを確実にする。 3.1.7を参照。
表10に,Job Template属性に対する名前及び関係を示す。 ("Job属性"とラベル付けされた)表の最初の欄は,Jobオブジェクトにおける各 Job Template属性に対する名前及び構文を示す。これらは,生成要求においてクライアントがオプションで供給可能な属性とする。("Printer: デフォルト値属性"及び "Printer: サポート済み値属性"とラベル付けされた)残りの二つの欄は,Printerオブジェクトにおける各Job Template属性(デフォルト値属性及びサポート済み値属性)に対する名前及び構文を示す。表における"No"は,Printerがその属性をサポートしてはならないこと (すなわち,その属性は単に適用可能ではないこと)を意味する。簡単のために,表10では,'text'及び'name'のエントリは,各属性に対する最大長を示さない。
Job属性 | Printer:デフォルト値属性 | Printer:サポート済み値属性 |
job-priority (integer 1:100) |
job-priority-default (integer 1:100) |
job-priority-supported (integer 1:100) |
job-hold-until (type3 keyword | name) |
job-hold-until-default (type3 keyword | name) |
job-hold-until-supported (1setOf (type3 keyword | name)) |
job-sheets (type3 keyword | name) |
job-sheets-default (type3 keyword | name) |
job-sheets-supported (1setOf (type3 keyword | name)) |
multiple-document-handling (type2 keyword) |
multiple-document-handling-default (type2 keyword) |
multiple-document-handling-supported (1setOf type2 keyword) |
copies (integer (1:MAX)) |
copies-default (integer (1:MAX)) |
copies-supported (rangeOfInteger (1:MAX)) |
finishings (1setOf type2 enum) |
finishings-default (1setOf type2 enum) |
finishings-supported (1setOf type2 enum) |
page-ranges (1setOf rangeOfInteger (1:MAX)) |
No | page-ranges-supported (boolean) |
sides (type2 keyword) |
sides-default (type2 keyword) |
sides-supported (1setOf type2 keyword) |
number-up (integer (1:MAX)) |
number-up-default (integer (1:MAX)) |
number-up-supported (1setOf integer (1:MAX) | rangeOfInteger (1:MAX)) |
orientation-requested (type2 enum) |
orientation-requested-default (type2 enum) |
orientation-requested-supported (1setOf type2 enum) |
media (type3 keyword | name) |
media-default (type3 keyword | name) |
media-supported (1setOf ( type3 keyword | name)) media-ready (1setOf ( type3 keyword | name)) |
printer-resolution (resolution) |
printer-resolution-default (resolution) |
printer-resolution-supported (1setOf resolution) |
print-quality (type2 enum) |
print-quality-default (type2 enum) |
print-quality-supported (1setOf type2 enum) |
この属性は,Jobをスケジュールするための優先度を指定する。大きな値ほど高い優先度を指定する。値1は,可能な最低の優先度を示す。値100は,可能な最高の優先度を示す。印刷の準備ができているジョブにおいて,Printerは,すべてのnに対して, n-1の優先度をもつジョブを印刷する前に,nの優先度をもつジョブをすべて印刷しなければならない。
Printerオブジェクトがこの属性をサポートする場合,常に,1〜100のすべての領域をサポートしなければならない。管理上の制限は認めない。これによって,末端ユーザは,常に,あらゆるPrinterオブジェクトに対して全領域をすべて使用可能となる。特権的なジョブをIPP/1.1の外部で実装する場合は,末端ユーザが利用可能な領域を制限するのではなく,そのジョブに100よりも高い優先度を与えなければならない。
クライアントがこの属性を供給せず,Printerオブジェクトがこの属性をサポートしない場合, Printerオブジェクトは,(必要ならばジョブ処理時に使用する大部分のJob Template属性とは違い,) ジョブ処理時にPrinterオブジェクトの"job-priority-default"の値を使用してはならない。
"job-priority-supported"の構文も,integer(1:100)とする。この単一の整数値は,サポートする優先度水準の個数を示す。 Printerオブジェクトは,クライアントが供給する値を取り,それを,次の公式を使って, 1〜100の領域上に等分に分布するn個の整数値の並びの中の最も近い整数に対応付けなければならない。
roundToNearestInt((100x+50)/n)ここで,nは,"job-priority-supported"の値とし,xは,0〜n-1の範囲の値とする。
例を次に示す。
Printerオブジェクトの"job-priority-supported"の値が10であって,クライアントが領域1〜10の中の値を供給した場合は,Printerオブジェクトはそれを5に,クライアントが領域11〜20の中の値を供給した場合は,Printerオブジェクトはそれを15に,対応付ける。
この属性は,Jobが印刷対象の候補となる予定の名前付き時間区分を指定する。
名前付き時間区分に対する標準のキーワードの値は,次による。
管理者は,(このIPP/1.1規定の適用範囲以外の方法で,) 可能な印刷時間を名前付き時間区分に関連付けなければならない。管理者には,時間区分の型を示唆する名前を採用することが望まれる。管理者は,実装に依存して,'name'属性又は'keyword'属性の構文を使用した付加的な値を定義してもよい。
この属性の値が将来における時間区分を指定する場合,Printerは, 'job-hold-until-specified'値をジョブの"job-state-reasons"属性に追加し,そのジョブを'pending-held'状態に移動しなければならず,指定した時間区分になるまで,そのジョブを印刷のためにスケジュールしてはならない。指定した時間区分になった場合は, Printerは,ジョブの"job-state-reason"属性から'job-hold-until-specified'値を取り除き,そのジョブを'pending-held'状態に保持しておく他のジョブ状態理由が存在しない場合には, Printerは,そのジョブを'pending'状態に移動することによって,処理候補とみなさなければならない。
このジョブ属性値が名前付きの値'no-hold'であるか,又は指定した時間区分が既に開始している場合には,そのジョブは直ちに処理をする候補としなければならない。
クライアントがこの属性を供給せず,Printerオブジェクトがこの属性をサポートしている場合には, Printerオブジェクトは,(必要に応じてジョブ処理時に使用する大部分のJob Template属性とは違って,) Printerオブジェクトの"job-hold-until-default"の値をジョブ処理時に使用しなければならない。
この属性は,ジョブ開始シート及び/又はジョブ仕上げシートが存在する場合に,それらのどれをジョブと共に印刷するかを決定する。
標準のキーワード値は,次による。
管理者は,実装に依存して,'name'属性又は'keyword'属性の構文を使用した付加的な値を定義してもよい。
備考 複数文書をもつジョブのに関するこの属性の効果は,ジョブシートのセマンティクスに依存して, "multiple-document-handling"ジョブ属性(4.2.4参照)による影響を受けてもよい。
この属性は,ジョブが二つ以上の文書から構成される場合に有効となる。 Printerがジョブごとに複数の文書をサポートする場合 (3.2.4及び3.3.1参照)に,この属性をサポートしなければならない。属性は,仕上げ操作,並びに複数の印刷ストリームページの刷り及びメディアシートへの配置を制御する。 "copies"属性の値が1を超える場合,文書処理から生じる印刷部数を生成する順番も制御する。ここでの規定のために,次の記法を使用する。すなわち,"a"で文書データのインスタンスを表現する場合,文書中のそのデータ"a"の処理結果を,"a(*)"で表現するメディアシートの列とする。
標準のキーワード値は,次による。
'single-document'値は,印刷ストリームページに関して'separate-documents-collated-copies'と同じだが,メディア生成に関しては同じではない。これは次による。すなわち,'single-document'は,ジョブに対して一つの文書の印刷ページが奇数となる場合,次の文書の最初のページをシートの裏面に置くが,'single-document-new-sheet'は,常に,次の文書又は文書コピーを新しいシート上に強制的に置く。さらに,"finishings"属性が'staple'を指定する場合,'single-document'では,新しいシートを考慮しないので,文書a及びbを一つの文書としていっしょにステープル止めし, 'single-document-new-sheet'では,文書a及びbを,文書bを新しいシート上で開始して,一つの文書としていっしょにステープル止めするが,'separate-documents-uncollated-copies' 及び'separate-documents-collated-copies'では,文書a及びbを別々にステープル止めする。
備考 これら値は,いずれも,一つの文書内でページ照合せずにシートを生成する手段を提供しない。すなわち,シートnの複数のコピーは,同じ文書のシートn+1より前に生成される。
この属性と文書処理を制御する他の属性との関係は,附属書D.3で示す。
この属性は,印刷するコピーの部数を指定する。
多くの装置では,ページ照合して出力できるコピー部数は,その装置の物理的な排紙棚の数で制限され,サポート可能なページ照合しないコピー部数とは違っているかもしれない。
備考 複数の文書をもつジョブでのこの属性の効果は, "multiple-document-handling"ジョブ属性(4.2.4参照) によって制御される。この属性と文書処理を制御する他の属性との関係は, 附属書D.3で示す。
この属性は,Jobにおける各印刷された文書の各コピーに対してPrinterが使用する仕上げ操作を識別する。複数の文書をもつJobに対しては,"multiple-document-handling"属性が,仕上げの目的での"コピー"を構成するものを決定する。
標準の列挙値は,表11のとおり。
値 | シンボル名 | 解説 |
'3' | 'none' | 仕上げを実行しない。 |
'4' | 'staple' | 一つ以上のステープルで文書を製本する。ステープルの正確な数及び位置は,サイトで定義する。 |
'5' | 'punch' | この値は,印刷仕上げ文書に穴をあける必要があることを指示する。穴の正確な数及び配置は,サイトで定義する。punchの規定は, (サイト及び実装に固有の方法で,)ドリルで穴をあける,パンチする又は穴あけ済みメディアを代用するのいずれかによって満足すればよい。 |
'6' | 'cover' | この値は,文書に対して印刷されていない(又は予め印刷されている)表紙を選択したい場合に指定する。これは,文書それ自体によって(表紙用に準備されたメディア上に)印刷した表紙の指定で代替しない。 |
'7' | 'bind' | この値は,製本を文書に適用することを指示する。製本の型及び配置は,サイトで定義する。 |
'8' | 'saddle-stitch' | 中央折りに沿って一つ以上のステープル(針金綴じ)で文書を製本する。ステープルの正確な数及び配置,並びに中央折りは,実装及び/又はサイトで定義する。 |
'9' | 'edge-stitch' | 片側に沿って一つ以上のステープル(針金綴じ)で文書を製本する。ステープルの正確な数及び配置,並びに中央折りは,実装及び/又はサイトで定義する。 |
'10'-'19' | 将来の共通のfinishing列挙値のために予約。 |
表12の値は,より特殊なものとする。これらは,文書を用紙縦使い文書(表の下を参照)であるものとして,隅又は端を指示する。
値 | シンボル名 | 解説 |
'20' | 'staple-top-left' | 上左隅を一つ以上のステープルで止めて文書を製本する。 |
'21' | 'staple-bottom-left' | 下左隅を一つ以上のステープルで止めて文書を製本する。 |
'22' | 'staple-top-right' | 上右隅を一つ以上のステープルで止めて文書を製本する。 |
'23' | 'staple-bottom-right' | 下右隅を一つ以上のステープルで止めて文書を製本する。 |
'24' | 'edge-stitch-left' | 左端に沿って一つ以上のステープル(針金綴じ)で止めて文書を製本する。ステープルの正確な数及び配置は,実装及び/又はサイトで定義する。 |
'25' | 'edge-stitch-top' | 上端に沿って一つ以上のステープル(針金綴じ)で止めて文書を製本する。ステープルの正確な数及び配置は,実装及び/又はサイトで定義する。 |
'26' | 'edge-stitch-right' | 右端に沿って一つ以上のステープル(針金綴じ)で止めて文書を製本する。ステープルの正確な数及び配置は,実装及び/又はサイトで定義する。 |
'27' | 'edge-stitch-bottom' | 下端に沿って一つ以上のステープル(針金綴じ)で止めて文書を製本する。ステープルの正確な数及び配置は,実装及び/又はサイトで定義する。 |
'28' | 'staple-dual-left' | 用紙縦使い文書(表の下を参照)を仮定して,左端に沿って二つのステープル(針金綴じ)で止めて文書を製本する。 |
'29' | 'staple-dual-top' | 用紙縦使い文書(表の下を参照)を仮定して,上端に沿って二つのステープル(針金綴じ)で止めて文書を製本する。 |
'30' | 'staple-dual-right' | 用紙縦使い文書(表の下を参照)を仮定して,右端に沿って二つのステープル(針金綴じ)で止めて文書を製本する。 |
'31' | 'staple-dual-bottom' | 用紙縦使い文書(表の下を参照)を仮定して,下端に沿って二つのステープル(針金綴じ)で止めて文書を製本する。 |
'staple-xxx'の値は,文書を用紙縦使い文書であるものとして,その文書に関して指定する。文書が実際は用紙横使い文書又は逆用紙横使い文書の場合は,クライアントが適切な変換値を供給する。例えば,用紙横使い文書の上左隅にステープルを置くためには,クライアントは,'staple-bottom-left'値を供給する。これは,用紙横使いが,用紙縦使いから+90度回転したもの,すなわち反時計回りに90度回転したもの,として定義されることによる。一方,逆用紙横使い文書の上左隅にステープルを置くためには,クライアントは,'staple-top-right'値を供給する。これは,逆用紙横使いが,用紙縦使いから-90度回転したもの,すなわち時計回りに90度回転したもの,として定義されることによる。
文書に付ける各ステープルの角度を示す三つ組み(上下方向,水平方向,角度)は,実装に依存し,そこで,属性の値に依存してもよい。
備考 複数文書をもつジョブでのこの属性の効果は, "multiple-document-handling"ジョブ属性(4.2.4参照) によって制御される。この属性と文書処理を制御する他の属性との関係は, 附属書D.3で示す。
クライアントが値の任意の他の組合せと共に'none'の値を供給する場合,それは,その値の他の組合せだけが供給されたことと同じとする。すなわち,'none'値は効果を及ぼさない。
この属性は,Printerオブジェクトが印刷する各文書の各コピーに対して使用する印刷ストリームページの範囲を識別する。文書の中に存在しないと識別されるページに対しては,何も印刷されない。範囲は,例えば,1-3,5-7,15-19などの降順でなければならず,重なってはならない。そこでスプールしていないPrinterオブジェクトは,単一パスでジョブを処理できる。範囲が降順でない,又は重なっている場合は,IPPオブジェクトは要求を拒否し, 'client-error-bad-request'状態コードを返さなければならない。この属性は,印刷ストリームページに関連しており,アプリケーションが番号付けするページ(例えば,ワードプロセサアプリケーションが付けるヘッダ及びフッタにあるページ番号) とは関連しない。
複数文書をもつJobに対しては,"multiple-document-handling"属性が,指定したページ範囲の目的での"コピー"を構成するものを決定する。 "multiple-document-handling"が'single-document'の場合,Printerオブジェクトは,供給されたページ範囲それぞれを,一度に印刷ストリームページの連結に適用する。例えば,それぞれ10ページの文書が八つ存在する場合,ページ範囲'41:60'は, 5番目及び6番目の文書におけるページを一つの文書として印刷する。 "multiple-document-handling"が 'separate-documents-uncollated-copies'又は'separate-documents-collated-copies'の場合, Printerオブジェクトは,供給されたページ範囲をそれぞれ各文書のコピーに繰返し適用する。同じ名前のジョブに対しては,ページ範囲'1:3, 10:10'は,Jobの中の8文書それぞれを別々の文書として,それら文書の最初の3ページ及び10番目のページを印刷する。
大部分の場合,印刷する正確なページ数は,デバイスドライバが生成し,この属性は要求されない。しかし,既にフォーマットされている書庫にある文書を印刷する場合には,末端ユーザは,文書に含まれるページの一部だけを選択して印刷してもよい。この場合,page-range = n.mを指定したら,印刷する最初のページはページnとなる。文書のこれに続くページは,ページmを含むまで連続的に印刷される。
"page-ranges-supported"は,プリンタがページ範囲の印刷をサポートできるかどうかを示す論理値とする。この能力は,PDLごとに違っていてもよい。"page-ranges-default"属性は存在しない。 "page-ranges"属性をクライアントが供給しない場合は,文書のすべてのページを印刷する。
備考 数の文書をもつジョブにおけるこの属性の効果は, "multiple-document-handling"ジョブ属性(4.2.4参照) によって制御される。この属性と文書処理を制御する他の属性との関係は, 附属書D.3で示す。
この属性は,印刷ストリームページを選択したメディアインスタンスの表及び裏の面にどのように刷るか,すなわち,刷りを指定する。
標準のキーワード値を次に示す。
'two-sided-long-edge','two-sided-short-edge','tumble'及び'duplex'のすべては,用紙縦使い又は用紙横使いに対して適用される。しかし,'head-to-toe'は,用紙縦使いでは'tumble'とし,用紙横使いでは'duplex'とする。 'head-to-head'は,用紙縦使いモード及び用紙横使いモードを使用している場合, 'duplex'及び'tumble'を切り替えることもする。
備考 複数の文書をもつジョブにおけるこの属性の効果は,"multiple-document-handling" ジョブ属性(4.2.4参照)によって制御される。この属性と文書処理を制御する他の属性との関係は, 附属書D.3で示す。
この属性は,選択したメディアインスタンスの一つの面に刷る印刷ストリームページの数を指定する。例を表13に示す。
値 | 解説 |
'1' | Printerは,選択したメディアインスタンスの一つの面に一つの印刷ストリームページを置かなければならない。ただし,何らかの変換,スケール化,回転などを行ってもよい。 |
'2' | Printerは,選択したメディアインスタンスの一つの面に二つの印刷ストリームページを置かなければならない。ただし,何らかの変換,スケール化,回転などを行ってもよい。 |
'4' | Printerは,選択したメディアインスタンスの一つの面に四つの印刷ストリームページを置かなければならない。ただし,何らかの変換,スケール化,回転などを行ってもよい。 |
この属性は,基本的に,印刷ストリームページの変換,スケール化及び回転を制御する。
備考 複数の文書をもつジョブにおけるこの属性の効果は, "multiple-document-handling"ジョブ属性(4.2.4参照) によって制御される。この属性と文書処理を制御する他の属性との関係は, 附属書D.3で示す。
この属性は,印刷された印刷ストリームページに対する望ましい方向を指定する。クライアントが供給する印刷ストリームページの方向は記述しない。
('application/postscript'などの)幾つかの文書フォーマットに対しては,印刷ストリームページの望ましい方向は文書データ内で指定する。この情報は,印刷ジョブの提供に先立ってデバイスドライバが生成する。('text/plain'などの) それ以外の文書は,望ましい方向の情報を文書データ内には含まない。この場合,文書データが提供された後で,Printerオブジェクトが,そのデータに望ましい方向を結合することができる。Printerオブジェクトは,例えば,'text/plain','text/html'などの文書フォーマットだけに"orientations-requested" をサポートし,例えば,'application/postscript'などの文書フォーマットにはサポートしないと,予想される。このことは,他のJob Template属性と異なっているわけではない。それは,4.2で,Printerオブジェクトは,クライアントが供給する文書フォーマットに基づきJob Template属性をサポートしてもしなくてもよい,としているからとする。しかし,ここで特別に注意を喚起したのは,Printerオブジェクトが,サポートしている文書フォーマットの一部だけに対して"orientation-requested" をサポートしていることが非常に多いことによる。
標準の列挙値を,表14に示す。
値 | シンボル名 | 解説 |
'3' | 'portrait' | 内容を,メディアの短い端を横切って表示する。 |
'4' | 'landscape' | 内容を,メディアの長い端を横切って表示する。用紙横使いは,印刷ストリームページを,用紙縦使いの方向からメディアに対して+90度回転 (すなわち,反時計回りに90度回転)したものとして定義する。 +90度の方向は,長い端での単純な仕上げを用紙縦使いでも用紙横使いでも同じ端の仕上げとなるように選択された。 |
'5' | 'reverse-landscape' | 内容を,メディアの長い端を横切って表示する。逆用紙横使いは,印刷ストリームページを,用紙縦使いの方向からメディアに対して-90度回転 (すなわち,時計回りに90度回転)したものとして定義する。 'reverse-landscape'の値は,用紙縦使いからの+90度回転ではなくむしろ-90度回転した用紙横使いを使用するアプリケーションが存在するので追加した。 |
'6' | 'reverse-portrait' | 内容を,メディアの短い端を横切って表示する。逆用紙縦使いは,印刷ストリームページを,用紙縦使いの方向からメディアに対して180度回転したものとして定義する。 'reverse-portrait'の値は,反対側の端の処理が望まれる場合,ただ一つの仕上げ位置だけをもつ単純な仕上げ装置で用紙縦使い文書を仕上げるために, "finishings"属性と共に使用するように追加した。この方法で,'text'/plain'用紙縦使い文書が,単純な仕上げ装置によって"右で"ステープル止めできる。これは,ヘブライ語などの中近東の言語で共通に使用される。 |
備考 複数の文書をもつジョブにおけるこの属性の効果は, "multiple-document-handling"ジョブ属性(4.2.4参照) によって制御される。この属性と文書処理を制御する他の属性との関係は, 附属書D.3で示す。
この属性は,PrinterがJobのすべての刷りに対して使用するメディアを識別する。
"media"の値は,メディア名(medium-names),メディアサイズ(medium-sizes),給紙トレー(input-trays)及び電子的形式を含み,一つの属性でメディアを指定する。 Printerオブジェクトがこの属性の値としてのメディア名をサポートする場合,そのメディア名は,暗黙的に,その指定されたメディアを含む給紙トレーを選択する。 Printerオブジェクトがこの属性の値としてのメディアサイズをサポートする場合,そのメディアサイズが,暗黙的に,メディア名を選択し,さらに暗黙的に,指定したサイズのメディアを含む給紙トレーを選択する。 Printerオブジェクトがこの属性の値として給紙トレーをサポートする場合,その給紙トレーは,暗黙的に,ジョブが印刷する際にその給紙トレーにあるメディアを選択する。この場合,手差しの給紙トレーのこともある。 Printerオブジェクトがこの属性の値としての電子的形式をサポートする場合,その電子的形式は,暗黙的に,メディア名を選択し,さらに暗黙的に,その電子的形式が指定するメディアを含む給紙トレーを選択する。電子的形式は, Printerが,各ページに文書データと一緒に印刷しなければならない画像も,暗黙的に選択する。
標準のキーワード値は,附属書Cで示す。これは,ISO DPA及び Printer MIBから採用した。管理者は,実装に依存して,'name'属性又は'keyword'属性の構文を使い,付加的な値を定義してもよい。
"media-ready" という名前の付加的なPrinter属性も存在する。これは,"media-supported"とは異なる。 "media-ready"の方は,その正当な値が,"media-supported"の部分集合であって,物理的にロードされており,操作介入の必要なしに印刷のために使用できるものとする。 IPPオブジェクトが"media-supported"をサポートする場合,"media-ready"をサポートする必要はない。
この属性と文書処理を制御する他の属性との関係は,附属書D.3で示す。
この属性は,PrinterがJobに対して使用する解像度を識別する。
この属性は,PrinterがJobに対して使用する印刷品質を指定する。
標準の列挙値を表15に示す。
値 | シンボル名 | 解説 |
'3' | 'draft' | プリンタで使用可能な最低の品質。 |
'4' | 'normal' | プリンタで使用可能な通常又は中間の品質。 |
'5' | 'high' | プリンタで利用可能な最高の品質。 |
4.3での属性群は,"job-description"と呼ぶ属性グループを形成する。表16は,この属性群を示す。 3番目の欄は,属性がPrinterオブジェクトによってサポートされなければならない必す(須)属性かどうかを示す。必す(須)と示されていない場合は,オプションとする。'text'属性及び'name'属性のオクテットの最大サイズは,括弧内に示す。
属性 | 構文 | 必す(須)かどうか |
job-uri | uri | 必す(須) |
job-id | integer(1:MAX) | 必す(須) |
job-printer-uri | uri | 必す(須) |
job-more-info | uri | |
job-name | name (MAX) | 必す(須) |
job-originating-user-name | name (MAX) | 必す(須) |
job-state | type1 enum | 必す(須) |
job-state-reasons | 1setOf type2 keyword | 必す(須) |
job-state-message | text (MAX) | |
number-of-documents | integer (0:MAX) | |
output-device-assigned | name (127) | |
time-at-creation | integer (0:MAX) | 必す(須) |
time-at-processing | integer (0:MAX) | 必す(須) |
time-at-completed | integer (0:MAX) | 必す(須) |
job-printer-up-time | integer (1:MAX) | 必す(須) |
number-of-intervening-jobs | integer (0:MAX) | |
job-message-from-operator | text (127) | |
job-k-octets | integer (0:MAX) | |
job-impressions | integer (0:MAX) | |
job-media-sheets | integer (0:MAX) | |
job-k-octets-processed | integer (0:MAX) | |
job-impressions-completed | integer (0:MAX) | |
job-media-sheets-completed | integer (0:MAX) | |
attributes-charset | charset | 必す(須) |
attributes-natural-language | naturalLanguage | 必す(須) |
この必す(須)属性は,ジョブのURIを含む。Printerオブジェクトは,新しいジョブを受け付けると,その新しいジョブを識別するURIを生成する。Printerオブジェクトは,"job-uri" 属性のその値を生成要求の応答の一部として返却する。Job URIの形式の詳細は,実装依存とする。 Printerオブジェクトが二つ以上のURIをサポートし,新しく生成されたJob URIと PrinterオブジェクトのURIとの間に何らかの関係が存在する場合には,Printerオブジェクトは,生成要求でクライアントが供給したPrinter URIを使用する。例えば,生成要求が安全保護されたチャネルから来る場合,新しいJob URIは,同じ安全保護されたチャネルを使用しなければならない。これは,PrinterオブジェクトがJob URIを生成する責任をもち,生成要求で使用された Printer URIと同様にそのセキュリティの構成及び方針を認識しているので,保証される。
この属性の規定,並びにこの属性と"job-id"属性及び"job-printer-uri"属性との関係に関しては, 2.4"オブジェクトの識別性"を参照すること。
この必す(須)属性は,ジョブの識別子IDを含む。Printerオブジェクトは,新しいジョブを受け付けると,そのPrinterにおけるその新しいジョブを識別するIDを生成する。Printerは,"job-id" 属性のその値を生成要求の応答の一部として返却する。値0は,可能な値には含めない。これは,同じく0を可能とはしないSNMPインデクス値との互換性のためとする。
この属性の規定,並びにこの属性と"job-uri"属性及び"job-printer-uri"属性との関係に関しては, 2.4"オブジェクトの識別性"を参照すること。
この必す(須)属性は,このJobオブジェクトを生成したPrinterオブジェクトを識別する。 PrinterオブジェクトがJobオブジェクトを生成する際に,Printerオブジェクトは,この属性を生成要求で使用されたPrinterオブジェクトURIに設定する。 JobオブジェクトのURIだけをクライアントが利用可能な場合,クライアントは.この属性によって, Jobオブジェクトを生成したPrinterオブジェクトを識別できる。クライアントは,このJobに対してサポートされている言語,charset及び操作を知るために,そのJobを生成したPrinterオブジェクトに問い合わせる。
この属性の規定,並びにこの属性と"job-uri"属性及び"job-id"属性との関係に関しては, 2.4"オブジェクトの識別性"を参照すること。
この属性は,"printer-more-info"と同様に,Jobオブジェクトに関する更なる情報をもった資源,恐らくそのJobに関する情報を含むHTMLページ,を参照するURIを含む。
この必す(須)属性は,ジョブの名前とする。これは,"job-uri"属性値よりもユーザが使いやすい名前とする。複数のJobの間で一意でなくともよい。Jobの"job-uri"属性は,生成要求(3.2.1.1参照) における"job-name"操作属性で,クライアントが供給する値の集合とする。しかし,クライアントが生成要求において"job-name"操作属性を供給しない場合には, Printerオブジェクトは,Jobを生成する際に,名前を生成しなければならない。プリンタは,値を生成する次のソースの最初の方からJobの"job-name"属性の値を生成することが望ましい。
a) | 最初(又は唯一)の文書の"document-name"操作属性。 |
b) | 最初(又は唯一)の文書の"document-URI"属性。 |
c) | Job固有情報及び/又は文書内容情報のa)及びb)以外の任意の断片。 |
この必す(須)属性は,プリントジョブを提出したエンドユーザの名前を含む。 Printerオブジェクトは,IPP操作が受信された認証サービスから得ることができる最も確証のある印字可能な名前に,この属性を設定する。それらの名前が利用可能でない場合に限り,Printerオブジェクトは,生成操作における"requesting-user-name"操作属性でクライアントが供給する値を使用する (8.参照)。
備考 Printerオブジェクトは,ある形式での,典型的な例としては当事者の信任状としての,発信元ユーザ識別子をJobオブジェクトと共に保持する必要がある。これらの内部属性は実装依存であってクライアントには関心が無いので, Job Description属性としては規定しない。この発信元ユーザ識別子は, (存在する場合は)後続のすべての操作の認証検査のために使用する。
この必す(須)属性は,ジョブの現在の状態を識別する。IPPプロトコルはジョブ状態に七つの値 (及び範囲外の'unknown'値。4.を参照。)を定義するのだが,実装は,特定の実装に対して適切な状態だけをサポートする必要がある。換言すると,Printerは,出力装置が実装しPrinterオブジェクト実装に利用可能なジョブ状態だけをサポートする。
標準の列挙値を,表17に示す。
値 | シンボル名 | 説明 |
'3' | 'pending' | ジョブは,処理を開始する候補であるが,まだ処理されていない。 |
'4' | 'pending-held' | ジョブは,幾つかの理由のために処理の候補とはなっていないが,その理由が存在しなくなればすぐに'pending'状態に戻る。ジョブの"job-state-reason"属性は,そのジョブがもはや処理の候補ではない理由を示さなければならない。 |
'5' | 'processing' | 次の一つ以上の状態にある。
ジョブが'processing'状態にある場合,ジョブ状態全体は, Printerオブジェクトの"printer-state"属性,"printer-state-reasons"属性及び "printer-state-message"属性で表現される詳細な状況を含む。 実装は,ジョブの進捗を示すためにジョブの"job-state-reasons" 属性値における付加的な値を含んでもよい。ただし,これは必要ではない。この例としては,出力装置が実際に紙に印刷する時を示すために'job-printing'値を追加するとか, IPPオブジェクトがジョブをキャンセル又は異常終了する処理にあることを示すために 'processing-to-stop-point'値を追加するなどがある。ほとんどの実装では,ここまでは実装しないだろう。 |
'6' | 'processing-stopped' |
ジョブは,幾つかの理由のために処理中に停止した。理由がなくなればすぐに'processing'状態に戻る。 ジョブの"job-state-reason"属性は,ジョブが処理を停止した理由を示してもよい。例えば,出力装置が停止した場合は, 'printer-stopped'値がジョブの"job-state-reasons"属性に含まれてよい。 備考 出力装置が停止した場合,その装置は,通常は,装置のある場所で人間が読める形式でその状況を示す。クライアントは,Printerオブジェクトの"printer-state"属性,"printer-state-reasons"属性及び "printer-state-message"属性を問い合わせることによってより完全な出力装置の状況を遠隔で入手できる。 |
'7' | 'canceled' | ジョブは,Cancel-Job操作によってキャンセルされ, Printerオブジェクトはそのジョブのキャンセルを完了し,すべてのジョブ状況属性は,そのジョブのための最終値に到達した。 Printerオブジェクトがジョブをキャンセルしている間,ジョブはその現在の状態に留まる。しかし,ジョブの"job-state-reasons"属性は,'processing-to-stop-point'値及び 'canceled-by-user','canceled-by-operator'又は'canceled-at-device' の各値の一つを含むことが望ましい。ジョブが'canceled'状態に遷移する時, (存在する場合,)'processing-to-stop-point'値を削除しなければならないが, (存在する場合,)'canceled-by-xxx'は残さなければならない。 |
'8' | 'aborted' | ジョブは,通常,ジョブが'processing'状態又は'processing-stopped'状態にある時に,システムによって以上終了され,Printerはそのジョブの異常終了を完了し,すべてのジョブ状況属性は,そのジョブのための最終値に到達した。 Printerオブジェクトがジョブを異常終了する間,ジョブはその現在の状態に留まる。しかし,ジョブの"job-state-reasons"属性は,'processing-to-stop-point'値及び 'aborted-by-system'値を含むことが望ましい。ジョブが'aborted'状態に遷移する時, (存在する場合,)'processing-to-stop-point'値を削除しなければならないが, (存在する場合,)'aborted-by-system'は残さなければならない。 |
'9' | 'completed' | ジョブは,成功して,又は処理の後で警告若しくはエラーを出して終了し,ジョブメディアシートのすべては,正しく適切な排紙棚に積み重ねられ,すべてのジョブ状況属性は,そのジョブのための最終値に到達した。 Printerオブジェクトがジョブを異常終了する間,ジョブはその現在の状態に留まる。ジョブの"job-state-reasons"属性は,'completed-successfully'値, 'completed-with-warnings'値又は'completed-with-errors'の一つを含むことが望ましい。 |
この属性の最終値は,Printerがジョブを削除する前には, 'completed','canceled'又は'aborted'の一つでなければならない。ジョブが'canceled','aborted'及び'completed'の状態に留まる時間の長さは,実装に依存する。4.3.7.1を参照。
図3は,ジョブの正常処理の場合の状態遷移を示す。
図3 ジョブの正常処理の状態遷移図
正常の場合,ジョブの進捗は,図の左から右へと進む。他の状態遷移はほとんど生じないが,禁止されているわけではない。'pending','pending-held'及び'processing-stopped' の各状態から'canceled'状態への遷移は,示してない。
ジョブは,出力メディアの積重ねを含むすべての活動を完了した後には,三つの終了状態, 'completed','canceled'又は'aborted'の一つに到達し,すべてのジョブ状況属性は,そのジョブの最終値に到達する。
備考 他のIPPすべての属性と同様に,実装がこの属性に対して正しい値を決定できない場合には,恐らく正しくない値を推定しエンドユーザにJobオブジェクトの状態について間違った印象を与えるよりはむしろ,範囲外の値'unknown'(4.1を参照)を与えて応答したほうがよい。例えば,実装がある印刷システムの単なるゲートウェイであって,その印刷システムから通常は状況を得られるだが,一時的にそれができない場合,実装は'unknown'値を返すほうがよい。しかし,実装が,印刷ジョブに関する詳細な状況を決して提供しない印刷システムへのゲートウェイの場合,その実装がジョブの"job-state-reasons"属性に'queued-in-device'値の設定もしていれば (4.3.8を参照),その実装は, IPP Jobオブジェクトの状態を'completed'に設定してもよい。
4.3.7.1では,七つのジョブ状態を,ジョブ未完了(Job Not Completed),ジョブ保持(Job Retention),ジョブ履歴(Job History)及びジョブ削除(Job Removal) の段階に区分けする。さらに,Restart-Job操作と共に使用する"job-state-reasons" Job Description属性の'job-restartable'値を使う方法も示す。
Get-Jobs操作を使用し,"which-jobs"操作属性に'not-completed'値を供給して,クライアントは,ジョブ未完了段階にあるジョブを要求する。 Get-Jobs操作を使用し,"which-jobs"操作属性に'completed'値を供給して,クライアントは,ジョブ保持段階にあるジョブ及びジョブ履歴段階にあるジョブを要求する。 Get-JobーAttributes操作を使用して,クライアントは,ジョブ削除以外の任意の段階にあるジョブを要求する。ジョブ削除の後,Get-Job-Attributes操作及びGet-Jobs操作は,もはやジョブについてのいかなる情報を返すこともできない。
この必す(須)の属性は,ジョブの現在の状態についての付加的な情報,すなわち,ジョブの"job-state"属性の値をより詳細にする情報を提供する。
この属性の実装は必す(須)だが,この属性の値の実装はしなくともよい。これらの値を,理由が意味をもつジョブの状態で使用してもよい。さらに,実装する場合は, Jobの"job-state"属性の値が変わっても変わらなくても, Printerは,理由が適用されるときにはその値を返さなければならず,理由がもはや適用されないときにはその値を返してはならない。 Jobが現在の状態にあることにどんな理由もない場合は,Jobの"job-state-reasons"の値は, 'none'でなければならない。
備考 "job-state"の値を受け取る動作を行うクライアントに影響を与えることなしに,値を'job-state'属性に追加できない場合に,そのクライアントに影響を与えることなく,付加的な"job-state-reasons"の値を定義でき登録できることを意図している。換言すると,"job-state-reasons"属性は,拡張可能であることを意図している。
標準のキーワード値を次に定義する。理解を容易にするめに,値は, 'job-incoming'値で開始した場合,(実装した際に)理由が発生しやすい順番に示す。
a) | クライアントがジョブを終了する前に,Printerがクラッシュした。 |
b) | 文書データがすべてPrinterに転送される前に,Printer又は文書転送機構が,回復不可能な方法でクラッシュした。 |
c) | タイムアウトの前に,クライアントがクラッシュしたか,ジョブを終了することに失敗した。 |
a) | マーク付けが無くなっており,現在マーク付けが出現中であることを示したい場合。 |
b) | 'processing'状態中のジョブがキャンセル又は異常終了の処理にある場合であって,マーク付けはまだ停止しておらず,刷り又はシート数えがそのジョブに対してまだ続いている場合。 |
a) | 異常処理中。 |
b) | システムによって異常処理されて,'aborted'状態におかれた。 |
c) | システムによって異常処理されて,'pending-held'状態におかれた。そこで,ユーザ又は操作者が,人手によって,ジョブを再開できる。 |
この属性は,人間が読むことが可能なテキスト形式での,"job-state"属性及び "job-state-reasons"属性についての情報を指定する。 Printerオブジェクトがこの属性をサポートする場合,そのPrinterオブジェクトは,そのオブジェクトの"generated-natural-language-supported"属性 (3.1.4.1で規定する"attributes-natural-language"操作属性を参照) が特定する自然言語のいずれかでこのメッセージを生成できなければならない。
備考 ジョブ状態メッセージの値は,"job-state"属性及び"job-states-reasons"属性の値に含まれない,インタプリタエラー情報などの付加的な情報を含まないことが望ましい。そうしないと,アプリケーションプログラムは,その局所化したテキストを構文解析しようとするかもしれない。アプリケーションプログラム処理のための解釈エラーとか特定の文書アクセスエラーなどの付加的情報に対しては,新しい属性をキーワード値と共に開発し登録する必要がある。
この属性は,ジョブにおける文書の数を示す。この文書の数とは,文書データがPrinterオブジェクトに到達したかどうかとは関係なく, Printerがジョブに対して受け付けたSend-Document操作,Send-URI操作,Print-Job操作又はPrint-URI操作の数とする。
オプションのCreate-Job操作,Send-Document操作又はSend-URI操作をサポートする実装は,クライアントが各ジョブにおける文書の数を問い合わせられるように,この属性をサポートすることが望ましい。
この属性は,Printerオブジェクトがジョブに割り当てた出力装置を識別する。出力装置が埋め込まれたPrinterオブジェクトを実装している場合,Printerオブジェクトは,この属性を設定する必要はない。印刷サーバがPrinterオブジェクトを実装している場合, Printerオブジェクトが出力装置をジョブに割り当てるまでは,その値は空(長さゼロの文字列) であったり,値が返却されなくてもよい。一つのPrinterオブジェクトが複数の装置をサポートする場合 (いわゆる"fan-out"の場合),この値は特に役に立つ。
4.3.12では,あるイベントがジョブに対して発生する時点(又は具体的な場合には以降では時刻)を示すJob Description属性を定義する。この属性の構文は,"version-number"パラメタを'1.1'として供給する任意の応答に対して, 'integer'又は'dateTime'のいずれかでなければならないが,IPP/1.0 [RFC2566]との互換性のために, "version-number"パラメタを'1.0'として供給する任意の応答に対しては,'integer'でなければならない。 3,1,8を参照すること。
これらのEvent Time Job Description属性を指定するために,Printerオブジェクトは,次の値をコピーする。
a) | プリンタが属性"printer-current-time"をサポートし,その値が範囲外の'no-value'値でない場合,イベントが発生する時刻の'dateTime'値のための"printer-current-time"属性における値。 |
b) | a)の条件以外の場合での,イベントが発生する時刻の'integer'値のための "printer-up-time"属性における値。 |
備考 時刻は,電源を入れた後のある時点でPrinterに知られてもよいので,クライアントは,'integer'時刻表現を使用したEvent Time Job Description属性を含むジョブを受信するが,後のイベントは'dateTime'日付時刻表現を使用することがあるかもしれない。
Printer実装が電源投入のサイクルを越えて永続的にジョブを保持する場合,実装は,電源を入れる度に,その"printer-up-time"属性を1に設定しなければならない。さらに,'integer'形式を使用する実装は,この永続的ジョブに対して, Event Time Job Description属性のすべてを次のいずれかに変更しなければならない。
a) | 最も最近の電源投入の前にイベントが発生したことを示すためには,0に変更する。 |
b) | イベントが発生した最も最近の電源投入の前の秒数を負数としてそれに変更する。ただし,負数は,正確な秒数を反映している必要はない。 |
'dateTime'形式を使用する実装は,電源投入における永続的ジョブに対して,いかなるEvent Time Job Description属性の値も変更しない。
この必す(須)属性は,Jobオブジェクトが生成された時刻を示す。
この必す(須)属性は,Jobオブジェクトが処理を始めた時刻を示す。ジョブがまだ'processing'状態にない場合は,範囲外を示す'no-value'値を返す (4.1の最初を参照)。
この必す(須)属性は,Jobオブジェクトが完了した(又はキャンセル若しくは異常終了された)時刻を示す。ジョブがまだ完了していない,キャンセルされていない,又は異常終了されていない場合は,範囲外を示す'no-value'値を返す(4.1の最初を参照)。
この必す(須)Job Description属性は,Printer実装が立ち上がり動き出す時間の総量を (秒単位で)示す。この属性は,"printer-up-time" Printer Description属性 (4.4.29を参照)に対する別名とする。
備考 IPP Printerが'integer'属性構文を使って時間属性を返す場合,ユーザにその時間属性を表示するために,クライアントは,Get-Job-Attributes要求又はGet-Jobs要求においてこの属性を要求し,他の要求されるEvent Time Job Description属性との組合せの形式で返却される値を使用する。この属性の値と"time-at-xxx"属性の'integer'値との差だけ,"time-at-xxx"イベントが以前に発生したことを示す。クライアントは,クライアントのもつ時計の時刻からこの差を引くことによって, "time-at-xxx"イベントが発生した時刻を計算できる。
この属性は,完了予想時刻の相対的な時間順序で(すなわち,現在のスケジュールされた順序で),このジョブに"先行する"ジョブの数を示す。効率化のために,この属性を要求する操作が実行される場合だけに,この値を計算することが望ましい。
この属性は,エンドユーザにジョブに対してとる修正又はそれ以外の管理のための理由を示すために,操作者,すなわち,システム管理者又は"知的な"プロセスからのメッセージを提供する。
4.3.15では,ジョブのサイズを記述するジョブ属性を定義する。これらの属性は,カウンタではなく,知っていれば役に立つ経路選択及びスケジュールの情報となることを意図している。これらの属性に対して,Printerオブジェクトは,生成要求でそれら属性の値が供給されない場合,その値を計算しようとしてもよい。クライアントが生成要求においてこれら三つの属性の値を供給する場合であっても, Printerオブジェクトがクライアントの供給した値よりも正確に値を計算できるときには, Printerオブジェクトはその値を変更することを選択してもよい。 Printerオブジェクトは,ジョブ提出時又はその後の任意の時点のいずれかで,これら属性の正しい値を決定可能となっていてもよい。
この値は,装置がジョブ又は文書データに関して複数パスの処理を行わずに複数部数を処理できるかどうかに依存せず,さらに出力がページ揃えをするかどうかに依存せず, "copies"属性が指定する部数に寄与する乗法因子を含めてはならない。そこで,値は,実装には依存せず,コピー部数に依存しないキロオクテット単位で測った文書のサイズを示す。
この値は,文書データに埋め込まれた部数命令による乗法因子も含めてはならない。文書データが実際にはその文書データの複製を含む場合,この値はこの複製を含む。換言すると,この値は,常に元となる文書データのサイズであって,生成されるハードコピー出力のサイズを測るものではない。
この属性は,提出された文書の刷りの数での全サイズを指定する。 附属書A.2.5での刷りの定義を参照すること。
"job-k-octets"と同様に,この値は,装置がジョブ又は文書データに関して複数パスの処理を行わずに複数部数を処理できるかどうかに依存せず,さらに出力がページ揃えをするかどうかに依存せず, "copies"属性が指定する部数に寄与する乗法因子を含めてはならない。そこで,値は,実装には依存せず,コピー部数に依存しない刷りで測った文書のサイズを示す。
"job-k-octets"と同様に,この値は,文書データに埋め込まれた部数命令による乗法因子も含めてはならない。文書データが実際にはその文書データの複製を含む場合,この値はこの複製を含む。換言すると,この値は,常に元となる文書データの刷りの数であって,ジョブが生成する刷りの数を測るものではない。
この属性は,このジョブが生成するメディアシートの全数を指定する。
"job-k-octets"属性及び"job-impressions"属性とは異なり,この値は, "copies"属性が指定する部数及び(存在する場合は)文書データに埋め込まれた 'number of copies'に寄与する乗法因子を含めなければならない。この差によって,システム管理者は次の両方のサイズの下限及び上限を制御できる。
a) | "job-k-octets-supported"及び"job-impressions-supported"をもつ文書のサイズ。 |
b) | "job-media-sheets-supported"をもつジョブのサイズ。 |
4.3.16では,ジョブの進捗を記述するジョブ属性を定義する。これらの属性は,カウンタとして機能する。すなわち,処理を開始していないジョブに対する値は,0でなければならない。ジョブの"job-state"が'processing'又は'processing-stopped'の場合には,この値は,属性が要求された時点まで処理されたジョブの総量を含むことになる。ジョブが'completed'状態,'canceled'状態又は'aborted'状態に入る場合には,これらの値は,ジョブの最終値となる。
この属性は,キロオクテット単位で,すなわち,1024オクテット単位で,今までに処理されたオクテットの全サイズを指定する。値は,次のとおりに丸められなければならない。すなわち,例えば, 1オクテット〜1024オクテットのジョブは1と,1025〜2048は2と,示さなければならない。
データに関して単一パスだけの解釈で複数の部数を生成する実装では,最終値は,"job-k-octets"属性の値と等しくなければならない。各部数ごとにデータを処理することで複数部数を生成する実装では,最終値は,"job-k-octets"属性の値の倍数でなければならない。
このジョブ属性は,ジョブに対して,今までに完了した刷りの数を指定する。印刷装置に対しては,完了した刷りとは,解釈,マーク付け及び出力の積重ねを含む。
このジョブ属性は,マーク付け及びメディアシートの積重ねを,ジョブ全体に対して今までのところ完了したメディアシートを指定する。ただし,これらのシートは,片面又は両面のいずれで処理されているかに依らないものとする。
この必す(須)属性は,生成要求においてクライアントが供給した"attributes-charset" 属性の値を使用して指定する。これは,生成要求でクライアントが供給した,属性構文が'text'及び'name'である任意のJob属性で使用するcharset(符号化文字集合及び符号化方法) を識別する。"attributes-charset"操作属性の完全な記述に関しては, 3.1.4を参照すること。
この属性は,'text'値及び'name'値をJobオブジェクトで内部的に格納する際のcharsetを示さない。内部のcharsetは,実装定義とする。IPPオブジェクトは,内部charsetが何であっても,それから3.1.4で規定するとおりの操作において要求されているcharset に変換しなければならない。
この必す(須)属性は,生成要求においてクライアントが供給した"attributes-natural-language" 属性の値を使用して指定する。これは,生成要求でクライアントが供給した,属性構文が'text'及び'name'である任意のJob属性で使用する自然言語を識別する。 "attributes-natural-language"操作属性の完全な記述に関しては, 3.1.4を参照すること。 "attributes-natural-language"属性が識別する値とは異なる自然言語の上書きを,各'text'属性値及び'name'属性値に対して明示的に供給する方法については, 4.1.1.2及び4.1.2.2を参照すること。
これらの属性は,"printer-description"と呼ばれる属性グループを形成する。表18は,これらの属性,その構文,その属性がPrinterオブジェクトによってサポートされなければならない必す(須)属性かどうかを示す。必す(須)と示されていない場合は,オプションとする。'text'属性及び 'name'属性のオクテットの最大サイズは,括弧内に示す。
備考 これらが管理者によってどのように設定されるかは,IPP/1.1規定の範囲外とする。
属性 | 構文 | 必す(須)かどうか |
printer-uri-supported | 1setOf uri | 必す(須) |
uri-security-supported | 1setOf type2 keyword | 必す(須) |
uri-authentication-supported | 1setOf type2 keyword | 必す(須) |
printer-name | name (127) | 必す(須) |
printer-location | text (127) | |
printer-info | text (127) | |
printer-more-info | uri | |
printer-driver-installer | uri | |
printer-make-and-model | text (127) | |
printer-more-info-manufacturer | uri | |
printer-state | type1 enum | 必す(須) |
printer-state-reasons | 1setOf type2 keyword | 必す(須) |
printer-state-message | text (MAX) | |
ipp-versions-supported | 1setOf type2 keyword | 必す(須) |
operations-supported | 1setOf type2 enum | 必す(須) |
ipp-multiple-document-jobs-supported | boolean | |
charset-configured | charset | 必す(須) |
charset-supported | 1setOf charset | 必す(須) |
natural-language-configured | naturalLanguage | 必す(須) |
generated-natural-language-supported | 1setOf naturalLanguage | 必す(須) |
document-format-default | mimeMediaType | 必す(須) |
document-format-supported | 1setOf mimeMediaType | 必す(須) |
printer-is-accepting-jobs | boolean | 必す(須) |
queued-job-count | integer (0:MAX) | 必す(須) |
printer-message-from-operator | text (127) | |
color-supported | boolean | |
reference-uri-schemes-supported | 1setOf uriScheme | |
pdl-override-supported | type2 keyword | 必す(須) |
printer-up-time | integer (1:MAX) | 必す(須) |
printer-current-time | dateTime | |
multiple-operation-time-out | integer (1:MAX) | |
compression-supported | 1setOf type3 keyword | 必す(須) |
job-k-octets-supported | rangeOfInteger (0:MAX) | |
job-impressions-supported | rangeOfInteger (0:MAX) | |
job-media-sheets-supported | rangeOfInteger (0:MAX) | |
pages-per-minute | integer(0:MAX) | |
pages-per-minute-color | integer(0:MAX) |
この必す(須)のPrinter属性は,Printerオブジェクトに対して少なくとも一つの URIを含む。それは,オプションで,Printerオブジェクトに対して複数のURI を含む。管理者は,PrinterオブジェクトのURIを決定し,このIPP/1.1規定の範囲外である何らかの手段で,それらのURIを含むようにこの属性を設定する。このURIの正確な形式は,実装依存とし,プロトコルに依存する。 "uri-security-supported"属性及び"uri-authentication-supported"属性については, 4.4.2及び4.4.3を参照すること。この二つは両方とも,この"printer-uri-supported"属性に付随する必す(須)属性とする。詳細については,Printerオブジェクト識別に関する2.4, 並びにセキュリティ及びURIに関する8.2を参照すること。
この必す(須)のPrinter属性は,"printer-uri-supported"属性と同じ基数 (同じ数の値)をもたなければならない。この属性は,"printer-uri-supported" 属性に列挙される個々のURIに関連するクライアント認証機構を識別する。 Printerオブジェクトは,認証ユーザ(8.3を参照)を識別する指定された機構をしようする。"uri-authentication-supported"のi番目の値は,"printer-uri-supported"のi番目の値に対応し,そのURIによってアクセスされたとき,そのPrinterによって使用される認証機構を記述する。クライアント認証の詳細については,[IPP-PRO]を参照すること。
標準のキーワード値を次に定義する。
この必す(須)のPrinter属性は,"printer-uri-supported"属性と同じ基数 (同じ個数の値)をもたなければならない。この属性は,"printer-uri-supported" 属性に列挙される個々のURIに関連するセキュリティ機構を識別する。 Printerオブジェクトは,認証ユーザ(8.3を参照)を識別する指定された機構をしようする。"uri-security-supported"の"i番目の" 値は,"printer-uri-supported"の"i番目の"値に対応し,そのURIでPrinterオブジェクトにアクセスするときに使用されるセキュリティ機構を記述する。セキュリティ機構に関する詳細については,[IPP-PRO]を参照すること。
標準のキーワード値を次に定義する。
この属性は,クライアント認証機構の指定と直交する。特に,'none'はクライアント認証を排除しない。4.4.2を参照すること。
次の例を考える。単一のPrinterオブジェクトに対して,管理者は, 次のとおりに "printer-uri-supported"属性,"uri-authentication-supported"属性及び "uri-security-supported"属性を設定する。
"printer-uri-supported": 'xxx://acme.com/open-use-printer',
'xxx://acme.com/restricted-use-printer',
'xxx://acme.com/private-printer'
"uri-authentication-supported": 'none',
'digest', 'basic'
"uri-security-supported": 'none', 'none', 'tls'
備考 'xxx'は有効なスキームではない。オブジェクト対象の属性において使用される実際のURIのスキームについては, IPP/1.1 "符号化及びトランスポート"規定[IPP-PRO]を参照すること。
この場合,一つのPrinterオブジェクトは3つのURIをもつ。
多くのIPP Printerオブジェクトは,ただ一つのチャンネル(TLSアクセスを使用するように設定されるかされないか)及びただ一つの認証機構をサポートするように設定されることが予期される。それらのPrinterオブジェクトは, "printer-uri-supported"属性に列挙される一つのURIをもっているだけとする。 Printerオブジェクトの設定にかかわらず(それがただ一つのURIをもっていようと複数のURIをもっていようと),クライアントは,対象となる"printer- uri"操作属性の中のただ一つのURIを供給しなければならない。
この必す(須)のPrinter属性はPrinterオブジェクトの名前を含む。それは, URIよりもエンドユーザにわかりやすい名前とする。管理者は,プリンタの名前を決定し,その名前に対してこの属性をセットする。この名前は,プリンタのURI の最後の部分かもしれず,関連がないかもしれない。非US-Englishロケールでは,名前はURIでは許されていない文字を含むかもしれない。
このPrinter属性は,装置の位置を識別する。これには "in Room 123A, second floor of building XYZ" (XYZ号棟の2階,123A号室)などのものを含められるであろう。
このPrinter属性は,このPrinterオブジェクトに関する記述的情報を識別する。これは"This printer can be used for printing color transparencies for HR presentations(このプリンタは HRプレゼンテーション用のカラー透過印刷に使用できる)",又は "Out of courtesy for others, please print only small (1-5 page) jobs at this printer(他の方のために,このプリンタでは,1〜5ページの小さいジョブだけを印刷してください)",又は "This printer is going away on July 1, 1997, please find a new printer(このプリンタは1997年7月1日に撤去される。新しいプリンタを探してください)"という記述さえも含むかもしれない。
このPrinter属性は,この特定のPrinterオブジェクトに関する詳細な情報を得るために使用されるURIを含む。例えば,これはウェブブラウザでアクセス可能なHTMLページを参照する,HTTPなどのURIかもしれない。このURIから得られる情報は,エンドユーザが利用することを意図したものとする。情報は,このプリンタのインスタンス及び所内固有のサービス(例えば,ジョブの価格付け,提供されるサービス,エンドユーザ援助)となるよう意図されている。装置製造者は最初からこの属性を含めるかもしれない。
このPrinter属性は,このPinterオブジェクトに対するドライバインストーラを位置を特定するために使用されるURIを含む。この属性は,オートマトンが利用することを意図するものとする。プリンタドライバのインストールは,このIPP/1.1規定の範囲外とする。装置製造者は最初からこの属性を含めるかもしれない。
このPrinter属性は,装置の製造及びモデルを識別する。装置製造者は最初からこの属性を含めるかもしれない。
このPrinter属性は,この型の装置に関する詳細情報を得るために使用されるURIを含む。このURIから得られる情報は,エンドユーザが利用することを意図したものとする。IPPの範囲外の機能は,このURI からアクセスできる(例えば,最新のファームウェア,更新,印刷ドライバ,利用可能はオプション機能,カラーサポートに関する詳細)。情報は,所内に特定な修正やサービスとは関係無く,このプリンタと関係のあるものとして意図されている。
この必す(須)のPrinter属性は,装置の現在の状態を識別する。"printer-state reasons" 属性は,与えられたプリンタの状態にあるPrinterに関する詳細情報を与えるために "printer-state"属性を補う。
Printerオブジェクトは,この属性を要求する操作に応答する前にこの属性を更新するだけでよい。Printerオブジェクトは,非同期事象の通知はIPP/1.1には含まれないので,継続的にこの属性を更新する必要はない。Printerは,属性が与えられた実装に対して適用されないなら,それらをすべて実装する必要はない。
表19に標準の列挙値を定義する。
値 | シンボル名 | 記述 |
'3' | 'idle' |
Printerが,この状態のときに(必要な資源が用意されている)ジョブを受け取った場合,それらのジョブは,直ちに'processing'状態に遷移しなければならない。"printer-state-reasons"属性が,何らかの理由を含む場合,それらは,あるジョブが直ちに'processing'状態に遷移することを妨げない理由( 例えば,'toner-low'(トナーの残りが少ない))でなければならない。 Printerが,あるジョブをマーク付けする間に一つ又は複数のジョブを解釈することができる場合,あるジョブをマーク付けする間でさえジョブを解釈するためことが可能であれば,それは待機状態とする。 Printerが複数の出力装置を制御する場合,上記の定義は,少なくとも一つの装置が待機状態であれば,例えば,IPPプリンタが,クライアントがジョブを提出したなら直ちにその処理を開始することができるならば,Printerが'idle'であることを意味する。 |
'4' | 'processing' |
Printerが,この状態のときに(必要な資源が用意されている)ジョブを受け取った場合,それらのジョブは,直ちに'pending'状態に遷移しなければならない。それらのジョブは,それより前にあるジョブが完了した後だけに'processing'状態に遷移しなければならない。 "printer-state-reasons"属性が,何らかの理由を含む場合,それらは現在のジョブが印刷されるのを妨げない理由( 例えば'toner-low'(トナーの残りが少ない))でなければならない。 Printerが,あるジョブをマーク付けする間に一つ又は複数のジョブを解釈することができ,この状態のときに(必要な資源が用意されている)ジョブを受け取った場合,それらの受け取られたジョブは,マークのついているジョブ(もしあれば)と共に,'processing'状態に遷移してよい。 Printerが複数の装置を制御する場合,上記の定義は,少なくとも一つの出力装置が処理中であり,待機状態にあるものがないなら,Printerが'processing' であることを意味する。 |
'5' | 'stopped' |
Printerが,この状態のときに(必要な資源が用意されている)ジョブを受け取った場合,それらのジョブは,そのプリンタを止めた問題を誰かが修正し,それよりも前のジョブが完了した後だけに,'pending'状態に遷移しなければならない。 "printer-state-reasons"属性は,少なくとも一つの理由,例えば,プリンタが現在のジョブを処理することも'pending'状態にあるジョブを'processing' 状態に遷移させることもできなくしている'media-jam'などを含まなければならない。 Printerが,あるジョブをマーク付けする間に一つ又は複数のジョブを解釈することができ,この状態のときに(必要な資源が用意されている)ジョブを受け取った場合,それらの提出されたジョブは,Printerが'stopped'状態にあるときでも解釈されるように,'processing'状態に遷移してよい。しかし,それらのジョブが完了する前に,人がその問題を修正する必要がある。 Printerが複数の出力装置を制御する場合,上記の定義は,すべての出力装置が停止した場合だけにPrinterが'stopped'になることを意味する。 |
備考 十分な個数の出力装置が停止したときに'stopped'状態になり,それらの十分な個数は実装に任せると定義することは魅力的である。しかし,それらの規則は'stopped'及び'processing'の定義を複雑にする。例えば,'stopped'のこれらの代替定義を使う場合,ジョブは,Printerが停止していても,人の介在なしに'pending'から'processing'に遷移することができる。
この必す(須)のPrinter属性は,装置の状態に関する追加の詳細を提供する。
個々のキーワード値は,重大性のレベルを示す接尾辞をもってよい。三つのレベルは,報告(最も重大性が低い),警告,エラー(最も重大性が高い)とする。
実装が,三つの接頭辞のいずれも含まない場合,理由は"エラー"であると仮定しなければならない。
Printerオブジェクトが複数の出力装置を制御する場合,この属性の個々の値は一つ又は複数の出力装置に適用してよい。Printerオブジェクトを完全に停止しない一つの出力装置でのエラーは,Printerの"printer-state-reasons attribute"において警告として現れてよい。これらのPrinterに対する"printer-state"が'stopped'値をもつ場合, "printer-state-reasons"属性中の値の中からのエラーの理由でなければならない。
標準のキーワード値を次に定義する。
このPrinter属性は,人が読めるテキストでプリンタ状態及びプリンタ状態理由に関する追加情報を指定する。Printerオブジェクトがこの属性をサポートする場合, PrinterオブジェクトはPrinterの"generated-natural-language-supported"属性によって識別される自然言語の任意のものでこのメッセージを生成できなければならない(3.1.4.1で指定される"attributes-natural-language"操作属性を参照)。
この必す(須)の属性は,このPrinterがサポート副版を含めたIPPプロトコルの版,すなわち,要求で受け付けられ応答で返される"version-number"のパラメータの値を,識別する。IPP Printerが,この(US-ASCII) キーワードの一つの値に対応しない(2オクテットの2進数の)値に設定される"version-number" パラメータをもつ要求を受け取るなら,それは,その要求を拒否し, 'server-error-version-not-supported'状態コードを返さなければならない (3.1.8を参照)。
標準のキーワード値を次に定義する。
この必す(須)のPrinter属性は,このPrinterオブジェクト及び含まれる Jobオブジェクトに対してサポートされる操作の集合を指定する。
備考 この属性は,[IPP-PRO] に従う任意の他の列挙属性構文として32ビットで符号化される。しかし,この属性に対するすべての32ビットのenum値は,0x00008FFFを超えてはならない。なぜなら,実行されている操作を示すための二つの高位のオクテットを省略した個々のProtocol要求における, "operation-id"パラメータ(3.1.1参照)において,これらと同じ値が2オクテットで渡されるからである([IPP-PRO]) 。
表20に,標準のenum及び"operation-id"(3.1.2を参照)の値を定義する。
値 | 操作名 |
0x0000 | 予約済み,使用されない |
0x0001 | 予約済み,使用されない |
0x0002 | Print-Job |
0x0003 | Print-URI |
0x0004 | Validate-Job |
0x0005 | Create-Job |
0x0006 | Send-Document |
0x0007 | Send-URI |
0x0008 | Cancel-Job |
0x0009 | Get-Job-Attributes |
0x000A | Get-Jobs |
0x000B | Get-Printer-Attributes |
0x000C | Hold-Job |
0x000D | Release-Job |
0x000E | Restart-Job |
0x000F | 将来の操作のため予約済み |
0x0010 | Pause-Printer |
0x0011 | Resume-Printer |
0x0012 | Purge-Jobs |
0x00013-0x3FFF | 将来の操作のため予約済み |
0x4000-0x8FFF | 将来の操作のため予約済み |
私的な拡張のために予約された区画によって,ベンダは,将来登録される拡張と衝突することはないと保証される私的な拡張を実装できる。しかし,二つ以上の私的拡張が衝突しないという保証はない。
このPrinter属性は,Printerがジョブごとに複数の文書をサポートするかしないか,つまり,文書データと共に複数Send-Document操作又はSend-Data操作をサポートするかしないかを示す。PrinterがCreate-Job操作及びSend-Document 操作(3.2.4及び3.3.1)をサポートする場合,Printerは,この属性をサポートしなければならない。
この必す(須)のPrinter属性は,操作者,システム管理者又は製造者によって設定されるPrinter属性'text'及び'name',すなわち, "printer-name" (name),"printer-location"(text),"printer-info" (text), "printer-make-and-model" (text) を表現するためにPrinterオブジェクトが設定したcharsetを識別する。したがって,Printerオブジェクトの"charset-configured"属性の値は,Printerオブジェクトの"charset-supported"属性の値の中に含まれていなければならない。
この必す(須)属性は,Printer及び含まれるJobオブジェクトが属性構文 'text'及び'name'をもつ属性でサポートするcharsetを識別する。 IPPオブジェクトはUTF-8 [RFC2279] charsetをサポートしなければならないので,少なくとも,値'utf-8'は存在しなければならない。 Printerオブジェクトがあるcharsetをサポートする場合,それは,構文'text'及び'name'のすべての属性に対して,IPPオブジェクトが,必要に応じて要求でそのcharsetを受付け,応答でその文字集合を返さなければならない(1)ことを意味する。
UTF-8より多くのcharsetがサポートされる場合,IPPオブジェクトは, 3.1.4.2で説明されるcharset間のcharset変換を実行しなければならない。
この必す(須)のPrinter属性は,操作員,システム管理者,又は製造者によってセットされるPrinter属性'text'及び'name',すなわち, "printer-name" (name),"printer-location"(text),"printer-info" (text), "printer-make-and-model" (text) を表現するためにPrinterオブジェクトが設定した自然言語を識別する。これらのPrinterオブジェクトを返す場合,Printerオブジェクトは "attributes-natural-language"操作属性でクライアントによって要求される自然言語のかわりに,この属性で指定される設定された自然言語で,それらを返さなければならない。オプションの複数の自然言語サポートの指定に関しては 3.1.4.1を参照すること。したがって,Printerオブジェクトの"natural-language-configured"属性の値は,Printerオブジェクトの"generated-natural-language-supported"属性の値に入っていなければならない。
この必す(須)のPrinter属性は,Printerオブジェクト及び含まれるJobオブジェクトが,属性構文'text'及び'name'をもつ属性でサポートする自然言語を識別する。サポートされる自然言語は,実装及び/又は背低に依存する。charsetと違い, IPPオブジェクトは,その自然言語がサポートされているかどうかに関わりなく,任意の自然言語又は任意のNatural Language Overrideをもつ要求を受け付けなければならない。
Printerオブジェクトが自然言語をサポートする場合,それは,Printerオブジェクト又はJobオブジェクトが,操作応答の中でメッセージ,すなわち,"job-state-message" 及び"printer-state-message"属性及び操作メッセージ(3.1.5を参照)を生成する任意の属性に対して,Printerオブジェクト及びJobオブジェクトが,Printerのサポートされる任意の自然言語でメッセージを生成しなければならないことを意味する。
備考 複数の自然言語をサポートするPrinterオブジェクトは,しばしば,メッセージのカタログを個々の自然言語に対して一つずつ分離する。
この必す(須)のPrinter属性は,クライアントが,文書データを供給する任意の操作要求で"document-format"操作属性を供給しないことを仮定するためにPrinterオブジェクトが設定する文書フォーマットを識別する。この属性の標準値は,インタネットメディア型(しばしばMIME型とも呼ばれる)とする。詳細については,4.1.9の 'mimeMediaType'属性構文の説明を参照すること。
この必す(須)のPrinter属性は,Printerオブジェクト及び含まれるJob オブジェクトがサポートする文書フォーマットの集合を識別する。詳細については, 4.1.9の 'mimeMediaType'属性の説明を参照すること。
この必す(須)のPrinter属性は,プリンタが現在ジョブを受け付けられるかどうか,つまり,Print-Job要求,Print-URI要求,及びCreate-Job要求を受け付けているかどうかを示す。値が'true'の場合,プリンタはジョブを受け付けている。値が'false'の場合,Printerオブジェクトは,現在それに対して提出される任意のジョブを拒否している。この場合,Printer オブジェクトは,'server-error-not-accepting-jobs'状態コードを返す。
備考 この値は,現在のジョブではなく,将来のジョブに影響するので, "printer-state"属性及び"printer-state-reasons"属性とは独立とする。 "printer-state"が'idle'の場合,この属性によって,Printerがジョブを拒否することがあり,"printer-state"が'stopped'の場合,この属性によって, Printerがジョブを受け付けることがある。
この必す(須)のPrinter属性は,'pending','processing','pending-held' 又は'processing-stopped'のいずれかであるジョブ数のカウントを含み, Printerオブジェクトにより設定される。
このPrinter属性は,エンドユーザに,なぜプリンタが使用できないのか,いつ使用可能になるのかなど,プリンタの情報又は状態を示すために操作者,システム管理者又は"知的な"プロセスから出されるメッセージを提供する。
このPrinter属性は,装置が,強調色を含め,何らかのカラー印刷が可能かどうかを識別する。色を使って実行されなければならない文書の指示のすべては,文書PDLに埋め込まれる (IPP/1.1の外部IPP属性ではない)。
備考 エンドユーザは,"printer-more-info-manufacturer"Printer属性を問合せすることによって色サポートの性質及び詳細を決定することができる。
このPrinter属性は,Print-URI操作又はSend-URI操作の"document-uri"操作属性での使用のために,どのURIのスキームがサポートされているかを指定する。 Printerオブジェクトが,これらのオプションの操作をサポートする場合,少なくとも次のURIのスキームの値をもつPrinter属性 "reference-uri-schemes-supported"をサポートしなければならない。
Printerオブジェクトは,オプションで,他のURIのスキームをサポートしてよい(4.1.6参照)。
この必す(須)のPrinter属性は,文書データ命令をIPP属性で上書きする,又はしないよう試みるために,特定のPrinter実装の能力を表現する。
この属性のとる値は,次とする。
附属書Dには,この属性が他のIPP属性,特に"ipp-attribute-fidelity" 属性とどのように相互動作するか及び影響を与えるかに関する完全な説明がある。
この必す(須)のPrinter属性は,このPrinterインスタンスが立ち上がってから動作している時間(秒)を示す。値は,Printerオブジェクトが開始された (初期化,起動など)時刻を1とし,そこから開始して単調に増加する値とする。この値又は"printer-current-time"の値は,実装に依存して (4.3.12を参照), Event Time Job Description属性,"time-at-creation", "time-at-processing"及び"time-at-completed"を組み込むために使用される。
Printerオブジェクトソフトウェアが動作を停止し,"printer-up-time"の最後の値を知らずに再開する場合,実装は,この値を1にリセットしなければならない。しかし,装置又はPrinterオブジェクトが代表している装置が再開されるか,電源が回復した場合,Printerオブジェクトは,実装に依存して,この値をカウントすることを続けてもよい,又は,この値を1にリセットしてよい。この値がリセットされ,実装が永続的なジョブをもち,Event Time Job Description 属性が('dateTime'の代わりに)'integer'形式を使用して表されている場合,それらは,4.3.12に従ってリセットされなければならない。
このPrinter属性は,現在の壁時計時刻を示す。この値又は"printer-uptime-time" の値は,実装に依存して,ジョブ属性"time-at-creation","time-at-processing",及び"time-at-completed"を組み込むために使用される(4.3.12 を参照)。
日付及び時刻は,"最善"を尽くして得られ,実際に稼動するためにはそれほど正確である必要はない。Printerの実装は,ネットワーク時間サーバから値を得る,製造時点で初期化する,又は管理者がセットするなど,何らかの実装依存の方法を用いて日付及び時刻を得ることによってこの属性の値を設定する。例については[IPP-IIG]を参照すること。実装がこの値をサポートし,実装が,正確な時間にまだセットされていないことを知っている場合,実装は設定されていないことを意味する範囲外の値'no-value'を使用してこの属性の値を返さなければならない。4.1の最初を参照されたい。
この属性の時間帯は,Printerオブジェクト又は装置の近くに位置する人によって使用される時間帯である必要はない。クライアントは,受け取る任意の 'dateTime'値がクライアントの時間帯又はプリンタの近くに位置する人の時間帯にあることを期待してはならない。
クライアントは,'dateTime'属性構文を使用する属性でPrinterによって返される時間帯を使用するのではなく,サーバによって返却される'dateTime'値をクライアントの時間帯に変換することによって,クライアントの現地時間で,ユーザに任意のdateTime属性を表示しなければならない。
このPrinter属性は,Printerオブジェクトが, 3.3.1で示される何らかの回復動作をとる前に,まだ開いている複数文書(still-open multi-document)Jobオブジェクトに続く,追加のSend-Document操作又はSend-URI操作を待つ最小時間を(秒単位で)識別する。 Printerオブジェクトが,Create-Job操作及びSend-Document操作 (3.2.4及び3.3.1参照) をサポートする場合,この属性をサポートしなければならない。
ベンダはこの属性に対して60秒から240秒までの値を供給することが望ましい。実装は,システム管理者が(このIPP/1.1規定外の手段で)この属性を設定することを許してよい。その場合,システム管理者は,この範囲外の値を設定することができてよい。
この必す(須)のプリンタ属性は,サポートされている文書データの圧縮アルゴリズムの集合を識別する。圧縮は,文書データに適用されるだけとし,圧縮は,IPP操作自体の符号化には適用されない。サポートされる値は Print-Job要求,Send-Document要求及びSend-URI要求におけるクライアントが供給する"圧縮"操作属性を確認するために使用される。
標準の値は次とする。
このPrinter属性は,キロオクテットでの,すなわち,1024オクテットの単位での,ジョブの合計サイズの上限及び下限を指定する。サポートされている値は,作成要求においてクライアントの供給する"job-k-octets"操作属性を確認するために使用される。対応するジョブ記述属性"job-k-octets"は, 4.3.15.1に定義する。
このPrinter属性は,ジョブごとの刷りの数の上限及び下限を指定する。サポートされている値は,作成要求においてクライアントの供給する"job-impressions"操作属性を確認するために使用される。対応するジョブ記述属性"job-impressions"は, 4.3.15.2に定義する。
このPrinter属性は,ジョブごとのメディアシートの数の上限及び下限を指定する。サポートされている値は,作成要求においてクライアントの供給する"job-media-sheets"操作属性を検証するために使用される。対応するジョブ記述属性"job-media-sheets"は, 4.3.15.3に定義する。
このPrinter属性は,分ごとのページ数の公称値を, このプリンタによって生成されるであろう最も近い整数で指定する(例えば,片面,白黒)。この属性は参考であり,サービスの保証ではない。一般に,装置を記述するための宣伝用印刷物で使用される値とする。
値0は,1ページを処理するために2分以上かかる装置を示す。
このPrinter属性は,カラー印刷の場合の, 分ごとのページ数の公称値を,このプリンタによって生成されるであろう最も近い整数で指定する(例えば,片面,カラー)。この属性の目的のため,"color"(カラー)は,"color-supported"属性のためと同じものを意味する。すなわち,装置は,強調色を含め,何らかのカラー印刷を行うことができる。この属性は情報であり,サービスの保証ではない。一般に,この装置のカラー能力を記述するための宣伝用印刷物で使用される値とする。
値0は,1ページを処理するために2分以上かかる装置を示す。
備考 カラー装置が幾つかのカラーモードをもつ場合,それは最高の数を生成するモードに対応する分ごとのページ数をこの属性の値としてを使用してよい。
白黒だけのプリンタは,この値をサポートしてはならない。この属性が存在する場合, "color-supported"Printer記述属性が存在し,値'true'をもたなければならない。
備考 Get-Printer-Attributes操作によって返されるこれらの二つの属性の値は,Get-Printer-Attributes要求においてクライアントによって供給される "document-format"属性によって影響されてよい。言い換えれば,実装は,処理される文書フォーマットに依存して,異なる速さをもってよい。 3.2.5.1 Get-Printer-Attributesを参照すること。
5.は,適合性の課題及び要件を示す。この規定は,オブジェクト,操作,属性,属性構文及び属性値などのモデル実体を導入する。これらの適合性の節は,これらのモデル実体に適用される適合性要件を規定する。
5.1は,次のいずれかの場合における,クライアント(2.1を参照)に関する適合性要件を規定する。
a) | アプリケーションの"Print"メニューによって起動される,などのエンドユーザによって制御されるソフトウェアに含まれるかどうか。 |
b) | 出力装置又は他の“下流”印刷サーバと(IPP操作を使用して)通信を行う印刷サーバの構成要素であるかどうか。 |
適合するクライアントは,この規定が定義するすべての必す(須)操作をサポートしなければならない。操作要求に含まれる個々の属性に対して,適合するクライアントは,その型及び値の構文が,3.及び 3.3.5で指定されるモデル文書の要件に適合する値を供給しなければならない。適合するクライアントは,6. の要件に合致している限り,操作要求におけるどのような登録された拡張及び/又は私的な拡張をも供給してよい。
そうでない場合,IPPクライアント又はそれらのアプリケーションによって提供されるユーザインタフェースに対する適合要件はない。例えば,あるアプリケーションは,他のものが許しても,エンドユーザがジョブごとに複数の文書を送るのを許さないかもしれない。あるアプリケーションは,サポートされ値及びデフォルト値をもつ図形ユーザインタフェース(GUI)のダイアログボックスを供給するために,最初にPrinterオブジェクトを問い合せるかもしれないが,別の実装はそうしないかもしれない。
要求を送るとき,IPPクライアントは,クライアントによってオプションで供給されると示されるどのような属性をも供給する必要はない。
クライアントは,Printerオブジェクトからの応答において返却されるかもしれない, 4.1で定義されるどのような属性構文をも,その全範囲を含め,受け付けなければならない。特に,クライアントがサポートし,その属性構文が'text'である個々の属性に対して,クライアントは, 'textWithoutLanguage'形式及び'textWithLanguage'形式の両方を受け付け,処理しなければならない。同様に,クライアントがサポートし,その属性構文が'name'である個々の属性に対して,クライアントは, 'nameWithoutLanguage'形式及び'nameWithLanguage'形式の両方を受け付け,処理しなければならない。表示のためには,長い属性値の切り捨ては推奨されない。推奨のアプローチは,クライアント実装が,ユーザに長い属性値をスクロールすることを許すこととする。
応答は,クライアントが予期しない属性グループ,属性及び値を含んでよい。したがって,クライアント実装は,上手にそれらの応答を操作しなければならず, 6.に適合する属性グループ,属性及び属性値を含め,登録された拡張又は私的な拡張を返却している適合プリンタとの間で操作を行うことを拒否してはならない。クライアントは,理解できないどのようなパラメタ,属性及び値をも無視することを選択してよい。
クライアントがデータをプリンタに送っている間, "用紙切れ"又は"前のジョブが十分なメモリを解放していない"などの何らかの理由でチャネルがブロックされる(つまり,フロー制御がオフになる)とき,チャネルが下位層によって閉塞されるのを防ぐために, クライアントは,最善を尽くさなければならない。しかし,プリントの提出を行った層(例えばエンドユーザ)は,ジョブを取り消すために, そのチャネルを閉じてよい。クライアントがチャネルを閉じるとき,Printerは,文書の受け取った部分のすべて又は一部を印刷してよい。詳細は, "符号化及びトランスポート"の規定[IPP-PRO]を参照されたい。
クライアントは,IPP/1.1の符号化及びトランスポートの規定 [IPP-PRO]で定義されるクライアント認証をサポートしなければならないか, サポートした方がよい (領域ディレクタとの相談による。)。クライアントは,IPP/1.1符号化及びトランスポートの規定[IPP-PRO] で定義される操作プライバシ及びサーバ認証をサポートしなければならない。この規定の8.も参照されたい。
5.2では,適合する実装が次のいずれかの場合,オブジェクト,操作及び属性に関して適合する実装のための適合要件を指定する。
a) | IPP要求を受け付け,一つ又は複数の装置を制御し,単一の装置に埋め込まれているIPPオブジェクト |
b) | IPP要求を受け付け,それらをネットワーク接続された装置へ(IPP又は他のプロトコルを使用して) 転送するサーバ |
適合する実装は,この規定の次に示す節で定義するモデルオブジェクトのすべてを実装しなければならない。
2.1 - Printerオブジェクト 2.2 - Jobオブジェクト
それらは,装置を制御する(埋込み)ソフトウェアであるか,IPP操作要求を受け付けてから,(IPP又は他の)プロトコルを使用して,一つ又は複数のネットワーク装置に操作要求を送る印刷サーバの一部であるかのどちらかとする。 2.1及び2.2を参照されたい。
適合するIPPオブジェクト実装は,必す(須)の応答を含め,この規定の次に示す節で定義する必す(須)のモデル操作のすべてを実装しなければならない。
Printオブジェクトに関する操作 | 必す(須)又はオプション |
Print-Job (3.2.1) | 必す(須) |
Print-URI (3.2.2) | オプション |
Validate-Job (3.2.3) | 必す(須) |
Create-Job (3.2.4) | オプション |
Get-Printer-Attributes (3.2.5) | 必す(須) |
Get-Jobs (3.2.6) | 必す(須) |
Pause-Printer (3.2.7) | オプション |
Resume-Printer (3.2.8) | オプション |
Purge-Jobs (3.2.9) | オプション |
Jobオブジェクトに関する操作 | 必す(須)又はオプション |
Send-Document (3.3.1) | オプション |
Send-URI (3.3.2) | オプション |
Cancel-Job (3.3.3) | 必す(須) |
Get-Job-Attributes (3.3.4) | 必す(須) |
Hold-Job (3.3.5) | オプション |
Release-Job (3.3.6) | オプション |
Restart-Job (3.3.7) | オプション |
適合するIPPオブジェクトは,すべての必す(須)操作属性, 及び規定の中で示されるそれらの属性すべての値をサポートしなければならない。適合するIPPオブジェクトは,要求で受け取られた, サポートされていない又は知られていない操作属性又は操作属性グループを無視しなければならないが,サポートされない値を含むサポートされる操作属性から成る要求を拒否しなければならない。
適合するIPPオブジェクトは,この規定の拡張である属性グループ,属性名及び属性値から成る操作応答を返却してよい。追加の属性グループは, どのような順序でも出現してよい。
オブジェクト属性に関する次の5.2.3は,オブジェクト属性に必要なサポートを規定する。
適合するIPPオブジェクトは,この規定の該当の節で定義される必す(須)のオブジェクト属性のすべてをサポートしなければならない。
オブジェクトが属性をサポートする場合,それは,この規定で指定される値だけ,又は 5.2.4で規定される拡張機構による属性だけをサポートしなければならない。それは,これらの値の空でないどのようなサブセットをもサポートしてよい。つまり,指定された値の少なくとも一つをサポートしなければならず, 最大ですべてをサポートしなければならない。
クライアントは,版1.1をサポートしなければならず,版1.0もサポートするほうがよい。IPPオブジェクトは,版1.1をサポートしなければならず,版1.0もサポートするほうがよい。3.1.8を参照すること。
適合するIPPオブジェクトは,6.で指定された要件に適合する限り,登録された拡張及び私的拡張をサポートしてよい。
操作応答に含まれる各属性に関して,適合するIPPオブジェクトは,その型及び値の構文が, 3.及び4.で指定されるモデル文書の要件に適合する値を返却しなければならない。
IPPオブジェクトは,クライアントが属性を供給してもよく,又は(このIPP/1.1の規定の適用範囲外の方法で) システム管理者が属性を構成してもよいどのような操作においても, 4.1が定義するどのような属性構文をもその全範囲を含め受け付けなければならない。特に,IPPオブジェクトがサポートし,その属性構文が'text'である各属性に関して,IPPオブジェクトは, 'textWithoutLanguage'形式及び'textWithLanguage'形式の両方を受け付け,処理しなければならない。同様に,IPPオブジェクトがサポートし,その属性構文が'name'である各属性に関して,IPPオブジェクトは, 'nameWithoutLanguage'形式及び'nameWithLanguage'形式の両方を受け付け,処理しなければならない。さらに,IPPオブジェクトは,クライアントによって前もって供給される場合の全範囲を含め,4.1で指定される構文に適合する操作応答において,クライアントに属性を返却しなければならない。
IPPプリンタの実装は,IPP/1.1の符号化及びトランスポートの規定 [IPP-PRO]で定義されるクライアント認証のためのサポートを含まなければならないか, 含んだ方がよい(領域ディレクタとの相談による。)。 Printer実装は,管理者に対して,ユーザのすべて又は何人かが認証されたり,ユーザの誰もが認証されなくするPrinter設定を可能にしてよい。この規定の8.も参照されたい。
IPPのPrinter実装は,IPP/1.1の符号化及びトランスポートの規定 [IPP-PRO] が定義される操作プライバシ及びサーバ認証のサポートを含む方がよい。 Printer実装は,管理者に対して, 操作プライバシ及びサーバ認証に関するサポートの程度を設定することを可能にしてよい。この規定の8.も参照されたい。
すべてのクライアント及びIPPオブジェクトは,4.1.7で定義する'utf-8'charsetをサポートしなければならない。
IPPオブジェクトは,自然言語がIPPオブジェクトによってサポートされてもされなくても,任意の個々の属性への自然言語上書き機能又は"attributes-natural-language"操作属性を正しく使用するどのようなクライアント要求をも受付け可能でなければならない。 IPPオブジェクトが自然言語をサポートする場合,それは, すべての生成される 'text'属性の値又は'name'属性の値を, サポートされる言語の一つに (おそらく表検索によって)翻訳できなければならない(3.1.4を参照)。つまり,自然言語をサポートするIPPオブジェクトは,クライアントによって供給されるどのような任意の'text'値又は'name'値をも自然言語にする一般用翻訳装置である必要はない。しかし,オブジェクトは,それ自体の属性値及びメッセージのいずれをもその自然言語に翻訳(自動生成)できなければならない。
6.は,IPPがどのように拡張でき,次に示すIPPに登録された拡張及び私的な拡張をどのように許すかを規定する。
a) | キーワード属性値 |
b) | enum属性値 |
c) | 属性 |
d) | 属性の構文 |
e) | 操作 |
f) | 属性グループ |
g) | 状態コード |
IPP/1.1で使用するために登録された拡張は,クライアント及びIPPオブジェクトのIPP/1.1モデル指定に対する適合性のためのオプションとする。
これらの拡張手続きは,IESG [IANA-CON] が定める指針に沿う。 11は,新しい登録をどのように考慮対象として提案するかを規定している。IANAは,要求される情報をもたない登録提案,又は 11が規定する適切な形式に従わない登録提案を拒否する。 IPP/1.1は,これらの拡張のどれをも指定する適切なRFCによって拡張されてもよい。
IPPは,'keyword'及び'enum'の拡張を許す(4.1.2.3及び 4.1.4を参照)。この規定は,その名前によってそれを読む者に拡張の意味を伝えるために,'keyword'及び'enum'の基本属性構文型に対して,接頭辞を使用する。この拡張情報は,クライアント又は Printerオブジェクトには重要ではないので,プロトコルでは表現されない。次に示す一覧は,接頭辞及びその意味を規定する。
IANAは,IPP指定の専門化に登録提案を転送する。その専門家は, そのために用意されたメーリングリストを使って提案をレビューする。はじめは,そのリストは, IPP WGが[IANA-CON]の許可によって解散した後も用いているメーリングリスト(ipp@pwg.org)になるであろう。
IPP指定の専門化は,[IANA-CON]に従って, IPPを担当するIESG領域ディレクタによって任命される。
type2キーワード又はenumが承認されると,IPP指定の専門化は,その登録に関して必要とされる将来のすべての保守の窓口となる。
type3キーワード又はenumがIPP指定の専門化によって承認されると,元の提案者は,その登録に関して必要とされる将来のすべての保守の窓口となる。
type2及びtype3のキーワードについては,提案者は登録の提案のキーワードの名前を含み, その名前は技術的検討の一部となる。
type2及びtype3のenum指定が承認された後,IPP指定の専門化は, IANAと相談しながら, 各enum値に関して次に利用可能なenum番号を割り当てる。
IANAは,承認されたtype2及びtype3のキーワード並びにenum属性値の登録規定を次の中で公開する。
ftp.isi.edu/iana/assignments/ipp/attribute-values/xxx/yyy.txt
ここで,xxxは,初期値を指定する属性名とし,yyy.txtは,同時に承認された一つ又は複数のenum又はキーワードを含む記述的ファイル名とする。 例えば,ステープル止めのための幾つかの追加のenumが,"finishings" 属性(並びに"finishings-default"属性及び"finishings-supported"属性)と共に使用するために承認される場合,IANAは,追加の値を次のファイルにおいて公開する。
ftp.isi.edu/iana/assignments/ipp/attribute- values/finishings/stapling.txt
備考 幾つかの属性は, 'type3 keywords' | 'name'として定義される。それは,管理者定義の名前をもつサイト管理者によって属性値を拡張することを可能にする。その名前は, IANAには登録されない。
定義では,これらの三つの型のいずれも,拡張を有効なものとするために,何らかの登録処理又は検討処理を必要とする。レベル(1, 2, 3)の数はそれが大きくこなるほど,それぞれ減少的に前のレベルよりも厳格でなくなる。したがって,どのようなtypeNの値も,typeM (MはNより小さい。)に関する処理を使用して登録されてもよいが,その登録は必す(須)ではない。例えば, type3 の値は,(IPP規定の将来の版に含まれることによって)type1の方法で登録されてもよいが,必す(須)ではない。
この規定は,type3キーワードを含めて,これらのすべての型に関するキーワード及び enumの値を定義する。
私的な(未登録の)キーワードの拡張に関しては,実装者は,"xxx-"などの, 適切な区別のつく接頭辞をもつキーワードを使用するのが望ましい。ここで, xxxは,ドメイン名[RFC1035]で使用するためにIANAで登録された, (小文字の)完全に限定された会社名とする。例えば,XYZ Corp.という会社がドメイン名"XYZ.com"を獲得した場合,私的なキーワード'abc'は,'xyz.com-abc'となる。
備考 RFC 1035 [RFC1035]は,大文字及び小文字はドメイン名に使用できるが,大文字・小文字の区別に特に意味がないことを示す。つまり,同じ綴りをもち,大文字・小文字が異なる二つの名前は,同じものとして扱われる。ドメイン名におけるラベルは,ARPANETホスト名の規則に従わなければならない。それらは,文字で始まり,文字又は数字で終わらなければならず,それらの間の文字としては,文字,数字及びハイフンだけをもつ。ラベルは,63個以下の文字でなければならない。ラベルは,"."文字で分離される。
私的な(未登録の)enum拡張に関しては,実装者は,2**30から2**31-1 までの予約済み整数範囲の値を使用しなければならない。
属性名は,type2キーワードとする。したがって,新しい属性は,登録されてよく, type2拡張規則に従って,この規定の属性と同じ状態をもつ。私的な (未登録の)属性拡張については,実装者は,6.1に規定される適切な区別のつく接頭辞をもつキーワードを使用しなければならない。
IANAは,次の別ファイルとして,承認された属性登録規定を公開する。
ftp.isi.edu/iana/assignments/ipp/attributes/xxx-yyy.txt
ここで,"xxx-yyy"は,新しい属性名とする。
新規のPrinterオブジェクト属性が定義され,その値が特定の文書フォーマットによって影響を受け得る場合,その規定は次の文を含む必要がある。
"The value of this attribute returned in a Get-Printer- Attributes response MAY depend on the "document-format" attribute supplied (see Section 3.2.5.1)."
規定がこの文を含まない場合,Get-Printer-Attributes応答のその値は,要求で供給される"document-format"に依存してはならない。新規のジョブテンプテート属性が登録される場合,Printer属性の値は, その表示が不可欠である規定をもたない要求で供給される"document-format"によって変化してもよい。
属性構文は,type2のenumに似ている。したがって,新規の属性構文は,登録されてもよく,6.1に規定されるtype2拡張規則に従って,この規定の属性構文と同じ状態をもってもよい。各属性構文を識別する値コードは,私的使用,実験的使用のために指定された範囲を含め,"符号化及びトランスポート"の規定[IPP-PRO] で割り当てられる。
属性構文に関しては,IPP指定の専門化は, IANAと相談しながら, [IPP-PRO]で規定される適切な範囲内で,次の属性構文コードを割り当てる。 IANAは,次に示す別ファイルとして,承認された属性構文登録規定を公開する。
ftp.isi.edu/iana/assignments/ipp/attribute-syntaxes/xxx-yyy.txt
ここで,'xxx-yyy'は,新規の属性構文名とする。
主要な新規の操作はこの規定を拡張する新規の標準化トラック RFCによって行われるのが普通であるが,操作は, 6.1に規定される type2の手続きに従って登録されてもよい。私的な(未登録の)操作の拡張に関しては,実装者は,4.4.15 サポートされる操作 ("operations-supported")のPrinter属性に規定される要求の中の "operation-id"の範囲を使用しなければならない。
操作に関しては,IPP指定の専門化は,IANAと相談しながら, 4.4.15に規定される次のoperation-idコードを割り当てる。 IANAは,次に示す別ファイルで,承認された操作登録規定を公開する。
ftp.isi.edu/iana/assignments/ipp/operations/Xxx-Yyy.txt
ここで,"Xxx-Yyy"は新規の操作名とする。
要求及び応答で渡される属性グループは,6.1に規定される type2の手続きに従って登録されてもよい。各属性グループを識別するタグは,[IPP-PRO]において割り当てられる。
属性グループに関しては,IPP指定の専門化は,IANAと相談しながら, [IPP-PRO]に規定される適切な範囲内で,次の属性グループのタグコードを割り当てる。IANAは,次に示す別ファイルで,承認された属性グループ登録規定を公開する。
ftp.isi.edu/iana/assignments/ipp/attribute-group-tags/xxx-yyy- tag.txt
ここで,'xxx-yyy-tag'は,新規の属性グループのタグ名とする。
操作状態コードは,6.1に規定されるtype2の手続きに従って登録されてもよい。状態コードに関する値は,次に示す各状態コードクラスに対して 附属書Cに規定される範囲の中に割り当てられる。
私的な(未登録の)操作状態コード拡張に関して,実装者は,附属書B に規定される各範囲の最上位のものを使用しなければならない。
操作状態コードに関して,IPP指定の専門化は,IANAと相談しながら, 附属書Bに規定される適切なクラスの範囲内で,次の状態コードを割り当てる。IANAは,次に示す別ファイルとして,承認された状態コード登録規定を公開する。
ftp.isi.edu/iana/assignments/ipp/status-codes/xxx-yyy.txtここで,"xxx-yyy"は,新規の操作状態コードキーワードとする。
"document-format"属性の構文は,'mimeMediaType'とする。これは,有効な値がインタネットメディア型(4.1.9 を参照)であることを意味する。RFC 2045 [RFC2045]は,有効なインタネットメディア型の構文を定義する。 IANAは,すべてのインタネットメディア型の登録機関である。
"attributes-charset"属性の構文は, 'charset'とする。これは,有効な値は, charsetの名前であることを示す。IANA登録のcharsetが複数の名前 (別名)をもつ場合,"(preferred MIME name)"というラベルのついた名前(もしあれば) が使用されなければならない(4.1.7 を参照)。IANAは, [RFC2278]の手続きに従ったcharsetの登録機関である。
幾つかの属性は,機械ではなく人に理解できることを意図して,文字列及び名前の値をもつ('text'及び'name'の属性構文については4.1.1及び4.1.2参照)。
それぞれの操作要求で,クライアントは,次のことを行う。
さらに,クライアントは,それぞれ4.1.1.2又は4.1.2.2に規定されている'textWithLanguage'又は'nameWithLanguage'の手法を用いて,供給された'text'又は'name'属性のNatural Language Overrideを個別に識別してもよい。
すべてのIPPオブジェクトは,サポートするすべての'text'及び'name'の属性で,UTF-8 [RFC2279] charsetをサポートしなければならない。IPPオブジェクトが,UTF-8 [RFC2279]より多くのcharsetをサポートする場合,そのオブジェクトは,3.1.4.2に従って要求されたcharsetをクライアントへ返すために,それらのcharsetの間で変換をしなければならない。IPPオブジェクトが一つより多くの自然言語をサポートする場合,そのオブジェクトは,Printerによって生成された値である要求された自然言語で'text'及び'name'の値を返すことが望ましい(3.1.4.1参照)。
複数のcharset及び/又は複数の自然言語を'text'及び'name'の属性としてサポートするPrinterでは,charset及び/又は自然言語の異なる別のジョブが提出されたかもしれない。すべての応答は,クライアントに要求されたcharsetで返されなくてはならない。しかし,Get-Jobs操作は,それぞれの返されるジョブ属性で,異なる自然言語を識別するために,'textWithLanguage'及び'nameWithLanguage'の機構を使用する。
Printerオブジェクトは,設定されたcharset及び自然言語の属性もつ。クライアントは,Printerオブジェクトによってサポートされているcharset及び自然言語のリストを決めるため,並びにPrinterオブジェクトが設定している値が何であるかを決めるため,Printerオブジェクトに問い合わせることができる。詳細については,"charset-configured", "charset-supported", "natural-language-configured" 及び"generated-natural-language-supported"のPrinter記述属性を参照。
"charset-supported"属性は,サポートされるcharsetを識別する。あるcharsetがサポートされている場合,IPPオブジェクトは,そのcharsetから,他のサポートされているcharsetへ変換できなければならない。多くの場合,IPPオブジェクトは,一つだけcharsetをサポートし,それは,UTF-8 charsetでなければならない。
"charset-configured" 属性は,IPPオブジェクトの現在の設定(管理者が定義)として与えられる原charsetである,一つのサポートされているcharsetを識別する。
"generated-natural-language-supported"属性は,生成されるメッセージのための自然言語の集合を識別する。すなわち,クライアントが与える'text'及び'name'に対して受け付けられなければならない自然言語の集合とは関連がない。クライアントが供給する'text'及び'name'に対しては,IPPオブジェクトは,すべての供給された自然言語を受け付けなければならない。Printerオブジェクトが現在'en-us'に設定されていることは,クライアントが'fr-ca'のジョブ名を与えた場合にジョブを拒絶するのがよいということは意味しない。
"natural-language-configured" 属性は,IPPオブジェクトの現在の設定(管理者が定義)として与えられる,原自然言語である,生成されるメッセージのためにサポートされる,一つの自然言語を識別する。
'text'型及び'name'型の属性は,異なるソースから出される。これらの属性は,(属性の送信元によって)次のグループに分類できる。
a) | 幾つかの属性は,クライアントにより供給される。 例 対応するJobオブジェクトの"job-name"及び"job-originating-user-name"属性に従ってクライアントが供給する"job-name", "document-name"及び"requesting-user-name"操作属性。 IPPオブジェクトは,生成メッセージのためにサポートされるlanguageの集合によらず,どんな自然言語をも受け付けなければならない。 |
b) | 幾つかの属性は,システム管理者により供給される。 例 Printerオブジェクトの"printer-name"及び"printer-location"属性。 これらも自然言語でありうる。これらの属性の自然言語がクライアントが要求した自然言語と異なる場合,Natural Language Override機構を使って通知されなければならない。 |
c) | 幾つかの属性は,装置製造者により供給される。 例 Printerオブジェクトの"printer-make-and-model"属性。 これらも自然言語でありうる。これらの属性の自然言語がクライアントが要求した自然言語と異なる場合,Natural Language Override機構を使って通知されなければならない。 |
d) | 幾つかの属性は,操作者によって供給される。 例 Jobオブジェクトの"job-message-from-operator"属性。 これらも自然言語でありうる。これらの属性の自然言語がクライアントが要求した自然言語と異なる場合, Natural Language Override機構を使って通知されなければならない。 |
e) | 幾つかの属性はIPPオブジェクトによって生成される。 例 Jobオブジェクトの"job-state-message"属性,Printerオブジェクトの"printer-state-message" 属性及び"status-message" 操作属性。 これらの属性は,"generated-natural-language-supported"自然言語の中の一つとする。サポートしていない自然言語をクライアントが要求した場合,そのオブジェクトは,"natural-language-configured"属性の値を用いて(必要ならばNatural Language Override機構を使って)応答することが望ましい。 |
この規定のこの版において記される'text'及び'name'属性を,表23に示す(属性の追加は,6.に記載した手続きに従って登録される)。
Attributes | Source |
---|---|
Operation Attributes: | |
job-name (name) | client |
document-name (name) | client |
requesting-user-name (name) | client |
status-message | Job or Printer object |
Job Template Attributes: | |
job-hold-until (keyword | name) | client matches administrator-configured |
job-hold-until-default (keyword | name) | client matches administrator-configured |
job-hold-until-supported (keyword | name) | client matches administrator-configured |
job-sheets (keyword | name) | client matches administrator-configured |
job-sheets-default (keyword | name) | client matches administrator-configured |
job-sheets-supported (keyword | name) | client matches administrator-configured |
media (keyword | name) | client matches administrator-configured |
media-default (keyword | name) | client matches administrator-configured |
media-supported (keyword | name) | client matches administrator-configured |
media-ready (keyword | name) | client matches administrator-configured |
Job Description Attributes: | |
job-name (name) | client or Printer object |
job-originating-user-name (name) | Printer object |
job-state-message (text) | Job or Printer object |
output-device-assigned (name(127)) | administrator |
job-message-from-operator (text(127)) | operator |
Printer Description Attributes: | |
printer-name (name(127)) | administrator |
printer-location (text(127)) | administrator |
printer-info (text(127)) | administrator |
printer-make-and-model (text(127)) | administrator or manufacturer |
printer-state-message (text) | Printer object |
printer-message-from-operator (text(127)) | operator |
存在するかも知れないセキュリティ上の危険を,IPPが使われるすべての環境において予測することはむつかしい。例えば,一つの企業内の私的なネットワークでIPPが使われる場合,露出する文書データの危険は充分に少ないであろうから,その企業はそのデータを暗号化しないことを選択するであろう。しかし,クライアント及びIPPオブジェクトが,公開のネットワークで接続される場合には,クライアントは,ネットワーク内を伝送中の情報内容を暗号化して保護することを望むかもしれない。
しかも,印刷される情報の価値は,IPP環境ごとに異なるかもしれない。例えば,給与小切手を印刷することは,公開情報を印刷することとは価値が異なるであろう。印刷資源に対するサービス否認攻撃もあり得るが,印刷資源に対するサービス否認攻撃は理解されていないし,このシナリオに関しての先例の記録がない。
要求者の認証された識別性がIPPオブジェクトに一度供給されたならば,そのIPPオブジェクトは,適当であろう認定方針を実施するために,その識別性を使用する。例えば,あるサイトの方針は,ジョブの所有者だけに,そのジョブの取消しを許可するものであるかもしれない。特定のアクセス制御方針を設定するための詳細及び機構は,IPP/1.1の一部ではなく,別の管理の枠組み又はアクセス制御の枠組みによって確立されなければならない。ただし,IPPオブジェクトに対する何らかのアクセス制御違反となり得ることに関しては,IPPサーバがクライアントに情報を返信することを許す,操作状態コードが存在する。
生成操作において,クライアントの識別性は, 実装定義の属性のJobオブジェクトに記録される。この情報は,効果的であろう何らかのアクセス制御方針を実施するために,このJobオブジェクトへの後続の操作において,クライアントの識別性を検証するために使用できる。詳細を,8.3に示す。
IPPシステム管理者が憂慮するかもしれないセキュリティレベル又は特定の脅威は予測できないので,IPPは,個々の設置に要求される,異なるセキュリティ機構及びセキュリティ方針と共に実行されなければならない。セキュリティ方針は,多様であり,非常に強いかもしれないし,非常に弱いかもしれないし,なしかもしれない。それらに対応したセキュリティ機構が要求される。
IPP環境での特定のセキュリティ攻撃について次に示す。幾つかの例が示されるが,これらは環境の例示であって,すべての環境を記述している訳ではない。IPPの初期の実装では,これらの環境のすべてについて,必ずしも扱われるわけではない。
この環境は,従来のオフィス作業者が個人で使うアプリケーションの出力を共有作業グループプリンタに印刷する,又はバッチアプリケーションが出力を大規模プリンタに印刷する,典型的な構内ネットワークになる。この環境においてユーザの識別性は信頼されているかもしれないが,あるユーザは,盗み見,再生,勝手にいじるなどの攻撃に対して,文書内容を保護したいかもしれない。
この環境の例は,クライアントによって作成された文書を,印刷店などの広く一般に利用可能なプリンタに印刷すること,又は文書を取引先のプリンタに遠隔に印刷することを含む。後者の操作は,ファクシミリで取引先に文書を送信することと機能的に等価になる。異なるセキュリティ領域に属するPrinterへの機密扱いの情報の印刷は,強いセキュリティ尺度を要求する。この環境では,印刷資源の認定されていない使用からの保護と共に,プリンタの認証が要求される。文書は,複数のセキュリティ領域にまたがっているので,盗み見及び勝手にいじることからの保護も要求される。この環境では,"スパム"及び悪意のある文書内容からのPrinterの保護も重要である。
文書がクライアントに保持されていないとき,参照によって印刷できる。すなわち,印刷要求は,実文書の代わり,文書への参照又はポインタを含むことができる(3.2.2及び3.3.2参照)。遠隔実体が第三者に要求を転送するためのクライアントの信任状を"横取り"するための標準的な方法は現在存在しない。Print-By-Reference(参照による印刷)が"公開"文書にアクセスするために使われることとは予期されるが,"代理人"を認証する洗練された方法は, この規定では扱われない。
"printer-uri-supported"属性は,PrinterオブジェクトのURIを含む。それに付随する属性である"uri-security-supported"は,"printer-uri-supported"属性にリストされている各URIに使用されるセキュリティ機構を識別する。それぞれのPrinter操作属性において,クライアントは,"printer-uri"操作属性に含まれるただ一つのURIを供給しなければならない。別の言い方をすれば,Printerが複数のURIをサポートするとしても,クライアントは,その一つのURIだけによって相互に作用する。この二元性は,Jobオブジェクトには必要ではない。それは,Prinerオブジェクトは,Jobオブジェクトを製造するところであり,そのPrinterオブジェクトのセキュリティ設定に依存して,新しいJobオブジェクトに対して正しいURIを生成することに基づく。
それぞれのURIは関連した認証機構をもつ。URIが"printer-uri-supported"のi番目のエレメントである場合,認証機構は"uri-authentication-supported"の"i番目の"エレメントになる。可能な認証機構の一覧については,4.4.2を参照のこと。
Printerオブジェクトは,ユーザが操作を実行する名前を決めるため,認証機構を使用する。このユーザを"認証済みユーザ"と呼ぶ。認証の信頼性は,user.s名を取得するためにPrinterが使用する機構に依存する。認証機構が@none@の場合,すべての認証済みユーザは"匿名"となる。
ジョブ生成操作中に,Printerは,"job-originating-user-name"属性の値を初期化して, 認証済みユーザとなる。認証済みユーザは,この場合"job-owner"と呼ばれる。
実装が,複数の認証機構をサポートする構成をとることができる場合,異なる認証機構を通して認証される認証済みユーザ名の同等性を決めるための規約を実装しなければならない。一つの可能性のある方針は,異なる機構によって認証された同一の名前は,異なるものであるとすることとする。例えば,あるユーザが,Cancel-Job及びPrint-Jobの両方おいて,同じ認証機構を使ったときだけ,そのユーザのジョブが取消しできるとする。もう一つの方針は,異なる機構によって認証された同一の名前は,後の操作の認証機構が先のジョブ生成操作の認証機構より弱くないときだけ,同一のものであるとすることとする。例えば,あるユーザが,同じ又はより強い認証機構を使ったときだけ,そのユーザのジョブが取消しできるとする。この2番目の方針では,'requesting-user-name'認証で提出されたジョブは,'digest'認証を通して取り消せるであろう。最初の方針では,ジョブはこの方法によっては取り消せないであろう。
クライアントは,ジョブを生成するのに使用される認証機構を決めることができる。これは,Printer.sの"uri-authentication-supported"のi番目の値であり,iは,job.sの"job-printer-uri"属性と等価なPrinter.sの"uri-authentication-supported"のインデクスとする。
多くのIPP操作では,クライアントは,応答で返される属性の一覧を供給する。セキュリティ上の理由によって,IPPオブジェクトは,クライアントが要求したすべての属性(又は,すべての値)は返さない構成に設定されているかもしれない。返されるジョブ属性は,要求したユーザがそのジョブを提出したユーザと同一であるかどうかに依存してもよい。IPPオブジェクトは,要求された属性のいずれも返さなくてもよい。この場合には,返される状態は,オブジェクトがすべての要求した属性を返した場合と同一とする。クライアントは,この応答によって,要求した属性がそのオブジェクトに存在するのか否かを知ることはできない。
3つのプリンタ操作,Pause-Printer, Resume-Printer及びPurge-Jobs(3.2.7, 3.2.8及び3.2.9参照)については,要求しているユーザは,そのPrinterオブジェクトの操作者又は管理者になるはずとする(1.参照)。ジョブに対する操作については,要求しているユーザは,ジョブ所有者になるはずであり, そのPrinterオブジェクトの操作者又は管理者になってもよい。Printerオブジェクトの操作者又は管理者を認定する方法は,この規定では扱わない。
IPPプリンタである装置が,IPPに加えてその他のジョブ提出プロトコルを使用したジョブを受け付けることができる場合,これらの実装が, 少なくともGet-Jobsが'unknown'として返した"job-id"及び"job-uri"を使って,問合された"IPP以外の"ジョブを許すことが,望まれる。これらの実装は,IPPジョブとしてのIPPジョブ属性と同じものをすべてサポートする必要はない。IPPオブジェクトは,IPPジョブにはサポートされているが,IPP以外のジョブにはサポートされていないIPP以外のジョブの要求された属性のために,'unknown'領域外の値を返す。
さらに,これらの"IPP以外のジョブ"に対しての"job-id"及び"job-uri"の値をIPP Printerが生成することが望ましく,可能であれば,Get-Job-Attribute及びCancel-Jobなどの他のIPP操作のターゲットとなるかもしれない。これらの実装は,これらのIPP以外のジョブの認証の問題を処理する必要もある。一つの取り組み方は,すべてのIPP以外のジョブを,IPPクライアントのユーザではないユーザに属させる取扱いであろう。もう一つの取り組み方は,IPP以外のジョブを'anonymous'に属させることであろう。IPP Printerオブジェクトの操作者又は管理者として認証されているIPPクライアントである場合だけ,IPP以外のジョブはIPP要求によって問合せできるであろう。セキュリティ方針が他のユーザのジョブに問合せすることを許可している場合には,Get-Jobs及びGet-Job-Attributesを使用したエンドユーザのIPPクライアントに対して,IPP以外のジョブが見えるようになろう。
Scott A. Isaacson (Editor) Novell, Inc. 122 E 1700 S Provo, UT 84606 Phone: 801-861-7366 Fax: 801-861-2517 e-mail: sisaacson@novell.com Tom Hastings Xerox Corporation 737 Hawaii St. ESAE 231 El Segundo, CA 90245 Phone: 310-333-6413 Fax: 310-333-5514 e-mail: hastings@cp10.es.xerox.com Robert Herriot Xerox Corp. 3400 Hill View Ave, Building 1 Palo Alto, CA 94304 Phone: 650-813-7696 Fax: 650-813-6860 e-mail: robert.herriot@pahv.xerox.com Roger deBry Utah Valley State College Orem, UT 84058 Phone: (801) 222-8000 EMail: debryro@uvsc.edu Patrick Powell Astart Technologies 9475 Chesapeake Dr., Suite D San Diego, CA 95123 Phone: (619) 874-6543 Fax: (619) 279-8424 e-mail: papowell@astart.com
IPPメーリングリスト: ipp@pwg.org IPPメーリングリスト申込み: ipp-request@pwg.org IPPウェブページ: http://www.pwg.org/ipp/
この規定の実装者には,課題を明確にする議論に参加し,属性及び値の追加のための登録提案審議に参加するために,IPPメーリングリストに登録することを薦める。
Chuck Adams - Tektronix Jeff Barnett - IBM Ron Bergman - Dataproducts Corp. Sylvan Butler - HP Keith Carter - IBM Corporation Jeff Copeland - QMS Andy Davidson - Tektronix Mabry Dozier - QMS Lee Farrell - Canon Information Systems Steve Gebert - IBM Babek Jahromi - Microsoft David Kellerman - Northlake Software Rick Landau - Digital Greg LeClair - Epson Harry Lewis - IBM Pete Loya - HP Ray Lutz - Cognisys Mike MacKay - Novell, Inc. Daniel Manchala - Xerox Carl-Uno Manros - Xerox Jay Martin - Underscore Larry Masinter - Xerox Stan McConnell - Xerox Ira McDonald - High North Inc. Paul Moore - Microsoft Tetsuya Morita - Ricoh Yuichi Niwa - Ricoh Pat Nogay - IBM Ron Norton - Printronics Bob Pentecost - HP Rob Rhoads - Intel Xavier Riley - Xerox David Roach - Unisys Stuart Rowley - Kyocera Hiroyuki Sato - Canon Bob Setterbo - Adobe Devon Taylor - Novell, Inc. Mike Timperman - Lexmark Randy Turner - Sharp Atsushi Yuki - Kyocera Rick Yardumian - Xerox Lloyd Young - Lexmark Bill Wagner - DPI Jim Walker - DAZEL Chris Wellens - Interworking Labs Rob Whittle - Novell, Inc. Don Wright - Lexmark Peter Zehler - Xerox Steve Zilles - Adobe
IPPの拡張を提案するには,提案者は,iana@iana.org宛てに電子メールで送ることによって,又はIANAのウェブページ(http://www.iana.org)にあるフォームに記入することによって,申請書をIANAに提出しなければならない。11.では,6.に規定している次の項目について,IPPの拡張の登録の提案をする場合に要求される情報及び様式について規定する。
Type of registration: type2 keyword attribute value
Name of attribute to
which this keyword specification is to be added:
Proposed keyword name of
this keyword value:
Specification of this keyword value (follow the style of
IPP Model Section 4.1.2.3):
Name of proposer:
Address of
proposer:
Email address of proposer:
参考 各項目の意味は,次のとおり。
登録の型:type2キーワード属性値
このキーワードの規定が追加される属性の名前:
このキーワード値の推奨キーワード名:
このキーワード値の規定(4.1.2.3の形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 type2キーワードについては,登録規定の保守が必要な場合,指名された専門家が,承認された登録規定についての連絡先となる。
Type of registration: type3 keyword attribute value
Name of attribute to
which this keyword specification is to be added:
Proposed keyword name of
this keyword value:
Specification of this keyword value (follow the style of
IPP Model Section 4.1.2.3):
Name of proposer:
Address of
proposer:
Email address of proposer:
参考 各項目の意味は,次のとおり。
登録の型:
type3キーワード属性値
このキーワードの規定が追加される属性の名前:
このキーワード値の推奨キーワード名:
このキーワード値の規定(4.1.2.3の形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 type3キーワードについては,登録規定の保守が必要な場合,提案者が,承認された登録規定についての連絡先となる。
Type of registration: type2 enum attribute value
Name of attribute to
which this enum specification is to be added:
Keyword symbolic name of this
enum value:
Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA):
Specification of this enum value (follow the style
of IPP Model Section 4.1.4):
Name of proposer:
Address of
proposer:
Email address of proposer:
参考 各項目の意味は,次のとおり。
登録の型:type2列挙属性値
この列挙型の規定が追加される属性の名前:
この列挙値のキーワード名:
番号(指名されたIPP専門家が,IANAと協議の上,割り当てる。):
この列挙値の規定(4.1.4の形式に従うこと):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 type2列挙については,登録規定の保守が必要な場合,指名された専門家が,承認された登録規定についての連絡先となる。
Type of registration: type3 enum attribute value
Name of attribute to
which this enum specification is to be added:
Keyword symbolic name of this
enum value:
Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA):
Specification of this enum value (follow the style
of IPP Model Section 4.1.4):
Name of proposer:
Address of
proposer:
Email address of proposer:
参考 各項目の意味は,次のとおり。
登録の型:type3列挙属性値
この列挙型の規定が追加される属性の名前:
この列挙値のキーワード名:
番号(指名されたIPP専門家が,IANAと協議の上,割り当てる。):
この列挙値の規定(4.1.4の形式に従うこと。):
提案者の住所:
提案者の電子メールアドレス:
備考 type3列挙については,登録規定の保守が必要な場合,提案者が,承認された登録規定についての連絡先となる。
Type of registration: attribute
Proposed keyword name of this
attribute:
Types of attribute (Operation, Job Template, Job Description,
Printer Description):
Operations to be used with if the attribute is an
operation attribute:
Object (Job, Printer, etc. if bound to an
object):
Attribute syntax(es) (include 1setOf and range as in Section
4.2):
If attribute syntax is 'keyword' or 'enum', is it type2 or type3:
If
this is a Printer attribute, MAY the value returned depend on "document-format"
(See Section 6.2):
If this is a Job Template attribute, how does its
specification depend on the value of the "multiple-document-handling"
attribute:
Specification of this attribute (follow the style of IPP Model
Section 4.2):
Name of proposer:
Address of proposer:
Email address of
proposer:
参考 各項目の意味は,次のとおり。
登録の型: 属性
この属性の推奨する名前:
属性の型(Operation, Job Template, Job
Description又はPrinter Description):
操作属性の場合,使用される操作(オブジェクトへの境界の場合,Job,
Printerなど。):
属性構文(4.2の1setOf及びrangeを含む。):
属性構文が'keyword'又は'enum'の場合,
type2又はtype3のどちらか:
Printer属性の場合, "document-format"に応じて返される値を書いてもよい(6.2参照):
Job
Template属性の場合,"multiple-document-handling"属性の値への依存方法:
この属性の規定(4.2の形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 属性については,登録規定の保守が必要な場合,指名されたIPP専門家が,承認された登録規定についての連絡先となる。
Type of registration: attribute syntax
Proposed name of this attribute
syntax:
Type of attribute syntax (integer, octetString, character-string, see
[IPP-PRO]):
Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA):
Specification of this attribute (follow the style of
IPP Model Section 4.1):
Name of proposer:
Address of proposer:
Email
address of proposer:
参考 各項目の意味は,次のとおり。
登録の種類:属性構文
この属性構文の推奨する名前:
属性構文の型(integer,
octetString又はcharacter-string。[IPP-PRO]参照。):
番号(指名されたIPP専門家が,IANAと協議の上,割り当てる。):
この属性の規定(4.1の形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 属性構文については,登録規定の保守が必要な場合,指名されたIPP専門家が,承認された登録規定についての連絡先となる。
Type of registration: operation
Proposed name of this
operation:
Numeric operation-id value (to be assigned by the IPP Designated
Expert in consultation with IANA):
Object Target (Job, Printer, etc. that
operation is upon):
Specification of this attribute (follow the style of IPP
Model Section 3):
Name of proposer:
Address of proposer:
Email address
of proposer:
参考 各項目の意味は,次のとおり。
登録の種類:操作
この操作の推奨する名前:
操作id番号(指名されたIPP専門家が,IANAと協議の上,割り当てる。):
Object
Traget(操作がなされるJob, Printerなど。):
この属性の規定(3.の形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 操作については,登録規定の保守が必要な場合,指名されたIPP専門家が,承認された登録規定についての連絡先となる。
Type of registration: attribute group
Proposed name of this attribute
group:
Numeric tag according to [IPP-PRO] (to be assigned by the IPP
Designated Expert in consultation with IANA):
Operation requests and group
number for each operation in which the attribute group occurs:
Operation
responses and group number for each operation in which the attribute group
occurs:
Specification of this attribute group (follow the style of IPP Model
Section 3):
Name of proposer:
Address of proposer:
Email address of
proposer:
参考 各項目の意味は,次のとおり。
登録の型: 属性グループ
この属性グループの推奨する名前:
この列挙値のキーワード名:
[IPP-PRO]
に従う数値タグ(指名されたIPP専門家が,IANAと協議の上,割り当てる。):
属性グループが存在する操作要求の操作の操作要求及びグループ番号:
属性グループが存在する操作要求の操作の操作応答及びグループ番号:
この属性グループの規定(3.の形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 属性グループについては,登録規定の保守が必要な場合,指名されたIPP専門家が,承認された登録規定についての連絡先となる。
Type of registration: status code
Keyword symbolic name of this status
code value:
Numeric value (to be assigned by the IPP Designated Expert in
consultation with IANA):
Operations that this status code may be used
with:
Specification of this status code (follow the style of IPP Model
Section 13 APPENDIX B: Status Codes and Suggested Status Code Messages):
Name
of proposer:
Address of proposer:
Email address of proposer:
参考 各項目の意味は,次のとおり。
登録の型: 状態コード
この状態コード値のキーワード名:
番号(指名されたIPP専門家が,IANAと協議の上,割り当てる。):
この状態コードが使用されるかもしれない操作:
この状態コードの規定(附属書B
状態コード及び推奨状態コードメッセージの形式に従うこと。):
提案者の氏名:
提案者の住所:
提案者の電子メールアドレス:
備考 状態コードについては,登録規定の保守が必要な場合,指名されたIPP専門家が,承認された登録規定についての連絡先となる。