001 package com.thaiopensource.validate; 002 003 import com.thaiopensource.util.PropertyMap; 004 005 /** 006 * A schema that can be used to validate an XML document. A single <code>Schema</code> object 007 * is safe for concurrent access by multiple threads. 008 * 009 * @see SchemaReader 010 * @see Validator 011 * 012 * @author <a href="mailto:jjc@jclark.com">James Clark</a> 013 */ 014 public interface Schema { 015 /** 016 * Creates a new <code>Validator</code> that can be used to validate XML documents with 017 * respect to this schema. The <code>PropertyMap</code> should contain a 018 * <code>ValidateProperty.ERROR_HANDLER</code> property, which will be 019 * used to report errors. If it does not, then an <code>ErrorHandler</code> 020 * will be used that ignores warnings and throws its argument on errors and fatal errors. 021 * Common properties are defined in <code>ValidateProperty</code>. Implementations 022 * may support additional properties. 023 * 024 * @param properties a <code>PropertyMap</code> specifying the properties of the 025 * <code>Validator</code> to be created 026 * @return a new <code>Validator</code> that can be used to validate an XML document 027 * with respect to this schema; never <code>null</code> 028 * 029 * @see ValidateProperty#ERROR_HANDLER 030 */ 031 Validator createValidator(PropertyMap properties); 032 PropertyMap getProperties(); 033 }