2

XSLT スタイルシート ドキュメントを作成しました。このドキュメント内で、次のように新しい XML ドキュメントを作成します。

...
<CREATE_REQ
            xsi:schemaLocation="http://fcubs.ofss.com/service/aServices theService.xsd"
            xmlns="http://fcubs.ofss.com/service/aServices"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...

変換後 (以下を参照)、名前空間の順序が異なります。通常の XML パーサーはこれを処理でき、通常は問題ありません。私の場合の問題は、受信アプリケーションがこれを処理できず、名前空間の順序が変更される場合と変更されない場合があることです。

<CREATE_REQ xmlns="http://fcubs.ofss.com/service/aServices"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://fcubs.ofss.com/service/aServices theService.xsd">

...

名前空間が変更されない関数または宣言はありますか?

4

2 に答える 2

4

受信アプリケーションがそれを処理できない場合は、修正する必要があります。これを書いた人は、XML が何であるかを理解していないようです。受信アプリケーションを修正するか、それが属するビンに捨ててください。

于 2013-03-05T08:24:45.500 に答える
1

変換後 (以下を参照)、名前空間の順序は異なります。

いいえ、順序はまったく同じです。W3C XPath 1.0 データ モデルによると:

要素の属性ノードと名前空間ノードは、要素の子の前に発生します。名前空間ノードは、属性ノードの前に発生するように定義されています

これは、提供された XML フラグメントでは、属性が名前空間宣言の前にあるxmlns:xsi ように見えますが、実際にはその後に続くことを意味します。

したがって、生成された出力は、元の XML ドキュメントの名前空間と属性の順序を変更しません。

属性が名前空間ノードの前にある XML ドキュメントを生成すると、上記の引用された定義に違反するため、準拠する XSLT プロセッサはそのようなドキュメントを生成しません

于 2013-03-05T03:53:45.437 に答える