Class Validator


  • public class Validator
    extends java.lang.Object
    Validator class based of javax.xml.validation.

    This class provides support for validating schema definitions as well as instance documents. It defaults to the W3C XML Schema 1.0 but can be used to validate against any schema language supported by your SchemaFactory implementation.

    An implementation detail of javax.xml.validation.Validator leaks into this class: any xsi:schemaLocation or xsi:noSchemaLocation attribute of the instance document will be ignored if any schema source has been set. This means you must either specify all sources or none of them to successfully validate instances.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.ArrayList<javax.xml.transform.Source> sources  
      private JAXPValidator validator  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        Validator()
      validates using W3C XML Schema 1.0.
        Validator​(java.lang.String schemaLanguage)
      validates using the specified schema language.
      protected Validator​(java.lang.String schemaLanguage, javax.xml.validation.SchemaFactory factory)
      validates using the specified schema language or factory.
        Validator​(javax.xml.validation.SchemaFactory factory)
      validates using the specified schema factory.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addSchemaSource​(javax.xml.transform.Source s)
      Adds a source for the schema defintion.
      java.util.List<org.xml.sax.SAXParseException> getInstanceErrors​(javax.xml.transform.Source instance)
      Obtain a list of all errors in the given instance.
      java.util.List<org.xml.sax.SAXParseException> getSchemaErrors()
      Obtain a list of all errors in the schema defintion.
      boolean isInstanceValid​(javax.xml.transform.Source instance)
      Is the given schema instance valid according to the configured schema definition(s)?
      boolean isSchemaValid()
      Is the given schema definition valid?
      private static java.util.List<org.xml.sax.SAXParseException> problemToExceptionList​(java.lang.Iterable<ValidationProblem> problems)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • sources

        private final java.util.ArrayList<javax.xml.transform.Source> sources
    • Constructor Detail

      • Validator

        public Validator()
        validates using W3C XML Schema 1.0.
      • Validator

        public Validator​(java.lang.String schemaLanguage)
        validates using the specified schema language.
        Parameters:
        schemaLanguage - the schema language to use - see SchemaFactory.
      • Validator

        public Validator​(javax.xml.validation.SchemaFactory factory)
        validates using the specified schema factory.
        Parameters:
        factory - the concrete factory to use. If this is non-null, the first argument will be ignored.
      • Validator

        protected Validator​(java.lang.String schemaLanguage,
                            javax.xml.validation.SchemaFactory factory)
        validates using the specified schema language or factory.
        Parameters:
        schemaLanguage - the schema language to use - see SchemaFactory.
        factory - the concrete factory to use. If this is non-null, the first argument will be ignored.
    • Method Detail

      • addSchemaSource

        public void addSchemaSource​(javax.xml.transform.Source s)
        Adds a source for the schema defintion.
        Parameters:
        s - the source to add
      • isSchemaValid

        public boolean isSchemaValid()
        Is the given schema definition valid?
        Returns:
        whether the given schema definition is valid
      • getSchemaErrors

        public java.util.List<org.xml.sax.SAXParseException> getSchemaErrors()
        Obtain a list of all errors in the schema defintion.

        The list contains SAXParseExceptions.

        Returns:
        a list of all errors in the schema definition
      • isInstanceValid

        public boolean isInstanceValid​(javax.xml.transform.Source instance)
        Is the given schema instance valid according to the configured schema definition(s)?
        Parameters:
        instance - the instance to check
        Returns:
        whether the instance is valid
        Throws:
        XMLUnitRuntimeException - if the schema definition is invalid or the Source is a SAXSource and the underlying XMLReader throws an IOException (see validate in Validator).
      • getInstanceErrors

        public java.util.List<org.xml.sax.SAXParseException> getInstanceErrors​(javax.xml.transform.Source instance)
        Obtain a list of all errors in the given instance.

        The list contains SAXParseExceptions.

        Parameters:
        instance - the instance to check
        Returns:
        a list of all errors in the given instance
        Throws:
        XMLUnitRuntimeException - if the schema definition is invalid or the Source is a SAXSource and the underlying XMLReader throws an IOException (see validate in Validator).
      • problemToExceptionList

        private static java.util.List<org.xml.sax.SAXParseException> problemToExceptionList​(java.lang.Iterable<ValidationProblem> problems)