--- apiVersion: v1 kind: List items: - apiVersion: v1 kind: ConfigMap metadata: labels: funktion.fabric8.io/kind: Connector provider: fabric8 project: connector-msv version: 1.1.41 group: io.fabric8.funktion.connector name: msv data: deployment.yml: | --- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: funktion.fabric8.io/kind: Subscription connector: msv spec: replicas: 1 template: metadata: labels: funktion.fabric8.io/kind: Subscription connector: msv spec: containers: - image: funktion/connector-msv:1.1.41 name: connector schema.yml: | --- component: kind: component scheme: msv syntax: msv:resourceUri title: MSV description: Validates the payload of a message using the MSV Library. label: validation deprecated: false async: false producerOnly: true javaType: org.apache.camel.component.validator.msv.MsvComponent groupId: org.apache.camel artifactId: camel-msv version: 2.18.1 componentProperties: schemaFactory: kind: property type: object javaType: javax.xml.validation.SchemaFactory deprecated: false secret: false description: To use the javax.xml.validation.SchemaFactory. order: 0 resourceResolverFactory: kind: property label: advanced required: false type: object javaType: org.apache.camel.component.validator.ValidatorResourceResolverFactory deprecated: false secret: false description: To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI order: 1 properties: resourceUri: kind: path group: producer required: true type: string javaType: java.lang.String deprecated: false secret: false description: URL to a local resource on the classpath or 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. order: 0 failOnNullBody: kind: parameter group: producer type: boolean javaType: boolean deprecated: false secret: false defaultValue: true description: Whether to fail if no body exists. order: 1 failOnNullHeader: kind: parameter group: producer type: boolean javaType: boolean deprecated: false secret: false defaultValue: true description: Whether to fail if no header exists when validating against a header. order: 2 headerName: kind: parameter group: producer type: string javaType: java.lang.String deprecated: false secret: false description: To validate against a header instead of the message body. order: 3 errorHandler: kind: parameter group: advanced label: advanced type: object javaType: org.apache.camel.processor.validation.ValidatorErrorHandler deprecated: false secret: false description: To use a custom org.apache.camel.processor.validation.ValidatorErrorHandler. The default error handler captures the errors and throws an exception. order: 4 resourceResolver: kind: parameter group: advanced label: advanced type: object javaType: org.w3c.dom.ls.LSResourceResolver deprecated: false secret: false description: To use a custom LSResourceResolver. Do not use together with resourceResolverFactory order: 5 resourceResolverFactory: kind: parameter group: advanced label: advanced type: object javaType: org.apache.camel.component.validator.ValidatorResourceResolverFactory deprecated: false secret: false description: To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The default resource resolver factory resturns a resource resolver which can read files from the class path and file system. Do not use together with resourceResolver. order: 6 schemaFactory: kind: parameter group: advanced label: advanced type: object javaType: javax.xml.validation.SchemaFactory deprecated: false secret: false description: To use a custom javax.xml.validation.SchemaFactory order: 7 schemaLanguage: kind: parameter group: advanced label: advanced type: string javaType: java.lang.String deprecated: false secret: false defaultValue: http://www.w3.org/2001/XMLSchema description: Configures the W3C XML Schema Namespace URI. order: 8 synchronous: kind: parameter group: advanced label: advanced type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). order: 9 useDom: kind: parameter group: advanced label: advanced type: boolean javaType: boolean deprecated: false secret: false defaultValue: false description: Whether DOMSource/DOMResult or SaxSource/SaxResult should be used by the validator. order: 10 useSharedSchema: kind: parameter group: advanced label: advanced type: boolean javaType: boolean deprecated: false secret: false defaultValue: true description: 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. order: 11 documentation.adoc: |+ [[MSV-MSVComponent]] MSV Component ~~~~~~~~~~~~~ The MSV component performs XML validation of the message body using the https://msv.dev.java.net/[MSV Library] and any of the supported XML schema languages, such as http://www.w3.org/XML/Schema[XML Schema] or http://relaxng.org/[RelaxNG XML Syntax]. Maven users will need to add the following dependency to their `pom.xml` for this component: [source,xml] ------------------------------------------------------------ org.apache.camel camel-msv x.x.x ------------------------------------------------------------ Note that the link:jing.html[Jing] component also supports http://relaxng.org/compact-tutorial-20030326.html[RelaxNG Compact Syntax] [[MSV-URIformat]] URI format ^^^^^^^^^^ [source,java] --------------------------------------- msv:someLocalOrRemoteResource[?options] --------------------------------------- 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. For example [source,java] ------------------------------ msv:org/foo/bar.rng msv:file:../foo/bar.rng msv:http://acme.com/cheese.rng ------------------------------ You can append query options to the URI in the following format, `?option=value&option=value&...` [[MSV-Options]] Options ^^^^^^^ // component options: START The MSV component supports 2 options which are listed below. {% raw %} [width="100%",cols="2,1m,7",options="header"] |======================================================================= | Name | Java Type | Description | schemaFactory | SchemaFactory | To use the javax.xml.validation.SchemaFactory. | resourceResolverFactory | ValidatorResourceResolverFactory | To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI |======================================================================= {% endraw %} // component options: END // endpoint options: START The MSV component supports 12 endpoint options which are listed below: {% raw %} [width="100%",cols="2,1,1m,1m,5",options="header"] |======================================================================= | Name | Group | Default | Java Type | Description | resourceUri | producer | | String | *Required* URL to a local resource on the classpath or 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. | resourceResolver | advanced | | LSResourceResolver | To use a custom LSResourceResolver. Do not use together with resourceResolverFactory | resourceResolverFactory | advanced | | ValidatorResourceResolverFactory | To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The default resource resolver factory resturns a resource resolver which can read files from the class path and file system. Do not use together with resourceResolver. | 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 [[MSV-Example]] Example ^^^^^^^ The following http://svn.apache.org/repos/asf/camel/trunk/components/camel-msv/src/test/resources/org/apache/camel/component/validator/msv/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 http://relaxng.org/[RelaxNG XML Schema] (which is supplied on the classpath). [[MSV-SeeAlso]] See Also ^^^^^^^^ * link:configuring-camel.html[Configuring Camel] * link:component.html[Component] * link:endpoint.html[Endpoint] * link:getting-started.html[Getting Started]