org.apache.tools.ant.taskdefs.optional
Class SchemaValidate

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.tools.ant.taskdefs.optional.XMLValidateTask
              extended by 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

Nested Class Summary
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
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
SchemaValidate()
           
 
Method Summary
 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.