* 排他的 XML 正準化仕様 (大文字)
[1]
[DFN[[RUBY[排他的][はいたてき]@en[Exclusive]] XML [RUBY[正準化][せいじゅんか]@en[Canonicalization]]]]は、
[[XML]] [[文書]]の一種の[[正準形]]を作成する方法を規定した仕様です。
[[正準XML]] 仕様により [[XML]] [[文書]]の一部分の[[正準形]]を作成すると、
その外側の[[名前空間宣言]]や [CODE(XMLa)@en[[[xml]]:[VAR[*]]]]
[[属性]]が[[継承]]されるため、[[電子署名]]など一部の[[応用]]で不都合が生じていました。
[[排他的XML正準化]]仕様による[[正準形]]の作成方法を使えば、
このような影響を排除できます。
[2] 仕様書:
- [CITE[Exclusive XML Canonicalization Version 1.0]]
-- 最新版
== [[W3C]] [[勧告]]
--- [[正誤表]]
[3] '''応用'''
排他的 XML 正準化が想定している[[応用]]は、
[[正準XML]] と似ていますが、 [[XML]]
的文脈が変わり得るものです。
[SRC[排他的 XML 正準化 1.0 1.2]]
例えば、[[署名]]のために別の[[名前空間]]の[[要素]]の中にある[[文書]]片を入れると、
その入れた中身にまで[[名前空間宣言]]が適用されてしまうので、
[[正準XML]] では中身だけ[[正準化]]しても、
[[名前空間宣言]]まで含まれてしまいます。
[[排他的XML正準化]]はこの問題に対処するために開発されました。
[4] '''制約'''
[[正準XML]] と[[排他的XML正準化]]の違いは、
[[排他的XML正準化]]の利点 (というか目的)
であると同時に、欠点でもあります。
[[排他的XML正準化]]には2つの欠点があります。
[SRC[排他的 XML 正準化 1.0 1.3]]
- [[文書部分集合]]の外 (かつ[[祖先]]) の
[CODE(XMLa)@en[[[xml]]:[[lang]]]]、
[CODE(XMLa)@en[[[xml]]:[[space]]]]、
[CODE(XMLa)@en[[[xml]]:[[base]]]]
は (本来[[継承]]されますが) 失われます。
予め[[文書部分集合]]内の[[要素]]に明示しておくしかありません。
- [[文書部分集合]]の外 (かつ[[祖先]]) で[[宣言]]されている、
[[可視的利用]]されていない[[名前空間接頭辞]]の関連付けは失われます。
例えば [[XPath]] [[式]]でしか使われていない[[名前空間接頭辞]]の[[宣言]]は失われます。
予め[[文書部分集合]]内の[[要素]]に明示しておくか、
[[包括的名前空間接頭辞並び]]に[[名前空間接頭辞]]を含めておく必要があります。
[[#comment]]
* 排他的 XML 正準化 (小文字)
[3]
> [[用語]][DFN[[RUBY[排他的][exclusive]] XML [RUBY[正準化][せいじゅんか]@en[canonicalization]]]]は、
[[XML]][[文書部分集合]]に[[排他的XML正準化法]]を適用する処理を指します。
;; 出典:
[[#comment]]
* メモ