Module  java.xml.bind
软件包  javax.xml.bind

Interface UnmarshallerHandler

  • All Superinterfaces:
    ContentHandler


    public interface UnmarshallerHandler
    extends ContentHandler
    Unmarshaller实现为SAX ContentHandler。

    应用程序可以使用此接口将其JAXB提供程序用作XML管道中的组件。 例如:

      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(); 

    该界面是可重用的:即使用户未能解组对象,他/他仍然可以开始新一轮的解组。

    从以下版本开始:
    1.6,JAXB 1.0
    另请参见:
    Unmarshaller.getUnmarshallerHandler()
    • 方法详细信息

      • getResult

        Object getResult​()
                  throws JAXBException,
                         IllegalStateException
        获得未组织的结果。 只有在此处理程序接收到endDocument SAX事件之后,才能调用此方法。
        结果
        总是返回一个非空的有效对象,它是未组织的。
        异常
        IllegalStateException - 如果在此处理程序接收到endDocument事件之前调用此方法。
        JAXBException - 如果有任何解组错误。 请注意,在解析过程中发现错误时,允许实现抛出SAXException。