javax.xml.bind.annotation

## Class W3CDomHandler

- java.lang.Object
- - javax.xml.bind.annotation.W3CDomHandler

- All Implemented Interfaces:
    DomHandler<Element,DOMResult>

      public class W3CDomHandler
      extends Object
      implements DomHandler<Element,DOMResult>

  `DomHandler` implementation for W3C DOM (`org.w3c.dom` package.)
  Since:
    JAXB2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `W3CDomHandler()` | Default constructor.
    `W3CDomHandler(DocumentBuilder builder)` | Constructor that allows applications to specify which DOM implementation to be used.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `DOMResult` | `createUnmarshaller(ValidationEventHandler errorHandler)` | When a JAXB provider needs to unmarshal a part of a document into an infoset representation, it first calls this method to create a `Result` object.
    `DocumentBuilder` | `getBuilder()` |
    `Element` | `getElement(DOMResult r)` | Once the portion is sent to the `Result`.
    `Source` | `marshal(Element element, ValidationEventHandler errorHandler)` | This method is called when a JAXB provider needs to marshal an element to XML.
    `void` | `setBuilder(DocumentBuilder builder)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### W3CDomHandler

          public W3CDomHandler()

      Default constructor. It is up to a JAXB provider to decide which DOM implementation to use or how that is configured.

    - #### W3CDomHandler

          public W3CDomHandler(DocumentBuilder builder)

      Constructor that allows applications to specify which DOM implementation to be used.
      Parameters:
        `builder` - must not be null. JAXB uses this `DocumentBuilder` to create a new element.

  - ### Method Detail

    - #### getBuilder

          public DocumentBuilder getBuilder()

    - #### setBuilder

          public void setBuilder(DocumentBuilder builder)

    - #### createUnmarshaller

          public DOMResult createUnmarshaller(ValidationEventHandler errorHandler)

      Description copied from interface: `DomHandler`
      When a JAXB provider needs to unmarshal a part of a document into an infoset representation, it first calls this method to create a `Result` object.

      A JAXB provider will then send a portion of the XML into the given result. Such a portion always form a subtree of the whole XML document rooted at an element.

      Specified by:
        `createUnmarshaller` in interface `DomHandler<Element,DOMResult>`
      Parameters:
        `errorHandler` - if any error happens between the invocation of this method and the invocation of `DomHandler.getElement(Result)`, they must be reported to this handler. The caller must provide a non-null error handler. The `Result` object created from this method may hold a reference to this error handler.
      Returns:
        null if the operation fails. The error must have been reported to the error handler.

    - #### getElement

          public Element getElement(DOMResult r)

      Description copied from interface: `DomHandler`
      Once the portion is sent to the `Result`. This method is called by a JAXB provider to obtain the unmarshalled element representation.

      Multiple invocations of this method may return different objects. This method can be invoked only when the whole sub-tree are fed to the `Result` object.

      Specified by:
        `getElement` in interface `DomHandler<Element,DOMResult>`
      Parameters:
        `r` - The `Result` object created by `DomHandler.createUnmarshaller(ValidationEventHandler)`.
      Returns:
        null if the operation fails. The error must have been reported to the error handler.

    - #### marshal

          public Source marshal(Element element,
                                ValidationEventHandler errorHandler)

      Description copied from interface: `DomHandler`
      This method is called when a JAXB provider needs to marshal an element to XML.

      If non-null, the returned `Source` must contain a whole document rooted at one element, which will then be weaved into a bigger document that the JAXB provider is marshalling.

      Specified by:
        `marshal` in interface `DomHandler<Element,DOMResult>`
        `errorHandler` - Receives any errors happened during the process of converting an element into a `Source`. The caller must provide a non-null error handler.
      Returns:
        null if there was an error. The error should have been reported to the handler.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.