public abstract class AbstractUnmarshallerImpl extends Object implements Unmarshaller
 这个类提供了部分默认实现Unmarshaller接口。 
JAXB Provider必须实现五种方法(getUnmarshallerHandler,unmarshal(Node),unmarshal(XMLReader,InputSource),unmarshal(XMLStreamReader)和unmarshal(XMLEventReader)。
Unmarshaller 
       Unmarshaller.Listener| Modifier and Type | Field and Description | 
|---|---|
| protected boolean | validating
              解密者是否验证 
             | 
| Constructor and Description | 
|---|
| AbstractUnmarshallerImpl() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected UnmarshalException | createUnmarshalException(SAXException e)
              从SAXException创建一个UnmarshalException。 
             | 
| <A extends XmlAdapter> | getAdapter(类<A> type)
              获取与指定类型相关联的适配器。 
             | 
| AttachmentUnmarshaller | getAttachmentUnmarshaller() | 
| ValidationEventHandler | getEventHandler()
              返回当前事件处理程序或默认事件处理程序(如果尚未设置)。 
             | 
| Unmarshaller.Listener | getListener() | 
| Object | getProperty(String name)
              getProperty方法的默认实现总是抛出PropertyException,因为没有必需的属性。 
             | 
| Schema | getSchema() 
             获取用于执行解密时间验证的JAXP 1.3  Schema对象。 | 
| protected XMLReader | getXMLReader()
              获取配置的XMLReader。 
             | 
| boolean | isValidating()
              指示Unmarshaller是否配置为在解组操作期间进行验证。 
             | 
| <A extends XmlAdapter> | setAdapter(类<A> type, A adapter) 
             相关联的配置实例 XmlAdapter与此unmarshaller。 | 
| void | setAdapter(XmlAdapter adapter) 
             相关联的配置实例 XmlAdapter与此unmarshaller。 | 
| void | setAttachmentUnmarshaller(AttachmentUnmarshaller au)
              将解析cid,content-id URI的上下文关联到作为附件传递的二进制数据。 
             | 
| void | setEventHandler(ValidationEventHandler handler)
              允许应用程序注册验证事件处理程序。 
             | 
| void | setListener(Unmarshaller.Listener listener) 
             注册unmarshal事件回调 Unmarshaller.Listener与这Unmarshaller。 | 
| void | setProperty(String name, Object value)
              setProperty方法的默认实现总是抛出PropertyException,因为没有必需的属性。 
             | 
| void | setSchema(Schema schema) 
             指定应用于验证后续解组操作的JAXP 1.3  Schema对象。 | 
| void | setValidating(boolean validating)
              指定Unmarshaller是否在解组操作期间进行验证。 
             | 
| Object | unmarshal(File f)
              从指定的文件解组XML数据并返回生成的内容树。 
             | 
| Object | unmarshal(InputSource source)
              从指定的SAX InputSource解组XML数据并返回结果内容树。 
             | 
| Object | unmarshal(InputStream is)
              从指定的InputStream中解组XML数据,并返回生成的内容树。 
             | 
| <T> JAXBElement<T> | unmarshal(Node node, 类<T> expectedType)
              通过JAXB映射 
             declaredType解组XML数据,并返回结果内容树。 
             | 
| Object | unmarshal(Reader reader)
              从指定的Reader中解组XML数据并返回生成的内容树。 
             | 
| Object | unmarshal(Source source)
              从指定的XML Source中解组XML数据并返回生成的内容树。 
             | 
| <T> JAXBElement<T> | unmarshal(Source source, 类<T> expectedType)
              通过 
             declaredType从指定的XML源解组XML数据,并返回生成的内容树。 
             | 
| Object | unmarshal(URL url)
              从指定的URL解组XML数据并返回生成的内容树。 
             | 
| Object | unmarshal(XMLEventReader reader)
              从指定的解析器解组XML数据并返回生成的内容树。 
             | 
| <T> JAXBElement<T> | unmarshal(XMLEventReader reader, 类<T> expectedType)
              将根元素解组到JAXB映射 
             declaredType并返回生成的内容树。 
             | 
| protected abstract Object | unmarshal(XMLReader reader, InputSource source)
              使用指定的XMLReader和InputSource解组合对象。 
             | 
| Object | unmarshal(XMLStreamReader reader)
              从指定的解析器解组XML数据并返回生成的内容树。 
             | 
| <T> JAXBElement<T> | unmarshal(XMLStreamReader reader, 类<T> expectedType)
              将根元素解组到JAXB映射 
             declaredType并返回生成的内容树。 
             | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetUnmarshallerHandler, unmarshalprotected XMLReader getXMLReader() throws JAXBException
public Object unmarshal(Source source) throws JAXBException
Unmarshaller复制 
          实施Unmarshal Global Root Element 。
客户端应用程序可以选择不使用JAXB提供程序提供的默认解析器机制。 任何SAX 2.0兼容解析器可以替代JAXB提供程序的默认机制。 要做到这一点,客户端应用程序必须正确配置SAXSource包含由SAX 2.0解析器提供实现的XMLReader。 如果XMLReader在其上注册了一个org.xml.sax.ErrorHandler ,则将由JAXB提供者替换,以便通过JAXB的ValidationEventHandler机制报告验证错误。 如果SAXSource不包含XMLReader ,则将使用JAXB提供程序的默认解析器机制。
此解析器替换机制也可用于替换JAXB提供者的解组时间验证引擎。 客户端应用程序必须正确配置其SAX 2.0兼容解析器才能执行验证(如上例所示)。 在解组操作期间由分析器遇到的任何SAXParserExceptions将由JAXB提供商处理并转换成其将经由与Unmarshaller注册的ValidationEventHandler被报告回客户端JAXB ValidationEvent对象。 注意:指定替代验证SAX 2.0解析器进行解组合并不一定取代JAXB提供程序用于执行按需验证的验证引擎。
客户端应用程序指定在拆组期间使用的替代解析器机制的唯一方法是通过8854376142431 API。 所有其他形式的解组方法(文件,URL,节点等)将使用JAXB提供程序的默认解析器和验证器机制。
unmarshal在界面 
            Unmarshaller 
           source - 解密XML数据的XML源(提供者只需要支持SAXSource,DOMSource和StreamSource) 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           Unmarshaller.unmarshal(javax.xml.transform.Source, Class) 
           protected abstract Object unmarshal(XMLReader reader, InputSource source) throws JAXBException
public final Object unmarshal(InputSource source) throws JAXBException
Unmarshaller 
          unmarshal在接口 
            Unmarshaller 
           source - 从中解开XML数据的输入源 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public final Object unmarshal(URL url) throws JAXBException
Unmarshaller复制 
          unmarshal在接口 
            Unmarshaller 
           url - 从中解开XML数据的URL 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public final Object unmarshal(File f) throws JAXBException
Unmarshaller复制 
          unmarshal在界面 
            Unmarshaller 
           f - 从中解开XML数据的文件 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public final Object unmarshal(InputStream is) throws JAXBException
Unmarshaller复制 
          unmarshal在界面 
            Unmarshaller 
           is - 从中解开XML数据的InputStream 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public final Object unmarshal(Reader reader) throws JAXBException
Unmarshaller复制 
          unmarshal在接口 
            Unmarshaller 
           reader - 从中解开XML数据的读者 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public boolean isValidating()
                     throws JAXBException 
          注意:我将此方法命名为isValidating()以保持与JAXP保持一致,而不是将其命名为getValidating()。
isValidating在接口 
            Unmarshaller 
           JAXBException - 如果在检索验证标志时发生错误 
           public void setEventHandler(ValidationEventHandler handler) throws JAXBException
如果在调用unmarshal方法期间遇到任何验证错误,JAXB Provider将调用验证事件处理程序。 如果客户端应用程序在调用解组方法之前未注册验证事件处理程序,则所有验证事件将被默认忽略,并可能导致意外行为。
setEventHandler在界面 
            Unmarshaller 
           handler - 验证事件处理程序 
           JAXBException - 如果在设置事件处理程序时遇到错误 
           public void setValidating(boolean validating)
                   throws JAXBException 
          该方法只能在调用其中一个解组方法之前或之后调用。
setValidating在接口 
            Unmarshaller 
           validating - 如果Unmarshaller在卸载期间应验证,则为true,否则为false 
           JAXBException - 如果在解密时启用或禁用验证时发生错误 
           public ValidationEventHandler getEventHandler() throws JAXBException
getEventHandler在接口 
            Unmarshaller 
           JAXBException - 如果在获取当前事件处理程序时遇到错误 
           protected UnmarshalException createUnmarshalException(SAXException e)
当提供者实现的ContentHandler想要抛出JAXBException时,需要通过SAXException来包装异常。 如果unmarshaller实现通过JAXBException盲包裹SAXException,这样的异常将是由另一个JAXBException包装的SAXException包装的JAXBException。 这很傻
此方法检查嵌套异常SAXException并减少这些过度的包装。
public void setProperty(String name, Object value) throws PropertyException
setProperty在界面 
            Unmarshaller 
           name - 要设置的属性的名称。 
            可以使用常量字段或用户提供的字符串指定此值。 
           value - 要设置的属性的值 
           PropertyException - 处理给定属性或值时出错 
           public Object getProperty(String name) throws PropertyException
getProperty在界面 
            Unmarshaller 
           name - 要检索的属性的名称 
           PropertyException - 检索给定属性或值属性名称时出错 
           public Object unmarshal(XMLEventReader reader) throws JAXBException
Unmarshaller复制 
          这个方法是Unmarshal Global Root method 。
该方法假定解析器处于START_DOCUMENT或START_ELEMENT事件。 解组将从此开始事件到相应的结束事件。 如果此方法成功返回,则reader将在结束事件之后指向该令牌。
unmarshal在界面 
            Unmarshaller 
           reader - 要读取的解析器。 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           Unmarshaller.unmarshal(javax.xml.stream.XMLEventReader, Class) 
           public Object unmarshal(XMLStreamReader reader) throws JAXBException
Unmarshaller复制 
          实现Unmarshal Global Root Element 。
该方法假定解析器处于START_DOCUMENT或START_ELEMENT事件。 解组将从此开始事件到相应的结束事件。 如果此方法成功返回,则reader将在结束事件之后指向令牌。
unmarshal在接口 
            Unmarshaller 
           reader - 要读取的解析器。 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           Unmarshaller.unmarshal(javax.xml.stream.XMLStreamReader, Class) 
           public <T> JAXBElement<T> unmarshal(Node node, 类<T> expectedType) throws JAXBException
Unmarshaller 
          unmarshal在接口 
            Unmarshaller 
           node - 从中解开XML数据的文档/元素。 
            呼叫者至少必须支持Document和Element。 
           expectedType - 适当的JAXB映射类保存 
            node的XML数据。 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public <T> JAXBElement<T> unmarshal(Source source, 类<T> expectedType) throws JAXBException
Unmarshaller复制 
          unmarshal在接口 
            Unmarshaller 
           source - 解密XML数据的XML源(提供者只需要支持SAXSource,DOMSource和StreamSource) 
           expectedType - 适当的JAXB映射类保存 
            source的xml根元素 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public <T> JAXBElement<T> unmarshal(XMLStreamReader reader, 类<T> expectedType) throws JAXBException
Unmarshaller 
          该方法实现unmarshal by declaredType 。
该方法假定解析器处于START_DOCUMENT或START_ELEMENT事件。 解组将从此开始事件到相应的结束事件。 如果此方法成功返回,则reader将在结束事件之后指向令牌。
unmarshal在界面 
            Unmarshaller 
           reader - 要读取的解析器。 
           expectedType - 适当的JAXB映射类保存 
            reader的START_ELEMENT XML数据。 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public <T> JAXBElement<T> unmarshal(XMLEventReader reader, 类<T> expectedType) throws JAXBException
Unmarshaller复制 
          该方法实现unmarshal by declaredType 。
该方法假定解析器处于START_DOCUMENT或START_ELEMENT事件。 解组将从此开始事件到相应的结束事件。 如果此方法成功返回,则reader将在结束事件之后指向该令牌。
unmarshal在接口 
            Unmarshaller 
           reader - 要读取的解析器。 
           expectedType - 适当的JAXB映射类保存 
            reader的START_ELEMENT XML数据。 
           JAXBException - 解组时是否发生意外错误 
           UnmarshalException - 如果ValidationEventHandler从其handleEvent方法返回false,或者Unmarshaller无法执行XML到Java绑定。 
            见Unmarshalling XML Data 
           public void setSchema(Schema schema)
Unmarshaller复制 
          Schema对象。 
           将null传递给此方法将禁用验证。 
            此方法将替代已弃用的setValidating(boolean) API。 
最初此属性设置为null 。
setSchema在界面 
            Unmarshaller 
           schema - 用于验证解组操作的模式对象或者禁用验证的null 
           public Schema getSchema()
Unmarshaller复制 
          Schema对象。 
           如果在unmarshaller上没有设置Schema,则该方法将返回null,表示将不执行解密时间验证。 
            此方法提供已弃用的Unmarshaller.isValidating() API以及对Schema对象的访问的替换功能 。 要确定Unmarshaller是否启用了验证,只需将null的返回类型测试: 
 boolean isValidating = u.getSchema()!=null; 
getSchema在界面 
            Unmarshaller 
           public void setAdapter(XmlAdapter adapter)
Unmarshaller 
          XmlAdapter与此unmarshaller。 
            这是调用setAdapter(adapter.getClass(),adapter);的方便方法。 
setAdapter在界面 
            Unmarshaller 
           Unmarshaller.setAdapter(Class,XmlAdapter) 
           public <A extends XmlAdapter> void setAdapter(类<A> type, A adapter)
Unmarshaller复制 
          XmlAdapter与此unmarshaller。 
            每个unmarshaller内部维护一个Map < 类 , XmlAdapter >,它使用用于解组类,它们的字段/方法的注解为XmlJavaTypeAdapter 。 
 此方法允许应用程序使用的一个配置实例XmlAdapter 。 当未给出适配器的实例时,解组器将通过调用其默认构造函数来创建一个。 
setAdapter在接口 
            Unmarshaller 
           type - 适配器的类型。 
            当XmlJavaTypeAdapter.value()引用此类型时,将使用指定的实例。 
           adapter - 要使用的适配器的实例。 
            如果为空,它将取消注册此类型的当前适配器集。 
           public <A extends XmlAdapter> A getAdapter(类<A> type)
Unmarshaller复制 
          Unmarshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter)方法的反向操作。 
          getAdapter在接口 
            Unmarshaller 
           public void setAttachmentUnmarshaller(AttachmentUnmarshaller au)
Unmarshaller复制 
          将解析cid,content-id URI的上下文关联到作为附件传递的二进制数据。
 即使在解组器执行XOP处理时,也必须支持通过Unmarshaller.setSchema(Schema)启用解密时间验证。 
setAttachmentUnmarshaller在界面 
            Unmarshaller 
           public AttachmentUnmarshaller getAttachmentUnmarshaller()
getAttachmentUnmarshaller在界面 
            Unmarshaller 
           public void setListener(Unmarshaller.Listener listener)
Unmarshaller 
           注册unmarshal事件回调Unmarshaller.Listener与这Unmarshaller 。 
每个Unmarshaller只有一个监听器。 设置侦听器将替换以前设置的侦听器。 可以通过将侦听器设置为null来取消注册当前侦听器。
setListener在界面 
            Unmarshaller 
           listener - 提供这个Unmarshaller的解组事件回调 
           public Unmarshaller.Listener getListener()
Unmarshaller复制 
          getListener在接口 
            Unmarshaller 
           Unmarshaller.Listener或null如果没有监听器已经注册到这个解组员。 
            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, 2014, Oracle and/or its affiliates. All rights reserved.