* 排他的 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]] * メモ