View Javadoc
1   /*
2    * reserved comment block
3    * DO NOT REMOVE OR ALTER!
4    */
5   /*
6    * The Apache Software License, Version 1.1
7    *
8    *
9    * Copyright (c) 1999-2002 The Apache Software Foundation.
10   * All rights reserved.
11   *
12   * Redistribution and use in source and binary forms, with or without
13   * modification, are permitted provided that the following conditions
14   * are met:
15   *
16   * 1. Redistributions of source code must retain the above copyright
17   *    notice, this list of conditions and the following disclaimer.
18   *
19   * 2. Redistributions in binary form must reproduce the above copyright
20   *    notice, this list of conditions and the following disclaimer in
21   *    the documentation and/or other materials provided with the
22   *    distribution.
23   *
24   * 3. The end-user documentation included with the redistribution,
25   *    if any, must include the following acknowledgment:
26   *       "This product includes software developed by the
27   *        Apache Software Foundation (http://www.apache.org/)."
28   *    Alternately, this acknowledgment may appear in the software itself,
29   *    if and wherever such third-party acknowledgments normally appear.
30   *
31   * 4. The names "Xerces" and "Apache Software Foundation" must
32   *    not be used to endorse or promote products derived from this
33   *    software without prior written permission. For written
34   *    permission, please contact apache@apache.org.
35   *
36   * 5. Products derived from this software may not be called "Apache",
37   *    nor may "Apache" appear in their name, without prior written
38   *    permission of the Apache Software Foundation.
39   *
40   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
41   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
42   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
44   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
46   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
47   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
48   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
49   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
50   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51   * SUCH DAMAGE.
52   * ====================================================================
53   *
54   * This software consists of voluntary contributions made by many
55   * individuals on behalf of the Apache Software Foundation and was
56   * originally based on software copyright (c) 1999, International
57   * Business Machines, Inc., http://www.apache.org.  For more
58   * information on the Apache Software Foundation, please see
59   * <http://www.apache.org/>.
60   */
61  
62  package com.sun.org.apache.xerces.internal.impl.dtd;
63  
64  import com.sun.org.apache.xerces.internal.impl.Constants;
65  import com.sun.org.apache.xerces.internal.impl.XML11DTDScannerImpl;
66  import com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl;
67  import com.sun.org.apache.xerces.internal.impl.XMLEntityManager;
68  import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter;
69  import com.sun.org.apache.xerces.internal.util.SymbolTable;
70  import com.sun.org.apache.xerces.internal.util.XML11Char;
71  import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
72  import com.sun.org.apache.xerces.internal.xni.parser.XMLEntityResolver;
73  
74  /**
75   * This class extends XMLDTDProcessor by giving it
76   * the ability to parse XML 1.1 documents correctly.  It can also be used
77   * as a DTD loader, so that XML 1.1 external subsets can
78   * be processed correctly (hence it's rather anomalous-appearing
79   * derivation from XMLDTDLoader).
80   *
81   * @xerces.internal
82   *
83   * @author Neil Graham, IBM
84   *
85   */
86  public class XML11DTDProcessor extends XMLDTDLoader{
87  
88      // constructors
89  
90      public XML11DTDProcessor() {
91          super();
92      } // <init>()
93  
94      public XML11DTDProcessor(SymbolTable symbolTable) {
95          super(symbolTable);
96      } // init(SymbolTable)
97  
98      public XML11DTDProcessor(SymbolTable symbolTable,
99                  XMLGrammarPool grammarPool) {
100         super(symbolTable, grammarPool);
101     } // init(SymbolTable, XMLGrammarPool)
102 
103     XML11DTDProcessor(SymbolTable symbolTable,
104                 XMLGrammarPool grammarPool, XMLErrorReporter errorReporter,
105                 XMLEntityResolver entityResolver) {
106         super(symbolTable, grammarPool, errorReporter, entityResolver);
107     } // init(SymbolTable, XMLGrammarPool, XMLErrorReporter, XMLEntityResolver)
108 
109     // overridden methods
110 
111     protected boolean isValidNmtoken(String nmtoken) {
112         return XML11Char.isXML11ValidNmtoken(nmtoken);
113     } // isValidNmtoken(String):  boolean
114 
115     protected boolean isValidName(String name) {
116         return XML11Char.isXML11ValidName(name);
117     } // isValidNmtoken(String):  boolean
118 
119     protected XMLDTDScannerImpl createDTDScanner(SymbolTable symbolTable,
120             XMLErrorReporter errorReporter, XMLEntityManager entityManager) {
121         return new XML11DTDScannerImpl(symbolTable, errorReporter, entityManager);
122     } // createDTDScanner(SymbolTable, XMLErrorReporter, XMLEntityManager) : XMLDTDScannerImpl
123 
124     protected short getScannerVersion() {
125         return Constants.XML_VERSION_1_1;
126     } // getScannerVersion() : short
127 
128 } // class XML11DTDProcessor