1

私は自分のサービスに郵便料金Dbを使用しています.フィールドDSSにNullが定義されている場合、いくつかのオブジェクトを与えるため、フロントエンドも同じオブジェクトを取得します.しかし、彼らはこれの代わりに「NULL」を期待しています.{@nil":"true"} NULL値をNULLのみとして取得し、この行にも独自の名前空間を作成するにはどうすればよいですか http://www.w3.org/2001/XMLSchema-instance "

username        password
===========  ============
NULL            NULL
kk             a123

上記の場合、WSO2dss側からこのようになっています

<Datalist>
     <username xmlns="http:sps.in" xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <password xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
  </Datalist>

私のwso2esb側から、私はこのようなJSONを取得しています

{"Body":{"Datalist":{"username":{"@nil":"true"},"password":{"@nil":"true"}}}}

しかし、私のフロントエンドサービスは、これより上に変更できる以下の形式で期待しています

 {"Body":{"Datalist":{"username":"NULL","password":"NULL"}}}
4

2 に答える 2

1

XML では、特定の XML ノードの値が NULL であることを示す標準/推奨の方法は、[xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-インスタンス"]。標準の XML パーサーがこの特定の表記法に遭遇した場合、前述の表記法を含む要素は、値として NULL を持つ要素として扱われます。これは、"NULL" (実際の NULL ではなく、文字 "N"、"U"、"L"、"L" を含む文字列) などの値がある場合に特に役立ちます。実際の値を区別する方法がないためです。 NULL 値と「NULL」文字ストリーム。

したがって、このシナリオを処理する最善の方法は、Web サービス呼び出しの応答として返される JSON コンテンツを解析しながら、クライアント側で @nil 属性をチェックすることです。または、データ サービス クエリ レベルで XSLT 変換を追加して、任意のカスタム ルールを追加し、クライアント側に返される前に応答を変換します。この方法の例については、製品パッケージの「DSS_HOME/samples/dbs/excel/」ディレクトリにある「ExcelSampleService.dbs」という名前のサンプル データ サービスを参照できます。

お役に立てれば!

よろしく、 プラバース

于 2013-06-19T15:01:55.697 に答える