Class DOMScanner

  • All Implemented Interfaces:
    InfosetScanner, LocatorEx, org.xml.sax.Locator

    public class DOMScanner
    extends java.lang.Object
    implements LocatorEx, InfosetScanner
    Visits a W3C DOM tree and generates SAX2 events from it.

    This class is just intended to be used by AbstractUnmarshallerImpl. The javax.xml.bind.helpers package is generally a wrong place to put classes like this.

    Since:
    JAXB 1.0
    Author:
    • Kohsuke Kawaguchi, Sun Microsystems, Inc.
    • Constructor Detail

      • DOMScanner

        public DOMScanner()
    • Method Detail

      • setLocator

        public void setLocator​(org.xml.sax.Locator loc)
        Configures the locator object that the SAX ContentHandler will see.
      • scan

        public void scan​(java.lang.Object node)
                  throws org.xml.sax.SAXException
        Description copied from interface: InfosetScanner
        Parses the given DOM-ish element/document and generates SAX events.
        Specified by:
        scan in interface InfosetScanner
        Throws:
        org.xml.sax.SAXException - If the ContentHandler throws a SAXException. Do not throw an exception just because the scanner failed (if that can happen we need to change the API.)
      • scan

        public void scan​(org.w3c.dom.Document doc)
                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • scan

        public void scan​(org.w3c.dom.Element e)
                  throws org.xml.sax.SAXException
        Throws:
        org.xml.sax.SAXException
      • parse

        public void parse​(org.w3c.dom.Element e,
                          org.xml.sax.ContentHandler handler)
                   throws org.xml.sax.SAXException
        Deprecated.
        in JAXB 2.0 Use scan(Element)
        Parses a subtree starting from the element e and reports SAX2 events to the specified handler.
        Throws:
        org.xml.sax.SAXException
      • parseWithContext

        public void parseWithContext​(org.w3c.dom.Element e,
                                     org.xml.sax.ContentHandler handler)
                              throws org.xml.sax.SAXException
        Deprecated.
        in JAXB 2.0 Use scan(Element)
        Similar to the parse method but it visits the ancestor nodes and properly emulate the all in-scope namespace declarations.
        Throws:
        org.xml.sax.SAXException
      • visit

        public void visit​(org.w3c.dom.Element e)
                   throws org.xml.sax.SAXException
        Visits an element and its subtree.
        Throws:
        org.xml.sax.SAXException
      • getCurrentLocation

        public org.w3c.dom.Node getCurrentLocation()
        The same as getCurrentElement() but better typed.
      • getCurrentElement

        public java.lang.Object getCurrentElement()
        Description copied from interface: InfosetScanner
        Gets the current element we are parsing.

        This method could be called from the ContentHandler.startElement(String, String, String, Attributes) or ContentHandler.endElement(String, String, String).

        Otherwise the behavior of this method is undefined.

        Specified by:
        getCurrentElement in interface InfosetScanner
        Returns:
        never return null.
      • setContentHandler

        public void setContentHandler​(org.xml.sax.ContentHandler handler)
        Description copied from interface: InfosetScanner
        Sets the ContentHandler. This handler receives the SAX events.
        Specified by:
        setContentHandler in interface InfosetScanner
      • getPublicId

        public java.lang.String getPublicId()
        Specified by:
        getPublicId in interface org.xml.sax.Locator
      • getSystemId

        public java.lang.String getSystemId()
        Specified by:
        getSystemId in interface org.xml.sax.Locator
      • getLineNumber

        public int getLineNumber()
        Specified by:
        getLineNumber in interface org.xml.sax.Locator
      • getColumnNumber

        public int getColumnNumber()
        Specified by:
        getColumnNumber in interface org.xml.sax.Locator
      • getLocation

        public javax.xml.bind.ValidationEventLocator getLocation()
        Description copied from interface: LocatorEx
        Gets the current location in a ValidationEventLocator object.
        Specified by:
        getLocation in interface LocatorEx
        Returns: