Class XMLValidateTask

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.optional.XMLValidateTask
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
SchemaValidate

public class XMLValidateTask extends Task
Checks XML files are valid (or only well formed). The task uses the SAX2 parser implementation provided by JAXP by default (probably the one that is used by Ant itself), but one can specify any SAX1/2 parser if needed.
  • Field Details

    • INIT_FAILED_MSG

      protected static final String INIT_FAILED_MSG
      See Also:
    • failOnError

      protected boolean failOnError
    • warn

      protected boolean warn
    • lenient

      protected boolean lenient
    • readerClassName

      protected String readerClassName
    • file

      protected File file
      file to be validated
    • filesets

      protected Vector<FileSet> filesets
      sets of file to be validated
    • classpath

      protected Path classpath
    • xmlReader

      protected XMLReader xmlReader
      the parser is viewed as a SAX2 XMLReader. If a SAX1 parser is specified, it's wrapped in an adapter that make it behave as a XMLReader. a more 'standard' way of doing this would be to use the JAXP1.1 SAXParser interface.
    • errorHandler

      protected XMLValidateTask.ValidatorErrorHandler errorHandler
    • MESSAGE_FILES_VALIDATED

      public static final String MESSAGE_FILES_VALIDATED
      Message for successful validation
      See Also:
  • Constructor Details

    • XMLValidateTask

      public XMLValidateTask()
  • Method Details

    • setFailOnError

      public void setFailOnError(boolean fail)
      Specify how parser error are to be handled. Optional, default is true.

      If set to true (default), throw a buildException if the parser yields an error.

      Parameters:
      fail - if set to false do not fail on error
    • setWarn

      public void setWarn(boolean bool)
      Specify how parser error are to be handled.

      If set to true (default), log a warn message for each SAX warn event.

      Parameters:
      bool - if set to false do not send warnings
    • setLenient

      public void setLenient(boolean bool)
      Specify whether the parser should be validating. Default is true.

      If set to false, the validation will fail only if the parsed document is not well formed XML.

      this option is ignored if the specified class with setClassName(String) is not a SAX2 XMLReader.

      Parameters:
      bool - if set to false only fail on malformed XML
    • setClassName

      public void setClassName(String className)
      Specify the class name of the SAX parser to be used. (optional)
      Parameters:
      className - should be an implementation of SAX2 org.xml.sax.XMLReader or SAX2 org.xml.sax.Parser.

      If className is an implementation of org.xml.sax.Parser, setLenient(boolean), will be ignored.

      If not set, the default will be used.

      See Also:
    • setClasspath

      public void setClasspath(Path classpath)
      Specify the classpath to be searched to load the parser (optional)
      Parameters:
      classpath - the classpath to load the parser
    • createClasspath

      public Path createClasspath()
      Returns:
      the classpath created
      See Also:
    • setClasspathRef

      public void setClasspathRef(Reference r)
      Where to find the parser class; optional.
      Parameters:
      r - reference to a classpath defined elsewhere
      See Also:
    • setFile

      public void setFile(File file)
      specify the file to be checked; optional.
      Parameters:
      file - the file to be checked
    • addConfiguredXMLCatalog

      public void addConfiguredXMLCatalog(XMLCatalog catalog)
      add an XMLCatalog as a nested element; optional.
      Parameters:
      catalog - XMLCatalog to use
    • addFileset

      public void addFileset(FileSet set)
      specify a set of file to be checked
      Parameters:
      set - the fileset to check
    • createAttribute

      public XMLValidateTask.Attribute createAttribute()
      Add an attribute nested element. This is used for setting arbitrary features of the SAX parser. Valid attributes include
      Returns:
      attribute created
      Since:
      ant1.6
    • createProperty

      public XMLValidateTask.Property createProperty()
      Creates a property.
      Returns:
      a property.
      Since:
      ant 1.6.2
    • init

      public void init() throws BuildException
      Called by the project to let the task initialize properly.
      Overrides:
      init in class Task
      Throws:
      BuildException - if something goes wrong with the build
    • createDTD

      public DTDLocation createDTD()
      Create a DTD location record; optional. This stores the location of a DTD. The DTD is identified by its public Id.
      Returns:
      created DTD location
    • getEntityResolver

      protected EntityResolver getEntityResolver()
      accessor to the xmlCatalog used in the task
      Returns:
      xmlCatalog reference
    • getXmlReader

      protected XMLReader getXmlReader()
      get the XML reader. Non-null only after initValidator(). If the reader is an instance of ParserAdapter then the parser is a SAX1 parser, and you cannot call setFeature(String, boolean) or setProperty(String, String) on it.
      Returns:
      the XML reader or null.
    • execute

      public void execute() throws BuildException
      execute the task
      Overrides:
      execute in class Task
      Throws:
      BuildException - if failonerror is true and an error happens
    • onSuccessfulValidation

      protected void onSuccessfulValidation(int fileProcessed)
      handler called on successful file validation.
      Parameters:
      fileProcessed - number of files processed.
    • 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
      Throws:
      BuildException - if something went wrong
    • isSax1Parser

      protected boolean isSax1Parser()
      test that returns true if we are using a SAX1 parser.
      Returns:
      true when a SAX1 parser is in use
    • createXmlReader

      protected XMLReader createXmlReader()
      create the XML reader. This is one by instantiating anything specified by readerClassName, falling back to a default reader if not. If the returned reader is an instance of ParserAdapter then we have created and wrapped a SAX1 parser.
      Returns:
      the new XMLReader.
    • cleanup

      protected void cleanup()
      Cleans up resources.
      Since:
      Ant 1.8.0
    • createDefaultReader

      protected XMLReader createDefaultReader()
      Create a reader if the use of the class did not specify another one. If a BuildException is thrown, the caller may revert to an alternate reader.
      Returns:
      a new reader.
      Throws:
      BuildException - if something went wrong
    • setFeature

      protected void setFeature(String feature, boolean value) throws BuildException
      Set a feature on the parser.
      Parameters:
      feature - the name of the feature to set
      value - the value of the feature
      Throws:
      BuildException - if the feature was not supported
    • setProperty

      protected void setProperty(String name, String value) throws BuildException
      Sets a property.
      Parameters:
      name - a property name
      value - a property value.
      Throws:
      BuildException - if an error occurs.
      BuildException - if the property was not supported
    • doValidate

      protected boolean doValidate(File afile)
      parse the file
      Parameters:
      afile - the file to validate.
      Returns:
      true if the file validates.