[2] [CODE(URI)@en[[[DAV:]]]] [[名前空間]]の [DFN[[CODE(XMLe)@en[[[error]]]]]]
[[要素]]は、エラーの詳細を表します。

* 仕様書

[REFS[
- [23] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-8.7>
- [1] '''[CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-14.5>'''
- [8] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-14.22>
- [10] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-14.24>
- [12] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-16>
- [24] [CITE@en[RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)]] ([TIME[2014-09-21 17:04:59 +09:00]] 版) <http://tools.ietf.org/html/rfc4918#section-17>
]REFS]

* 内容

[4] 最低1つの [[XML]] [[要素]]が必要です [SRC[>>1]]。
任意の[[要素]]を使うことができます [SRC[>>12]] が、
各[[要素]]は[[事前条件符号]]または[[事後条件符号]]とみなされます [SRC[>>1]]。

[5] [[テキスト]]を含めては[['''なりません''']] [SRC[>>1]]。

;; [7] [[要素間空白]]が認められるかは不明です。

[FIG(railroad)[
= +
== |
=== [[事前条件符号]]
=== [[事後条件符号]]
]FIG]

[25] 順序は意味を持ちません [SRC[>>24]]。

* 文脈

[3] エラーの[[応答]]、とりわけ [CODE(HTTP)[[[403]]]] や [CODE(HTTP)[[[409]]]]
では何がおかしかったかより詳しい情報を示したい場合があり、
[[鯖]]はその場合に [CODE(XMLe)@en[[[error]]]] [[要素]]を[[根要素]]とする [[XML文書]]を
[[payload body]] として使うことができます [SRC[>>1]]。

[21] [[WebDAV]] [[鯖]]は、[[WebDAV]] で定義されている[[事前条件]]や[[事後条件]]については
[[XML]] でエラーを報告する[['''べきです''']] [SRC[>>12]]。

[22] それ以外のエラーは空の [[payload body]] としても構いませんし、
独自の条件符号の[[要素]]を使っても構いません [SRC[>>12]]。

[11] [CODE(XMLe)@en[[[response]]]] [[要素]]でも用いることができます [SRC[>>10]]。

[9] [CODE(XMLe)@en[[[propstat]]]] [[要素]]でも用いることができ、
[CODE(XMLe)@en[[[prop]]]] [[要素]]に含まれる[[特性]]に適用されます [SRC[>>8]]。

* 処理

[6] 未知の[[子要素]]は無視しなければ[['''なりません''']] [SRC[>>1]]。

* 事前条件と事後条件

[13] [DFN[[RUBYB[[[事前条件]]]@en[precondition]]]]は、
[[要求メソッド]]を実行するに当たり[[真]]でなければならない[[鯖]]の状態を説明するものです
[SRC[>>12]]。

[14] [DFN[[RUBYB[事後条件]@en[postcondition]]]]は、
[[要求メソッド]]が完了した後[[真]]でなければならない[[鯖]]の状態を説明するものです 
[SRC[>>12]]。

[15] [[事前条件]]と[[事後条件]]はそれぞれ [[XML]] の[[要素]]で表されます [SRC[>>12]]。

[19] 任意の[[要素]]を使うことができます [SRC[>>12]]。

[20] [CODE(URI)@en[[[DAV:]]]] [[名前空間]]の[[要素]]は [[IETF]]
の [[WebDAV]] 関連[[作業部会]]で予約されています [SRC[>>12]]。

[16] [CODE(HTTP)[[[207]]]] [[応答]]において[[特性]]に適用されるものは、
[CODE(XMLe)@en[[[propstat]]]] [[要素]]の [CODE(XMLe)@en[[[error]]]] [[要素]]に含めなければ[['''なりません''']] [SRC[>>12]]。

[17] [CODE(HTTP)[[[207]]]] [[応答]]において[[資源]]に適用されるものは、
[CODE(XMLe)@en[[[response]]]] [[要素]]の [CODE(XMLe)@en[[[error]]]] [[要素]]に含めなければ[['''なりません''']] [SRC[>>12]]。

[18] エラーの[[応答]]に適用されるものは、最上位の [CODE(XMLe)@en[[[error]]]]
[[要素]]に含めなければ[['''なりません''']] [SRC[>>12]]。

* 歴史

[27] [[事前条件]]と[[事後条件]]ははじめ [[RFC 3253]] で定義されました [SRC[>>28]]。

[REFS[
- [26] [CITE@en[RFC 3253 - Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)]] ([TIME[2014-11-16 18:49:48 +09:00]] 版) <http://tools.ietf.org/html/rfc3253#section-1.6>
]REFS]

[28] [CITE@en[RFC 4791 - Calendaring Extensions to WebDAV (CalDAV)]]
([TIME[2017-09-24 16:22:36 +09:00]])
<https://tools.ietf.org/html/rfc4791#section-1.3>