質問

私は、クライアントとサーバーの両方で (できれば XML) に基づく検証を再利用する機能を必要とする新しいプロジェクトに着手しようとしています。

XML 検証構成データをクライアント側に提供するサービスをセットアップします。

以下の内容は、いかなる形でも煽動を意図したものではありません。

Enterprise ライブラリは、XML で構成されるオブジェクトの検証をサポートしていますが、Java 開発者は、この XML 解釈の Java リーダー バージョンにアクセスできません。

Spring.Net の検証もありますが、やはりこれは .net に結びつきすぎているのではないかと思います。Spring.Net 検証スイートは Java Spring フレームワークから直接移植されたものですか。XML設定を変更せずに?

.Net と Java の両方で使用できる検証用のフレームワークは他にありますか?

プロジェクトは完全に SOA であり、検証は私が最後に把握しなければならないことの 1 つです。

編集:

検証は受信クライアントが使用している言語内で行う必要があることを明確にするために、つまり、Web サービスのクライアントが Java の場合、検証は Java に読み込まれ、Java 内で検証されるため、ユーザーが修正できるようにエラー状態が UI に報告されます。同様に、それが .net クライアントの場合、.net クライアントはそれを読み取って同じ機能を提供できます。

XML 内で検証したくありません。XML は一連のルールになります。Customer.Name は最大 50 文字で、少なくとも 5 文字である必要があり、必須フィールドです。

ピートに感謝します

役に立ちましたか?

解決

DROOLSを見てください。ルール エンジンには .Net バージョンと Java バージョンがあります。Javaリンク そして .Netリンク

私はライブラリを使用したことがないので、1 つのルール セットが両方の環境でどのように「シームレスに」使用できるかについてコメントできません。

他のヒント

jvm と .net の両方で実行できるスクリプト言語で検証を試してみてはいかがでしょうか。

スクリプト言語はこの種のロジックに最適であるため、次のようになります。

ルビー - http://www.ironruby.net/ そして http://www.jruby.org/

またはパール。

このアプローチでは、検証にまったく同じコードを使用し、これを Java または .net から呼び出すことができます。

jruby を使用しても、パフォーマンスのオーバーヘッドはそれほど大きくなく、Java と非常に緊密に統合できます。私は Ironruby の使用経験があまりありませんが、読んだ限りでは、コードがロードされて実行されると、パフォーマンスは問題なく、.net コードにうまく統合できます。以下を参照してください。 http://www.ironruby.net/Documentation/.NET/Hosting

私の答えから逸脱するわけではありませんが、これをどのように行うかに関係なく、開発環境など、関連するすべてのオーバーヘッドを伴う新しいテクノロジーの導入が必要になります。より良いアプローチは、.net と Java で別々に実行することかもしれませんが、2 つの検証が同期していることを保証するために、サンプルの非常に広範なテスト スイートを維持します。

どのような種類の検証を達成しようとしているのかわかりません。ビジネス オブジェクトが XML 形式でシリアル化される場合は、スキーマ検証とは別に、追加のビジネス ルールとチェックを使用してそれを強化できます。 スキーマトロン.

Schematron は ISO 標準であり、XML スキーマでは不可能なビジネス ルール、制限、検証をエンコードする方法を提供します。

スキーマトロンは、文法に基づいているのではなく、解析されたドキュメントでツリーパターンを見つけることに基づいて、他のスキーマ言語と基本概念が異なります。このアプローチにより、文法ベースのスキーマ言語では不便で困難な多くの種類の構造を表現できます。XPathまたはXSLT Expression Languageを知っている場合は、すぐにSchematronの使用を開始できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top