3

XML 文字列を入力として受け取る Web サービスがあります。サービスが最初に行う (または行う必要がある) ことは、受信した XML 文字列を事前定義され合意された XML スキーマに対して検証することです。

このスキーマを保存してアクセスする最良の方法は何ですか?

  1. Web サービスと同じ場所に物理的な .xsd ファイルがありますか?
  2. Web サービスのコード ファイル内の定数文字列?
  3. プロジェクトのリソース ファイル内の文字列値?
  4. Web構成のどこかに?
  5. データベースで?

スキーマが変更される可能性があり、コードを変更する必要があるため、オプション (2) と (3) が最適だとは思いません。繰り返しになりますが、XML 構造が変更された場合は、XML を正しく解析するためにコードを変更する必要があります。

ありがとう!

4

2 に答える 2

3

私はあなたのオプションを見て、それぞれについていくつかの意見を提供します.

1.) Web サービスと同じ場所にある物理的な .xsd ファイル?

これは良い考えであり、おそらく最良の選択肢です。URI/URL を指定すると、外部から簡単にアクセスできるようになります。さらに、各 XSD を簡単にバージョン管理し、それぞれに新しい URL を提供できます。

2.) Web サービスのコード ファイル内の定数文字列?

これは維持するのが楽しくないように思えます。一般に、私はインターフェースを実装から分離し、構成を他のものから分離しておくのが好きです。このオプションを使用すると、これらを結合できます。これはお勧めしません。

3.) プロジェクトのリソース ファイル内の文字列値?

4.) Web 設定のどこかに?

プロジェクトの残りの部分から分離するのが難しくなっているという理由だけで、これらのいずれもお勧めしません。ぎこちないようです。それでも、それはひどい考えではありません。

5.) データベースで?

<xsd:include />要素が他のファイルを指すことができず、最も単純なスキーマのみに制限されると考えていたため、これはお勧めしませんでしたが、この StackOverflow の質問では、URI がURL と同じです。データベースは XML スキーマを格納する正当な場所ですが、私の個人的な好みはファイル システムに格納することです。

最終的には、オプション 1 を選択します。

于 2013-09-03T18:57:54.980 に答える