Top Description Fields Constructors Methods
org.glassfish.jaxb.core.unmarshaller

public Class DOMScanner

extends Object
implements LocatorEx, InfosetScanner<Node>
Class Inheritance
All Implemented Interfaces
org.glassfish.jaxb.core.unmarshaller.InfosetScanner, org.glassfish.jaxb.core.v2.runtime.unmarshaller.LocatorEx, org.xml.sax.Locator
Imports
java.util.AbstractMap, .ArrayDeque, .Deque, .Enumeration, .Map, .Objects, jakarta.xml.bind.ValidationEventLocator, jakarta.xml.bind.helpers.AbstractUnmarshallerImpl, .ValidationEventLocatorImpl, org.glassfish.jaxb.core.v2.runtime.unmarshaller.LocatorEx, org.w3c.dom.Attr, .Document, .Element, .NamedNodeMap, .Node, .NodeList, .ProcessingInstruction, org.xml.sax.ContentHandler, .Locator, .SAXException, org.xml.sax.helpers.AttributesImpl, .NamespaceSupport

Visits a W3C DOM tree and generates SAX2 events from it.

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

Author
Since
JAXB 1.0

Field Summary

Modifier and TypeField and Description
private final AttributesImpl
atts

To save memory, only one instance of AttributesImpl will be used.

private Node
currentNode

reference to the current node being scanned - used for determining location info for validation events

private Locator
private ContentHandler
receiver

This handler will receive SAX2 events.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
buildNamespaceSupport(NamespaceSupport nss, Node node)

Recursively visit ancestors and build up NamespaceSupport oject.

public int
getColumnNumber()

Implements org.xml.sax.Locator.getColumnNumber.

Return the column number where the current document event ends.

public ContentHandler
public Node
public Node
getCurrentLocation()

The same as getCurrentElement() but better typed.

public int
getLineNumber()

Implements org.xml.sax.Locator.getLineNumber.

Return the line number where the current document event ends.

public ValidationEventLocator
public LocatorEx
public String
getPublicId()

Implements org.xml.sax.Locator.getPublicId.

Return the public identifier for the current document event.

public String
getSystemId()

Implements org.xml.sax.Locator.getSystemId.

Return the system identifier for the current document event.

public void
parse(Element e, ContentHandler handler)
Deprecated for removal since 2.0. in JAXB 2.0 Use scan(Element)

Parses a subtree starting from the element e and reports SAX2 events to the specified handler.

public void
parseWithContext(Element e, ContentHandler handler)
Deprecated for removal since 2.0. 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.

public void
scan(Node node)

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Parses the given DOM-ish element/document and generates SAX events.

public void
scan(Document doc)

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Parses the given DOM-ish element/document and generates SAX events.

public void
scan(Element e)

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Parses the given DOM-ish element/document and generates SAX events.

public void
private void
public void
setLocator(Locator loc)

Configures the locator object that the SAX ContentHandler will see.

public void
visit(Element element)

Visits an element and its subtree.

private Element
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

attsback to summary
private final AttributesImpl atts

To save memory, only one instance of AttributesImpl will be used.

currentNodeback to summary
private Node currentNode

reference to the current node being scanned - used for determining location info for validation events

locatorback to summary
private Locator locator
receiverback to summary
private ContentHandler receiver

This handler will receive SAX2 events.

Constructor Detail

DOMScannerback to summary
public DOMScanner()

Method Detail

buildNamespaceSupportback to summary
private void buildNamespaceSupport(NamespaceSupport nss, Node node)

Recursively visit ancestors and build up NamespaceSupport oject.

getColumnNumberback to summary
public int getColumnNumber()

Implements org.xml.sax.Locator.getColumnNumber.

Doc from org.xml.sax.Locator.getColumnNumber.

Return the column number where the current document event ends. This is one-based number of Java char values since the last line end.

Warning

The return value from the method is intended only as an approximation for the sake of diagnostics; it is not intended to provide sufficient information to edit the character content of the original XML document. For example, when lines contain combining character sequences, wide characters, surrogate pairs, or bi-directional text, the value may not correspond to the column in a text editor's display.

The return value is an approximation of the column number in the document entity or external parsed entity where the markup triggering the event appears.

If possible, the SAX driver should provide the line position of the first character after the text associated with the document event. The first column in each line is column 1.

Annotations
@Override
getContentHandlerback to summary
public ContentHandler getContentHandler()

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.getContentHandler.

Annotations
@Override
getCurrentElementback to summary
public Node getCurrentElement()

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.getCurrentElement.

Doc from org.glassfish.jaxb.core.unmarshaller.InfosetScanner.getCurrentElement.

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.

Annotations
@Override
getCurrentLocationback to summary
public Node getCurrentLocation()

The same as getCurrentElement() but better typed.

getLineNumberback to summary
public int getLineNumber()

Implements org.xml.sax.Locator.getLineNumber.

Doc from org.xml.sax.Locator.getLineNumber.

Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.

Warning

The return value from the method is intended only as an approximation for the sake of diagnostics; it is not intended to provide sufficient information to edit the character content of the original XML document. In some cases, these "line" numbers match what would be displayed as columns, and in others they may not match the source text due to internal entity expansion.

The return value is an approximation of the line number in the document entity or external parsed entity where the markup triggering the event appears.

If possible, the SAX driver should provide the line position of the first character after the text associated with the document event. The first line is line 1.

Annotations
@Override
getLocationback to summary
public ValidationEventLocator getLocation()

Implements org.glassfish.jaxb.core.v2.runtime.unmarshaller.LocatorEx.getLocation.

Doc from org.glassfish.jaxb.core.v2.runtime.unmarshaller.LocatorEx.getLocation.

Gets the current location in a ValidationEventLocator object.

Annotations
@Override
getLocatorback to summary
public LocatorEx getLocator()

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.getLocator.

Annotations
@Override
getPublicIdback to summary
public String getPublicId()

Implements org.xml.sax.Locator.getPublicId.

Doc from org.xml.sax.Locator.getPublicId.

Return the public identifier for the current document event.

The return value is the public identifier of the document entity or of the external parsed entity in which the markup triggering the event appears.

Annotations
@Override
getSystemIdback to summary
public String getSystemId()

Implements org.xml.sax.Locator.getSystemId.

Doc from org.xml.sax.Locator.getSystemId.

Return the system identifier for the current document event.

The return value is the system identifier of the document entity or of the external parsed entity in which the markup triggering the event appears.

If the system identifier is a URL, the parser must resolve it fully before passing it to the application. For example, a file name must always be provided as a file:... URL, and other kinds of relative URI are also resolved against their bases.

Annotations
@Override
parseback to summary
public void parse(Element e, ContentHandler handler) throws SAXException

Deprecated

for removal since 2.0.

in JAXB 2.0 Use scan(Element)

Parses a subtree starting from the element e and reports SAX2 events to the specified handler.

Annotations
@Deprecated
since:2.0
forRemoval:true
parseWithContextback to summary
public void parseWithContext(Element e, ContentHandler handler) throws SAXException

Deprecated

for removal since 2.0.

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.

Annotations
@Deprecated
since:2.0
forRemoval:true
scanback to summary
public void scan(Node node) throws SAXException

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Doc from org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Parses the given DOM-ish element/document and generates SAX events.

Annotations
@Override
Exceptions
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.)
scanback to summary
public void scan(Document doc) throws SAXException

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Doc from org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Parses the given DOM-ish element/document and generates SAX events.

Exceptions
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.)
scanback to summary
public void scan(Element e) throws SAXException

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Doc from org.glassfish.jaxb.core.unmarshaller.InfosetScanner.scan.

Parses the given DOM-ish element/document and generates SAX events.

Exceptions
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.)
setContentHandlerback to summary
public void setContentHandler(ContentHandler handler)

Implements org.glassfish.jaxb.core.unmarshaller.InfosetScanner.setContentHandler.

Doc from org.glassfish.jaxb.core.unmarshaller.InfosetScanner.setContentHandler.

Sets the ContentHandler. This handler receives the SAX events.

Annotations
@Override
setCurrentLocationback to summary
private void setCurrentLocation(Node currNode)
setLocatorback to summary
public void setLocator(Locator loc)

Configures the locator object that the SAX ContentHandler will see.

visitback to summary
public void visit(Element element) throws SAXException

Visits an element and its subtree.

visitback to summary
private Element visit(Node n) throws SAXException