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-2003 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.xni.parser.XMLComponentManager;
66  
67  /**
68   * This allows the validator to correctlyhandle XML 1.1
69   * documents.
70   *
71   * @xerces.internal
72   *
73   * @author Neil Graham
74   */
75  public class XML11DTDValidator extends XMLDTDValidator {
76  
77      //
78      // Constants
79      //
80  
81      protected final static String DTD_VALIDATOR_PROPERTY =
82          Constants.XERCES_PROPERTY_PREFIX+Constants.DTD_VALIDATOR_PROPERTY;
83  
84      //
85      // Constructors
86      //
87  
88      /** Default constructor. */
89      public XML11DTDValidator() {
90  
91          super();
92      } // <init>()
93  
94      // overridden so that this class has access to the same
95      // grammarBucket as the corresponding DTDProcessor
96      // will try and use...
97      public void reset(XMLComponentManager manager) {
98          XMLDTDValidator curr = null;
99          if((curr = (XMLDTDValidator)manager.getProperty(DTD_VALIDATOR_PROPERTY)) != null &&
100                 curr != this) {
101             fGrammarBucket = curr.getGrammarBucket();
102         }
103         super.reset(manager);
104     } //reset(XMLComponentManager)
105 
106     protected void init() {
107         if(fValidation || fDynamicValidation) {
108             super.init();
109             // now overwrite some entries in parent:
110 
111             try {
112                 fValID       = fDatatypeValidatorFactory.getBuiltInDV("XML11ID");
113                 fValIDRef    = fDatatypeValidatorFactory.getBuiltInDV("XML11IDREF");
114                 fValIDRefs   = fDatatypeValidatorFactory.getBuiltInDV("XML11IDREFS");
115                 fValNMTOKEN  = fDatatypeValidatorFactory.getBuiltInDV("XML11NMTOKEN");
116                 fValNMTOKENS = fDatatypeValidatorFactory.getBuiltInDV("XML11NMTOKENS");
117 
118             }
119             catch (Exception e) {
120                 // should never happen
121                 e.printStackTrace(System.err);
122             }
123         }
124     } // init()
125 
126 } // class XML11DTDValidator