/* * @(#)$Id: XMLSchemaGrammar.java,v 1.7 2001/08/03 19:59:50 Bear Exp $ * * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. * * This software is the proprietary information of Sun Microsystems, Inc. * Use is subject to license terms. * */ package com.sun.msv.grammar.xmlschema; import com.sun.msv.grammar.Grammar; import com.sun.msv.grammar.Expression; import com.sun.msv.grammar.ExpressionPool; import java.util.Map; import java.util.Iterator; /** * set of XML Schema. This set can be used to validate a document. * * @author <a href="mailto:kohsuke.kawaguchi@eng.sun.com">Kohsuke KAWAGUCHI</a> */ public class XMLSchemaGrammar implements Grammar { public XMLSchemaGrammar() { this( new ExpressionPool() ); } public XMLSchemaGrammar( ExpressionPool pool ) { this.pool = pool; } /** pool object which was used to construct this grammar. */ protected final ExpressionPool pool; public final ExpressionPool getPool() { return pool; } public Expression topLevel; public final Expression getTopLevel() { return topLevel; } /** map from namespace URI to loaded XMLSchemaSchema object. */ protected final Map schemata = new java.util.HashMap(); /** gets XMLSchemaSchema object that has the given target namespace. * * @return null if no schema is associated with that namespace. */ public XMLSchemaSchema getByNamespace( String targetNamesapce ) { return (XMLSchemaSchema)schemata.get(targetNamesapce); } /** * returns an Iterator that enumerates XMLSchemaSchema objects * that are defined in this grammar. */ public Iterator iterateSchemas() { return schemata.values().iterator(); } }