JavaTM Platform
Standard Ed. 6

javax.xml.bind.helpers
类 AbstractMarshallerImpl

java.lang.Object
  继承者 javax.xml.bind.helpers.AbstractMarshallerImpl
所有已实现的接口:
Marshaller

public abstract class AbstractMarshallerImpl
extends Object
implements Marshaller

部分默认 Marshaller 实现。

此类提供 Marshaller 接口的部分默认实现。

JAXB 提供者必须实现的方法只有 marshal(Object, javax.xml.transform.Result)marshal(Object, javax.xml.stream.XMLStreamWriter)marshal(Object, javax.xml.stream.XMLEventWriter)

从以下版本开始:
JAXB1.0
另请参见:
=======, >>>>>>> 1.3

嵌套类摘要
 
从接口 javax.xml.bind.Marshaller 继承的嵌套类/接口
Marshaller.Listener
 
字段摘要
 
从接口 javax.xml.bind.Marshaller 继承的字段
JAXB_ENCODING, JAXB_FORMATTED_OUTPUT, JAXB_FRAGMENT, JAXB_NO_NAMESPACE_SCHEMA_LOCATION, JAXB_SCHEMA_LOCATION
 
构造方法摘要
AbstractMarshallerImpl()
           
 
方法摘要
<A extends XmlAdapter>
A
getAdapter(Class<A> type)
          获取与指定类型关联的适配器。
 AttachmentMarshaller getAttachmentMarshaller()
           
protected  String getEncoding()
          获取当前输出编码的便捷方法。
 ValidationEventHandler getEventHandler()
          返回当前的事件处理程序,如果没有设置该处理程序,则返回默认的事件处理程序。
protected  String getJavaEncoding(String encoding)
          从 IANA 名称获取相应的 Java 编码名称。
 Marshaller.Listener getListener()
          返回向此 Marshaller 注册的 Marshaller.Listener
 Node getNode(Object obj)
          默认情况下,getNode 方法不受支持并抛出 UnsupportedOperationException
protected  String getNoNSSchemaLocation()
          获取当前 noNamespaceSchemaLocation 的便捷方法。
 Object getProperty(String name)
          getProperty 方法的默认实现处理 Marshaller 中 4 个已定义的属性。
 Schema getSchema()
          获取用于执行编组时验证的 JAXP 1.3 Schema 对象。
protected  String getSchemaLocation()
          获取当前 schemaLocation 的便捷方法。
protected  boolean isFormattedOutput()
          获取格式化输出标志的便捷方法。
protected  boolean isFragment()
          获取片段标志的便捷方法。
 void marshal(Object obj, ContentHandler handler)
          将以 jaxbElement 为根的内容树编组到 SAX2 事件中。
 void marshal(Object obj, Node node)
          将以 jaxbElement 为根的内容树编组到 DOM 树中。
 void marshal(Object obj, OutputStream os)
          将以 jaxbElement 为根的内容树编组到输出流中。
 void marshal(Object obj, Writer w)
          将以 jaxbElement 为根的内容树编组到 Writer 中。
 void marshal(Object obj, XMLEventWriter writer)
          将以 jaxbElement 为根的内容树编组到 XMLEventWriter 中。
 void marshal(Object obj, XMLStreamWriter writer)
          将以 jaxbElement 为根的内容树编组到 XMLStreamWriter 中。
<A extends XmlAdapter>
void
setAdapter(Class<A> type, A adapter)
          将已配置的 XmlAdapter 实例与此 marshaller 关联。
 void setAdapter(XmlAdapter adapter)
          将已配置的 XmlAdapter 实例与此 marshaller 关联。
 void setAttachmentMarshaller(AttachmentMarshaller am)
          与上下文关联,使 XML 文档内的二进制数据能够以优化的 XML 二进制附件的形式传送。
protected  void setEncoding(String encoding)
          设置输出编码的便捷方法。
 void setEventHandler(ValidationEventHandler handler)
          允许应用程序注册一个验证事件处理程序。
protected  void setFormattedOutput(boolean v)
          设置格式化输出标志的便捷方法。
protected  void setFragment(boolean v)
          设置片段标志的便捷方法。
 void setListener(Marshaller.Listener listener)
           向此 Marshaller 注册编组事件回调 Marshaller.Listener
protected  void setNoNSSchemaLocation(String location)
          设置 noNamespaceSchemaLocation 的便捷方法。
 void setProperty(String name, Object value)
          setProperty 方法的默认实现处理 Marshaller 中 4 个已定义的属性。
 void setSchema(Schema schema)
          指定应该用作验证后续编组操作依据的 JAXP 1.3 Schema 对象。
protected  void setSchemaLocation(String location)
          设置 schemaLocation 的便捷方法。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 javax.xml.bind.Marshaller 继承的方法
marshal
 

构造方法详细信息

AbstractMarshallerImpl

public AbstractMarshallerImpl()
方法详细信息

marshal

public final void marshal(Object obj,
                          OutputStream os)
                   throws JAXBException
从接口 Marshaller 复制的描述
将以 jaxbElement 为根的内容树编组到输出流中。

指定者:
接口 Marshaller 中的 marshal
参数:
obj - 要编组的内容树的根。
os - XML 将被添加到此流。
抛出:
JAXBException - 如果在编组期间发生任何不可预料的问题。
MarshalException - 如果 ValidationEventHandler 从其 handleEvent 方法返回 false,或者 Marshaller 不能编组 obj(或任何可从 obj 获得的对象)。请参阅编组 JAXB 元素

marshal

public final void marshal(Object obj,
                          Writer w)
                   throws JAXBException
从接口 Marshaller 复制的描述
将以 jaxbElement 为根的内容树编组到 Writer 中。

指定者:
接口 Marshaller 中的 marshal
参数:
obj - 要编组的内容树的根。
w - XML 将被发送到此编写器。
抛出:
JAXBException - 如果在编组期间发生任何不可预料的问题。
MarshalException - 如果 ValidationEventHandler 从其 handleEvent 方法返回 false,或者 Marshaller 不能编组 obj(或任何可从 obj 获得的对象)。请参阅编组 JAXB 元素

marshal

public final void marshal(Object obj,
                          ContentHandler handler)
                   throws JAXBException
从接口 Marshaller 复制的描述
将以 jaxbElement 为根的内容树编组到 SAX2 事件中。

指定者:
接口 Marshaller 中的 marshal
参数:
obj - 要编组的内容树的根。
handler - XML 将被作为 SAX2 事件发送到此处理程序。
抛出:
JAXBException - 如果在编组期间发生任何不可预料的问题。
MarshalException - 如果 ValidationEventHandler 从其 handleEvent 方法返回 false,或者 Marshaller 不能编组 obj(或任何可从 obj 获得的对象)。请参阅编组 JAXB 元素

marshal

public final void marshal(Object obj,
                          Node node)
                   throws JAXBException
从接口 Marshaller 复制的描述
将以 jaxbElement 为根的内容树编组到 DOM 树中。

指定者:
接口 Marshaller 中的 marshal
参数:
obj - 要编组的内容树。
node - DOM 节点将作为此节点的子节点添加。此参数必须是一个可接受子节点(DocumentDocumentFragmentElement)的 Node。
抛出:
JAXBException - 如果在编组期间发生任何不可预料的问题。
MarshalException - 如果 ValidationEventHandler 从其 handleEvent 方法返回 false,或者 Marshaller 不能编组 jaxbElement(或任何可从 jaxbElement 获得的对象)。请参阅编组 JAXB 元素

getNode

public Node getNode(Object obj)
             throws JAXBException
默认情况下,getNode 方法不受支持并抛出 UnsupportedOperationException。 选择支持此方法的实现必须重写此方法。

指定者:
接口 Marshaller 中的 getNode
参数:
obj - XML 内容的 JAXB Java 表示形式
返回:
contentTree 的 DOM 树视图
抛出:
JAXBException - 如果发生任何不可预料的问题

getEncoding

protected String getEncoding()
获取当前输出编码的便捷方法。

返回:
当前的编码,如果没有设置编码,则返回 "UTF-8"。

setEncoding

protected void setEncoding(String encoding)
设置输出编码的便捷方法。

参数:
encoding - Marshaller 类文档中指定的有效编码

getSchemaLocation

protected String getSchemaLocation()
获取当前 schemaLocation 的便捷方法。

返回:
当前的 schemaLocation,如果没有设置 schemaLocation,则返回 null

setSchemaLocation

protected void setSchemaLocation(String location)
设置 schemaLocation 的便捷方法。

参数:
location - schemaLocation 值

getNoNSSchemaLocation

protected String getNoNSSchemaLocation()
获取当前 noNamespaceSchemaLocation 的便捷方法。

返回:
当前的 noNamespaceSchemaLocation;如果没有设置 noNamespaceSchemaLocation,则返回 null

setNoNSSchemaLocation

protected void setNoNSSchemaLocation(String location)
设置 noNamespaceSchemaLocation 的便捷方法。

参数:
location - noNamespaceSchemaLocation 值

isFormattedOutput

protected boolean isFormattedOutput()
获取格式化输出标志的便捷方法。

返回:
格式化输出标志的当前值;如果没有设置该值,则返回 false。

setFormattedOutput

protected void setFormattedOutput(boolean v)
设置格式化输出标志的便捷方法。

参数:
v - 格式化输出标志的值。

isFragment

protected boolean isFragment()
获取片段标志的便捷方法。

返回:
片段标志的当前值;如果没有设置该值,则返回 false。

setFragment

protected void setFragment(boolean v)
设置片段标志的便捷方法。

参数:
v - 片段标志的值。

getJavaEncoding

protected String getJavaEncoding(String encoding)
                          throws UnsupportedEncodingException
从 IANA 名称获取相应的 Java 编码名称。 此方法是派生类用来转换编码名称的 helper 方法。

抛出:
UnsupportedEncodingException - 如果此实现无法找到 Java 编码名称。

setProperty

public void setProperty(String name,
                        Object value)
                 throws PropertyException
setProperty 方法的默认实现处理 Marshaller 中 4 个已定义的属性。如果提供者需要处理其他属性,则应该在派生类中重写此方法。

指定者:
接口 Marshaller 中的 setProperty
参数:
name - 要设置的属性的名称。此值可以使用一个常量字段来指定,也可以是一个用户提供的字符串。
value - 要设置的属性值
抛出:
PropertyException - 如果处理给定属性或值时发生错误

getProperty

public Object getProperty(String name)
                   throws PropertyException
getProperty 方法的默认实现处理 Marshaller 中 4 个已定义的属性。如果提供者需要支持特定于其他提供者的属性,则应该在派生类中重写此方法。

指定者:
接口 Marshaller 中的 getProperty
参数:
name - 将检索的属性的名称
返回:
所请求属性的值
抛出:
PropertyException - 如果检索给定属性或值属性名称时发生错误

getEventHandler

public ValidationEventHandler getEventHandler()
                                       throws JAXBException
从接口 Marshaller 复制的描述
返回当前的事件处理程序,如果没有设置该处理程序,则返回默认的事件处理程序。

指定者:
接口 Marshaller 中的 getEventHandler
返回:
当前的 ValidationEventHandler,如果没有设置该处理程序,则返回默认的事件处理程序
抛出:
JAXBException - 如果获取当前的事件处理程序时遇到错误
另请参见:
Marshaller.getEventHandler()

setEventHandler

public void setEventHandler(ValidationEventHandler handler)
                     throws JAXBException
从接口 Marshaller 复制的描述
允许应用程序注册一个验证事件处理程序。

如果在调用任何编组 API 期间遇到任何验证错误,则 JAXB 提供者将调用验证事件处理程序。如果客户端应用程序没有在调用某个 marshal 方法之前注册验证事件处理程序,则将使用默认事件处理程序处理验证事件,默认处理程序将在遇到第一个错误或致命错误之后将终止编组操作。

调用带有 null 参数的此方法将导致 Marshaller 重新使用默认事件处理程序。

指定者:
接口 Marshaller 中的 setEventHandler
参数:
handler - 验证事件处理程序
抛出:
JAXBException - 如果在设置事件处理程序时遇到错误
另请参见:
Marshaller.setEventHandler(ValidationEventHandler)

marshal

public void marshal(Object obj,
                    XMLEventWriter writer)
             throws JAXBException
从接口 Marshaller 复制的描述
将以 jaxbElement 为根的内容树编组到 XMLEventWriter 中。

指定者:
接口 Marshaller 中的 marshal
参数:
obj - 要编组的以 jaxbElement 为根的内容树。
writer - XML 将被发送到此编写器。
抛出:
JAXBException - 如果在编组期间发生任何不可预料的问题。
MarshalException - 如果 ValidationEventHandler 从其 handleEvent 方法返回 false,或者 Marshaller 不能编组 obj(或任何可从 obj 获得的对象)。请参阅编组 JAXB 元素

marshal

public void marshal(Object obj,
                    XMLStreamWriter writer)
             throws JAXBException
从接口 Marshaller 复制的描述
将以 jaxbElement 为根的内容树编组到 XMLStreamWriter 中。

指定者:
接口 Marshaller 中的 marshal
参数:
obj - 要编组的内容树。
writer - XML 将被发送到此编写器。
抛出:
JAXBException - 如果在编组期间发生任何不可预料的问题。
MarshalException - 如果 ValidationEventHandler 从其 handleEvent 方法返回 false,或者 Marshaller 不能编组 obj(或任何可从 obj 获得的对象)。请参阅编组 JAXB 元素

setSchema

public void setSchema(Schema schema)
从接口 Marshaller 复制的描述
指定应该用作验证后续编组操作依据的 JAXP 1.3 Schema 对象。向此方法传递 null 将禁用验证。

此方法允许调用者在对已编组的 XML 进行编组时验证它。

最初,此属性被设置为 null

指定者:
接口 Marshaller 中的 setSchema
参数:
schema - 作为验证编组操作依据的 Schema 对象;为 null 表示禁用验证

getSchema

public Schema getSchema()
从接口 Marshaller 复制的描述
获取用于执行编组时验证的 JAXP 1.3 Schema 对象。如果未在 marshaller 上设置 Schema,则此方法将返回 null,指示不执行编组时验证。

指定者:
接口 Marshaller 中的 getSchema
返回:
返回用于执行编组时验证的 Schema 对象;如果该对象不存在,则返回 null。

setAdapter

public void setAdapter(XmlAdapter adapter)
从接口 Marshaller 复制的描述
将已配置的 XmlAdapter 实例与此 marshaller 关联。

这是调用 setAdapter(adapter.getClass(),adapter) 的一个便捷方法。

指定者:
接口 Marshaller 中的 setAdapter
另请参见:
Marshaller.setAdapter(Class,XmlAdapter)

setAdapter

public <A extends XmlAdapter> void setAdapter(Class<A> type,
                                              A adapter)
从接口 Marshaller 复制的描述
将已配置的 XmlAdapter 实例与此 marshaller 关联。

每个 marshaller 都可以在内部维护一个 Map<Class,XmlAdapter>,可用来编组使用 XmlJavaTypeAdapter 注释其字段/方法的类。

此方法允许应用程序使用已配置好的 XmlAdapter 实例。如果没有给出适配器实例,则 marshaller 将调用其默认构造方法创建一个实例。

指定者:
接口 Marshaller 中的 setAdapter
参数:
type - 适配器的类型。当 XmlJavaTypeAdapter.value() 引用此类型时,将使用指定的实例。
adapter - 将要使用的适配器实例。如果为 null,则将注销此类型的当前适配器集合。

getAdapter

public <A extends XmlAdapter> A getAdapter(Class<A> type)
从接口 Marshaller 复制的描述
获取与指定类型关联的适配器。 这是 Marshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter) 方法的反向操作。

指定者:
接口 Marshaller 中的 getAdapter

setAttachmentMarshaller

public void setAttachmentMarshaller(AttachmentMarshaller am)
从接口 Marshaller 复制的描述

与上下文关联,使 XML 文档内的二进制数据能够以优化的 XML 二进制附件的形式传送。可以使用存储在 xml 文档中的内容 id URI (cid) 从 XML 文档内容模式引用附件。

指定者:
接口 Marshaller 中的 setAttachmentMarshaller

getAttachmentMarshaller

public AttachmentMarshaller getAttachmentMarshaller()
指定者:
接口 Marshaller 中的 getAttachmentMarshaller

setListener

public void setListener(Marshaller.Listener listener)
从接口 Marshaller 复制的描述

向此 Marshaller 注册编组事件回调 Marshaller.Listener

每个 Marshaller 只有一个 Listener。设置 Listener 将替换以前设置的 Listener。通过将 listener 设置为 null 可注销当前的 Listener。

指定者:
接口 Marshaller 中的 setListener
参数:
listener - 实现 Marshaller.Listener 的类的实例

getListener

public Marshaller.Listener getListener()
从接口 Marshaller 复制的描述

返回向此 Marshaller 注册的 Marshaller.Listener

指定者:
接口 Marshaller 中的 getListener
返回:
注册的 Marshaller.Listener;如果未向此 Marshaller 注册任何 Listener,则返回 null

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策