名前空間に関して「xmllint --c14n」が正しく機能するかどうかはわかりません。次の入力では、W3C Canonicalization の手作りのレガシー実装は、名前空間 decl xmlns:xsi を Dcoument-Tag にプルダウンします。
<?xml version="1.0" encoding="UTF-8"?>
<conxml xmlns="urn:conxml:xsd:container.nnn.002" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:conxml:xsd:container.nnn.002 container.nnn.002.xsd">
<MsgPain001>
<Document xmlns="urn:swift:xsd:$pain.001.002.02">
<pain.001.001.02>
</pain.001.001.02>
</Document>
</MsgPain001>
</conxml>
私のレガシー実装による実際の結果:
...
<Document xmlns="urn:swift:xsd:$pain.001.002.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
しかし、xmllint --c14n はこれを行わず、報告します
...
<Document xmlns="urn:swift:xsd:$pain.001.002.02">
...
誰かが仕様に従って誰が正しいのか、そしてその理由を説明できますか?
詳細については、http ://www.w3.org/TR/2001/REC-xml-c14n-20010315#Example-DocSubsets を参照してください。