javax.xml.validation (Java SE 9 & JDK 9 ) (original) (raw)

Provides an API for validation of XML documents. Validation is the process of verifying that an XML document is an instance of a specified XML_schema_. An XML schema defines the content model (also called a_grammar_ or vocabulary) that its instance documents will represent.

There are a number of popular technologies available for creating an XML schema. Some of the most popular ones include:

While JAXP supports validation as a feature of an XML parser, represented by either a SAXParser or DocumentBuilder instance, the Validation API is preferred.

The JAXP validation API decouples the validation of an instance document from the parsing of an XML document. This is advantageous for several reasons, some of which are:

Usage example. The following example demonstrates validating an XML document with the Validation API (for readability, some exception handling is not shown):

 // parse an XML document into a DOM tree
 DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
 Document document = parser.parse(new File("instance.xml"));

 // create a SchemaFactory capable of understanding WXS schemas
 SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

 // load a WXS schema, represented by a Schema instance
 Source schemaFile = new StreamSource(new File("mySchema.xsd"));
 Schema schema = factory.newSchema(schemaFile);

 // create a Validator instance, which can be used to validate an instance document
 Validator validator = schema.newValidator();

 // validate the DOM tree
 try {
     validator.validate(new DOMSource(document));
 } catch (SAXException e) {
     // instance document is invalid!
 }

The JAXP parsing API has been integrated with the Validation API. Applications may create a Schema with the validation API and associate it with a DocumentBuilderFactory or a SAXParserFactory instance by using theDocumentBuilderFactory.setSchema(Schema) andSAXParserFactory.setSchema(Schema) methods.You should not both set a schema and call setValidating(true) on a parser factory. The former technique will cause parsers to use the new validation API; the latter will cause parsers to use their own internal validation facilities. Turning on both of these options simultaneously will cause either redundant behavior or error conditions.

Since:

1.5

Report a bug or suggest an enhancement
For further API reference and developer documentation see the Java SE Documentation, which contains more detailed, developer-targeted descriptions with conceptual overviews, definitions of terms, workarounds, and working code examples.
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 1993, 2017, Oracle and/or its affiliates, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
All rights reserved. Use is subject to license terms and the documentation redistribution policy.