xml11configuration.java

来自「JAVA的一些源码 JAVA2 STANDARD EDITION DEVELO」· Java 代码 · 共 1,528 行 · 第 1/5 页

JAVA
1,528
字号
            } // setFeature(String,boolean)        /**     * setProperty     *     * @param propertyId     * @param value     */    public void setProperty(String propertyId, Object value)    throws XMLConfigurationException {        fConfigUpdated = true;        // forward to every XML 1.0 component        int count = fComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fComponents.get(i);            c.setProperty(propertyId, value);        }        // forward it to every common Component        count = fCommonComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fCommonComponents.get(i);            c.setProperty(propertyId, value);        }        // forward it to every XML 1.1 component        count = fXML11Components.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fXML11Components.get(i);            try{                c.setProperty(propertyId, value);            }            catch (Exception e){                // ignore it            }        }                // store value if noone "objects"        super.setProperty(propertyId, value);            } // setProperty(String,Object)            /** Returns the locale. */    public Locale getLocale() {        return fLocale;    } // getLocale():Locale        /**     * reset all XML 1.0 components before parsing and namespace context     */    protected void reset() throws XNIException {        int count = fComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fComponents.get(i);            c.reset(this);        }            } // reset()        /**     * reset all common components before parsing     */    protected void resetCommon() throws XNIException {        // reset common components        int count = fCommonComponents.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fCommonComponents.get(i);            c.reset(this);        }            } // resetCommon()            /**     * reset all components before parsing and namespace context     */    protected void resetXML11() throws XNIException {        // reset every component        int count = fXML11Components.size();        for (int i = 0; i < count; i++) {            XMLComponent c = (XMLComponent) fXML11Components.get(i);            c.reset(this);        }            } // resetXML11()            /**     *  Configures the XML 1.1 pipeline.     *  Note: this method also resets the new XML11 components.     */    protected void configureXML11Pipeline() {        if (fCurrentDVFactory != fXML11DatatypeFactory) {            fCurrentDVFactory = fXML11DatatypeFactory;            setProperty(DATATYPE_VALIDATOR_FACTORY, fCurrentDVFactory);        }        if (fCurrentDTDScanner != fXML11DTDScanner) {            fCurrentDTDScanner = fXML11DTDScanner;            setProperty(DTD_SCANNER, fCurrentDTDScanner);            setProperty(DTD_PROCESSOR, fXML11DTDProcessor);        }                fXML11DTDScanner.setDTDHandler(fXML11DTDProcessor);        fXML11DTDProcessor.setDTDSource(fXML11DTDScanner);        fXML11DTDProcessor.setDTDHandler(fDTDHandler);        if (fDTDHandler != null) {            fDTDHandler.setDTDSource(fXML11DTDProcessor);        }                fXML11DTDScanner.setDTDContentModelHandler(fXML11DTDProcessor);        fXML11DTDProcessor.setDTDContentModelSource(fXML11DTDScanner);        fXML11DTDProcessor.setDTDContentModelHandler(fDTDContentModelHandler);        if (fDTDContentModelHandler != null) {            fDTDContentModelHandler.setDTDContentModelSource(fXML11DTDProcessor);        }                // setup XML 1.1 document pipeline        if (fFeatures.get(NAMESPACES) == Boolean.TRUE) {            if (fCurrentScanner != fXML11NSDocScanner) {                fCurrentScanner = fXML11NSDocScanner;                setProperty(DOCUMENT_SCANNER, fXML11NSDocScanner);                setProperty(DTD_VALIDATOR, fXML11NSDTDValidator);            }                        fXML11NSDocScanner.setDTDValidator(fXML11NSDTDValidator);            fXML11NSDocScanner.setDocumentHandler(fXML11NSDTDValidator);            fXML11NSDTDValidator.setDocumentSource(fXML11NSDocScanner);            fXML11NSDTDValidator.setDocumentHandler(fDocumentHandler);                        if (fDocumentHandler != null) {                fDocumentHandler.setDocumentSource(fXML11NSDTDValidator);            }            fLastComponent = fXML11NSDTDValidator;                    } else {            // create components            if (fXML11DocScanner == null) {                // non namespace document pipeline                fXML11DocScanner = new XML11DocumentScannerImpl();                addXML11Component(fXML11DocScanner);                fXML11DTDValidator = new XML11DTDValidator();                addXML11Component(fXML11DTDValidator);            }            if (fCurrentScanner != fXML11DocScanner) {                fCurrentScanner = fXML11DocScanner;                setProperty(DOCUMENT_SCANNER, fXML11DocScanner);                setProperty(DTD_VALIDATOR, fXML11DTDValidator);            }            fXML11DocScanner.setDocumentHandler(fXML11DTDValidator);            fXML11DTDValidator.setDocumentSource(fXML11DocScanner);            fXML11DTDValidator.setDocumentHandler(fDocumentHandler);                        if (fDocumentHandler != null) {                fDocumentHandler.setDocumentSource(fXML11DTDValidator);            }            fLastComponent = fXML11DTDValidator;        }                // setup document pipeline        if (fFeatures.get(XMLSCHEMA_VALIDATION) == Boolean.TRUE) {            // If schema validator was not in the pipeline insert it.            if (fSchemaValidator == null) {                fSchemaValidator = new XMLSchemaValidator();                // add schema component                setProperty(SCHEMA_VALIDATOR, fSchemaValidator);                addCommonComponent(fSchemaValidator);                fSchemaValidator.reset(this);                // add schema message formatter                if (fErrorReporter.getMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN) == null) {                    XSMessageFormatter xmft = new XSMessageFormatter();                    fErrorReporter.putMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN, xmft);                }            }                        fLastComponent.setDocumentHandler(fSchemaValidator);            fSchemaValidator.setDocumentSource(fLastComponent);            fSchemaValidator.setDocumentHandler(fDocumentHandler);            if (fDocumentHandler != null) {                fDocumentHandler.setDocumentSource(fSchemaValidator);            }            fLastComponent = fSchemaValidator;        }            } // configureXML11Pipeline()        /** Configures the pipeline. */    protected void configurePipeline() {        if (fCurrentDVFactory != fDatatypeValidatorFactory) {            fCurrentDVFactory = fDatatypeValidatorFactory;            // use XML 1.0 datatype library            setProperty(DATATYPE_VALIDATOR_FACTORY, fCurrentDVFactory);        }                // setup DTD pipeline        if (fCurrentDTDScanner != fDTDScanner) {            fCurrentDTDScanner = fDTDScanner;            setProperty(DTD_SCANNER, fCurrentDTDScanner);            setProperty(DTD_PROCESSOR, fDTDProcessor);        }        fDTDScanner.setDTDHandler(fDTDProcessor);        fDTDProcessor.setDTDSource(fDTDScanner);        fDTDProcessor.setDTDHandler(fDTDHandler);        if (fDTDHandler != null) {            fDTDHandler.setDTDSource(fDTDProcessor);        }                fDTDScanner.setDTDContentModelHandler(fDTDProcessor);        fDTDProcessor.setDTDContentModelSource(fDTDScanner);        fDTDProcessor.setDTDContentModelHandler(fDTDContentModelHandler);        if (fDTDContentModelHandler != null) {            fDTDContentModelHandler.setDTDContentModelSource(fDTDProcessor);        }                // setup document pipeline        if (fFeatures.get(NAMESPACES) == Boolean.TRUE) {            if (fCurrentScanner != fNamespaceScanner) {                fCurrentScanner = fNamespaceScanner;                setProperty(DOCUMENT_SCANNER, fNamespaceScanner);                setProperty(DTD_VALIDATOR, fDTDValidator);            }            fNamespaceScanner.setDTDValidator(fDTDValidator);            fNamespaceScanner.setDocumentHandler(fDTDValidator);            fDTDValidator.setDocumentSource(fNamespaceScanner);            fDTDValidator.setDocumentHandler(fDocumentHandler);            if (fDocumentHandler != null) {                fDocumentHandler.setDocumentSource(fDTDValidator);            }            fLastComponent = fDTDValidator;        } else {            // create components            if (fNonNSScanner == null) {                fNonNSScanner = new XMLDocumentScannerImpl();                fNonNSDTDValidator = new XMLDTDValidator();                // add components                addComponent((XMLComponent) fNonNSScanner);                addComponent((XMLComponent) fNonNSDTDValidator);            }            if (fCurrentScanner != fNonNSScanner) {                fCurrentScanner = fNonNSScanner;                setProperty(DOCUMENT_SCANNER, fNonNSScanner);                setProperty(DTD_VALIDATOR, fNonNSDTDValidator);            }                        fNonNSScanner.setDocumentHandler(fNonNSDTDValidator);            fNonNSDTDValidator.setDocumentSource(fNonNSScanner);            fNonNSDTDValidator.setDocumentHandler(fDocumentHandler);            if (fDocumentHandler != null) {                fDocumentHandler.setDocumentSource(fNonNSDTDValidator);            }            fLastComponent = fNonNSDTDValidator;        }                // add XML Schema validator if needed        if (fFeatures.get(XMLSCHEMA_VALIDATION) == Boolean.TRUE) {            // If schema validator was not in the pipeline insert it.            if (fSchemaValidator == null) {                fSchemaValidator = new XMLSchemaValidator();                // add schema component                setProperty(SCHEMA_VALIDATOR, fSchemaValidator);                addCommonComponent(fSchemaValidator);                fSchemaValidator.reset(this);                // add schema message formatter                if (fErrorReporter.getMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN) == null) {                    XSMessageFormatter xmft = new XSMessageFormatter();                    fErrorReporter.putMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN, xmft);                }                            }            fLastComponent.setDocumentHandler(fSchemaValidator);            fSchemaValidator.setDocumentSource(fLastComponent);            fSchemaValidator.setDocumentHandler(fDocumentHandler);            if (fDocumentHandler != null) {                fDocumentHandler.setDocumentSource(fSchemaValidator);            }            fLastComponent = fSchemaValidator;        }    } // configurePipeline()            // features and properties        /**     * 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();                        //            // http://apache.org/xml/features/validation/dynamic            //   Allows the parser to validate a document only when it            //   contains a grammar. Validation is turned on/off based

⌨️ 快捷键说明

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