Cosminexus V9 アプリケーションサーバ Cosminexus XML Security - Core ユーザーズガイド

[目次][用語][索引][前へ][次へ]

4.4.1 XML Security - Coreの仕様に関する注意事項

<この項の構成>
(1) DOMの名前空間サポート
(2) 同一文書内への参照
(3) Shift_JISエンコードのXML文書の処理制約
(4) Transformアルゴリズムを指定する順序
(5) 外部エンティティの処理
(6) エンティティ参照の制約

(1) DOMの名前空間サポート

XML Security - Coreは,内部処理でDOMの名前空間がサポートされている必要があります。XML文書をJAXPのDocumentBuilderクラスで処理する場合は,DocumentBuilderFactoryクラスのisNamespaceAwareメソッドの戻り値がtrueとなる設定で作成したDocumentBuilderクラスを使用してください。また,名前空間がサポートされているDOMの要素や属性の作成は,DocumentクラスのcreateElementNSメソッドやcreateAttributeNSメソッドを使用します。

注意
デフォルトの設定では,DocumentBuilderFactoryクラスのisNamespaceAwareメソッドの戻り値はfalseになります。XML文書をJAXPのDocumentBuilderクラスで処理する場合は,デフォルトの設定を変更してください。

(2) 同一文書内への参照

URI参照解決のカスタマイズでは,同一文書内への参照を解決できません。XML Security - CoreがデフォルトでサポートしているURI参照解決を使用してください。XML Security - CoreがデフォルトでサポートしているURI参照解決については,「4.3.1 URI参照解決」を参照してください。

(3) Shift_JISエンコードのXML文書の処理制約

XML Security - Coreは,内部的なXML文書の処理では,XML ProcessorのShift_JIS切り替え機能を利用できません。そのため,次の場合はencoding="Shift_JIS"の指定に対してWindows-31Jコンバータを使用できません。

なお,Shift_JIS切り替え機能の詳細については,マニュアル「XML Processor ユーザーズガイド」を参照してください。

(4) Transformアルゴリズムを指定する順序

Enveloped Signature変換やXPath関数here( )など,Transform要素のDOMツリー上の位置を必要とする変換の前では,変換結果がオクテットシーケンスとなる変換を実行しないでください。Transform要素の位置情報が失われてしまうため,変換は失敗します。

(5) 外部エンティティの処理

XML Security - Coreは,内部的なXML文書の処理では,外部ファイルを参照するエンティティ参照や外部DTDを含むXML文書をサポートしていません。そのため,次の場合はXML文書を処理できません。

(6) エンティティ参照の制約

XML Security - Coreで処理するDOMツリーのエンティティ参照は,展開されている必要があります。XML文書をJAXPのDocumentBuilderクラスで処理する場合は,DocumentBuilderFactoryクラスのisExpandEntityReferencesメソッドの戻り値がtrueとなる設定(デフォルト設定)で作成したDocumentBuilderクラスを使用してください。

なお,XMLデータの要素またはコンテンツを暗号化した,EncryptedDataを復号化する場合,decryptXMLメソッドの内部ではDOMサブツリーの復元処理が実行されます。このとき,復号化されたXMLデータにエンティティ参照が含まれていると,エラーが発生します。ただし,定義済みのエンティティ(amp,lt,gt,apos,quot)の場合は,エラーは発生しません。