テキストベース(XMLなし)のメッセージを処理します。私たちの目標はメッセージを検証することです。内容が正しければメッセージは有効です。メッセージのルールを表現するために、XMLで定義された独自の言語を開発しました。より複雑なルールを追加する必要があり、今度は他の代替案を検討して実際のルールエンジンを使用するときが来たと思います。これらのタイプのルールをサポートします。
- 値のリストまたは正規表現の名前ex{SMITH、MOORE、A *}
- メッセージに名前があります-
- メッセージに名前がありません
- if条件thenname= John else name = Jane 条件は単純であり、論理演算子が含まれていないことに注意してください。
これらのタイプのルールをサポートする必要があります。
- if then elseしかし、条件に論理演算子が含まれている
- for ...ループ:
- メッセージ内のすべてのお客様には、米国から少なくとも1つ、フランスから少なくとも1つが必要です。
- メッセージに含まれるすべての顧客に対して、米国からの顧客で、年間1000ドル以上を購入している顧客が少なくとも5人必要です。
- Johnという名前の顧客の場合、姓はDoeである必要があります
- John<15という名前の顧客の総数
- 会社の名前は、メッセージ内の別の場所にある会社の名前と同じです。
ルールは、処理するメッセージの種類によって異なります。そのため、次のようないくつかの既存のソリューションを調査していました。
- ジェス
- OWL(整合性チェック)
- Schematron(メッセージをXMLに変換することにより)
Javaで開発することを考えると、最良の選択肢は何でしょうか。考慮すべきもう1つのことは、エラーの説明、エラーの場所(行と列の番号)などのエラー報告を実行できる必要があるということです。