package com.thaiopensource.validate; import com.thaiopensource.util.PropertyMap; /** * A schema that can be used to validate an XML document. A single <code>Schema</code> object * is safe for concurrent access by multiple threads. * * @see SchemaReader * @see Validator * * @author <a href="mailto:jjc@jclark.com">James Clark</a> */ public interface Schema { /** * Creates a new <code>Validator</code> that can be used to validate XML documents with * respect to this schema. The <code>PropertyMap</code> should contain a * <code>ValidateProperty.ERROR_HANDLER</code> property, which will be * used to report errors. If it does not, then an <code>ErrorHandler</code> * will be used that ignores warnings and throws its argument on errors and fatal errors. * Common properties are defined in <code>ValidateProperty</code>. Implementations * may support additional properties. * * @param properties a <code>PropertyMap</code> specifying the properties of the * <code>Validator</code> to be created * @return a new <code>Validator</code> that can be used to validate an XML document * with respect to this schema; never <code>null</code> * * @see ValidateProperty#ERROR_HANDLER */ Validator createValidator(PropertyMap properties); PropertyMap getProperties(); }