⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlscanner.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/* * The contents of this file are subject to the terms * of the Common Development and Distribution License * (the "License").  You may not use this file except * in compliance with the License. * * You can obtain a copy of the license at * https://jaxp.dev.java.net/CDDLv1.0.html. * See the License for the specific language governing * permissions and limitations under the License. * * When distributing Covered Code, include this CDDL * HEADER in each file and include the License file at * https://jaxp.dev.java.net/CDDLv1.0.html * If applicable add the following below this CDDL HEADER * with the fields enclosed by brackets "[]" replaced with * your own identifying information: Portions Copyright * [year] [name of copyright owner] *//* * $Id: XMLScanner.java,v 1.6 2006/06/06 06:28:41 sunithareddy Exp $ * @(#)XMLScanner.java	1.18 06/08/10 * * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. *//* * Copyright 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.impl;import com.sun.xml.internal.stream.XMLEntityStorage;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import javax.xml.stream.events.XMLEvent;import com.sun.org.apache.xerces.internal.impl.msg.XMLMessageFormatter;import com.sun.org.apache.xerces.internal.util.SymbolTable;import com.sun.org.apache.xerces.internal.util.XMLChar;import com.sun.org.apache.xerces.internal.util.XMLResourceIdentifierImpl;import com.sun.org.apache.xerces.internal.util.XMLStringBuffer;import com.sun.org.apache.xerces.internal.xni.Augmentations;import com.sun.org.apache.xerces.internal.xni.XMLAttributes;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.parser.XMLComponent;import com.sun.org.apache.xerces.internal.xni.parser.XMLComponentManager;import com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException;import com.sun.xml.internal.stream.Entity;//import com.sun.xml.stream.XMLEntityManager;//import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter;/** * This class is responsible for holding scanning methods common to * scanning the XML document structure and content as well as the DTD * structure and content. Both XMLDocumentScanner and XMLDTDScanner inherit * from this base class. * * <p> * This component requires the following features and properties from the * component manager that uses it: * <ul> *  <li>http://xml.org/sax/features/validation</li> *  <li>http://apache.org/xml/features/scanner/notify-char-refs</li> *  <li>http://apache.org/xml/properties/internal/symbol-table</li> *  <li>http://apache.org/xml/properties/internal/error-reporter</li> *  <li>http://apache.org/xml/properties/internal/entity-manager</li> * </ul> * * @author Andy Clark, IBM * @author Arnaud  Le Hors, IBM * @author Eric Ye, IBM * @author K.Venugopal SUN Microsystems * @author Sunitha Reddy, SUN Microsystems * @version $Id: XMLScanner.java,v 1.6 2006/06/06 06:28:41 sunithareddy Exp $ */public abstract class XMLScanner        implements XMLComponent {        //    // Constants    //        // feature identifiers        /** Feature identifier: namespaces. */    protected static final String NAMESPACES =            Constants.SAX_FEATURE_PREFIX + Constants.NAMESPACES_FEATURE;        /** Feature identifier: validation. */    protected static final String VALIDATION =            Constants.SAX_FEATURE_PREFIX + Constants.VALIDATION_FEATURE;        /** Feature identifier: notify character references. */    protected static final String NOTIFY_CHAR_REFS =            Constants.XERCES_FEATURE_PREFIX + Constants.NOTIFY_CHAR_REFS_FEATURE;        // property identifiers        protected static final String PARSER_SETTINGS = 				Constants.XERCES_FEATURE_PREFIX + Constants.PARSER_SETTINGS;        /** Property identifier: symbol table. */    protected static final String SYMBOL_TABLE =            Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY;        /** Property identifier: error reporter. */    protected static final String ERROR_REPORTER =            Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_REPORTER_PROPERTY;        /** Property identifier: entity manager. */    protected static final String ENTITY_MANAGER =            Constants.XERCES_PROPERTY_PREFIX + Constants.ENTITY_MANAGER_PROPERTY;        // debugging        /** Debug attribute normalization. */    protected static final boolean DEBUG_ATTR_NORMALIZATION = false;            //xxx: setting the default value as false, as we dont need to calculate this value    //we should have a feature when set to true computes this value    private boolean fNeedNonNormalizedValue = false;        protected ArrayList attributeValueCache = new ArrayList();    protected ArrayList stringBufferCache = new ArrayList();    protected int fStringBufferIndex = 0;    protected boolean fAttributeCacheInitDone = false;    protected int fAttributeCacheUsedCount = 0;        //    // Data    //        // features        /**     * Validation. This feature identifier is:     * http://xml.org/sax/features/validation     */    protected boolean fValidation = false;        /** Namespaces. */    protected boolean fNamespaces;        /** Character references notification. */    protected boolean fNotifyCharRefs = false;    /** Internal parser-settings feature */	protected boolean fParserSettings = true;        // properties        protected PropertyManager fPropertyManager = null ;    /** Symbol table. */    protected SymbolTable fSymbolTable;        /** Error reporter. */    protected XMLErrorReporter fErrorReporter;        /** Entity manager. */    //protected XMLEntityManager fEntityManager = PropertyManager.getEntityManager();    protected XMLEntityManager fEntityManager = null ;        /** xxx this should be available from EntityManager Entity storage */    protected XMLEntityStorage fEntityStore = null ;        // protected data        /** event type */    protected XMLEvent fEvent ;        /** Entity scanner, this alwasy works on last entity that was opened. */    protected XMLEntityScanner fEntityScanner = null;        /** Entity depth. */    protected int fEntityDepth;        /** Literal value of the last character refence scanned. */    protected String fCharRefLiteral = null;        /** Scanning attribute. */    protected boolean fScanningAttribute;        /** Report entity boundary. */    protected boolean fReportEntity;        // symbols        /** Symbol: "version". */    protected final static String fVersionSymbol = "version".intern();        /** Symbol: "encoding". */    protected final static String fEncodingSymbol = "encoding".intern();        /** Symbol: "standalone". */    protected final static String fStandaloneSymbol = "standalone".intern();        /** Symbol: "amp". */    protected final static String fAmpSymbol = "amp".intern();        /** Symbol: "lt". */    protected final static String fLtSymbol = "lt".intern();        /** Symbol: "gt". */    protected final static String fGtSymbol = "gt".intern();        /** Symbol: "quot". */    protected final static String fQuotSymbol = "quot".intern();        /** Symbol: "apos". */    protected final static String fAposSymbol = "apos".intern();        // temporary variables        // NOTE: These objects are private to help prevent accidental modification    //       of values by a subclass. If there were protected *and* the sub-    //       modified the values, it would be difficult to track down the real    //       cause of the bug. By making these private, we avoid this    //       possibility.        /** String. */    private XMLString fString = new XMLString();        /** String buffer. */    private XMLStringBuffer fStringBuffer = new XMLStringBuffer();        /** String buffer. */    private XMLStringBuffer fStringBuffer2 = new XMLStringBuffer();        /** String buffer. */    private XMLStringBuffer fStringBuffer3 = new XMLStringBuffer();        // temporary location for Resource identification information.    protected XMLResourceIdentifierImpl fResourceIdentifier = new XMLResourceIdentifierImpl();    int initialCacheCount = 6;    //    // XMLComponent methods    //        /**     *     *     * @param componentManager The component manager.     *     * @throws SAXException Throws exception if required features and     *                      properties cannot be found.     */    public void reset(XMLComponentManager componentManager)    throws XMLConfigurationException {        		try {			fParserSettings = componentManager.getFeature(PARSER_SETTINGS);		} catch (XMLConfigurationException e) {			fParserSettings = true;		}		if (!fParserSettings) {			// parser settings have not been changed			init();			return;		}                // Xerces properties        fSymbolTable = (SymbolTable)componentManager.getProperty(SYMBOL_TABLE);        fErrorReporter = (XMLErrorReporter)componentManager.getProperty(ERROR_REPORTER);        fEntityManager = (XMLEntityManager)componentManager.getProperty(ENTITY_MANAGER);                //this step is extra because we have separated the storage of entity        fEntityStore = fEntityManager.getEntityStore() ;                // sax features        try {            fValidation = componentManager.getFeature(VALIDATION);        } catch (XMLConfigurationException e) {            fValidation = false;        }        try {            fNamespaces = componentManager.getFeature(NAMESPACES);        }        catch (XMLConfigurationException e) {            fNamespaces = true;        }        try {            fNotifyCharRefs = componentManager.getFeature(NOTIFY_CHAR_REFS);        } catch (XMLConfigurationException e) {            fNotifyCharRefs = false;        }                init();    } // reset(XMLComponentManager)        protected void setPropertyManager(PropertyManager propertyManager){        fPropertyManager = propertyManager ;    }            /**     * Sets the value of a property during parsing.     *     * @param propertyId     * @param value     */    public void setProperty(String propertyId, Object value)    throws XMLConfigurationException {                // Xerces properties        if (propertyId.startsWith(Constants.XERCES_PROPERTY_PREFIX)) {            String property =                    propertyId.substring(Constants.XERCES_PROPERTY_PREFIX.length());            if (property.equals(Constants.SYMBOL_TABLE_PROPERTY)) {                fSymbolTable = (SymbolTable)value;            } else if (property.equals(Constants.ERROR_REPORTER_PROPERTY)) {                fErrorReporter = (XMLErrorReporter)value;            } else if (property.equals(Constants.ENTITY_MANAGER_PROPERTY)) {                fEntityManager = (XMLEntityManager)value;            }        }                /*else if(propertyId.equals(Constants.STAX_PROPERTIES)){            fStaxProperties = (HashMap)value;            //TODO::discuss with neeraj what are his thoughts on passing properties.            //For now use this        }*/            } // setProperty(String,Object)        /*     * Sets the feature of the scanner.     */    public void setFeature(String featureId, boolean value)    throws XMLConfigurationException {                if (VALIDATION.equals(featureId)) {            fValidation = value;        } else if (NOTIFY_CHAR_REFS.equals(featureId)) {            fNotifyCharRefs = value;        }    }        /*     * Gets the state of the feature of the scanner.     */    public boolean getFeature(String featureId)    throws XMLConfigurationException {                if (VALIDATION.equals(featureId)) {            return fValidation;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -