KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > org > apache > xerces > internal > parsers > SAXParser


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2000-2003 The Apache Software Foundation. All rights
6  * reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Apache Software Foundation (http://www.apache.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Xerces" and "Apache Software Foundation" must
28  * not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact apache@apache.org.
31  *
32  * 5. Products derived from this software may not be called "Apache",
33  * nor may "Apache" appear in their name, without prior written
34  * permission of the Apache Software Foundation.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ====================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals on behalf of the Apache Software Foundation and was
52  * originally based on software copyright (c) 1999, International
53  * Business Machines, Inc., http://www.apache.org. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 package com.sun.org.apache.xerces.internal.parsers;
59
60 import com.sun.org.apache.xerces.internal.impl.Constants;
61 import com.sun.org.apache.xerces.internal.util.SymbolTable;
62 import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
63 import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration;
64
65 /**
66  * This is the main Xerces SAX parser class. It uses the abstract SAX
67  * parser with a document scanner, a dtd scanner, and a validator, as
68  * well as a grammar pool.
69  *
70  * @author Arnaud Le Hors, IBM
71  * @author Andy Clark, IBM
72  *
73  * @version $Id: SAXParser.java,v 1.37 2004/02/17 07:14:49 neeraj Exp $
74  */

75 public class SAXParser
76     extends AbstractSAXParser {
77
78     //
79
// Constants
80
//
81

82     // features
83

84     /** Feature identifier: notify built-in refereces. */
85     protected static final String JavaDoc NOTIFY_BUILTIN_REFS =
86         Constants.XERCES_FEATURE_PREFIX + Constants.NOTIFY_BUILTIN_REFS_FEATURE;
87
88     /** Recognized features. */
89     private static final String JavaDoc[] RECOGNIZED_FEATURES = {
90         NOTIFY_BUILTIN_REFS,
91     };
92
93     // properties
94

95     /** Property identifier: symbol table. */
96     protected static final String JavaDoc SYMBOL_TABLE =
97         Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY;
98
99     /** Property identifier: XML grammar pool. */
100     protected static final String JavaDoc XMLGRAMMAR_POOL =
101         Constants.XERCES_PROPERTY_PREFIX+Constants.XMLGRAMMAR_POOL_PROPERTY;
102
103     /** Recognized properties. */
104     private static final String JavaDoc[] RECOGNIZED_PROPERTIES = {
105         SYMBOL_TABLE,
106         XMLGRAMMAR_POOL,
107     };
108
109     //
110
// Constructors
111
//
112

113     /**
114      * Constructs a SAX parser using the specified parser configuration.
115      */

116     public SAXParser(XMLParserConfiguration config) {
117         super(config);
118     } // <init>(XMLParserConfiguration)
119

120     /**
121      * Constructs a SAX parser using the dtd/xml schema parser configuration.
122      */

123     public SAXParser() {
124         this(null, null);
125     } // <init>()
126

127     /**
128      * Constructs a SAX parser using the specified symbol table.
129      */

130     public SAXParser(SymbolTable symbolTable) {
131         this(symbolTable, null);
132     } // <init>(SymbolTable)
133

134     /**
135      * Constructs a SAX parser using the specified symbol table and
136      * grammar pool.
137      */

138     public SAXParser(SymbolTable symbolTable, XMLGrammarPool grammarPool) {
139         super((XMLParserConfiguration)ObjectFactory.createObject(
140             "com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration",
141             "com.sun.org.apache.xerces.internal.parsers.XIncludeParserConfiguration"
142             ));
143
144         // set features
145
fConfiguration.addRecognizedFeatures(RECOGNIZED_FEATURES);
146         fConfiguration.setFeature(NOTIFY_BUILTIN_REFS, true);
147
148         // set properties
149
fConfiguration.addRecognizedProperties(RECOGNIZED_PROPERTIES);
150         if (symbolTable != null) {
151             fConfiguration.setProperty(SYMBOL_TABLE, symbolTable);
152         }
153         if (grammarPool != null) {
154             fConfiguration.setProperty(XMLGRAMMAR_POOL, grammarPool);
155         }
156
157     } // <init>(SymbolTable,XMLGrammarPool)
158

159 } // class SAXParser
160
Popular Tags