Package org.dom4j.io

Class SAXEventRecorder

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.ext.LexicalHandler

    public class SAXEventRecorder
    extends org.xml.sax.helpers.DefaultHandler
    implements org.xml.sax.ext.LexicalHandler, org.xml.sax.ext.DeclHandler, org.xml.sax.DTDHandler, java.io.Externalizable

    Records SAX events such that they may be "replayed" at a later time. Provides an alternative serialization approach when externalizing a DOM4J document. Rather than serializing a document as text and re-parsing, the sax events may be serialized instead.

    Example usage:
     
      
      
             SAXEventRecorder recorder = new SAXEventRecorder();
             SAXWriter saxWriter = new SAXWriter(recorder, recorder);
             saxWriter.write(document);
             out.writeObject(recorder);
             ...
             SAXEventRecorder recorder = (SAXEventRecorder)in.readObject();
             SAXContentHandler saxContentHandler = new SAXContentHandler();
             recorder.replay(saxContentHandler);
             Document document = saxContentHandler.getDocument();
      
       
      
     
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static long serialVersionUID  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void attributeDecl​(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value)  
      void comment​(char[] ch, int start, int end)  
      void elementDecl​(java.lang.String name, java.lang.String model)  
      void endCDATA()  
      void endDocument()  
      void endDTD()  
      void endElement​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)  
      void endEntity​(java.lang.String name)  
      void endPrefixMapping​(java.lang.String prefix)  
      void externalEntityDecl​(java.lang.String name, java.lang.String publicId, java.lang.String sysId)  
      void characters​(char[] ch, int start, int end)  
      void internalEntityDecl​(java.lang.String name, java.lang.String value)  
      void processingInstruction​(java.lang.String target, java.lang.String data)  
      void readExternal​(java.io.ObjectInput in)  
      void replay​(org.xml.sax.ContentHandler handler)  
      void startCDATA()  
      void startDocument()  
      void startDTD​(java.lang.String name, java.lang.String publicId, java.lang.String systemId)  
      void startElement​(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qualifiedName, org.xml.sax.Attributes attributes)  
      void startEntity​(java.lang.String name)  
      void startPrefixMapping​(java.lang.String prefix, java.lang.String uri)  
      void writeExternal​(java.io.ObjectOutput out)  
      • Methods inherited from class org.xml.sax.helpers.DefaultHandler

        error, fatalError, ignorableWhitespace, notationDecl, resolveEntity, setDocumentLocator, skippedEntity, unparsedEntityDecl, warning
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.xml.sax.DTDHandler

        notationDecl, unparsedEntityDecl
    • Constructor Detail

      • SAXEventRecorder

        public SAXEventRecorder()
    • Method Detail

      • replay

        public void replay​(org.xml.sax.ContentHandler handler)
                    throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          java.lang.String data)
                                   throws org.xml.sax.SAXException
        Specified by:
        processingInstruction in interface org.xml.sax.ContentHandler
        Overrides:
        processingInstruction in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • startPrefixMapping

        public void startPrefixMapping​(java.lang.String prefix,
                                       java.lang.String uri)
                                throws org.xml.sax.SAXException
        Specified by:
        startPrefixMapping in interface org.xml.sax.ContentHandler
        Overrides:
        startPrefixMapping in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endPrefixMapping

        public void endPrefixMapping​(java.lang.String prefix)
                              throws org.xml.sax.SAXException
        Specified by:
        endPrefixMapping in interface org.xml.sax.ContentHandler
        Overrides:
        endPrefixMapping in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • startDocument

        public void startDocument()
                           throws org.xml.sax.SAXException
        Specified by:
        startDocument in interface org.xml.sax.ContentHandler
        Overrides:
        startDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endDocument

        public void endDocument()
                         throws org.xml.sax.SAXException
        Specified by:
        endDocument in interface org.xml.sax.ContentHandler
        Overrides:
        endDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • startElement

        public void startElement​(java.lang.String namespaceURI,
                                 java.lang.String localName,
                                 java.lang.String qualifiedName,
                                 org.xml.sax.Attributes attributes)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endElement

        public void endElement​(java.lang.String namespaceURI,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • characters

        public void characters​(char[] ch,
                               int start,
                               int end)
                        throws org.xml.sax.SAXException
        Specified by:
        characters in interface org.xml.sax.ContentHandler
        Overrides:
        characters in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • startDTD

        public void startDTD​(java.lang.String name,
                             java.lang.String publicId,
                             java.lang.String systemId)
                      throws org.xml.sax.SAXException
        Specified by:
        startDTD in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • endDTD

        public void endDTD()
                    throws org.xml.sax.SAXException
        Specified by:
        endDTD in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • startEntity

        public void startEntity​(java.lang.String name)
                         throws org.xml.sax.SAXException
        Specified by:
        startEntity in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • endEntity

        public void endEntity​(java.lang.String name)
                       throws org.xml.sax.SAXException
        Specified by:
        endEntity in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • startCDATA

        public void startCDATA()
                        throws org.xml.sax.SAXException
        Specified by:
        startCDATA in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • endCDATA

        public void endCDATA()
                      throws org.xml.sax.SAXException
        Specified by:
        endCDATA in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • comment

        public void comment​(char[] ch,
                            int start,
                            int end)
                     throws org.xml.sax.SAXException
        Specified by:
        comment in interface org.xml.sax.ext.LexicalHandler
        Throws:
        org.xml.sax.SAXException
      • elementDecl

        public void elementDecl​(java.lang.String name,
                                java.lang.String model)
                         throws org.xml.sax.SAXException
        Specified by:
        elementDecl in interface org.xml.sax.ext.DeclHandler
        Throws:
        org.xml.sax.SAXException
      • attributeDecl

        public void attributeDecl​(java.lang.String eName,
                                  java.lang.String aName,
                                  java.lang.String type,
                                  java.lang.String valueDefault,
                                  java.lang.String value)
                           throws org.xml.sax.SAXException
        Specified by:
        attributeDecl in interface org.xml.sax.ext.DeclHandler
        Throws:
        org.xml.sax.SAXException
      • internalEntityDecl

        public void internalEntityDecl​(java.lang.String name,
                                       java.lang.String value)
                                throws org.xml.sax.SAXException
        Specified by:
        internalEntityDecl in interface org.xml.sax.ext.DeclHandler
        Throws:
        org.xml.sax.SAXException
      • externalEntityDecl

        public void externalEntityDecl​(java.lang.String name,
                                       java.lang.String publicId,
                                       java.lang.String sysId)
                                throws org.xml.sax.SAXException
        Specified by:
        externalEntityDecl in interface org.xml.sax.ext.DeclHandler
        Throws:
        org.xml.sax.SAXException
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.lang.ClassNotFoundException,
                                 java.io.IOException
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.lang.ClassNotFoundException
        java.io.IOException