Class XmlReader

  • All Implemented Interfaces:
    javajs.api.GenericLineReader
    Direct Known Subclasses:
    XmlArgusReader, XmlChem3dReader, XmlCmlReader, XmlMagResReader, XmlOdysseyReader, XmlQEReader, XmlVaspReader, XmlXsdReader

    public class XmlReader
    extends AtomSetCollectionReader
    A generic XML reader template -- by itself, does nothing. The actual readers are XmlCmlReader, XmlMolproReader (which is an extension of XmlCmlReader), XmlChem3dReader, and XmlOdysseyReader. XmlReader takes all XML streams, whether from a file reader or from DOM. This class functions as a resolver, since it: (1) identifying the specific strain of XML to be handled, and (2) passing the responsibility on to the correct format-specific XML readers. There are parallel entry points and handler methods for reader and DOM. Each format-specific XML reader then assigns its own handler to manage the parsing of elements. In addition, this class handles generic XML tag parsing. XmlHandler extends DefaultHandler is the generic interface to both reader and DOM element parsing. XmlCmlReader extends XmlReader XmlMolproReader extends XmlCmlReader. If you feel like expanding on that, feel free. XmlChem3dReader extends XmlReader. That one is simple; no need to expand on it at this time. XmlOdysseyReader extends XmlReader. That one is simple; no need to expand on it at this time. Note that the tag processing routines are shared between SAX and DOM processors. This means that attributes must be transformed from either Attributes (SAX) or JSObjects (DOM) to Hashtable name:value pairs. This is taken care of in JmolXmlHandler for all readers. TODO 27/8/06: Several aspects of CifReader are NOT YET implemented here. These include loading a specific model when there are several, applying the symmetry, and loading fractional coordinates. [DONE for CML reader 2/2007 RMH] Test files: molpro: vib.xml odyssey: water.xodydata cml: a wide variety of files in data-files. -Bob Hanson
    • Field Detail

      • atom

        protected Atom atom
      • bond

        protected Bond bond
      • atts

        public java.util.Map<java.lang.String,​java.lang.String> atts
      • keepChars

        protected boolean keepChars
      • chars

        protected javajs.util.SB chars
      • domObj

        private java.lang.Object[] domObj
      • attribs

        private java.lang.Object[] attribs
      • attArgs

        private java.lang.Object[] attArgs
      • nullObj

        private java.lang.Object[] nullObj
    • Constructor Detail

      • XmlReader

        public XmlReader()
    • Method Detail

      • initCML

        protected void initCML()
      • setMyError

        private void setMyError​(java.lang.String err)
      • parseXML

        private java.lang.String parseXML()
      • selectReaderAndGo

        private java.lang.String selectReaderAndGo​(java.lang.Object saxReader)
      • processXml

        protected void processXml​(XmlReader parent,
                                  java.lang.Object saxReader)
                           throws java.lang.Exception
        Parameters:
        parent -
        saxReader -
        Throws:
        java.lang.Exception
      • processXml2

        protected void processXml2​(XmlReader parent,
                                   java.lang.Object saxReader)
                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createDomNodeJS

        java.lang.Object createDomNodeJS​(java.lang.String id,
                                         java.lang.Object data)
        totally untested, probably useless
        Parameters:
        id -
        data -
        Returns:
        dom object
      • processStartElement

        protected void processStartElement​(java.lang.String localName,
                                           java.lang.String nodeName)
        Parameters:
        localName -
        nodeName - TODO
      • setKeepChars

        protected void setKeepChars​(boolean TF)
      • processEndElement

        void processEndElement​(java.lang.String localName)
        Parameters:
        localName -
      • walkDOMTree

        private void walkDOMTree()
      • fixLocal

        private java.lang.String fixLocal​(java.lang.String name)
      • getDOMAttributesA

        private void getDOMAttributesA​(java.lang.Object[] attributes)
      • jsObjectCall

        private java.lang.Object jsObjectCall​(java.lang.Object[] jsObject,
                                              java.lang.String method,
                                              java.lang.Object[] args)
        Parameters:
        jsObject -
        method -
        args -
        Returns:
        object
      • jsObjectGetMember

        private java.lang.Object jsObjectGetMember​(java.lang.Object[] jsObject,
                                                   java.lang.String name)
      • endDocument

        public void endDocument()