= Jing Component
:doctitle: Jing
:shortname: jing
:artifactid: camel-jing
:description: Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.
:since: 1.1
:supportlevel: Stable
:component-header: Only producer is supported
//Manually maintained attributes
:camel-spring-boot-name: jing

*Since Camel {since}*

*{component-header}*

The Jing component uses the
http://www.thaiopensource.com/relaxng/jing.html[Jing Library] to perform
XML validation of the message body using either

* http://relaxng.org/[RelaxNG XML Syntax]
* http://relaxng.org/compact-tutorial-20030326.html[RelaxNG Compact
Syntax]

Maven users will need to add the following dependency to their `pom.xml`
for this component:

[source,xml]
------------------------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jing</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
------------------------------------------------------------

Note that the xref:msv-component.adoc[MSV] component can also support RelaxNG XML
syntax.

== URI format

------------------------------
jing:someLocalOrRemoteResource
------------------------------

The component uses jing as name, and you can use the
option compactSyntax to turn on either RNG or RNC mode.


// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END

== Example

The following example shows how to configure a route from the 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/compact-tutorial-20030326.html[RelaxNG Compact Syntax]
schema (which is supplied on the classpath).

[source,xml]
----
    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="direct:start"/>
            <doTry>
                <to uri="jing:org/apache/camel/component/validator/jing/schema.rnc?compactSyntax=true"/>
                <to uri="mock:valid"/>
                <doCatch>
                    <exception>org.apache.camel.ValidationException</exception>
                    <to uri="mock:invalid"/>
                </doCatch>
                <doFinally>
                    <to uri="mock:finally"/>
                </doFinally>
            </doTry>
        </route>
    </camelContext>
----


include::spring-boot:partial$starter.adoc[]
