第179章 検証
検証コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Validation コンポーネントは JAXP Validation API を使用してメッセージボディーの XML 検証を実行し、サポートされる任意の XML スキーマ言語(デフォルトは XML スキーマ)に基づきます。
Jing コンポーネントは、以下の便利なスキーマ言語もサポートしていることに注意してください。
MSV コンポーネントは、RelaxNG XML 構文もサポートします。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
validator:someLocalOrRemoteResource
validator:someLocalOrRemoteResource
someLocalOrRemoteResource は、クラスパス上のローカルリソースへの URL、または検証する XSD を含むファイルシステムのリモートリソースまたはリソースへの完全な URL になります。以下に例を示します。
msv:org/foo/bar.xsdmsv:file:../foo/bar.xsdvalidator:com/mypackage/myschema.xsd
Camel 2.8 以前を使用している場合、Maven ユーザーは、このコンポーネントの
pom.xml に以下の依存関係を追加する必要があります。
Camel 2.9 以降では、Validation コンポーネントは camel-core に直接提供されます。
オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| オプション | デフォルト | 説明 |
|---|---|---|
resourceResolverFactory
|
DefaultValidatorResourceResolverFactory
|
Camel 2.17: エンドポイントごとにリソースリゾルバーを作成する org.apache.camel.component.validator.ValidatorResourceResolverFactory を参照します。デフォルトの実装では、デフォルトのリソースリゾルバー org.apache.camel.component.validator.DefaultLSResourceResolver を作成するエンドポイントごとに org.apache.camel.component.validator.DefaultLSResourceResolver のインスタンスを作成します。デフォルトのリソースリゾルバーは、クラスパスとファイルシステムからスキーマファイルを読み取ります。このオプションは、resourceResolver オプションではなく、リソースリゾルバーがエンドポイントで指定されたルートスキーマドキュメントのリソース URI に依存する場合に使用されます。たとえば、デフォルトのリソースリゾルバーを拡張する場合などです。このオプションは Validator コンポーネントでも利用できるため、リソースリゾルバーファクトリーはすべてのエンドポイントに対して 1 回のみ設定できます。
|
resourceResolver
|
null
|
Camel 2.9: レジストリーの org.w3c.dom.ls.LSResourceResolver への参照。
|
useDom
|
false
|
Apache Camel 2.0: DOMSource/{{DOMResult}} または SaxSource/{{SaxResult}} をバリデーターが使用するかどうか。
|
useSharedSchema
|
true
|
Camel 2.3: スキーマ インスタンスを共有すべきかどうか。このオプションは、JDK 1.6.x バグ を回避するために導入されています。Xerces にはこの問題はありません。
|
failOnNullBody
|
true
|
Camel 2.9.5/2.10.3: ボディーが存在しない場合に失敗するかどうか。 |
headerName
|
null
|
Camel 2.11: メッセージボディーではなくヘッダーに対して検証するには、以下を行います。 |
failOnNullHeader
|
true
|
Camel 2.11: ヘッダーに対して検証する際にヘッダーが存在しない場合に失敗するかどうか。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の 例 は、エンドポイント direct:start からのルートを設定する方法を示しています。これは、XML が(クラスパスで提供されている)指定されたスキーマと一致するかどうかに基づいて、2 つのエンドポイント( mock:valid または mock:invalid )のいずれかになります。
Advanced: JMX method clearCachedSchema リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.17 以降、バリデーターエンドポイント内のキャッシュされたスキーマが消去され、JMX 操作
clearCachedSchema を使用して次のプロセス呼び出しで再読み取りされるように強制できます。この方法を使用して、キャッシュをプログラム的にクリアすることもできます。このメソッドは、ValidatorEndpoint クラスで利用できます。