一个例子:
重要的是这几句:          factory.setNamespaceAware(true);
          factory.setValidating(true);
          factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
          factory.setAttribute(JAXP_SCHEMA_SOURCE,file);
...
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXParseException;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import org.xml.sax.ErrorHandler;
...public class DOMBuilderDemo {  static final String JAXP_SCHEMA_LANGUAGE =
      "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
  static final String W3C_XML_SCHEMA =
      "http://www.w3.org/2001/XMLSchema";
  static final String JAXP_SCHEMA_SOURCE =
      "http://java.sun.com/xml/jaxp/properties/schemaSource";  public static void main(String[] args)
  {    // Load xml filename and DOM adapter class
    String filename = args[0];
    org.w3c.dom.Document document = null;
    DocumentBuilderFactory factory =
        DocumentBuilderFactory.newInstance();
    try
    {
      try
      {
        if (args.length > 1)
        {
          factory.setNamespaceAware(true);
          factory.setValidating(true);
          factory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);          // get the xml-schema file
          File file = new File(args[1]);
          factory.setAttribute(JAXP_SCHEMA_SOURCE,file);
        }
      }
      catch (IllegalArgumentException ex)
      {
        //...
      }
      DocumentBuilder builder = factory.newDocumentBuilder();
      builder.setErrorHandler(new ValidateHandler());
      document = builder.parse(new File(filename));
    }
    catch (SAXParseException spe)
    {
      //...
    }
    catch (SAXException sxe)
    {
      //...
    }
    catch (ParserConfigurationException pce)
    {
      // Parser with specified options can't be built
      pce.printStackTrace();
    }
    catch (IOException ioe)
    {
      // I/O error
      ioe.printStackTrace();
    }
...