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

📄 xmldocumentfragmentscannerimpl.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    protected XMLString fTempString2 = new XMLString();        /** Array of 3 strings. */    private String[] fStrings = new String[3];        /** Making the buffer accesible to derived class -- String buffer. */    protected XMLStringBuffer fStringBuffer = new XMLStringBuffer();        /** Making the buffer accesible to derived class -- String buffer. */    protected XMLStringBuffer fStringBuffer2 = new XMLStringBuffer();        /** stores character data. */    /** Making the buffer accesible to derived class -- stores PI data */    protected XMLStringBuffer fContentBuffer = new XMLStringBuffer();        /** Single character array. */    private final char[] fSingleChar = new char[1];    private String fCurrentEntityName = null;        // New members    protected boolean fScanToEnd = false;        protected DTDGrammarUtil dtdGrammarUtil= null;        protected boolean fAddDefaultAttr = false;        protected boolean foundBuiltInRefs = false;        protected SecurityManager fSecurityManager = null;        //skip element algorithm    static final short MAX_DEPTH_LIMIT = 5 ;    static final short ELEMENT_ARRAY_LENGTH = 200 ;    static final short MAX_POINTER_AT_A_DEPTH = 4 ;    static final boolean DEBUG_SKIP_ALGORITHM = false;    //create a elemnet array of length equal to ELEMENT_ARRAY_LENGTH    String [] fElementArray = new String[ELEMENT_ARRAY_LENGTH] ;    //pointer location where last element was skipped    short fLastPointerLocation = 0 ;    short fElementPointer = 0 ;    //2D array to store pointer info    short [] [] fPointerInfo = new short[MAX_DEPTH_LIMIT] [MAX_POINTER_AT_A_DEPTH] ;    protected String fElementRawname ;    protected boolean fShouldSkip = false;    protected boolean fAdd = false ;    protected boolean fSkip = false;        /** Reusable Augmentations. */    private Augmentations fTempAugmentations = null;    //    // Constructors    //        /** Default constructor. */    public XMLDocumentFragmentScannerImpl() {    } // <init>()        //    // XMLDocumentScanner methods    //        /**     * Sets the input source.     *     * @param inputSource The input source.     *     * @throws IOException Thrown on i/o error.     */    public void setInputSource(XMLInputSource inputSource) throws IOException {        fEntityManager.setEntityHandler(this);        fEntityManager.startEntity("$fragment$", inputSource, false, true);        // fDocumentSystemId = fEntityManager.expandSystemId(inputSource.getSystemId());    } // setInputSource(XMLInputSource)        /**     * Scans a document.     *     * @param complete True if the scanner should scan the document     *                 completely, pushing all events to the registered     *                 document handler. A value of false indicates that     *                 that the scanner should only scan the next portion     *                 of the document and return. A scanner instance is     *                 permitted to completely scan a document if it does     *                 not support this "pull" scanning model.     *     * @return True if there is more to scan, false otherwise.     */   /* public boolean scanDocument(boolean complete)    throws IOException, XNIException {            // keep dispatching "events"        fEntityManager.setEntityHandler(this);            return true;        } // scanDocument(boolean):boolean    */        public boolean scanDocument(boolean complete)    throws IOException, XNIException {                // keep dispatching "events"        fEntityManager.setEntityHandler(this);        //System.out.println(" get Document Handler in NSDocumentHandler " + fDocumentHandler );                int event = next();        do {            switch (event) {                case XMLStreamConstants.START_DOCUMENT :                    //fDocumentHandler.startDocument(fEntityManager.getEntityScanner(),fEntityManager.getEntityScanner().getVersion(),fNamespaceContext,null);// not able to get                    break;                case XMLStreamConstants.START_ELEMENT :                    //System.out.println(" in scann element");                    //fDocumentHandler.startElement(getElementQName(),fAttributes,null);                    break;                case XMLStreamConstants.CHARACTERS :                    fDocumentHandler.characters(getCharacterData(),null);                    break;                case XMLStreamConstants.SPACE:                    //check if getCharacterData() is the right function to retrieve ignorableWhitespace information.                    //System.out.println("in the space");                    //fDocumentHandler.ignorableWhitespace(getCharacterData(), null);                    break;                case XMLStreamConstants.ENTITY_REFERENCE :                    //entity reference callback are given in startEntity                    break;                case XMLStreamConstants.PROCESSING_INSTRUCTION :                    fDocumentHandler.processingInstruction(getPITarget(),getPIData(),null);                    break;                case XMLStreamConstants.COMMENT :                    //System.out.println(" in COMMENT of the XMLNSDocumentScannerImpl");                    fDocumentHandler.comment(getCharacterData(),null);                    break;                case XMLStreamConstants.DTD :                    //all DTD related callbacks are handled in DTDScanner.                    //1. Stax doesn't define DTD states as it does for XML Document.                    //therefore we don't need to take care of anything here. So Just break;                    break;                case XMLStreamConstants.CDATA:                    fDocumentHandler.startCDATA(null);                    //xxx: check if CDATA values comes from getCharacterData() function                    fDocumentHandler.characters(getCharacterData(),null);                    fDocumentHandler.endCDATA(null);                    //System.out.println(" in CDATA of the XMLNSDocumentScannerImpl");                    break;                case XMLStreamConstants.NOTATION_DECLARATION :                    break;                case XMLStreamConstants.ENTITY_DECLARATION :                    break;                case XMLStreamConstants.NAMESPACE :                    break;                case XMLStreamConstants.ATTRIBUTE :                    break;                case XMLStreamConstants.END_ELEMENT :                    //do not give callback here.                     //this callback is given in scanEndElement function.                    //fDocumentHandler.endElement(getElementQName(),null);                    break;                default :                    throw new InternalError("processing event: " + event);                                }            //System.out.println("here in before calling next");            event = next();            //System.out.println("here in after calling next");        } while (event!=XMLStreamConstants.END_DOCUMENT && complete);                if(event == XMLStreamConstants.END_DOCUMENT) {                        fDocumentHandler.endDocument(null);            return false;        }                return true;            } // scanDocument(boolean):boolean                public com.sun.org.apache.xerces.internal.xni.QName getElementQName(){        if(fScannerLastState == XMLEvent.END_ELEMENT){            fElementQName.setValues(fElementStack.getLastPoppedElement());        }        return fElementQName ;    }        /** return the next state on the input     * @return int     */        public int next() throws IOException, XNIException {        return fDriver.next();    }        //    // XMLComponent methods    //        /**     * 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        // fDocumentSystemId = null;                        // sax features        //fAttributes.setNamespaces(fNamespaces);                        // xerces features        try{            fReportCdataEvent = componentManager.getFeature(Constants.STAX_REPORT_CDATA_EVENT);        } catch (XMLConfigurationException e) {            e.printStackTrace();            //note that default value of this feature is true in stax configuration            fReportCdataEvent = true;        }                try {            fSecurityManager = (SecurityManager)componentManager.getProperty(Constants.SECURITY_MANAGER);        } catch (XMLConfigurationException e) {            fSecurityManager = null;        }        fElementAttributeLimit = (fSecurityManager != null)?fSecurityManager.getElementAttrLimit():0;                try {            fNotifyBuiltInRefs = componentManager.getFeature(NOTIFY_BUILTIN_REFS);        } catch (XMLConfigurationException e) {            fNotifyBuiltInRefs = false;        }                try {            Object resolver = componentManager.getProperty(ENTITY_RESOLVER);            fExternalSubsetResolver = (resolver instanceof ExternalSubsetResolver) ?                (ExternalSubsetResolver) resolver : null;        } catch (XMLConfigurationException e) {            fExternalSubsetResolver = null;        }                                // initialize vars        fMarkupDepth = 0;        fCurrentElement = null;        fElementStack.clear();        fHasExternalDTD = false;        fStandalone = false;        fInScanContent = false;        //skipping algorithm        fShouldSkip = false;        fAdd = false;        fSkip = false;                //attribute        fReadingAttributes = false;        //xxx: external entities are supported in Xerces        // it would be good to define feature for this case        fSupportExternalEntities = true;        fReplaceEntityReferences = true;        fIsCoalesce = false;                // setup Driver        setScannerState(SCANNER_STATE_CONTENT);        setDriver(fContentDriver);        fEntityStore = fEntityManager.getEntityStore();                dtdGrammarUtil = null;                                //fEntityManager.test();    } // reset(XMLComponentManager)            public void reset(PropertyManager propertyManager){                super.reset(propertyManager);                // other settings        // fDocumentSystemId = null;        fNamespaces = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_NAMESPACE_AWARE)).booleanValue();        fNotifyBuiltInRefs = false ;                        // initialize vars        fMarkupDepth = 0;        fCurrentElement = null;        fShouldSkip = false;        fAdd = false;        fSkip = false;        fElementStack.clear();        //fElementStack2.clear();        fHasExternalDTD = false;        fStandalone = false;        //fReplaceEntityReferences = true;        //fSupportExternalEntities = true;        Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_REPLACING_ENTITY_REFERENCES);        fReplaceEntityReferences = bo.booleanValue();        bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_SUPPORTING_EXTERNAL_ENTITIES);        fSupportExternalEntities = bo.booleanValue();        Boolean cdata = (Boolean)propertyManager.getProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.STAX_REPORT_CDATA_EVENT) ;        if(cdata != null)            fReportCdataEvent = cdata.booleanValue() ;        Boolean coalesce = (Boolean)propertyManager.getProperty(XMLInputFactory.IS_COALESCING) ;        if(coalesce != null)            fIsCoalesce = coalesce.booleanValue();        fReportCdataEvent = fIsCoalesce ? false : (fReportCdataEvent && true) ;        //if fIsCoalesce is set to true, set the value of fReplaceEntityReferences to true,        //if fIsCoalesce is set to false, take the value of fReplaceEntityReferences as set by application        fReplaceEntityReferences = fIsCoalesce ? true : fReplaceEntityReferences;        // setup Driver        //we dont need to do this -- nb.        //setScannerState(SCANNER_STATE_CONTENT);        //setDriver(fContentDriver);        fEntityStore = fEntityManager.getEntityStore();        //fEntityManager.test();                dtdGrammarUtil = null;                    } // 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() {        return (String[])(RECOGNIZED_FEATURES.clone());    } // 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.

⌨️ 快捷键说明

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