Class ValidatingProcessor

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.AsyncProcessorSupport
org.apache.camel.support.processor.validation.ValidatingProcessor
All Implemented Interfaces:
AutoCloseable, org.apache.camel.AsyncProcessor, org.apache.camel.Processor, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

public class ValidatingProcessor extends org.apache.camel.support.AsyncProcessorSupport
A processor which validates the XML version of the inbound message body against some schema either in XSD or RelaxNG
  • Constructor Details

    • ValidatingProcessor

      public ValidatingProcessor()
    • ValidatingProcessor

      public ValidatingProcessor(SchemaReader schemaReader)
  • Method Details

    • process

      public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
    • doProcess

      protected void doProcess(org.apache.camel.Exchange exchange) throws Exception
      Throws:
      Exception
    • loadSchema

      public void loadSchema() throws Exception
      Throws:
      Exception
    • getSchema

      public Schema getSchema() throws IOException, SAXException
      Throws:
      IOException
      SAXException
    • setSchema

      public void setSchema(Schema schema)
    • getSchemaLanguage

      public String getSchemaLanguage()
    • setSchemaLanguage

      public void setSchemaLanguage(String schemaLanguage)
    • getSchemaSource

      public Source getSchemaSource() throws IOException
      Throws:
      IOException
    • setSchemaSource

      public void setSchemaSource(Source schemaSource)
    • getSchemaUrl

      public URL getSchemaUrl()
    • setSchemaUrl

      public void setSchemaUrl(URL schemaUrl)
    • getSchemaFile

      public File getSchemaFile()
    • setSchemaFile

      public void setSchemaFile(File schemaFile)
    • getSchemaAsByteArray

      public byte[] getSchemaAsByteArray()
    • setSchemaAsByteArray

      public void setSchemaAsByteArray(byte[] schemaAsByteArray)
    • getSchemaFactory

      public SchemaFactory getSchemaFactory()
    • setSchemaFactory

      public void setSchemaFactory(SchemaFactory schemaFactory)
    • getErrorHandler

      public ValidatorErrorHandler getErrorHandler()
    • setErrorHandler

      public void setErrorHandler(ValidatorErrorHandler errorHandler)
    • isUseSharedSchema

      public boolean isUseSharedSchema()
    • setUseSharedSchema

      public void setUseSharedSchema(boolean useSharedSchema)
    • getResourceResolver

      public LSResourceResolver getResourceResolver()
    • setResourceResolver

      public void setResourceResolver(LSResourceResolver resourceResolver)
    • isFailOnNullBody

      public boolean isFailOnNullBody()
    • setFailOnNullBody

      public void setFailOnNullBody(boolean failOnNullBody)
    • isFailOnNullHeader

      public boolean isFailOnNullHeader()
    • setFailOnNullHeader

      public void setFailOnNullHeader(boolean failOnNullHeader)
    • getHeaderName

      public String getHeaderName()
    • setHeaderName

      public void setHeaderName(String headerName)
    • createSchemaFactory

      protected SchemaFactory createSchemaFactory()
    • createSchemaSource

      protected Source createSchemaSource() throws IOException
      Throws:
      IOException
    • createSchema

      protected Schema createSchema() throws SAXException, IOException
      Throws:
      SAXException
      IOException
    • isInputStreamNeeded

      protected boolean isInputStreamNeeded(org.apache.camel.Exchange exchange)
      Checks whether we need an InputStream to access the message body or header.

      Depending on the content in the message body or header, we may not need to convert to InputStream.

      Parameters:
      exchange - the current exchange
      Returns:
      true to convert to InputStream beforehand converting to Source afterwards.
    • getSource

      protected Source getSource(org.apache.camel.Exchange exchange, Object content)
      Converts the inbound body or header to a Source, if it is not already a Source.

      This implementation will prefer to source in the following order:

      • DOM - DOM if explicit configured to use DOM
      • SAX - SAX as 2nd choice
      • Stream - Stream as 3rd choice
      • DOM - DOM as 4th choice