3

私は非常に複雑なXML構成を持つプロジェクトに取り組んできましたが、直面している問題の1つは、XMLの内部整合性を維持することです。

この場合、厳密なXMLスキーマの一貫性を意味するのではなく、使用されるノード間のより高いレベルの関係を意味します。ほとんどの問題は、XMLでエンコードされた情報間の暗黙的なリンク、およびその情報とコードベースとの暗黙的な関係によって引き起こされました。例は次のとおりです。

  • コード内の列挙型に暗黙的にリンクされたXMLノードデータ
  • 同じ構成内で、それらの間に明示的な関係がなくても(一貫性が必要な情報を共有するという点で)関連しているビジネスオブジェクト
  • 実行時にコンパイルおよび解析されるXMLのコード

a)これは頻度を増やす習慣になる可能性があり、b)場合によっては、コンパイル時にチェックされない新しいコーディング言語を暗黙的に作成していることに気づきました。実際、実行されるまでチェックはほとんどありません。

他の誰かが同様のシナリオに直面していますか?問題をより扱いやすくするツールやアプローチはありますか?テクノロジーにとらわれないいくつかの一般的な例が欲しいのですが、私自身の特定の経験は、C#とプロプライエタリシステムの構成でした。

注:以下に回答がありますが、最終的な回答として自分自身を採用するつもりはありません。

4

4 に答える 4

2

これは、プロジェクトで使用している言語/フレームワーク/ツールに大きく依存します。

XMLを構成に使用すると、コンパイル時のチェックができないため、非常に問題が発生する可能性があります。

たとえば、JavaとSpring Frameworkを使用する場合、XML構成と実際のコードの間の同期チェックを実行できるSpringToolSuiteと呼ばれるEclipseプラグインが存在します。

しかし、これは特定の言語と特定のフレームワークのほんの一例です。シナリオに類似したものが存在するかどうかを確認する必要があります。

ちなみに、使用している技術を教えていただければ、さらにお手伝いできるかもしれません。

于 2010-12-09T09:26:03.983 に答える
2

スキマトロンを試しましたか? http://www.schematron.com/

これは、構文的にだけでなく、意味的にXMLを検証することを目的とした高級言語です。

ウィキペディアも参照してください:http://en.wikipedia.org/wiki/Schematron

于 2010-12-14T09:05:49.230 に答える
2

自動化された機能テストを使用して、動作中のデフォルト構成のデータ整合性を確認します。あなたが説明する問題が必ずしもXMLである構成フォーマットに依存していることを私は知りません。そうは言っても、私は提案します:

  • 構成形式としてXMLを使用しません。(Googleはあなたに理由を与えることができます)
  • 列挙型またはその他の構築された値の暗黙的な使用による緊密な結合は、コードの場合と同じように構成でも問題があります。
  • 構成から取得されて実行されるコードは、私をうんざりさせます。オーバーライドできるように構成されていますか?もしそうなら、それはバグ、未定義動作、潜在的なセキュリティ問題の巨大なベクトルです。
  • ビジネスオブジェクトの問題も、密結合が悪いように聞こえます。

構成形式、不適切な結合、または構成からのコードの実行として、XMLについて何もできない場合があります。次のことを保証する一連の機能テストを作成することで、リスクを軽減できます。

  • 列挙型は有効です
  • コードはコンパイル可能で実行可能であり、evals、rpc呼び出し、関数の呼び出し、または追加したいその他の分析チェックが含まれていません。

代替手段(configまたはconfigエントリ)を提供することで、変更を支援できる場合もあります。

于 2010-12-14T17:24:08.613 に答える
1

@David Peleg'sからの良いリンクはTopologiです。これは、「ビジネスルール」チェックを含むXMLをチェックするための製品を提供します。

于 2010-12-14T09:57:24.743 に答える