public class Schema
extends java.lang.Object
This class relies on JARV (Java API for RELAX Verifiers) and requires an implementation of this API at runtime, such as Sun's Multi-Schema Validator.
To validate a document against a W3C XML Schema definition:
 import org.jdom2.contrib.schema.Schema;
    String uri = <The URL of the schema document>;
    Document doc = <a JDOM document>;
    Schema schema = Schema.parse(uri, Schema.W3C_XML_SCHEMA);
    List errors = schema.validate(doc);
    if (errors != null) {
      // Validation errors
      for (Iterator i=errors.iterator(); i.hasNext(); ) {
        ValidationError e = i.next();
        System.out.println(e);
      }
    }
    // Else: No error, document is valid.
   
 The current limitations are those of JARV, i.e. no support for validating a document against multiple schemas. This can be work around for elements (calling validate(Element) on another Schema) but not for attributes.
| Modifier and Type | Class and Description | 
|---|---|
| static class  | Schema.TypeClass to support type-safe enumeration design pattern to
 represent schema types | 
| Modifier and Type | Field and Description | 
|---|---|
| static Schema.Type | RELAX_COREType for RELAX Core schema definitions. | 
| static Schema.Type | RELAX_NAMESPACEType for RELAX Namespace schema definitions. | 
| static Schema.Type | RELAX_NGType for RELAX NG schema definitions. | 
| static Schema.Type | TREXType for TREX schema definitions. | 
| static Schema.Type | W3C_XML_SCHEMAType for W3C XML Schema definitions. | 
| Modifier and Type | Method and Description | 
|---|---|
| Schema.Type | getType()Returns the schema type. | 
| java.lang.String | getURI()Returns the location of the schema document, if known. | 
| static Schema | parse(java.io.File file,
     Schema.Type type)Parses a schema definition from the specified file
 according to the specified schema type and returns a compiled
 schema object. | 
| static Schema | parse(org.xml.sax.InputSource source,
     Schema.Type type)Parses a schema definition from the specified SAX input source
 according to the specified schema type and returns a compiled
 schema object. | 
| static Schema | parse(java.io.InputStream byteStream,
     Schema.Type type,
     java.lang.String uri)Parses a schema definition from the specified byte stream
 according to the specified schema type and returns a compiled
 schema object. | 
| static Schema | parse(java.io.Reader reader,
     Schema.Type type,
     java.lang.String uri)Parses a schema definition from the specified character stream
 according to the specified schema type and returns a compiled
 schema object. | 
| static Schema | parse(java.lang.String uri,
     Schema.Type type)Parses a schema definition located at the specified URI
 according to the specified schema type and returns a compiled
 schema object. | 
| java.util.List<ValidationError> | validate(org.jdom2.Document doc)Validates a JDOM document against this schema. | 
| java.util.List<ValidationError> | validate(org.jdom2.Element element)Validates a JDOM element against this schema. | 
public static final Schema.Type W3C_XML_SCHEMA
public static final Schema.Type RELAX_NG
public static final Schema.Type RELAX_CORE
public static final Schema.Type RELAX_NAMESPACE
public static final Schema.Type TREX
public java.lang.String getURI()
null if inknown.public Schema.Type getType()
public java.util.List<ValidationError> validate(org.jdom2.Document doc) throws org.jdom2.JDOMException
doc - the JDOM document to validate.ValidationError objects or
         null if the document is compliant with
         this schema.org.jdom2.JDOMException - if errors were encountered that
                         prevented the validation to proceed.public java.util.List<ValidationError> validate(org.jdom2.Element element) throws org.jdom2.JDOMException
element - the JDOM element to validate.ValidationError objects or
         null if the element is compliant with
         this schema.org.jdom2.JDOMException - if errors were encountered that
                         prevented the validation to proceed.public static Schema parse(java.lang.String uri, Schema.Type type) throws org.jdom2.JDOMException, java.io.IOException
uri - the location of the schema document.type - the schema type.org.jdom2.JDOMException - if the schema document can not be
                         parsed according to the specfied type.java.io.IOException - if an I/O error occurred while reading
                         the schema document.public static Schema parse(java.io.InputStream byteStream, Schema.Type type, java.lang.String uri) throws org.jdom2.JDOMException, java.io.IOException
byteStream - the byte stream to read the schema
                      definition from.type - the schema type.uri - the location of the schema document
                      (optional).org.jdom2.JDOMException - if the schema document can not be
                         parsed according to the specfied type.java.io.IOException - if an I/O error occurred while reading
                         the schema document.public static Schema parse(java.io.Reader reader, Schema.Type type, java.lang.String uri) throws org.jdom2.JDOMException, java.io.IOException
reader - the character stream to read the schema
                  definition from.type - the schema type.uri - the location of the schema document
                  (optional).org.jdom2.JDOMException - if the schema document can not be
                         parsed according to the specfied type.java.io.IOException - if an I/O error occurred while reading
                         the schema document.public static Schema parse(java.io.File file, Schema.Type type) throws org.jdom2.JDOMException, java.io.IOException
file - the file to read the schema definition from.type - the schema type.org.jdom2.JDOMException - if the schema document can not be
                         parsed according to the specfied type.java.io.IOException - if an I/O error occurred while reading
                         the schema document.public static Schema parse(org.xml.sax.InputSource source, Schema.Type type) throws org.jdom2.JDOMException, java.io.IOException
source - the SAX inout source to read the schema
                  definition from.type - the schema type.org.jdom2.JDOMException - if the schema document can not be
                         parsed according to the specfied type.java.io.IOException - if an I/O error occurred while reading
                         the schema document.