[11] [DFN[[RUBY[[[整形式]]][せいけいしき]@en[well-formed]]]]とは、[[適合性]]の一種で、ある[[文字列]]ないし[[オクテット列]]が仕様に照らしてある程度正しいことをいいます。
特に限定がない場合は、 [[XML]] の仕様に照らして構文的に正しいことをいいます。

[12] 「well-formed」という用語が [[XML]] 以前に存在したかは定かではありませんが、 [[XML]]
によって導入され、広く知られるようになりました。 [[XML]] 以外の仕様でも「well-formed」という概念を採用するものもでてきました。

[13] 「整形式」という訳語は、 [[XML]] の「well-formed」に当てる日本語として作られ、
他の候補を退け広く採用されるに至りました。「整形・式」ではなく「整・形式」とされています。

* XML における整形式

[14] [[XML]] における[[文書]]の適合性は、[[整形式]]と[[妥当]]の2段階に分かれており、
[[整形式]]は [[DTD]] に依存しない、より基本的な適合性となっています。 [[XML]]
であることと[[整形式]]であることは等しいとされています。

[5] ['''XML文書の定義''']
>
[定義: ある[[データ物体]]は、この仕様書で定義された[[整形式]]である時、[DFN[[RUBYB[[[XML文書]]]@en[XML document]]]]である。[[整形式]][[XML文書]]は更に制約を満たすとき[[妥当]]でもあって'''構わない'''。]

;; 出典: <IW:XML1:"#dt-xml-doc">

[6] ['''整形式XML文書の定義''']
>
[定義: ある[[テキスト]][[物体]]は、次の条件を満たせば、[DFN[[RUBY[[[整形式]]][せいけいしき]@en[well-formed]]]][[XML文書]]である。]
>
- 全体としてみたとき、[[生成規則]][CODE@en[[[document]]]]に[[一致]]すること。
- この仕様書に示すすべての[[整形式制約]]に合致すること。
- [[文書]]中で直接または間接に[[参照]]されている[[解析対象実体]]それぞれが[[整形式]]であること。

;; 出典: <IW:XML1:"#dt-wellformed">

[7] >>5-6 より、すべての[[XML文書]]は[[整形式]]である。
しかし、[[誤り]]の定義により、[[整形式]][[XML文書]]が[[XML]]仕様書にすべて従っているとは限らない。
[[妥当]]の定義より、[[整形式]][[XML文書]]が[[妥当]]とは限らない。
[[完全正規化]]の定義より、[[整形式]][[XML文書]]が[[完全正規化]]済みとは限らない。

[8] ['''実体の整形式性''']
-[[文書実体]]は、[[生成規則]][CODE@en[[[document]]]]と[[一致]]すれば[[整形式]]である。
-[[外部一般解析対象実体]]は、[[生成規則]][CODE@en[[[extParsedEnt]]]]と[[一致]]すれば[[整形式]]である。
-[[内部一般解析対象実体]]は、[[置換文]]が[[生成規則]][CODE@en[[[content]]]]と[[一致]]すれば[[整形式]]である。
-[[外部部分集合実体]]は? ([[整形式制約]]により[[生成規則]][CODE@en[[[extSubset]]]]に[[一致]]すれば[[整形式]]である。)
-[[外部引数実体]]は、定義上常に[[整形式]]である。
-[[内部引数実体]]は、定義上常に[[整形式]]である。
-[[外部非解析対象実体]]については、[[整形式]]性が定義されていないようだ。

;; <IW:XML1:"#wf-entities">


[4]
>
:[RUBYB[整形式][well-formed]]:
[[文書]]は、 [[XML 1.0]] 勧告の2.1節で定義された規則に従って[[構造化]]されている時、
[[整形式]]です。

仕様書:
- [[XHTML 1.0]]
--[CITE[2.2. General Terms]]
<IW:XHTML10:"wellformed">

[9]
:整形式:
[[節点]]が[DFN[[RUBY[整形式][せいけいしき]@en[well-formed]]]]
[[XML]] [[節点]]であるとは、その[[直列化]]形が、
[[直列化]]中に変形を行うことなく相当する [[XML 1.0]]
または [[XML 1.1]] (使用している [[XML]]
の[[版]]に依存します。) の[[生成規則]]とそれに関連するすべての[[整形式制約]]に[[一致]]し、
かつその[[節点]]中で[[参照]]されている[[実体]]もまた[[整形式]]であることをいう。
[[XML名前空間]]を使用している場合、
[[節点]]は[[名前空間整形式]]でもなければならない。

;; <IW:DOM3:"Val/glossary.html#dt-schema">

[1] 廃れた [CODE[[[well-formed]]]] の訳語:
- [2] [CODE[形式適合]]

[22] 
[[XML]] の想定としては、[[整形式]]でないものは [[XML文書]]ではないとされています。
しかし現実にはそうではありません。
[[整形式]]ではない[[XML文書]]はありふれており ([[非整形式XML]]参照)、
[[整形式]]でないものをどう処理するかは定められていないものの、
明確に定めるべきという考えもあります ([[XML5]] 参照)。 

[3]
[Q[整形式]]を、[Q[非妥当だが XML として適切]]の意味で使う人がいるんですね。困ったもんだ。 
([[名無しさん]] [WEAK[2004-07-31 08:20:39 +00:00]])

[10] [CITE[Bug 174351 – Encoding errors aren't treated as fatal XML errors]] ([TIME[2009-02-28 16:41:26 +09:00]] 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=174351>

* XML 名前空間における整形式

[15] [[名前空間整形式]]を参照。

[16] [[XML]] を用いるほとんどの場合は [[XML名前空間]]をも用いるため、[[整形式]]と[[名前空間整形式]]は、
事実上同義とみなされています。

* その他の整形式

[17] 次の構文にも「[[整形式]]」が定義されています。
[FIG(short list)[
- [[言語タグ]]
- [[ISO/IEC 14651]]
- [[整形式符号単位列]]
]FIG]

[23] [[UTF-7]] の仕様書に [[ill-formed]] という語が使われていました。
定義がないので用語ではなく普通の表現としてでした。

* 歴史

[19] [[IP]] (1981年) では「well-formed datagrams」という表現がありますが、
用語としてではなく普通の表現として用いられているようです。

[REFS[
- [18] [CITE@en[RFC 791 - Internet Protocol]] ([TIME[2014-05-01 22:55:17 +09:00]] 版) <https://tools.ietf.org/html/rfc791#section-3.2>
]REFS]

[20] [CITE@en[CSV on the Web: Use Cases and Requirements]]
([TIME[2016-02-21 17:43:46 +09:00]] 版)
<https://www.w3.org/TR/2016/NOTE-csvw-ucr-20160225/#R-WellFormedCsvCheck>

[21] [CITE@en[Serialize non-well-formed documents too]]
([[annevk]]著, [TIME[2017-03-13 23:05:31 +09:00]])
<https://github.com/whatwg/xhr/commit/59c9cd9ae31fc8fafd1c327f2d2a1ca1e88da28f>