diff options
Diffstat (limited to 'src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java')
-rw-r--r-- | src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java | 1392 |
1 files changed, 0 insertions, 1392 deletions
diff --git a/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java b/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java deleted file mode 100644 index 614c826..0000000 --- a/src/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java +++ /dev/null @@ -1,1392 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 2000-2005 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.sun.org.apache.xerces.internal.parsers; - -import java.io.StringReader; -import java.util.Locale; -import java.util.Stack; -import java.util.StringTokenizer; -import java.util.Vector; - -import com.sun.org.apache.xerces.internal.dom.DOMErrorImpl; -import com.sun.org.apache.xerces.internal.dom.DOMMessageFormatter; -import com.sun.org.apache.xerces.internal.dom.DOMStringListImpl; -import com.sun.org.apache.xerces.internal.impl.Constants; -import com.sun.org.apache.xerces.internal.util.DOMEntityResolverWrapper; -import com.sun.org.apache.xerces.internal.util.DOMErrorHandlerWrapper; -import com.sun.org.apache.xerces.internal.util.DOMUtil; -import com.sun.org.apache.xerces.internal.util.SymbolTable; -import com.sun.org.apache.xerces.internal.util.XMLSymbols; -import com.sun.org.apache.xerces.internal.xni.Augmentations; -import com.sun.org.apache.xerces.internal.xni.NamespaceContext; -import com.sun.org.apache.xerces.internal.xni.QName; -import com.sun.org.apache.xerces.internal.xni.XMLAttributes; -import com.sun.org.apache.xerces.internal.xni.XMLDTDContentModelHandler; -import com.sun.org.apache.xerces.internal.xni.XMLDTDHandler; -import com.sun.org.apache.xerces.internal.xni.XMLDocumentHandler; -import com.sun.org.apache.xerces.internal.xni.XMLLocator; -import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier; -import com.sun.org.apache.xerces.internal.xni.XMLString; -import com.sun.org.apache.xerces.internal.xni.XNIException; -import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool; -import com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException; -import com.sun.org.apache.xerces.internal.xni.parser.XMLDTDContentModelSource; -import com.sun.org.apache.xerces.internal.xni.parser.XMLDTDSource; -import com.sun.org.apache.xerces.internal.xni.parser.XMLDocumentSource; -import com.sun.org.apache.xerces.internal.xni.parser.XMLEntityResolver; -import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; -import com.sun.org.apache.xerces.internal.xni.parser.XMLParseException; -import com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration; -import com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration; -import org.w3c.dom.DOMConfiguration; -import org.w3c.dom.DOMError; -import org.w3c.dom.DOMErrorHandler; -import org.w3c.dom.DOMException; -import org.w3c.dom.DOMStringList; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.ls.LSException; -import org.w3c.dom.ls.LSInput; -import org.w3c.dom.ls.LSParser; -import org.w3c.dom.ls.LSParserFilter; -import org.w3c.dom.ls.LSResourceResolver; -import org.xml.sax.SAXException; - - -/** - * This is Xerces DOM Builder class. It uses the abstract DOM - * parser with a document scanner, a dtd scanner, and a validator, as - * well as a grammar pool. - * - * @author Pavani Mukthipudi, Sun Microsystems Inc. - * @author Elena Litani, IBM - * @author Rahul Srivastava, Sun Microsystems Inc. - * @version $Id: DOMParserImpl.java,v 1.8 2010-11-01 04:40:09 joehw Exp $ - */ - - -public class DOMParserImpl -extends AbstractDOMParser implements LSParser, DOMConfiguration { - - - - // SAX & Xerces feature ids - - /** Feature identifier: namespaces. */ - protected static final String NAMESPACES = - Constants.SAX_FEATURE_PREFIX + Constants.NAMESPACES_FEATURE; - - /** Feature id: validation. */ - protected static final String VALIDATION_FEATURE = - Constants.SAX_FEATURE_PREFIX+Constants.VALIDATION_FEATURE; - - /** XML Schema validation */ - protected static final String XMLSCHEMA = - Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE; - - /** XML Schema full checking */ - protected static final String XMLSCHEMA_FULL_CHECKING = - Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_FULL_CHECKING; - - /** Dynamic validation */ - protected static final String DYNAMIC_VALIDATION = - Constants.XERCES_FEATURE_PREFIX + Constants.DYNAMIC_VALIDATION_FEATURE; - - /** Feature identifier: expose schema normalized value */ - protected static final String NORMALIZE_DATA = - Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_NORMALIZED_VALUE; - - /** Feature identifier: disallow docType Decls. */ - protected static final String DISALLOW_DOCTYPE_DECL_FEATURE = - Constants.XERCES_FEATURE_PREFIX + Constants.DISALLOW_DOCTYPE_DECL_FEATURE; - - /** Feature identifier: namespace growth */ - protected static final String NAMESPACE_GROWTH = - Constants.XERCES_FEATURE_PREFIX + Constants.NAMESPACE_GROWTH_FEATURE; - - /** Feature identifier: tolerate duplicates */ - protected static final String TOLERATE_DUPLICATES = - Constants.XERCES_FEATURE_PREFIX + Constants.TOLERATE_DUPLICATES_FEATURE; - - // internal properties - protected static final String SYMBOL_TABLE = - Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY; - - protected static final String PSVI_AUGMENT = - Constants.XERCES_FEATURE_PREFIX +Constants.SCHEMA_AUGMENT_PSVI; - - - // - // Data - // - - /** Include namespace declaration attributes in the document. **/ - protected boolean fNamespaceDeclarations = true; - - // REVISIT: this value should be null by default and should be set during creation of - // LSParser - protected String fSchemaType = null; - - protected boolean fBusy = false; - - private boolean abortNow = false; - - private Thread currentThread; - - protected final static boolean DEBUG = false; - - private Vector fSchemaLocations = new Vector (); - private String fSchemaLocation = null; - private DOMStringList fRecognizedParameters; - - private AbortHandler abortHandler = null; - - // - // Constructors - // - - /** - * Constructs a DOM Builder using the standard parser configuration. - */ - public DOMParserImpl (XMLParserConfiguration config, String schemaType) { - this (config); - if (schemaType != null) { - if (schemaType.equals (Constants.NS_DTD)) { - //Schema validation is false by default and hence there is no - //need to set it to false here. Also, schema validation is - //not a recognized feature for DTDConfiguration's and so - //setting this feature here would result in a Configuration - //Exception. - fConfiguration.setProperty ( - Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, - Constants.NS_DTD); - fSchemaType = Constants.NS_DTD; - } - else if (schemaType.equals (Constants.NS_XMLSCHEMA)) { - // XML Schem validation - fConfiguration.setProperty ( - Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE, - Constants.NS_XMLSCHEMA); - } - } - - } - - /** - * Constructs a DOM Builder using the specified parser configuration. - */ - public DOMParserImpl (XMLParserConfiguration config) { - super (config); - - // add recognized features - final String[] domRecognizedFeatures = { - Constants.DOM_CANONICAL_FORM, - Constants.DOM_CDATA_SECTIONS, - Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING, - Constants.DOM_INFOSET, - Constants.DOM_NAMESPACE_DECLARATIONS, - Constants.DOM_SPLIT_CDATA, - Constants.DOM_SUPPORTED_MEDIATYPES_ONLY, - Constants.DOM_CERTIFIED, - Constants.DOM_WELLFORMED, - Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS, - }; - - fConfiguration.addRecognizedFeatures (domRecognizedFeatures); - - // turn off deferred DOM - fConfiguration.setFeature (DEFER_NODE_EXPANSION, false); - - // Set values so that the value of the - // infoset parameter is true (its default value). - // - // true: namespace-declarations, well-formed, - // element-content-whitespace, comments, namespaces - // - // false: validate-if-schema, entities, - // datatype-normalization, cdata-sections - - fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); - fConfiguration.setFeature(Constants.DOM_WELLFORMED, true); - fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); - fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); - fConfiguration.setFeature(NAMESPACES, true); - - fConfiguration.setFeature(DYNAMIC_VALIDATION, false); - fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); - fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); - - // set other default values - fConfiguration.setFeature (Constants.DOM_CANONICAL_FORM, false); - fConfiguration.setFeature (Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING, true); - fConfiguration.setFeature (Constants.DOM_SPLIT_CDATA, true); - fConfiguration.setFeature (Constants.DOM_SUPPORTED_MEDIATYPES_ONLY, false); - fConfiguration.setFeature (Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS, true); - - // REVISIT: by default Xerces assumes that input is certified. - // default is different from the one specified in the DOM spec - fConfiguration.setFeature (Constants.DOM_CERTIFIED, true); - - // Xerces datatype-normalization feature is on by default - // This is a recognized feature only for XML Schemas. If the - // configuration doesn't support this feature, ignore it. - try { - fConfiguration.setFeature ( NORMALIZE_DATA, false ); - } - catch (XMLConfigurationException exc) {} - - } // <init>(XMLParserConfiguration) - - /** - * Constructs a DOM Builder using the specified symbol table. - */ - public DOMParserImpl (SymbolTable symbolTable) { - this (new XIncludeAwareParserConfiguration()); - fConfiguration.setProperty ( - Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY, - symbolTable); - } // <init>(SymbolTable) - - - /** - * Constructs a DOM Builder using the specified symbol table and - * grammar pool. - */ - public DOMParserImpl (SymbolTable symbolTable, XMLGrammarPool grammarPool) { - this (new XIncludeAwareParserConfiguration()); - fConfiguration.setProperty ( - Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY, - symbolTable); - fConfiguration.setProperty ( - Constants.XERCES_PROPERTY_PREFIX - + Constants.XMLGRAMMAR_POOL_PROPERTY, - grammarPool); - } - - /** - * Resets the parser state. - * - * @throws SAXException Thrown on initialization error. - */ - public void reset () { - super.reset (); - - // get state of namespace-declarations parameter. - fNamespaceDeclarations = - fConfiguration.getFeature(Constants.DOM_NAMESPACE_DECLARATIONS); - - // DOM Filter - if (fSkippedElemStack!=null) { - fSkippedElemStack.removeAllElements (); - } - fSchemaLocations.clear (); - fRejectedElementDepth = 0; - fFilterReject = false; - fSchemaType = null; - - } // reset() - - // - // DOMParser methods - // - - public DOMConfiguration getDomConfig (){ - return this; - } - - - /** - * When the application provides a filter, the parser will call out to - * the filter at the completion of the construction of each - * <code>Element</code> node. The filter implementation can choose to - * remove the element from the document being constructed (unless the - * element is the document element) or to terminate the parse early. If - * the document is being validated when it's loaded the validation - * happens before the filter is called. - */ - public LSParserFilter getFilter () { - return fDOMFilter; - } - - /** - * When the application provides a filter, the parser will call out to - * the filter at the completion of the construction of each - * <code>Element</code> node. The filter implementation can choose to - * remove the element from the document being constructed (unless the - * element is the document element) or to terminate the parse early. If - * the document is being validated when it's loaded the validation - * happens before the filter is called. - */ - public void setFilter (LSParserFilter filter) { - fDOMFilter = filter; - if (fSkippedElemStack == null) { - fSkippedElemStack = new Stack (); - } - } - - /** - * Set parameters and properties - */ - public void setParameter (String name, Object value) throws DOMException { - // set features - - if(value instanceof Boolean){ - boolean state = ((Boolean)value).booleanValue (); - try { - if (name.equalsIgnoreCase (Constants.DOM_COMMENTS)) { - fConfiguration.setFeature (INCLUDE_COMMENTS_FEATURE, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_DATATYPE_NORMALIZATION)) { - fConfiguration.setFeature (NORMALIZE_DATA, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_ENTITIES)) { - fConfiguration.setFeature (CREATE_ENTITY_REF_NODES, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_DISALLOW_DOCTYPE)) { - fConfiguration.setFeature (DISALLOW_DOCTYPE_DECL_FEATURE, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) - || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) - || name.equalsIgnoreCase (Constants.DOM_CHECK_CHAR_NORMALIZATION) - || name.equalsIgnoreCase (Constants.DOM_CANONICAL_FORM)) { - if (state) { // true is not supported - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "FEATURE_NOT_SUPPORTED", - new Object[] { name }); - throw new DOMException (DOMException.NOT_SUPPORTED_ERR, msg); - } - // setting those features to false is no-op - } - else if (name.equalsIgnoreCase (Constants.DOM_NAMESPACES)) { - fConfiguration.setFeature (NAMESPACES, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_INFOSET)) { - // Setting false has no effect. - if (state) { - // true: namespaces, namespace-declarations, - // comments, element-content-whitespace - fConfiguration.setFeature(NAMESPACES, true); - fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, true); - fConfiguration.setFeature(INCLUDE_COMMENTS_FEATURE, true); - fConfiguration.setFeature(INCLUDE_IGNORABLE_WHITESPACE, true); - - // false: validate-if-schema, entities, - // datatype-normalization, cdata-sections - fConfiguration.setFeature(DYNAMIC_VALIDATION, false); - fConfiguration.setFeature(CREATE_ENTITY_REF_NODES, false); - fConfiguration.setFeature(NORMALIZE_DATA, false); - fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, false); - } - } - else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { - fConfiguration.setFeature(CREATE_CDATA_NODES_FEATURE, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_NAMESPACE_DECLARATIONS)) { - fConfiguration.setFeature(Constants.DOM_NAMESPACE_DECLARATIONS, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_WELLFORMED) - || name.equalsIgnoreCase (Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { - if (!state) { // false is not supported - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "FEATURE_NOT_SUPPORTED", - new Object[] { name }); - throw new DOMException (DOMException.NOT_SUPPORTED_ERR, msg); - } - // setting these features to true is no-op - // REVISIT: implement "namespace-declaration" feature - } - else if (name.equalsIgnoreCase (Constants.DOM_VALIDATE)) { - fConfiguration.setFeature (VALIDATION_FEATURE, state); - if (fSchemaType != Constants.NS_DTD) { - fConfiguration.setFeature (XMLSCHEMA, state); - fConfiguration.setFeature (XMLSCHEMA_FULL_CHECKING, state); - } - if (state){ - fConfiguration.setFeature (DYNAMIC_VALIDATION, false); - } - } - else if (name.equalsIgnoreCase (Constants.DOM_VALIDATE_IF_SCHEMA)) { - fConfiguration.setFeature (DYNAMIC_VALIDATION, state); - // Note: validation and dynamic validation are mutually exclusive - if (state){ - fConfiguration.setFeature (VALIDATION_FEATURE, false); - } - } - else if (name.equalsIgnoreCase (Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { - fConfiguration.setFeature (INCLUDE_IGNORABLE_WHITESPACE, state); - } - else if (name.equalsIgnoreCase (Constants.DOM_PSVI)){ - //XSModel - turn on PSVI augmentation - fConfiguration.setFeature (PSVI_AUGMENT, true); - fConfiguration.setProperty (DOCUMENT_CLASS_NAME, - "com.sun.org.apache.xerces.internal.dom.PSVIDocumentImpl"); - } - else { - // Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING feature, - // Constants.DOM_SPLIT_CDATA feature, - // or any Xerces feature - String normalizedName; - if (name.equals(NAMESPACE_GROWTH)) { - normalizedName = NAMESPACE_GROWTH; - } - else if (name.equals(TOLERATE_DUPLICATES)) { - normalizedName = TOLERATE_DUPLICATES; - } - else { - normalizedName = name.toLowerCase(Locale.ENGLISH); - } - fConfiguration.setFeature (normalizedName, state); - } - - } - catch (XMLConfigurationException e) { - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "FEATURE_NOT_FOUND", - new Object[] { name }); - throw new DOMException (DOMException.NOT_FOUND_ERR, msg); - } - } - else { // set properties - if (name.equalsIgnoreCase (Constants.DOM_ERROR_HANDLER)) { - if (value instanceof DOMErrorHandler || value == null) { - try { - fErrorHandler = new DOMErrorHandlerWrapper ((DOMErrorHandler) value); - fConfiguration.setProperty (ERROR_HANDLER, fErrorHandler); - } - catch (XMLConfigurationException e) {} - } - else { - // REVISIT: type mismatch - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "TYPE_MISMATCH_ERR", - new Object[] { name }); - throw new DOMException (DOMException.TYPE_MISMATCH_ERR, msg); - } - - } - else if (name.equalsIgnoreCase (Constants.DOM_RESOURCE_RESOLVER)) { - if (value instanceof LSResourceResolver || value == null) { - try { - fConfiguration.setProperty (ENTITY_RESOLVER, new DOMEntityResolverWrapper ((LSResourceResolver) value)); - } - catch (XMLConfigurationException e) {} - } - else { - // REVISIT: type mismatch - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "TYPE_MISMATCH_ERR", - new Object[] { name }); - throw new DOMException (DOMException.TYPE_MISMATCH_ERR, msg); - } - - } - else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_LOCATION)) { - if (value instanceof String || value == null) { - try { - if (value == null) { - fSchemaLocation = null; - fConfiguration.setProperty ( - Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, - null); - } - else { - fSchemaLocation = (String)value; - // map DOM schema-location to JAXP schemaSource property - // tokenize location string - StringTokenizer t = new StringTokenizer (fSchemaLocation, " \n\t\r"); - if (t.hasMoreTokens ()){ - fSchemaLocations.clear (); - fSchemaLocations.add (t.nextToken ()); - while (t.hasMoreTokens ()) { - fSchemaLocations.add (t.nextToken ()); - } - fConfiguration.setProperty ( - Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, - fSchemaLocations.toArray ()); - } - else { - fConfiguration.setProperty ( - Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE, - value); - } - } - } - catch (XMLConfigurationException e) {} - } - else { - // REVISIT: type mismatch - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "TYPE_MISMATCH_ERR", - new Object[] { name }); - throw new DOMException (DOMException.TYPE_MISMATCH_ERR, msg); - } - - } - else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_TYPE)) { - if (value instanceof String || value == null) { - try { - if (value == null) { - // turn off schema features - fConfiguration.setFeature (XMLSCHEMA, false); - fConfiguration.setFeature (XMLSCHEMA_FULL_CHECKING, false); - // map to JAXP schemaLanguage - fConfiguration.setProperty ( Constants.JAXP_PROPERTY_PREFIX - + Constants.SCHEMA_LANGUAGE, - null); - fSchemaType = null; - } - else if (value.equals (Constants.NS_XMLSCHEMA)) { - // turn on schema features - fConfiguration.setFeature (XMLSCHEMA, true); - fConfiguration.setFeature (XMLSCHEMA_FULL_CHECKING, true); - // map to JAXP schemaLanguage - fConfiguration.setProperty ( Constants.JAXP_PROPERTY_PREFIX - + Constants.SCHEMA_LANGUAGE, - Constants.NS_XMLSCHEMA); - fSchemaType = Constants.NS_XMLSCHEMA; - } - else if (value.equals (Constants.NS_DTD)) { - // turn off schema features - fConfiguration.setFeature (XMLSCHEMA, false); - fConfiguration.setFeature (XMLSCHEMA_FULL_CHECKING, false); - // map to JAXP schemaLanguage - fConfiguration.setProperty ( Constants.JAXP_PROPERTY_PREFIX - + Constants.SCHEMA_LANGUAGE, - Constants.NS_DTD); - fSchemaType = Constants.NS_DTD; - } - } - catch (XMLConfigurationException e) {} - } - else { - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "TYPE_MISMATCH_ERR", - new Object[] { name }); - throw new DOMException (DOMException.TYPE_MISMATCH_ERR, msg); - } - - } - else if (name.equalsIgnoreCase (DOCUMENT_CLASS_NAME)) { - fConfiguration.setProperty (DOCUMENT_CLASS_NAME, value); - } - else { - // Try to set the property. - String normalizedName = name.toLowerCase(Locale.ENGLISH); - try { - fConfiguration.setProperty(normalizedName, value); - return; - } - catch (XMLConfigurationException e) {} - - // If this is a boolean parameter a type mismatch should be thrown. - try { - if (name.equals(NAMESPACE_GROWTH)) { - normalizedName = NAMESPACE_GROWTH; - } - else if (name.equals(TOLERATE_DUPLICATES)) { - normalizedName = TOLERATE_DUPLICATES; - } - fConfiguration.getFeature(normalizedName); - throw newTypeMismatchError(name); - - } - catch (XMLConfigurationException e) {} - - // Parameter is not recognized - throw newFeatureNotFoundError(name); - } - } - } - - /** - * Look up the value of a feature or a property. - */ - public Object getParameter (String name) throws DOMException { - if (name.equalsIgnoreCase (Constants.DOM_COMMENTS)) { - return (fConfiguration.getFeature (INCLUDE_COMMENTS_FEATURE)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_DATATYPE_NORMALIZATION)) { - return (fConfiguration.getFeature (NORMALIZE_DATA)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_ENTITIES)) { - return (fConfiguration.getFeature (CREATE_ENTITY_REF_NODES)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_NAMESPACES)) { - return (fConfiguration.getFeature (NAMESPACES)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_VALIDATE)) { - return (fConfiguration.getFeature (VALIDATION_FEATURE)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_VALIDATE_IF_SCHEMA)) { - return (fConfiguration.getFeature (DYNAMIC_VALIDATION)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { - return (fConfiguration.getFeature (INCLUDE_IGNORABLE_WHITESPACE)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_DISALLOW_DOCTYPE)) { - return (fConfiguration.getFeature (DISALLOW_DOCTYPE_DECL_FEATURE)) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_INFOSET)) { - // REVISIT: This is somewhat expensive to compute - // but it's possible that the user has a reference - // to the configuration and is changing the values - // of these features directly on it. - boolean infoset = fConfiguration.getFeature(NAMESPACES) && - fConfiguration.getFeature(Constants.DOM_NAMESPACE_DECLARATIONS) && - fConfiguration.getFeature(INCLUDE_COMMENTS_FEATURE) && - fConfiguration.getFeature(INCLUDE_IGNORABLE_WHITESPACE) && - !fConfiguration.getFeature(DYNAMIC_VALIDATION) && - !fConfiguration.getFeature(CREATE_ENTITY_REF_NODES) && - !fConfiguration.getFeature(NORMALIZE_DATA) && - !fConfiguration.getFeature(CREATE_CDATA_NODES_FEATURE); - return (infoset) ? Boolean.TRUE : Boolean.FALSE; - } - else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) { - return (fConfiguration.getFeature(CREATE_CDATA_NODES_FEATURE)) - ? Boolean.TRUE : Boolean.FALSE; - } - else if (name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION ) || - name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS)){ - return Boolean.FALSE; - } - else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACE_DECLARATIONS) - || name.equalsIgnoreCase (Constants.DOM_WELLFORMED) - || name.equalsIgnoreCase (Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS) - || name.equalsIgnoreCase (Constants.DOM_CANONICAL_FORM) - || name.equalsIgnoreCase (Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) - || name.equalsIgnoreCase (Constants.DOM_SPLIT_CDATA) - || name.equalsIgnoreCase (Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING)) { - return (fConfiguration.getFeature (name.toLowerCase(Locale.ENGLISH))) - ? Boolean.TRUE - : Boolean.FALSE; - } - else if (name.equalsIgnoreCase (Constants.DOM_ERROR_HANDLER)) { - if (fErrorHandler != null) { - return fErrorHandler.getErrorHandler (); - } - return null; - } - else if (name.equalsIgnoreCase (Constants.DOM_RESOURCE_RESOLVER)) { - try { - XMLEntityResolver entityResolver = - (XMLEntityResolver) fConfiguration.getProperty (ENTITY_RESOLVER); - if (entityResolver != null - && entityResolver instanceof DOMEntityResolverWrapper) { - return ((DOMEntityResolverWrapper) entityResolver).getEntityResolver (); - } - return null; - } - catch (XMLConfigurationException e) {} - } - else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_TYPE)) { - return fConfiguration.getProperty ( - Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE); - } - else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_LOCATION)) { - return fSchemaLocation; - } - else if (name.equalsIgnoreCase (SYMBOL_TABLE)){ - return fConfiguration.getProperty (SYMBOL_TABLE); - } - else if (name.equalsIgnoreCase (DOCUMENT_CLASS_NAME)) { - return fConfiguration.getProperty (DOCUMENT_CLASS_NAME); - } - else { - // This could be a recognized feature or property. - String normalizedName; - - if (name.equals(NAMESPACE_GROWTH)) { - normalizedName = NAMESPACE_GROWTH; - } - else if (name.equals(TOLERATE_DUPLICATES)) { - normalizedName = TOLERATE_DUPLICATES; - } - else { - normalizedName = name.toLowerCase(Locale.ENGLISH); - } - try { - return fConfiguration.getFeature(normalizedName) - ? Boolean.TRUE : Boolean.FALSE; - } - catch (XMLConfigurationException e) {} - - // This isn't a feature; perhaps it's a property - try { - return fConfiguration.getProperty(normalizedName); - } - catch (XMLConfigurationException e) {} - - throw newFeatureNotFoundError(name); - } - return null; - } - - public boolean canSetParameter (String name, Object value) { - if (value == null){ - return true; - } - - if(value instanceof Boolean){ - boolean state = ((Boolean)value).booleanValue (); - if ( name.equalsIgnoreCase (Constants.DOM_SUPPORTED_MEDIATYPES_ONLY) - || name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS) - || name.equalsIgnoreCase(Constants.DOM_CHECK_CHAR_NORMALIZATION ) - || name.equalsIgnoreCase (Constants.DOM_CANONICAL_FORM) ) { - // true is not supported - return (state) ? false : true; - } - else if (name.equalsIgnoreCase (Constants.DOM_WELLFORMED) - || name.equalsIgnoreCase (Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS)) { - // false is not supported - return (state) ? true : false; - } - else if (name.equalsIgnoreCase (Constants.DOM_CDATA_SECTIONS) - || name.equalsIgnoreCase (Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING) - || name.equalsIgnoreCase (Constants.DOM_COMMENTS) - || name.equalsIgnoreCase (Constants.DOM_DATATYPE_NORMALIZATION) - || name.equalsIgnoreCase (Constants.DOM_DISALLOW_DOCTYPE) - || name.equalsIgnoreCase (Constants.DOM_ENTITIES) - || name.equalsIgnoreCase (Constants.DOM_INFOSET) - || name.equalsIgnoreCase (Constants.DOM_NAMESPACES) - || name.equalsIgnoreCase (Constants.DOM_NAMESPACE_DECLARATIONS) - || name.equalsIgnoreCase (Constants.DOM_VALIDATE) - || name.equalsIgnoreCase (Constants.DOM_VALIDATE_IF_SCHEMA) - || name.equalsIgnoreCase (Constants.DOM_ELEMENT_CONTENT_WHITESPACE) - || name.equalsIgnoreCase (Constants.DOM_XMLDECL)) { - return true; - } - - // Recognize Xerces features. - try { - String normalizedName; - if (name.equalsIgnoreCase(NAMESPACE_GROWTH)) { - normalizedName = NAMESPACE_GROWTH; - } - else if (name.equalsIgnoreCase(TOLERATE_DUPLICATES)) { - normalizedName = TOLERATE_DUPLICATES; - } - else { - normalizedName = name.toLowerCase(Locale.ENGLISH); - } - fConfiguration.getFeature(normalizedName); - return true; - } - catch (XMLConfigurationException e) { - return false; - } - } - else { // check properties - if (name.equalsIgnoreCase (Constants.DOM_ERROR_HANDLER)) { - if (value instanceof DOMErrorHandler || value == null) { - return true; - } - return false; - } - else if (name.equalsIgnoreCase (Constants.DOM_RESOURCE_RESOLVER)) { - if (value instanceof LSResourceResolver || value == null) { - return true; - } - return false; - } - else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_TYPE)) { - if ((value instanceof String - && (value.equals (Constants.NS_XMLSCHEMA) - || value.equals (Constants.NS_DTD))) || value == null) { - return true; - } - return false; - } - else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_LOCATION)) { - if (value instanceof String || value == null) - return true; - return false; - } - else if (name.equalsIgnoreCase (DOCUMENT_CLASS_NAME)){ - return true; - } - return false; - } - } - - /** - * DOM Level 3 CR - Experimental. - * - * The list of the parameters supported by this - * <code>DOMConfiguration</code> object and for which at least one value - * can be set by the application. Note that this list can also contain - * parameter names defined outside this specification. - */ - public DOMStringList getParameterNames () { - if (fRecognizedParameters == null){ - Vector parameters = new Vector(); - - // REVISIT: add Xerces recognized properties/features - parameters.add(Constants.DOM_NAMESPACES); - parameters.add(Constants.DOM_CDATA_SECTIONS); - parameters.add(Constants.DOM_CANONICAL_FORM); - parameters.add(Constants.DOM_NAMESPACE_DECLARATIONS); - parameters.add(Constants.DOM_SPLIT_CDATA); - - parameters.add(Constants.DOM_ENTITIES); - parameters.add(Constants.DOM_VALIDATE_IF_SCHEMA); - parameters.add(Constants.DOM_VALIDATE); - parameters.add(Constants.DOM_DATATYPE_NORMALIZATION); - - parameters.add(Constants.DOM_CHARSET_OVERRIDES_XML_ENCODING); - parameters.add(Constants.DOM_CHECK_CHAR_NORMALIZATION); - parameters.add(Constants.DOM_SUPPORTED_MEDIATYPES_ONLY); - parameters.add(Constants.DOM_IGNORE_UNKNOWN_CHARACTER_DENORMALIZATIONS); - - parameters.add(Constants.DOM_NORMALIZE_CHARACTERS); - parameters.add(Constants.DOM_WELLFORMED); - parameters.add(Constants.DOM_INFOSET); - parameters.add(Constants.DOM_DISALLOW_DOCTYPE); - parameters.add(Constants.DOM_ELEMENT_CONTENT_WHITESPACE); - parameters.add(Constants.DOM_COMMENTS); - - parameters.add(Constants.DOM_ERROR_HANDLER); - parameters.add(Constants.DOM_RESOURCE_RESOLVER); - parameters.add(Constants.DOM_SCHEMA_LOCATION); - parameters.add(Constants.DOM_SCHEMA_TYPE); - - fRecognizedParameters = new DOMStringListImpl(parameters); - - } - - return fRecognizedParameters; - } - - /** - * Parse an XML document from a location identified by an URI reference. - * If the URI contains a fragment identifier (see section 4.1 in ), the - * behavior is not defined by this specification. - * - */ - public Document parseURI (String uri) throws LSException { - - //If DOMParser insstance is already busy parsing another document when this - // method is called, then raise INVALID_STATE_ERR according to DOM L3 LS spec - if ( fBusy ) { - String msg = DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "INVALID_STATE_ERR",null); - throw new DOMException ( DOMException.INVALID_STATE_ERR,msg); - } - - XMLInputSource source = new XMLInputSource (null, uri, null); - try { - currentThread = Thread.currentThread(); - fBusy = true; - parse (source); - fBusy = false; - if (abortNow && currentThread.isInterrupted()) { - //reset interrupt state - abortNow = false; - Thread.interrupted(); - } - } catch (Exception e){ - fBusy = false; - if (abortNow && currentThread.isInterrupted()) { - Thread.interrupted(); - } - if (abortNow) { - abortNow = false; - restoreHandlers(); - return null; - } - // Consume this exception if the user - // issued an interrupt or an abort. - if (e != Abort.INSTANCE) { - if (!(e instanceof XMLParseException) && fErrorHandler != null) { - DOMErrorImpl error = new DOMErrorImpl (); - error.fException = e; - error.fMessage = e.getMessage (); - error.fSeverity = DOMError.SEVERITY_FATAL_ERROR; - fErrorHandler.getErrorHandler ().handleError (error); - } - if (DEBUG) { - e.printStackTrace (); - } - throw (LSException) DOMUtil.createLSException(LSException.PARSE_ERR, e).fillInStackTrace(); - } - } - Document doc = getDocument(); - dropDocumentReferences(); - return doc; - } - - /** - * Parse an XML document from a resource identified by an - * <code>LSInput</code>. - * - */ - public Document parse (LSInput is) throws LSException { - - // need to wrap the LSInput with an XMLInputSource - XMLInputSource xmlInputSource = dom2xmlInputSource (is); - if ( fBusy ) { - String msg = DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "INVALID_STATE_ERR",null); - throw new DOMException ( DOMException.INVALID_STATE_ERR,msg); - } - - try { - currentThread = Thread.currentThread(); - fBusy = true; - parse (xmlInputSource); - fBusy = false; - if (abortNow && currentThread.isInterrupted()) { - //reset interrupt state - abortNow = false; - Thread.interrupted(); - } - } catch (Exception e) { - fBusy = false; - if (abortNow && currentThread.isInterrupted()) { - Thread.interrupted(); - } - if (abortNow) { - abortNow = false; - restoreHandlers(); - return null; - } - // Consume this exception if the user - // issued an interrupt or an abort. - if (e != Abort.INSTANCE) { - if (!(e instanceof XMLParseException) && fErrorHandler != null) { - DOMErrorImpl error = new DOMErrorImpl (); - error.fException = e; - error.fMessage = e.getMessage (); - error.fSeverity = DOMError.SEVERITY_FATAL_ERROR; - fErrorHandler.getErrorHandler().handleError (error); - } - if (DEBUG) { - e.printStackTrace (); - } - throw (LSException) DOMUtil.createLSException(LSException.PARSE_ERR, e).fillInStackTrace(); - } - } - Document doc = getDocument(); - dropDocumentReferences(); - return doc; - } - - - private void restoreHandlers() { - fConfiguration.setDocumentHandler(this); - fConfiguration.setDTDHandler(this); - fConfiguration.setDTDContentModelHandler(this); - } - - /** - * Parse an XML document or fragment from a resource identified by an - * <code>LSInput</code> and insert the content into an existing - * document at the position epcified with the <code>contextNode</code> - * and <code>action</code> arguments. When parsing the input stream the - * context node is used for resolving unbound namespace prefixes. - * - * @param is The <code>LSInput</code> from which the source - * document is to be read. - * @param cnode The <code>Node</code> that is used as the context for - * the data that is being parsed. - * @param action This parameter describes which action should be taken - * between the new set of node being inserted and the existing - * children of the context node. The set of possible actions is - * defined above. - * @exception DOMException - * HIERARCHY_REQUEST_ERR: Thrown if this action results in an invalid - * hierarchy (i.e. a Document with more than one document element). - */ - public Node parseWithContext (LSInput is, Node cnode, - short action) throws DOMException, LSException { - // REVISIT: need to implement. - throw new DOMException (DOMException.NOT_SUPPORTED_ERR, "Not supported"); - } - - - /** - * NON-DOM: convert LSInput to XNIInputSource - * - * @param is - * @return - */ - XMLInputSource dom2xmlInputSource (LSInput is) { - // need to wrap the LSInput with an XMLInputSource - XMLInputSource xis = null; - // check whether there is a Reader - // according to DOM, we need to treat such reader as "UTF-16". - if (is.getCharacterStream () != null) { - xis = new XMLInputSource (is.getPublicId (), is.getSystemId (), - is.getBaseURI (), is.getCharacterStream (), - "UTF-16"); - } - // check whether there is an InputStream - else if (is.getByteStream () != null) { - xis = new XMLInputSource (is.getPublicId (), is.getSystemId (), - is.getBaseURI (), is.getByteStream (), - is.getEncoding ()); - } - // if there is a string data, use a StringReader - // according to DOM, we need to treat such data as "UTF-16". - else if (is.getStringData () != null && is.getStringData().length() > 0) { - xis = new XMLInputSource (is.getPublicId (), is.getSystemId (), - is.getBaseURI (), new StringReader (is.getStringData ()), - "UTF-16"); - } - // otherwise, just use the public/system/base Ids - else if ((is.getSystemId() != null && is.getSystemId().length() > 0) || - (is.getPublicId() != null && is.getPublicId().length() > 0)) { - xis = new XMLInputSource (is.getPublicId (), is.getSystemId (), - is.getBaseURI ()); - } - else { - // all inputs are null - if (fErrorHandler != null) { - DOMErrorImpl error = new DOMErrorImpl(); - error.fType = "no-input-specified"; - error.fMessage = "no-input-specified"; - error.fSeverity = DOMError.SEVERITY_FATAL_ERROR; - fErrorHandler.getErrorHandler().handleError(error); - } - throw new LSException(LSException.PARSE_ERR, "no-input-specified"); - } - return xis; - } - - /** - * @see org.w3c.dom.ls.LSParser#getAsync() - */ - public boolean getAsync () { - return false; - } - - /** - * @see org.w3c.dom.ls.LSParser#getBusy() - */ - public boolean getBusy () { - return fBusy; - } - - /** - * @see org.w3c.dom.ls.DOMParser#abort() - */ - public void abort () { - // If parse operation is in progress then reset it - if ( fBusy ) { - fBusy = false; - if(currentThread != null) { - abortNow = true; - if (abortHandler == null) { - abortHandler = new AbortHandler(); - } - fConfiguration.setDocumentHandler(abortHandler); - fConfiguration.setDTDHandler(abortHandler); - fConfiguration.setDTDContentModelHandler(abortHandler); - - if(currentThread == Thread.currentThread()) - throw Abort.INSTANCE; - - currentThread.interrupt(); - } - } - return; // If not busy then this is noop - } - - /** - * The start of an element. If the document specifies the start element - * by using an empty tag, then the startElement method will immediately - * be followed by the endElement method, with no intervening methods. - * Overriding the parent to handle DOM_NAMESPACE_DECLARATIONS=false. - * - * @param element The name of the element. - * @param attributes The element attributes. - * @param augs Additional information that may include infoset augmentations - * - * @throws XNIException Thrown by handler to signal an error. - */ - public void startElement (QName element, XMLAttributes attributes, Augmentations augs) { - // namespace declarations parameter has no effect if namespaces is false. - if (!fNamespaceDeclarations && fNamespaceAware) { - int len = attributes.getLength(); - for (int i = len - 1; i >= 0; --i) { - if (XMLSymbols.PREFIX_XMLNS == attributes.getPrefix(i) || - XMLSymbols.PREFIX_XMLNS == attributes.getQName(i)) { - attributes.removeAttributeAt(i); - } - } - } - super.startElement(element, attributes, augs); - } - - private class AbortHandler implements XMLDocumentHandler, XMLDTDHandler, XMLDTDContentModelHandler { - - private XMLDocumentSource documentSource; - private XMLDTDContentModelSource dtdContentSource; - private XMLDTDSource dtdSource; - - public void startDocument(XMLLocator locator, String encoding, NamespaceContext namespaceContext, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void xmlDecl(String version, String encoding, String standalone, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void doctypeDecl(String rootElement, String publicId, String systemId, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void comment(XMLString text, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void processingInstruction(String target, XMLString data, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void startElement(QName element, XMLAttributes attributes, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void emptyElement(QName element, XMLAttributes attributes, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void startGeneralEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void textDecl(String version, String encoding, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void endGeneralEntity(String name, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void characters(XMLString text, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void ignorableWhitespace(XMLString text, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void endElement(QName element, Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void startCDATA(Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void endCDATA(Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void endDocument(Augmentations augs) throws XNIException { - throw Abort.INSTANCE; - } - - public void setDocumentSource(XMLDocumentSource source) { - documentSource = source; - } - - public XMLDocumentSource getDocumentSource() { - return documentSource; - } - - public void startDTD(XMLLocator locator, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void startParameterEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endParameterEntity(String name, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void startExternalSubset(XMLResourceIdentifier identifier, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endExternalSubset(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void elementDecl(String name, String contentModel, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void startAttlist(String elementName, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void attributeDecl(String elementName, String attributeName, String type, String[] enumeration, String defaultType, XMLString defaultValue, XMLString nonNormalizedDefaultValue, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endAttlist(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void internalEntityDecl(String name, XMLString text, XMLString nonNormalizedText, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void externalEntityDecl(String name, XMLResourceIdentifier identifier, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void unparsedEntityDecl(String name, XMLResourceIdentifier identifier, String notation, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void notationDecl(String name, XMLResourceIdentifier identifier, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void startConditional(short type, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void ignoredCharacters(XMLString text, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endConditional(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endDTD(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void setDTDSource(XMLDTDSource source) { - dtdSource = source; - } - - public XMLDTDSource getDTDSource() { - return dtdSource; - } - - public void startContentModel(String elementName, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void any(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void empty(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void startGroup(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void pcdata(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void element(String elementName, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void separator(short separator, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void occurrence(short occurrence, Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endGroup(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void endContentModel(Augmentations augmentations) throws XNIException { - throw Abort.INSTANCE; - } - - public void setDTDContentModelSource(XMLDTDContentModelSource source) { - dtdContentSource = source; - } - - public XMLDTDContentModelSource getDTDContentModelSource() { - return dtdContentSource; - } - - } - - private static DOMException newFeatureNotFoundError(String name) { - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "FEATURE_NOT_FOUND", - new Object[] { name }); - return new DOMException (DOMException.NOT_FOUND_ERR, msg); - } - - private static DOMException newTypeMismatchError(String name) { - String msg = - DOMMessageFormatter.formatMessage ( - DOMMessageFormatter.DOM_DOMAIN, - "TYPE_MISMATCH_ERR", - new Object[] { name }); - return new DOMException (DOMException.TYPE_MISMATCH_ERR, msg); - } - -} // class DOMParserImpl |