Repository: camel Updated Branches: refs/heads/master e508f5892 -> a3d01f010
Added validator component docs to Gitbook Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a3d01f01 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a3d01f01 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a3d01f01 Branch: refs/heads/master Commit: a3d01f010763b1b660facbd26d4cd38c28fa8afd Parents: e508f58 Author: Andrea Cosentino <anco...@gmail.com> Authored: Thu Jun 23 08:45:13 2016 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Thu Jun 23 08:45:13 2016 +0200 ---------------------------------------------------------------------- camel-core/src/main/docs/validator.adoc | 129 +++++++++++++++++++++++++++ docs/user-manual/en/SUMMARY.md | 1 + 2 files changed, 130 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/a3d01f01/camel-core/src/main/docs/validator.adoc ---------------------------------------------------------------------- diff --git a/camel-core/src/main/docs/validator.adoc b/camel-core/src/main/docs/validator.adoc new file mode 100644 index 0000000..d653861 --- /dev/null +++ b/camel-core/src/main/docs/validator.adoc @@ -0,0 +1,129 @@ +[[Validation-ValidationComponent]] +Validation Component +~~~~~~~~~~~~~~~~~~~~ + +The Validation component performs XML validation of the message body +using the JAXP Validation API and based on any of the supported XML +schema languages, which defaults to http://www.w3.org/XML/Schema[XML +Schema] + +Note that the link:jing.html[Jing] component also supports the following +useful schema languages: + +* http://relaxng.org/compact-tutorial-20030326.html[RelaxNG Compact +Syntax] +* http://relaxng.org/[RelaxNG XML Syntax] + +The link:msv.html[MSV] component also supports +http://relaxng.org/[RelaxNG XML Syntax]. + +[[Validation-URIformat]] +URI format +^^^^^^^^^^ + +[source,java] +----------------------------------- +validator:someLocalOrRemoteResource +----------------------------------- + +Where *someLocalOrRemoteResource* is some URL to a local resource on the +classpath or a full URL to a remote resource or resource on the file +system which contains the XSD to validate against. For example: + +* `msv:org/foo/bar.xsd` +* `msv:file:../foo/bar.xsd` +* `msv:http://acme.com/cheese.xsd` +* `validator:com/mypackage/myschema.xsd` + +Maven users will need to add the following dependency to their `pom.xml` +for this component when using *Camel 2.8* or older: + +[source,xml] +------------------------------------------------------------ +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-spring</artifactId> + <version>x.x.x</version> + <!-- use the same version as your Camel core version --> +</dependency> +------------------------------------------------------------ + +From Camel 2.9 onwards the link:validation.html[Validation] component is +provided directly in the camel-core. + +[[Validation-Options]] +Options +^^^^^^^ + + +// component options: START +The Validator component supports 1 options which are listed below. + + + +{% raw %} +[width="100%",cols="2s,1m,8",options="header"] +|======================================================================= +| Name | Java Type | Description +| resourceResolverFactory | ValidatorResourceResolverFactory | To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI +|======================================================================= +{% endraw %} +// component options: END + + + +// endpoint options: START +The Validator component supports 13 endpoint options which are listed below: + +{% raw %} +[width="100%",cols="2s,1,1m,1m,5",options="header"] +|======================================================================= +| Name | Group | Default | Java Type | Description +| resourceUri | producer | | String | *Required* URL to a local resource on the classpathor a reference to lookup a bean in the Registry or a full URL to a remote resource or resource on the file system which contains the XSD to validate against. +| failOnNullBody | producer | true | boolean | Whether to fail if no body exists. +| failOnNullHeader | producer | true | boolean | Whether to fail if no header exists when validating against a header. +| headerName | producer | | String | To validate against a header instead of the message body. +| errorHandler | advanced | | ValidatorErrorHandler | To use a custom org.apache.camel.processor.validation.ValidatorErrorHandler. The default error handler captures the errors and throws an exception. +| exchangePattern | advanced | InOnly | ExchangePattern | Sets the default exchange pattern when creating an exchange. +| resourceResolver | advanced | | LSResourceResolver | To use a custom LSResourceResolver. See also link setResourceResolverFactory(ValidatorResourceResolverFactory) +| resourceResolverFactory | advanced | | ValidatorResourceResolverFactory | For creating a resource resolver which depends on the endpoint resource URI. Must not be used in combination with method link setResourceResolver(LSResourceResolver). If not set then DefaultValidatorResourceResolverFactory is used +| schemaFactory | advanced | | SchemaFactory | To use a custom javax.xml.validation.SchemaFactory +| schemaLanguage | advanced | http://www.w3.org/2001/XMLSchema | String | Configures the W3C XML Schema Namespace URI. +| synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). +| useDom | advanced | false | boolean | Whether DOMSource/DOMResult or SaxSource/SaxResult should be used by the validator. +| useSharedSchema | advanced | true | boolean | Whether the Schema instance should be shared or not. This option is introduced to work around a JDK 1.6.x bug. Xerces should not have this issue. +|======================================================================= +{% endraw %} +// endpoint options: END + + +[[Validation-Example]] +Example +^^^^^^^ + +The following +http://svn.apache.org/repos/asf/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/component/validator/camelContext.xml[example] +shows how to configure a route from endpoint *direct:start* which then +goes to one of two endpoints, either *mock:valid* or *mock:invalid* +based on whether or not the XML matches the given schema (which is +supplied on the classpath). + +[[Validation-Advanced:JMXmethodclearCachedSchema]] +Advanced: JMX method clearCachedSchema +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Since *Camel 2.17*, you can force that the cached schema in the +validator endpoint is cleared and reread with the next process call with +the JMX operation `clearCachedSchema. `You can also use this method to +programmatically clear the cache. This method is available on the +`ValidatorEndpoint `class`.` + +[[Validation-SeeAlso]] +See Also +^^^^^^^^ + +* link:configuring-camel.html[Configuring Camel] +* link:component.html[Component] +* link:endpoint.html[Endpoint] +* link:getting-started.html[Getting Started] + http://git-wip-us.apache.org/repos/asf/camel/blob/a3d01f01/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index 8281def..0359a65 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -95,6 +95,7 @@ * [Stub](stub.adoc) * [Test](test.adoc) * [Timer](timer.adoc) + * [Validator](validator.adoc) * Components * [Async Http Client (AHC)](ahc.adoc)