org.apache.tools.ant.taskdefs.optional

## Class SchemaValidate

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.optional.XMLValidateTask
      - - org.apache.tools.ant.taskdefs.optional.SchemaValidate

- All Implemented Interfaces:
    java.lang.Cloneable

      public class SchemaValidate
      extends XMLValidateTask

  Validate XML Schema documents. This task validates XML schema documents. It requires an XML parser that handles the relevant SAX, Xerces or JAXP options. To resolve remote referencies, Ant may need its proxy set up, using the setproxy task. Hands off most of the work to its parent, `XMLValidateTask`
  Since:
    Ant1.7

- - ### Property Summary

    - ### Properties inherited from class org.apache.tools.ant.taskdefs.optional.XMLValidateTask

      `createProperty`

  - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `SchemaValidate.SchemaLocation` representation of a schema location.

    - ### Nested classes/interfaces inherited from class org.apache.tools.ant.taskdefs.optional.XMLValidateTask

      `XMLValidateTask.Attribute, XMLValidateTask.Property, XMLValidateTask.ValidatorErrorHandler`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `ERROR_DUPLICATE_SCHEMA` Duplicate declaration of schema
    `static java.lang.String` | `ERROR_NO_XSD_SUPPORT` schema features not supported
    `static java.lang.String` | `ERROR_PARSER_CREATION_FAILURE` unable to create parser
    `static java.lang.String` | `ERROR_SAX_1` SAX1 not supported
    `static java.lang.String` | `ERROR_TOO_MANY_DEFAULT_SCHEMAS` too many default schemas
    `static java.lang.String` | `MESSAGE_ADDING_SCHEMA` adding schema

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.optional.XMLValidateTask

      `classpath, errorHandler, failOnError, file, filesets, INIT_FAILED_MSG, lenient, MESSAGE_FILES_VALIDATED, readerClassName, warn, xmlReader`

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SchemaValidate()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredSchema(SchemaValidate.SchemaLocation location)` add the schema
    `protected void` | `addSchemaLocations()` build a string list of all schema locations, then set the relevant property.
    `protected void` | `createAnonymousSchema()` create a schema location to hold the anonymous schema
    `protected org.xml.sax.XMLReader` | `createDefaultReader()` Create a reader if the use of the class did not specify another one.
    `boolean` | `enableJAXP12SchemaValidation()` Set schema attributes in a JAXP 1.2 engine.
    `boolean` | `enableXercesSchemaValidation()` Turn on XSD support in Xerces.
    `protected java.lang.String` | `getNoNamespaceSchemaURL()` get the URL of the no namespace schema
    `void` | `init()` Called by the project to let the task initialize properly.
    `protected void` | `initValidator()` init the parser : load the parser class, and set features if necessary It is only after this that the reader is valid
    `protected void` | `onSuccessfulValidation(int fileProcessed)` handler called on successful file validation.
    `void` | `setDisableDTD(boolean disableDTD)` flag to disable DTD support.
    `protected void` | `setFeatureIfSupported(java.lang.String feature, boolean value)` set a feature if it is supported, log at verbose level if not
    `void` | `setFullChecking(boolean fullChecking)` enable full schema checking.
    `void` | `setNoNamespaceFile(java.io.File defaultSchemaFile)` identify a file containing the default schema
    `void` | `setNoNamespaceURL(java.lang.String defaultSchemaURL)` identify the URL of the default schema

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.optional.XMLValidateTask

      `addConfiguredXMLCatalog, addFileset, cleanup, createAttribute, createClasspath, createDTD, createProperty, createXmlReader, doValidate, execute, getEntityResolver, getXmlReader, isSax1Parser, setClassName, setClasspath, setClasspathRef, setFailOnError, setFeature, setFile, setLenient, setProperty, setWarn`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ERROR_SAX_1

          public static final java.lang.String ERROR_SAX_1

      SAX1 not supported
      See Also:
        Constant Field Values

    - #### ERROR_NO_XSD_SUPPORT

          public static final java.lang.String ERROR_NO_XSD_SUPPORT

      schema features not supported
      See Also:
        Constant Field Values

    - #### ERROR_TOO_MANY_DEFAULT_SCHEMAS

          public static final java.lang.String ERROR_TOO_MANY_DEFAULT_SCHEMAS

      too many default schemas
      See Also:
        Constant Field Values

    - #### ERROR_PARSER_CREATION_FAILURE

          public static final java.lang.String ERROR_PARSER_CREATION_FAILURE

      unable to create parser
      See Also:
        Constant Field Values

    - #### MESSAGE_ADDING_SCHEMA

          public static final java.lang.String MESSAGE_ADDING_SCHEMA

      adding schema
      See Also:
        Constant Field Values

    - #### ERROR_DUPLICATE_SCHEMA

          public static final java.lang.String ERROR_DUPLICATE_SCHEMA

      Duplicate declaration of schema
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SchemaValidate

          public SchemaValidate()

  - ### Method Detail

    - #### init

          public void init()
                    throws BuildException

      Called by the project to let the task initialize properly. The default implementation is a no-op.
      Overrides:
        `init` in class `XMLValidateTask`
      Throws:
        `BuildException` - if something goes wrong with the build

    - #### enableXercesSchemaValidation

          public boolean enableXercesSchemaValidation()

      Turn on XSD support in Xerces.
      Returns:
        true on success, false on failure

    - #### enableJAXP12SchemaValidation

          public boolean enableJAXP12SchemaValidation()

      Set schema attributes in a JAXP 1.2 engine.
      Returns:
        true on success, false on failure
      See Also:
        JAXP 1.2 Approved CHANGES

    - #### addConfiguredSchema

          public void addConfiguredSchema(SchemaValidate.SchemaLocation location)

      add the schema
      Parameters:
        `location` - the schema location.
      Throws:
        `BuildException` - if there is no namespace, or if there already is a declaration of this schema with a different value

    - #### setFullChecking

          public void setFullChecking(boolean fullChecking)

      enable full schema checking. Slower but better.
      Parameters:
        `fullChecking` - a `boolean` value.

    - #### createAnonymousSchema

          protected void createAnonymousSchema()

      create a schema location to hold the anonymous schema

    - #### setNoNamespaceURL

          public void setNoNamespaceURL(java.lang.String defaultSchemaURL)

      identify the URL of the default schema
      Parameters:
        `defaultSchemaURL` - the URL of the default schema.

    - #### setNoNamespaceFile

          public void setNoNamespaceFile(java.io.File defaultSchemaFile)

      identify a file containing the default schema
      Parameters:
        `defaultSchemaFile` - the location of the default schema.

    - #### setDisableDTD

          public void setDisableDTD(boolean disableDTD)

      flag to disable DTD support.
      Parameters:
        `disableDTD` - a `boolean` value.

    - #### initValidator

          protected void initValidator()

      init the parser : load the parser class, and set features if necessary It is only after this that the reader is valid
      Overrides:
        `initValidator` in class `XMLValidateTask`
      Throws:
        `BuildException` - if something went wrong

    - #### createDefaultReader

          protected org.xml.sax.XMLReader createDefaultReader()

      Create a reader if the use of the class did not specify another one. The reason to not use `JAXPUtils.getXMLReader()` was to create our own factory with our own options.
      Overrides:
        `createDefaultReader` in class `XMLValidateTask`
      Returns:
        a default XML parser

    - #### addSchemaLocations

          protected void addSchemaLocations()

      build a string list of all schema locations, then set the relevant property.

    - #### getNoNamespaceSchemaURL

          protected java.lang.String getNoNamespaceSchemaURL()

      get the URL of the no namespace schema
      Returns:
        the schema URL

    - #### setFeatureIfSupported

          protected void setFeatureIfSupported(java.lang.String feature,
                                   boolean value)

      set a feature if it is supported, log at verbose level if not
      Parameters:
        `feature` - the feature.
        `value` - a `boolean` value.

    - #### onSuccessfulValidation

          protected void onSuccessfulValidation(int fileProcessed)

      handler called on successful file validation.
      Overrides:
        `onSuccessfulValidation` in class `XMLValidateTask`
      Parameters:
        `fileProcessed` - number of files processed.