排他的XML正準化

排他的 XML 正準化 1.0

排他的 XML 正準化仕様 (大文字)

[1] 排他的 (はいたてき) (Exclusive) XML 正準化 (せいじゅんか) (Canonicalization) は、 XML 文書の一種の正準形を作成する方法を規定した仕様です。

正準XML 仕様により XML 文書の一部分の正準形を作成すると、 その外側の名前空間宣言xml:* 属性継承されるため、電子署名など一部の応用で不都合が生じていました。 排他的XML正準化仕様による正準形の作成方法を使えば、 このような影響を排除できます。

[2] 仕様書:

[3] 応用

排他的 XML 正準化が想定している応用は、 正準XML と似ていますが、 XML 的文脈が変わり得るものです。 排他的 XML 正準化 1.0 1.2

例えば、署名のために別の名前空間要素の中にある文書片を入れると、 その入れた中身にまで名前空間宣言が適用されてしまうので、 正準XML では中身だけ正準化しても、 名前空間宣言まで含まれてしまいます。 排他的XML正準化はこの問題に対処するために開発されました。

[5] 例えば、

   <n1:elem1 xmlns:n1="http://b.example">
       content
   </n1:elem1>

封筒に包み、

   <n0:pdu xmlns:n0="http://a.example">
      <n1:elem1 xmlns:n1="http://b.example">
          content
      </n1:elem1>
   </n0:pdu>

とした文書を転送したとします。転送先で封筒内容XPath

(//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1]

で選択し、 (素の) 正準XML 化すると、

   <n1:elem1 xmlns:n0="http://a.example" xmlns:n1="http://b.example">
       content
   </n1:elem1>

のようになります。 排他的 XML 正準化 1.0 2.1 封筒のための名前空間が残ってしまいます。 排他的XML正準化すると、

   <n1:elem1 xmlns:n1="http://b.example">
       content
   </n1:elem1>

となります。

[4] 制約

正準XML排他的XML正準化の違いは、 排他的XML正準化の利点 (というか目的) であると同時に、欠点でもあります。

排他的XML正準化には2つの欠点があります。 排他的 XML 正準化 1.0 1.3

排他的 XML 正準化 (小文字)

[3]

用語排他的 (exclusive) XML 正準化 (せいじゅんか) (canonicalization) は、 XML文書部分集合排他的XML正準化法を適用する処理を指します。

[6] 識別

XMLデジタル署名XML暗号化TransformCanonicalizationMethod には、排他的XML正準化を表す次の URI を指定できます 排他的 XML 正準化 1.0 4.:

正準XML と同様、注釈宣言を残すか否かで2種類あります。

包括的名前空間接頭辞並び引数は、 InclusiveNamespaces 要素で指定できます。

メモ

[9] RDFa 1.1rdf:XMLLiteral直列化のために排他的XML正準化1.0 を使っています。