附属書Bは,操作要求の結果であるセマンティクス情報の提供に使用される状態コード列挙キー ワード及び状態コード列挙値を定義する。各操作応答は,必ず状態コードを含んでいなけ ればず,状態の短テキスト記述である状態メッセージを含んでいてもよい。状態 コードは,オートマトンによって使用されることを意図し,状態メッセージ は,人間のエンドユーザを意図する。状態メッセージは操作応答のオプション の構成要素であり,IPPアプリケーション(ブラウザ,GUI,プリンタドライバ, ゲートウェイなど)に返されない場合もあってもよいので,アプリケーションは状態メッセージを 調べたり表示したりしなくてよい。
状態キーワードの接頭辞は,応答のクラスを次のとおりに定義する。
type2 enums,IPP状態コードは拡張可能である。IPPクライアントは,すべて の登録された状態コードの意味を理解することが明らかに望ましいが, 必ずしも必要なことではない。しかし,IPPクライアントは, どの状態コードにおいても, 接頭辞に示されるクラスを理解し,ある未認識の応答はキャッシュされてはいけないと いう例外はあるが,どの未認識の応答においてもそのクラスの最初の状態コードに同等で あるとして取り扱わなければならない。例えば, 未認識の状態コード"client-error-xxx- yyy"がクライアントに受信された場合,その要求に何らかの間違えがあったとみなし, あたかも"client-error-bad-request" 状態コードを受信したかのように応答を安全に取 り扱うことができる。その場合,IPPアプリケーションは,異常な状態を説明する 人間可読な情報をおそらく含んでいるオプションのメッセージ(存在す る場合)をエンドユーザに対して示すことが望ましい。列挙の名前は, アメリカ英語の推奨する状態 メッセージである。
状態コード値は, 0x0000〜0x7FFFに及ぶ。各状態コードクラス値の範囲を,表B.1に示す。
"successful" | 0x0000〜0x00FF |
"informational" | 0x0100〜0x01FF |
"redirection" | 0x0200〜0x02FF |
"client-error" | 0x0400〜0x04FF |
"server-error" | 0x0500〜0x05FF |
各範囲の(0x0n40〜0x0nFF,n = 0〜5に対して)上位(128値)は,各状態コードクラス 内で私的使用のために予約されている。0x0600〜0x7FFFの値は,将来のために予 約されていて, 使用してはいけない。
各状態コードをB.1に記述する。B.2は,どの状態コードがどの操作に適用するかを 示す表を含み,Implementer's Guide [IPP-IIG]は, すべての操作におけるIPP属性の処理手順を,返される状態コードを含めて規定する。
このクラスの状態コードは仮の応答を示し,情報を提供する目的だけに使用さ れる。
IPP/1.1は,このクラスの状態コードを定義していない。
このクラスの状態コードは,クライアントの要求が受信,理解及び受付けに成功したことを 示す。
要求は成功し,要求属性は置換又は無視されなかった。生成要求に対しての応答の 場合,'successful-ok' 状態コードは要求が受信され,有効になり,さらにジョブオブジ ェクトの生成に成功したことを示す。これはジョブが処理されたことは示さない。 ジョブオブジェクトの'completed'状態への遷移だけが, ジョブが印刷されたことを示す。
要求は成功したが,(1)いくつかの供給された属性は無視され,又は(2)未サポ ート値はサポートされている値に代用されたか操作を拒否せずに実行するために無視 された。Unsupported Attributes,属性構文,又は属性値は,すべての操作において,応答 のUnsupported Attributesグループに返されなければならない。次の問合せ操作に関するこの規則には 例外がある。つまり, "requested-attributes"の操作属性だけに関するGet- Printer-Attributes, Get-Jobs及びGet-Job-Attributes。"requested-attributes" 操 作属性の供給された値がサポートされていない属性を要求している場合,IPPオブジェク トは,必す(須)ではないが,Unsupported Attribute 応答グループにおいて"requested- attributes"の属性(サポートされていない値だけと共に)を返してもよい。 3.1.7及び 3.2.1.2を参照。
要求は成功したが,いくつかの供給された属性値は,他の供給された値と競合していた。 これら競合した値は (1)サポートしている値で置換された,又は(2)属性がジョブ を拒否せずに処理するために削除された。他の属性と競合し,置換されたか無視された属 性又は属性値は,クライアントによって供給されるすべての操作に関する応答のUnsupported Attributesグループに返されなければならない。 3.1.7及び 3.2.1.2を参照。
このクラスの状態コードは,要求を満すにはさらにアクションが必要であることを示す。
IPP/1.1 では,このクラスの状態コードは定義されていない。
このクラスの状態コードは,クライアントがエラーを起こしたと思われる場合を意図する。 IPPオブジェクトは, エラー状態の説明及びそれが一時的なものか又は永久的なも のかを示すどちらかのメッセージを返すことが望ましい。
要求は,形のくずれた構文(例えば,その属性の規定する長さと固定長の長さとが一致しない属性の 値−Implementer's Guide [IPP-IIG]を参照) のため,IPPオブジェクトに理解されなかった。 IPPアプリケーションは, 修正無しには要求を繰り返さないことが望ましい。
IPPオブジェクトは要求を理解したが,その実行を拒否している。追加認証情報又は認定信任 は何も役に立たないので,その要求を繰り返さないことが望ましい。この状態コ ードは,通常,IPPオブジェクトが,要求が拒否された理由を正確に表したくないとき,又 は他の応答が全く当てはまらないときに使用される。
要求はユーザ認証を必要としている。IPPクライアントは適切な認証情報で要求を繰り返 すことができる。要求が既に認証情報を含んでいる場合,この状態コードは, その証明に対 して,権限が拒否されたことを示す。この応答が以前と同様な問題を含み, ユーザエージェントが既に認証を少なくても一度は試みている場合,応答メッセージは妥 当な診断情報を含むかもしれない。この状態コードは"client-error-forbidden"よ りも多くの情報を含む。
要求者は要求を実行する権限をもたない。追加認証情報又は認定信任は何も役にた たないので,要求を繰り返えさないことが望ましい。この状態コードは,IPPオブジェク トが,認証情報は理解可能であるが,要求者は要求を実行する権限をもたないことを明ら かにしたい場合に使用される。この状態コードは"client-error-forbidden"及び"client- error-not-authenticated"よりも多くの情報を含む。
この状態コードは,何も起こすことができない要求があるときに使用する。例えば,既 にシステムによって取り消されるか中断されたジョブを取り消す要求があるかも知れない。 IPPクライアントは, この要求を繰り返さないことが望ましい。
クライアントは,IPPオブジェクトが待機できる時間内に要求を生成しなかった。例えば, クライアントはCreate-Job操作を発行し,しばらく後に,Send-Document操作を発行し たが,このエラー状態コードがSend-Document要求に応答して返された (3.3.1参照)。IPPオブジェクトは, 追加Documents待ちのために一次停止していた資源を一掃することを強いられたかもしれない。 IPPオブジェクトは,クライアントがあまりに長い時間を費やしたので,Jobを終了することを強いられた。 クライアントは,修正無しにはこの要求を繰り返さないことが望ましい。
IPPオブジェクトは,要求URIと一致するものを何も見つけられなかった。この状態が一 時的又は永久的なものであるかについては何も示されていない。例えば,Job(URI)への 古い参照をもつクライアントがJobの取消しを試みるが,その間にJobは完了し,Printer にあるJobの記録はすべて削除されている場合である。この状態コード'client-error-not- found'は,参照されたジョブが見つからないことを示すときに返される。このエラ ー状態コードは,クライアントがPrint-URI又はSend-URI操作のどちらかの文書デ ータに対して参照としてURIを供給したときに,文書が見つけられない場合にも使用され る。
実際には,IPPアプリケーションは見つからない状態を回避するために,エンドユーザに 対して有効Printer URI及びJob URIのリストを最初に問い合わせ,表示することが望ま しい。
要求されたオブジェクトはすでに利用不可能であり,転送先アドレスも知られていない。 この状態は永久的と考えることが望ましく,リンク編集機能を持つクライアントはユーザ 承認後,要求URIへの参照を削除することが望ましい。IPPオブジェクトが,この状態が 永久的であるかどうかわからない場合,又は決定する手段が無い場合には,代わりに状態 コード"client-error-not-found"を使用することが望ましい。
この応答は,主として,資源が意図的に利用不可能であること,及びIPPオブジェクト管 理者がその資源に対しての遠隔リンクの削除を望んでいることを受信者に知らせることによって 保守のタスク支援を行なうことを意図する。すべての永久的に利用不可能な資源を"gone"として 表記したり, その表記をある時間保つ必要はない。これは,IPPオブジェクト管理者 の自由な判断に委ねられる。
要求実体が,IPPオブジェクトが処理不可能な大きさ又は処理したくない大きさであるために, IPPオブジェクトはその要求の処理を拒否している。IPP Printerは,この状態コードを 印刷ジョブのサイズを制限していてその制限を超える場合又は属性が多すぎて,それらの符号 化によって,要求実体はIPPオブジェクト容量を超えてしまう場合に, 返す。
IPPオブジェクトは,一つ以上のクライアント供給属性がその属性に対して指定されてい る最大長よりも長い可変長値であるため,要求のサービスを拒否している。IPPオブジェ クトは,最大長よりも長い値を処理(一時的にでも),解釈,及び/又は無視するための 十分な資源(メモリ,バッファなど)をもっていないかもしれない。他には,IPPオブジ ェクトが,最大長より小さい大きな値の処理をサポートしていても,その要求の全体的な 処理中に,その大きな値を処理できない他のシステム構成要素にその値をパスした場合に もこのエラーコードが使用される。詳細は,Implementer's Guide [IPP-IIG]を参照。
備考: URIである属性値において,このまれな状態は,クライアントが不正に長い問合せ 情報の要求(例えば,IPPアプリケーションはエンドユーザに無効URIを入力することを 認める)を提出した場合,クライアントがリダイレクションのURI "black hole"(例え ば,それ自体の接尾辞を指すリダイレクトされたURI接頭辞)に落ちた場合,又はIPPオ ブジェクトがRequest-URIを読むまたは処理するために固定長バッファを使用して, 幾つかのIPPオブジェクトに存在するセキュリティホールを利用しようとするクライア ントに攻撃を受ける場合だけに起こり得る。
IPPオブジェクトは,"document-foramt"操作属性で指定される文書データが,Printer オブジェクトではサポートされていないフォーマットであるので要求のサービスを拒否する。 このエラーはクライアント供給の"ipp-attribute-fidelity"に依存せず返される。 Printerオブジェクトは,このエラーがJob Template 属性の問題より重大なので,他に サポートされていないJob Template 属性があってもこの状態コードを返さなけれ ばならない。3.1.7, 3.2.1.1を参照。
生成要求において,Printerオブジェクトが要求された一つ以上の属性,属性構文,又は
属性値をサポートしていなくて,さらにクライアントが'真(true)'の値で"ipp-
attributes-fidelity" 操作属性を供給した場合,Printerオブジェクトはこの状態コー
ドを返さなければならない。Printerオブジェクトは,クライアントによって供給された
サポートされていないすべての属性及び/又は属性値をUnsupported Attributes Groupに
返さなければならない。3.1.7を参照。
例えば,要求が'iso-a4' メディアを指定しているが,そのメディアタイプは Printerオ
ブジェクトによってサポートされていない場合, 又は,クライアントがJob
Template 属性を供給し,その属性自体がPrinterによってサポートさえされていない場
合。"ipp-attribute-fidelity" 属性が'偽(false)'の場合は,Printerはサポート
されていないJob Template 属性及び属性値に対して,要求を拒否したり,この状態コー
ドを返すのではなく,むしろその属性値を無視するか置換しなければならない。
クライアントが属性を要求する操作(Get-Jobs,Get-Printer-Attributes,Get-Job- Attributes操作等)において,IPPオブジェクトは要求された属性のうちIPPオブジェク トが一つ以上の属性をサポートしていない場合,IPPオブジェクトは,この状態コードを 返すより,むしろ,あたかもそれらが供給されていなかったかのように,単に,サポート しない要求された属性を無視し,その要求を処理する。この場合,IPPオブジェクトは, 'successful-ok-ignored-or-substituted-attributes' 状態コードを必ず返さなければな らないが,Unsupported Attributes Groupには"requested-attributes"の値として未サ ポート属性を返してもよい(B.1.2.2を参照)。
Print-URI,Send-URI操作において,クライアントの供給するURIのスキーマがサポートさ れていない。3.1.7を参照。
どのような操作においても,IPP Printerが"attributes-charset" 操作属性でクライア ントにて供給されるcharsetをサポートしていない場合,Printerは操作を拒否し,'utf-8' charsetを使用して,この状態及び何らかの'text'又は'name' 属性を返さなければなら ない(3.1.4.1を参照。) 3.1.7を参照すること。
要求は,いくつかの属性値がこの規定で置換又は無視されることを認めていない他の 属性値と競合していたために, 拒否された。Printerオブジェクトは,クライアント にて供給された競合している属性をUnsupported Attributes Groupに返さなければなら ない。3.1.7及び 3.2.1.2を参照。
IPPオブジェクトは,"compression"操作属性で指定する文書データがPrinterオブジェ クトによってサポートされていない方法で圧縮されているので,要求のサービスを拒否し ている。このエラーは,クライアントが供給する"ipp-attribute-fidelity"には依存しな いで返される。Printerオブジェクトは,このエラーがJob Template属性の問題より重 要なので,他のサポートされていないJob Template属性に問題があったとしてもこの状 態コードを返さなければならない。3.1.7及び 3.2.1.1を参照。
IPPオブジェクトは,文書データが“compression”操作属性によって指定された圧縮を 使っているが,その圧縮が解凍されず要求のサービスを拒否している。このエラーは, クライアントが供給する“ipp-attribute-fidelity”には依存しないで返される。Printer オブジェクトは,このエラーがJob Template属性の問題より重要なので,他のサポート されていないJob Template属性に問題があってもこの状態コードを返さなければ ならない。3.1.7及び 3.2.1.1を参照。
IPPオブジェクトは,Printerが文書データを解釈している間にそのデータでエラーに であったので,要求のサービスを拒否している。このエラーは,クライアントが供給する “ipp-attribute-fidelity”には依存しないで返される。Printerオブジェクトは,この エラーがJob Template属性の問題より重要なので,他のサポートされていないJob Template属性に問題があってもこの状態コードを返さなければならない。 3.1.7及び 3.2.1.1を参照。
IPPオブジェクトは,Printerがアクセスを確認しようと試行しているか,又は "document-uri"操作属性で指定する文書データをアクセスしている間にアクセスエラー にであったので,Print-URI,Send-URIの要求のサービスを拒否している。このエラーは, クライアントが供給する"ipp-attribute-fidelity"には依存しないで返される。Printer オブジェクトは,このエラーがJob Template属性の問題より重要なので,他のサポート されていないJob Template 属性に問題があってもこの状態コードを返さなければ ならない。3.1.7を参照。
このクラスの状態コードは,IPPオブジェクト自体が起こしたエラーに気付いた場合,又は要 求を実行することができない場合を示す。IPPオブジェクトは,エラー状態を説明するメ ッセージを含み,それが一時的な状態か永久的な状態かを説明するメッセージを含むことが望 ましい。
IPPオブジェクトは,要求を満たすことを妨げる予期できない状態にであった。このエラ ー状態コードは,もっと永久的な型の内部エラーを暗示する意味で"server-error- temporary-error"とは異なる。予期できない状態を暗示する意味で,"server-error- device-error"とも異なる(望ましくはないが,予期できる紙詰まり,又はトナー切れ問 題とは違って)。このエラー状態コードは,知識のある人間の介入が必要であろうことを示す。
IPPオブジェクトは,要求を実行するために必要とする機能をサポートしていない。これ は,IPP オブジェクトが操作を認識しない,又はサポートできない場合に適切な応答であ る。3.1.7を参照。
IPPオブジェクトは,現在,IPPオブジェクトの一時的な過負荷,又は保守のために, 要求 を扱うことができない。これには,後に解放される一時的な状態であるという含みがある。 わかっている場合には,遅延時間の長さをメッセージで示してもよい。遅延時間がわから ない場合には,IPPアプリケーションは"server-error-temporary-error"応答を扱うよう に応答を扱うことが望ましい。状態がもっと永久的なものである場合には,"client- error-gone"又は"client-error-not-found"のエラー状態コードを使用することがで きる。
IPPオブジェクトは,要求にある"version-number"操作パラメタの値として供給されたIPP プロトコル版をサポートしない,又はサポートを拒否している。IPPオブジェクトは, このエラーメッセージ以外では,要求で供給されたものと同じ主版数及び副版数を使って要 求を完了することができないか,したくないことを示している。応答は,その版がサポー トされていない理由及び他の版がそのIPPオブジェクトにてサポートされていることを記 述する“status-message”属性を含んでいることが望ましい。 3.1.6を参照。
エラーの応答は,IPPオブジェクトがサポートする最新の版数を“version-number”操作 パラメタで識別しなければならない。例えば,クライアントが"1.0"版を供給し,IPP/1.1 のオブジェクトが"1.0"版をサポートする場合,クライアントは“1.0”で応答しなけれ ばならない。IPP/1.1オブジェクトが'1.0'版をサポートしていない場合は,クライアン トは,このエラーコードで応答しなければならない。
紙詰まりなどのプリンタエラーは,IPPオブジェクトがPrint又はSend操作を処理して いる間に発生する。応答は,本当のJob Status("job-state"及び"job-state-reasons" 属性の値)を含む。追加情報は,オプションである"job-state-message"の 属性値又はエ ラーを詳細に記述するオプションである状態メッセージにて返されることができる。この エラー状態コードは,Printerがそれらのデバイスエラーのため生成要求を受け取るこ とができない状態である場合だけでしか返されない。例えば,Printerがスプール不可能でジ ョブを一つずつしか受け取ることができない場合,生成要求を拒否してしまう理由は, Printerが現在紙詰まりを起こしているためである。しかし,Printer オブジェクトは, Printerに何らかのエラー状態が発生していても,要求を受け取ることができる多くの場 合,'successful-ok'の 状態コードが返される。その場合には,クライアントは返 されたJob Object Attributesを調べるか,状態及び状態理由を確認するために後で Printerに問い合わせる。
バッファがいっぱいの書き込みエラー,メモリオーバフロー(例えば,文書データが Printerのメモリを超えてしまう),又はディスクがいっぱいの状態などの一時的なエラ ーは,IPP Printerが操作を処理している間に発生する。クライアントは,しはらくして からこの一時的な内部エラー状態が解除されているかもしれないことを期待して,再度修 正無しの要求を試してよい℃タ装のオプションとして,Printerオブジェクト がエラーを返さないで一時的状態が解除されるまで応答を遅らせてもよい。
管理者がPrinterの"printer-is-not-accepting-jobs"の属性を'偽(false)'に設定したた め(このIPP/1.1規定の適用範囲外の方法において),Printerは現在ジョブを受け付け ていないことを示す一時的エラー。
Printerがジョブ及び/又は他の要求の処理を実行中で手がふさがっていることを示す一 時的エラー。クライアントは,しばらくしてからこの一時的なビジー状態が解除されてい ることを期待して,再度修正無しの要求を試してみることが望ましい。
クライアントがIPP Printerにデータを送信している間にオペレータ又はシステムによっ てジョブが取り消されたことを示すエラー。job-id及びjob-uriが生成された場合,そ れらは通常と同様に,Print-Job,Send-Document,又はSend-URI応答によって返される。 そうしないと,応答としてjob-id及びjob-uriは返されない。
IPPオブジェクトは,一つのジョブとして複数の文書をサポートせず, クライアントは,2回目のSend-Document又はSend-URI操作として文書データを供給することを 試した。
B.2は,IPP操作のための状態コードの一覧を表B.2及び表B.3に示す。
表B.2は,次の短縮形を使用する。
IPP 状態キーワード |
IPP操作 | ||||||||
PJ |
PU |
CJ |
SD |
SU |
V |
GA |
GJ |
C |
|
successful-ok |
x |
x |
x |
x |
x |
x |
x |
x |
x |
successful-ok-ignored-or-substituted-attributes |
x |
x |
x |
x |
x |
x |
x |
x |
x |
successful-ok-conflicting-attributes |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-bad-request |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-forbidden |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-not-authenticated |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-not-authorized |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-not-possible |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-timeout |
x |
x |
|||||||
client-error-not-found |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-gone |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-request-entity-too-large |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-request-value-too-long |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-document-format-not-supported |
x |
x |
x |
x |
x |
x |
|||
client-error-attributes-or-values-not-supported |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-uri-scheme-not-supported |
x |
x |
|||||||
client-error-charset-not-supported |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-conflicting-attributes |
x |
x |
x |
x |
x |
x |
x |
x |
x |
client-error-compression-not-supported |
x |
x |
x |
x |
x |
||||
client-compression-error |
x |
x |
x |
x |
|||||
client-document-format-error |
x |
x |
x |
x |
|||||
client-document-access-error |
x |
x |
|||||||
server-error-internal-error |
x |
x |
x |
x |
x |
x |
x |
x |
x |
server-error-operation-not-supported |
x |
x |
x |
x |
|||||
server-error-service-unavailable |
x |
x |
x |
x |
x |
x |
x |
x |
x |
server-error-version-not-supported |
x |
x |
x |
x |
x |
x |
x |
x |
x |
server-error-device-error |
x |
x |
x |
x |
x |
||||
server-error-temporary-error |
x |
x |
x |
x |
x |
||||
server-error-not-accepting-jobs |
x |
x |
x |
x |
|||||
server-error-busy |
x |
x |
x |
x |
x |
x |
x |
x |
x |
server-error-job-canceled |
x |
x |
|||||||
server-error-version-not-supported |
x |
x |
x |
x |
x |
x |
x |
x |
x |
server-error-multiple-document-jobs-not-supported |
x |
x |
表B.3は,次の短縮形を使用する。
IPP 状態キーワード |
IPP操作(続き) | |||||
HJ |
RJ |
RS |
PP |
RP |
PJ |
|
successful-ok |
x |
x |
x |
x |
x |
x |
successful-ok-ignored-or-substituted-attributes |
x |
x |
x |
x |
x |
x |
successful-ok-conflicting-attributes |
x |
x |
x |
x |
x |
x |
client-error-bad-request |
x |
x |
x |
x |
x |
x |
client-error-forbidden |
x |
x |
x |
x |
x |
x |
client-error-not-authenticated |
x |
x |
x |
x |
x |
x |
client-error-not-authorized |
x |
x |
x |
x |
x |
x |
client-error-not-possible |
x |
x |
x |
x |
x |
x |
client-error-timeout |
||||||
client-error-not-found |
x |
x |
x |
x |
x |
x |
client-error-gone |
x |
x |
x |
x |
x |
x |
client-error-request-entity-too-large |
x |
x |
x |
x |
x |
x |
client-error-request-value-too-long |
x |
x |
x |
x |
x |
x |
client-error-document-format-not-supported |
||||||
client-error-attributes-or-values-not-supported |
x |
x |
x |
x |
x |
x |
client-error-uri-scheme-not-supported |
||||||
client-error-charset-not-supported |
x |
x |
x |
x |
x |
x |
client-error-conflicting-attributes |
x |
x |
x |
x |
x |
x |
client-error-compression-supported |
||||||
client-error-compression-error |
||||||
client-error-document-format-error |
||||||
client-error-document-access-error |
||||||
server-error-internal-error |
x |
x |
x |
x |
x |
x |
server-error-operation-not-supported |
x |
x |
x |
x |
x |
x |
server-error-service-unavailable |
x |
x |
x |
x |
x |
x |
server-error-version-not-supported |
x |
x |
x |
x |
x |
x |
server-error-device-error |
||||||
server-error-temporary-error |
||||||
server-error-not-accepting-jobs |
||||||
server-error-busy |
x |
x |
x |
x |
x |
x |
server-error-job-canceled |
||||||
server-error-multiple-document-jobs-not-supported |