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

📄 xmldocumentscannerimpl.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        fLoadExternalDTD = true ;        setScannerState(XMLEvent.START_DOCUMENT);        setDriver(fXMLDeclDriver);        fSeenInternalSubset = false;        if(fDTDScanner != null){            ((XMLDTDScannerImpl)fDTDScanner).reset(propertyManager);        }        fEndPos = 0;        fStartPos = 0;        if(fDTDDecl != null){            fDTDDecl.clear();        }                    }        /**     * Resets the component. The component can query the component manager     * about any features and properties that affect the operation of the     * component.     *     * @param componentManager The component manager.     *     * @throws SAXException Thrown by component on initialization error.     *                      For example, if a feature or property is     *                      required for the operation of the component, the     *                      component manager may throw a     *                      SAXNotRecognizedException or a     *                      SAXNotSupportedException.     */    public void reset(XMLComponentManager componentManager)    throws XMLConfigurationException {                super.reset(componentManager);                // other settings        fDoctypeName = null;        fDoctypePublicId = null;        fDoctypeSystemId = null;        fSeenDoctypeDecl = false;        fExternalSubsetSource = null;                // xerces features        try {            fLoadExternalDTD = componentManager.getFeature(LOAD_EXTERNAL_DTD);        } catch (XMLConfigurationException e) {            fLoadExternalDTD = true;        }                try {            fDisallowDoctype = componentManager.getFeature(DISALLOW_DOCTYPE_DECL_FEATURE);        } catch (XMLConfigurationException e) {            fDisallowDoctype = false;        }                try {            fNamespaces = componentManager.getFeature(NAMESPACES);        } catch (XMLConfigurationException e) {            fNamespaces = true;        }                fSeenInternalSubset = false;        // xerces properties        fDTDScanner = (XMLDTDScanner)componentManager.getProperty(DTD_SCANNER);                        try {            fValidationManager = (ValidationManager)componentManager.getProperty(VALIDATION_MANAGER);        }        catch (XMLConfigurationException e) {            fValidationManager = null;        }        try {            fNamespaceContext = (NamespaceContext)componentManager.getProperty(NAMESPACE_CONTEXT);        }        catch (XMLConfigurationException e) { }        if (fNamespaceContext == null) {            fNamespaceContext = new NamespaceSupport();        }        fNamespaceContext.reset();                fEndPos = 0;        fStartPos = 0;        if(fDTDDecl != null)            fDTDDecl.clear();                    //fEntityScanner.registerListener((XMLBufferListener)componentManager.getProperty(DOCUMENT_SCANNER));                // setup driver        setScannerState(SCANNER_STATE_XML_DECL);        setDriver(fXMLDeclDriver);            } // reset(XMLComponentManager)            /**     * Returns a list of feature identifiers that are recognized by     * this component. This method may return null if no features     * are recognized by this component.     */    public String[] getRecognizedFeatures() {        String[] featureIds = super.getRecognizedFeatures();        int length = featureIds != null ? featureIds.length : 0;        String[] combinedFeatureIds = new String[length + RECOGNIZED_FEATURES.length];        if (featureIds != null) {            System.arraycopy(featureIds, 0, combinedFeatureIds, 0, featureIds.length);        }        System.arraycopy(RECOGNIZED_FEATURES, 0, combinedFeatureIds, length, RECOGNIZED_FEATURES.length);        return combinedFeatureIds;    } // getRecognizedFeatures():String[]        /**     * Sets the state of a feature. This method is called by the component     * manager any time after reset when a feature changes state.     * <p>     * <strong>Note:</strong> Components should silently ignore features     * that do not affect the operation of the component.     *     * @param featureId The feature identifier.     * @param state     The state of the feature.     *     * @throws SAXNotRecognizedException The component should not throw     *                                   this exception.     * @throws SAXNotSupportedException The component should not throw     *                                  this exception.     */    public void setFeature(String featureId, boolean state)    throws XMLConfigurationException {                super.setFeature(featureId, state);                // Xerces properties        if (featureId.startsWith(Constants.XERCES_FEATURE_PREFIX)) {            final int suffixLength = featureId.length() - Constants.XERCES_FEATURE_PREFIX.length();        	            if (suffixLength == Constants.LOAD_EXTERNAL_DTD_FEATURE.length() &&                 featureId.endsWith(Constants.LOAD_EXTERNAL_DTD_FEATURE)) {                fLoadExternalDTD = state;                return;            }            else if (suffixLength == Constants.DISALLOW_DOCTYPE_DECL_FEATURE.length() &&                 featureId.endsWith(Constants.DISALLOW_DOCTYPE_DECL_FEATURE)) {                fDisallowDoctype = state;                return;            }        }                    } // setFeature(String,boolean)        /**     * Returns a list of property identifiers that are recognized by     * this component. This method may return null if no properties     * are recognized by this component.     */    public String[] getRecognizedProperties() {        String[] propertyIds = super.getRecognizedProperties();        int length = propertyIds != null ? propertyIds.length : 0;        String[] combinedPropertyIds = new String[length + RECOGNIZED_PROPERTIES.length];        if (propertyIds != null) {            System.arraycopy(propertyIds, 0, combinedPropertyIds, 0, propertyIds.length);        }        System.arraycopy(RECOGNIZED_PROPERTIES, 0, combinedPropertyIds, length, RECOGNIZED_PROPERTIES.length);        return combinedPropertyIds;    } // getRecognizedProperties():String[]        /**     * Sets the value of a property. This method is called by the component     * manager any time after reset when a property changes value.     * <p>     * <strong>Note:</strong> Components should silently ignore properties     * that do not affect the operation of the component.     *     * @param propertyId The property identifier.     * @param value      The value of the property.     *     * @throws SAXNotRecognizedException The component should not throw     *                                   this exception.     * @throws SAXNotSupportedException The component should not throw     *                                  this exception.     */    public void setProperty(String propertyId, Object value)    throws XMLConfigurationException {                super.setProperty(propertyId, value);                // Xerces properties        if (propertyId.startsWith(Constants.XERCES_PROPERTY_PREFIX)) {            final int suffixLength = propertyId.length() - Constants.XERCES_PROPERTY_PREFIX.length();                        if (suffixLength == Constants.DTD_SCANNER_PROPERTY.length() &&                 propertyId.endsWith(Constants.DTD_SCANNER_PROPERTY)) {                fDTDScanner = (XMLDTDScanner)value;            }            if (suffixLength == Constants.NAMESPACE_CONTEXT_PROPERTY.length() &&                 propertyId.endsWith(Constants.NAMESPACE_CONTEXT_PROPERTY)) {                if (value != null) {                    fNamespaceContext = (NamespaceContext)value;                }            }            return;        }                    } // setProperty(String,Object)        /**     * Returns the default state for a feature, or null if this     * component does not want to report a default value for this     * feature.     *     * @param featureId The feature identifier.     *     * @since Xerces 2.2.0     */    public Boolean getFeatureDefault(String featureId) {                for (int i = 0; i < RECOGNIZED_FEATURES.length; i++) {            if (RECOGNIZED_FEATURES[i].equals(featureId)) {                return FEATURE_DEFAULTS[i];            }        }        return super.getFeatureDefault(featureId);    } // getFeatureDefault(String):Boolean        /**     * Returns the default state for a property, or null if this     * component does not want to report a default value for this     * property.     *     * @param propertyId The property identifier.     *     * @since Xerces 2.2.0     */    public Object getPropertyDefault(String propertyId) {        for (int i = 0; i < RECOGNIZED_PROPERTIES.length; i++) {            if (RECOGNIZED_PROPERTIES[i].equals(propertyId)) {                return PROPERTY_DEFAULTS[i];            }        }        return super.getPropertyDefault(propertyId);    } // getPropertyDefault(String):Object        //    // XMLEntityHandler methods    //        /**     * This method notifies of the start of an entity. The DTD has the     * pseudo-name of "[dtd]" parameter entity names start with '%'; and     * general entities are just specified by their name.     *     * @param name     The name of the entity.     * @param identifier The resource identifier.     * @param encoding The auto-detected IANA encoding name of the entity     *                 stream. This value will be null in those situations     *                 where the entity encoding is not auto-detected (e.g.     *                 internal entities or a document entity that is     *                 parsed from a java.io.Reader).     *     * @throws XNIException Thrown by handler to signal an error.     */    public void startEntity(String name,            XMLResourceIdentifier identifier,            String encoding, Augmentations augs) throws XNIException {                super.startEntity(name, identifier, encoding,augs);                //register current document scanner as a listener for XMLEntityScanner        fEntityScanner.registerListener(this);                // prepare to look for a TextDecl if external general entity        if (!name.equals("[xml]") && fEntityScanner.isExternal()) {            // Don't do this if we're skipping the entity!            if (augs == null || !((Boolean) augs.getItem(Constants.ENTITY_SKIPPED)).booleanValue()) {                setScannerState(SCANNER_STATE_TEXT_DECL);            }        }                // call handler        /** comment this part.. LOCATOR problem.. */        if (fDocumentHandler != null && name.equals("[xml]")) {            fDocumentHandler.startDocument(fEntityScanner, encoding, fNamespaceContext, null);        }            } // startEntity(String,identifier,String)            /**     * This method notifies the end of an entity. The DTD has the pseudo-name     * of "[dtd]" parameter entity names start with '%'; and general entities     * are just specified by their name.     *     * @param name The name of the entity.     *     * @throws XNIException Thrown by handler to signal an error.     */    public void endEntity(String name, Augmentations augs) throws IOException, XNIException {                super.endEntity(name, augs);                if(name.equals("[xml]")){            //if fMarkupDepth has reached 0.            //and driver is fTrailingMiscDriver (which            //handles end of document in normal case)            //set the scanner state of SCANNER_STATE_TERMINATED            if(fMarkupDepth == 0 && fDriver == fTrailingMiscDriver){

⌨️ 快捷键说明

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