basicparserconfiguration.java

来自「JAVA 所有包」· Java 代码 · 共 587 行 · 第 1/2 页

JAVA
587
字号
     * (a character stream, a byte stream, or a URI).     * <p>     * Parsers may not invoke this method while a parse is in progress.     * Once a parse is complete, the parser may then parse another XML     * document.     * <p>     * This method is synchronous: it will not return until parsing     * has ended.  If a client application wants to terminate      * parsing early, it should throw an exception.     *     * @param inputSource The input source for the top-level of the     *               XML document.     *     * @exception XNIException Any XNI exception, possibly wrapping      *                         another exception.     * @exception IOException  An IO exception from the parser, possibly     *                         from a byte stream or character stream     *                         supplied by the parser.     */    public abstract void parse(XMLInputSource inputSource)         throws XNIException, IOException;    /**     * Sets the document handler on the last component in the pipeline     * to receive information about the document.     *      * @param documentHandler   The document handler.     */    public void setDocumentHandler(XMLDocumentHandler documentHandler) {        fDocumentHandler = documentHandler;        if (fLastComponent != null) {            fLastComponent.setDocumentHandler(fDocumentHandler);            if (fDocumentHandler !=null){                fDocumentHandler.setDocumentSource(fLastComponent);            }        }    } // setDocumentHandler(XMLDocumentHandler)    /** Returns the registered document handler. */    public XMLDocumentHandler getDocumentHandler() {        return fDocumentHandler;    } // getDocumentHandler():XMLDocumentHandler    /**     * Sets the DTD handler.     *      * @param dtdHandler The DTD handler.     */    public void setDTDHandler(XMLDTDHandler dtdHandler) {        fDTDHandler = dtdHandler;    } // setDTDHandler(XMLDTDHandler)    /** Returns the registered DTD handler. */    public XMLDTDHandler getDTDHandler() {        return fDTDHandler;    } // getDTDHandler():XMLDTDHandler    /**     * Sets the DTD content model handler.     *      * @param handler The DTD content model handler.     */    public void setDTDContentModelHandler(XMLDTDContentModelHandler handler) {        fDTDContentModelHandler = handler;    } // setDTDContentModelHandler(XMLDTDContentModelHandler)    /** Returns the registered DTD content model handler. */    public XMLDTDContentModelHandler getDTDContentModelHandler() {        return fDTDContentModelHandler;    } // getDTDContentModelHandler():XMLDTDContentModelHandler    /**     * Sets the resolver used to resolve external entities. The EntityResolver     * interface supports resolution of public and system identifiers.     *     * @param resolver The new entity resolver. Passing a null value will     *                 uninstall the currently installed resolver.     */    public void setEntityResolver(XMLEntityResolver resolver) {        // REVISIT: Should this be a property?        fProperties.put(ENTITY_RESOLVER, resolver);    } // setEntityResolver(XMLEntityResolver)    /**     * Return the current entity resolver.     *     * @return The current entity resolver, or null if none     *         has been registered.     * @see #setEntityResolver     */    public XMLEntityResolver getEntityResolver() {        // REVISIT: Should this be a property?        return (XMLEntityResolver)fProperties.get(ENTITY_RESOLVER);    } // getEntityResolver():XMLEntityResolver    /**     * Allow an application to register an error event handler.     *     * <p>If the application does not register an error handler, all     * error events reported by the SAX parser will be silently     * ignored; however, normal processing may not continue.  It is     * highly recommended that all SAX applications implement an     * error handler to avoid unexpected bugs.</p>     *     * <p>Applications may register a new or different handler in the     * middle of a parse, and the SAX parser must begin using the new     * handler immediately.</p>     *     * @param errorHandler The error handler.     * @exception java.lang.NullPointerException If the handler      *            argument is null.     * @see #getErrorHandler     */    public void setErrorHandler(XMLErrorHandler errorHandler) {        // REVISIT: Should this be a property?        fProperties.put(ERROR_HANDLER, errorHandler);    } // setErrorHandler(XMLErrorHandler)    /**     * Return the current error handler.     *     * @return The current error handler, or null if none     *         has been registered.     * @see #setErrorHandler     */    public XMLErrorHandler getErrorHandler() {        // REVISIT: Should this be a property?        return (XMLErrorHandler)fProperties.get(ERROR_HANDLER);    } // getErrorHandler():XMLErrorHandler    /**     * Set the state of a feature.     *     * Set the state of any feature in a SAX2 parser.  The parser     * might not recognize the feature, and if it does recognize     * it, it might not be able to fulfill the request.     *     * @param featureId The unique identifier (URI) of the feature.     * @param state The requested state of the feature (true or false).     *     * @exception com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException If the     *            requested feature is not known.     */    public void setFeature(String featureId, boolean state)        throws XMLConfigurationException {        // forward to every component        int count = fComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fComponents.get(i);            c.setFeature(featureId, state);        }        // save state if noone "objects"        super.setFeature(featureId, state);    } // setFeature(String,boolean)    /**     * setProperty     *      * @param propertyId      * @param value      */    public void setProperty(String propertyId, Object value)        throws XMLConfigurationException {        // forward to every component        int count = fComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fComponents.get(i);            c.setProperty(propertyId, value);        }        // store value if noone "objects"        super.setProperty(propertyId, value);    } // setProperty(String,Object)    /**     * Set the locale to use for messages.     *     * @param locale The locale object to use for localization of messages.     *     * @exception XNIException Thrown if the parser does not support the     *                         specified locale.     */    public void setLocale(Locale locale) throws XNIException {        fLocale = locale;    } // setLocale(Locale)    /** Returns the locale. */    public Locale getLocale() {        return fLocale;    } // getLocale():Locale    //    // Protected methods    //    /**     * reset all components before parsing and namespace context     */    protected void reset() throws XNIException {        // reset every component        int count = fComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fComponents.get(i);            c.reset(this);        }    } // reset()    /**     * Check a property. If the property is known and supported, this method     * simply returns. Otherwise, the appropriate exception is thrown.     *     * @param propertyId The unique identifier (URI) of the property     *                   being set.     * @exception com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException If the     *            requested feature is not known or supported.     */    protected void checkProperty(String propertyId)        throws XMLConfigurationException {        // special cases        if (propertyId.startsWith(Constants.SAX_PROPERTY_PREFIX)) {            final int suffixLength = propertyId.length() - Constants.SAX_PROPERTY_PREFIX.length();	        	            //            // http://xml.org/sax/properties/xml-string            // Value type: String            // Access: read-only            //   Get the literal string of characters associated with the            //   current event.  If the parser recognises and supports this            //   property but is not currently parsing text, it should return            //   null (this is a good way to check for availability before the            //   parse begins).            //            if (suffixLength == Constants.XML_STRING_PROPERTY.length() &&                 propertyId.endsWith(Constants.XML_STRING_PROPERTY)) {                // REVISIT - we should probably ask xml-dev for a precise                // definition of what this is actually supposed to return, and                // in exactly which circumstances.                short type = XMLConfigurationException.NOT_SUPPORTED;                throw new XMLConfigurationException(type, propertyId);            }        }        // check property        super.checkProperty(propertyId);    } // checkProperty(String)            /**     * Check a feature. If feature is know and supported, this method simply     * returns. Otherwise, the appropriate exception is thrown.     *     * @param featureId The unique identifier (URI) of the feature.     *     * @throws XMLConfigurationException Thrown for configuration error.     *                                   In general, components should     *                                   only throw this exception if     *                                   it is <strong>really</strong>     *                                   a critical error.     */    protected void checkFeature(String featureId)        throws XMLConfigurationException {        //        // Xerces Features        //        if (featureId.startsWith(Constants.XERCES_FEATURE_PREFIX)) {            final int suffixLength = featureId.length() - Constants.XERCES_FEATURE_PREFIX.length();            //            // special performance feature: no one by component manager is allowed to set it            //            if (suffixLength == Constants.PARSER_SETTINGS.length() &&                 featureId.endsWith(Constants.PARSER_SETTINGS)) {                short type = XMLConfigurationException.NOT_SUPPORTED;                throw new XMLConfigurationException(type, featureId);            }        }        super.checkFeature(featureId);     } // checkFeature(String)} // class BasicParserConfiguration

⌨️ 快捷键说明

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