001 package com.thaiopensource.validate; 002 003 import com.thaiopensource.util.PropertyMap; 004 import com.thaiopensource.validate.IncorrectSchemaException; 005 import org.xml.sax.InputSource; 006 import org.xml.sax.SAXException; 007 008 import java.io.IOException; 009 010 /** 011 * A SchemaReader object is immutable and can thus be safely accessed 012 * concurrently from multiple threads. 013 */ 014 public interface SchemaReader { 015 public static final String BASE_URI = "http://www.thaiopensource.com/validate/"; 016 /** 017 * Creates a <code>Schema</code> by reading it from an <code>InputSource</code>. 018 * 019 * @param in the <code>InputSource</code> from which to read the schema; 020 * must not be <code>null</code> 021 * @param properties a <code>PropertyMap</code> to control the schema creation; 022 * must not be <code>null</code> 023 * @return a newly created <code>Schema</code>, never <code>null</code> 024 * @throws IOException if an I/O error occurs 025 * @throws SAXException 026 * @throws IncorrectSchemaException 027 * 028 * @see ValidateProperty 029 */ 030 Schema createSchema(InputSource in, PropertyMap properties) 031 throws IOException, SAXException, IncorrectSchemaException; 032 033 Option getOption(String uri); 034 }