Interface UnmarshallerHandler

All Superinterfaces:
ContentHandler

public interface UnmarshallerHandler extends ContentHandler
Unmarshaller implemented as SAX ContentHandler.

Applications can use this interface to use their Jakarta XML Binding provider as a component in an XML pipeline. For example:

       JAXBContext context = JAXBContext.newInstance( "org.acme.foo" );

       Unmarshaller unmarshaller = context.createUnmarshaller();
 
       UnmarshallerHandler unmarshallerHandler = unmarshaller.getUnmarshallerHandler();

       SAXParserFactory spf = SAXParserFactory.newInstance();
       spf.setNamespaceAware( true );
 
       XMLReader xmlReader = spf.newSAXParser().getXMLReader();
       xmlReader.setContentHandler( unmarshallerHandler );
       xmlReader.parse(new InputSource( new FileInputStream( XML_FILE ) ) );

       MyObject myObject= (MyObject)unmarshallerHandler.getResult();                          
 

This interface is reusable: even if the user fails to unmarshal an object, s/he can still start a new round of unmarshalling.

Since:
1.6, JAXB 1.0
See Also:
  • Method Details

    • getResult

      Obtains the unmarshalled result. This method can be called only after this handler receives the endDocument SAX event.
      Returns:
      always return a non-null valid object which was unmarshalled.
      Throws:
      IllegalStateException - if this method is called before this handler receives the endDocument event.
      JAXBException - if there is any unmarshalling error. Note that the implementation is allowed to throw SAXException during the parsing when it finds an error.