2016-06-15 5 views
0

jsonixを使用して、SOS DescribeSensorリクエストからXMLレスポンスを非整列化しようとしています。より広い範囲では、私はjsonixを使用してSOSからのすべての応答、特に2.0をアンマーシャリングします。私はこのレスポンスがSMLまたはSensorML名前空間を使用していることに気づいたので、余分なモジュールの依存関係とサブ依存関係(GML_3_1_1、SWE_1_0_1、IC_2_0、SMIL_2_0、SMIL_2_0_Language、もちろんSensorML_1_0_1)を追加しました。私がこれらを追加する前に、リターンは一般的なjson(最初のスクリーンショットを参照してください。特にsml:physicalsystemの近く)。依存関係を追加した後、私が理解していないアンマーシャリングプロセス中に私のコンソールにエラーが発生しました(第2スクリーンショット参照)。ここに、参照用にサーバーからのxml応答へのリンクがあります。 https://drive.google.com/file/d/0B8LdnPVJpHz7M3VGb0FZc2lQcjQ/view?usp=sharing。私はそれがうまくいると信じていますが、コンテキストを作成するときにこれがモジュールの順序と関係するかどうかを本当に理解したいと思います。これに対する解決策が発見されると、私は2つのフォローアップの質問をします。JSONIXによるSOS DescribeSensorレスポンスのアンマーシャリングで不完全なオブジェクトが返される

  1. それはhighsourceのgithubのページにOGC-スキーマから構築されたモジュールを使用すると、私はjsonixを経由して、すべての応答を処理できるようにする必要があること(一般的に)予想するのが妥当ですか?つまり、すべての要素は常に定義された型にマップされます。私はこれらのスキーマ/マッピングが非常に複雑であることを知っています。

  2. jsonixが間違って解析するように見える場合、要素を個別に追跡したり、さまざまなモジュールファイルをトレースするのではなく、モジュールを検証したり、スキーマに対して検証するために使用できる他のツールはありますか?事前に

おかげ - Richard3d

var context = new Jsonix.Context([XLink_1_0, GML_3_2_1, IC_2_0, SMIL_2_0, SMIL_2_0_Language, GML_3_1_1, SWE_1_0_1, SensorML_1_0_1, OWS_1_1_0, SWE_2_0, SWES_2_0, WSN_T_1, WS_Addr_1_0_Core, OM_2_0, ISO19139_GMD_20070417, ISO19139_GCO_20070417, ISO19139_GSS_20070417, ISO19139_GTS_20070417, ISO19139_GSR_20070417, Filter_2_0, SOS_2_0]);

enter image description here

enter image description here

答えて

1

免責事項:私はjsonixの著者とogc-schemasの主なdevのです。

まず、あなたは正しい道を歩いています。

はい、あなたが必要なすべてのマッピングを持っているならば、あなたはcardinatilitiesなど、特定のタイプのすべてのプロパティで「素敵」JSONを取得する必要
Jsonixの目標は、双方向のXML <提供することです - > JSONを決定論的構造、型およびカーディナリティによる変換。
OGC Schemasの目標は、すべてのOGCスキーマにJAXBとJsonixのマッピングを提供することです。
これらの2つは、OGC XMLをJSONとの間で変換できるようになります。

「Generic JSON」は実際にはDOMでした。プロパティがDOMを許可していて、Jsonixが特定の要素のマッピングを持たない場合、それは単にDOMとみなされます。 sensorMLマッピングが欠落していました。

スキーマの依存関係の構造は非常に複雑です。しかし、これはOGCに取るべきものです。 :)センサーデータを読み込むためのスキーマが12種類必要になるのは少し狂っています。私は実際に依存関係の自動ロードを構築しようとしていましたが、まだこの機能を実装していませんでした。

次のGML_3_1_1.AbstractFeatureType問題はおそらくthis issueです。マッピングの順番を変更してみてください(GML_3_1_1を先の場所に移動してください)。実際、マッピングの順序は重要ではありませんが、バグがあります。

クロスチェックするツール - いいえ、おそらくそうではありません。私のアプローチは、往復テストを行うことです(非整列 - 整列 - 非整列 - チェック平等)。経験から言うと、通常は最初にいくつかの注意点がありますが、それは設計によって動作します。もちろん、Jsonixにはバグがあり、マッピングに問題があるかもしれませんが、これはソートされています。例えばhttps://github.com/highsource/jsonix-support/s/sosについては

https://github.com/highsource/jsonix-support

また、ここでのサポートプロジェクトを作成するために感じます。ここで

は、このような支援事業の例です:

https://github.com/highsource/jsonix-support/tree/master/l/lightstalker89

ちょうどGoogleドライブからXMLをダウンロードする(a)は私に(b)として合法的に危険な支援事業を設定するには手間がかかるので、私はこれを必要とします私は、このXMLがどこから来ているのか、これらのファイルをテストスイートに追加する権利/ライセンスがあるのか​​どうかは分かりません。

+0

コンテキストを作成するときにモジュールの順序を変更し、SensorMLが正しく配置され、「タイプエラー」が修正されました。サイドノート:初めてSensorNameを追加しましたが、バージョン2.0ではなくバージョン1.0.1で2.0にバンプすることで、JSONがジェネリックDOMになってしまうという問題を解決しました。私がなぜ事故で初めて1.0.1をつかんだのかわからない。あなたの助け@lexicoreにもう一度感謝します。私はさらなる質問があるサポートプロジェクトを追加することを心に留めておきます、私が最後にあなたから聞いたことはないと確信しています、乾杯! – user2714417

関連する問題