1 /* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5 /* 6 * Licensed to the Apache Software Foundation (ASF) under one or more 7 * contributor license agreements. See the NOTICE file distributed with 8 * this work for additional information regarding copyright ownership. 9 * The ASF licenses this file to You under the Apache License, Version 2.0 10 * (the "License"); you may not use this file except in compliance with 11 * the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package com.sun.org.apache.xerces.internal.jaxp.validation; 23 24 import com.sun.org.apache.xerces.internal.xni.grammars.Grammar; 25 import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarDescription; 26 import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool; 27 28 /** 29 * <p>Implementation of Schema for W3C XML Schemas which 30 * contains schema components from one target namespace.</p> 31 * 32 * @author Michael Glavassevich, IBM 33 */ 34 final class SimpleXMLSchema extends AbstractXMLSchema implements XMLGrammarPool { 35 36 /** Zero length grammar array. */ 37 private static final Grammar [] ZERO_LENGTH_GRAMMAR_ARRAY = new Grammar [0]; 38 39 private Grammar fGrammar; 40 private Grammar[] fGrammars; 41 private XMLGrammarDescription fGrammarDescription; 42 43 public SimpleXMLSchema(Grammar grammar) { 44 fGrammar = grammar; 45 fGrammars = new Grammar[] {grammar}; 46 fGrammarDescription = grammar.getGrammarDescription(); 47 } 48 49 /* 50 * XMLGrammarPool methods 51 */ 52 53 public Grammar[] retrieveInitialGrammarSet(String grammarType) { 54 return XMLGrammarDescription.XML_SCHEMA.equals(grammarType) ? 55 (Grammar[]) fGrammars.clone() : ZERO_LENGTH_GRAMMAR_ARRAY; 56 } 57 58 public void cacheGrammars(String grammarType, Grammar[] grammars) {} 59 60 public Grammar retrieveGrammar(XMLGrammarDescription desc) { 61 return fGrammarDescription.equals(desc) ? fGrammar : null; 62 } 63 64 public void lockPool() {} 65 66 public void unlockPool() {} 67 68 public void clear() {} 69 70 /* 71 * XSGrammarPoolContainer methods 72 */ 73 74 public XMLGrammarPool getGrammarPool() { 75 return this; 76 } 77 78 public boolean isFullyComposed() { 79 return true; 80 } 81 82 } // SimpleXMLSchema