java.lang.Object javax.xml.bind.helpers.AbstractMarshallerImpl
public abstract class AbstractMarshallerImpl
部分默认 Marshaller 实现。
此类提供 Marshaller
接口的部分默认实现。
JAXB 提供者必须实现的方法只有 marshal(Object, javax.xml.transform.Result)
、marshal(Object, javax.xml.stream.XMLStreamWriter)
和 marshal(Object, javax.xml.stream.XMLEventWriter)
。
=======
,
>>>>>>> 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() |
方法摘要 | ||
---|---|---|
|
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 中。 |
|
|
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 |
构造方法详细信息 |
---|
public AbstractMarshallerImpl()
方法详细信息 |
---|
public final void marshal(Object obj, OutputStream os) throws JAXBException
Marshaller
复制的描述
Marshaller
中的
marshal
obj
- 要编组的内容树的根。
os
- XML 将被添加到此流。
JAXBException
- 如果在编组期间发生任何不可预料的问题。
MarshalException
- 如果
ValidationEventHandler
从其
handleEvent 方法返回 false,或者
Marshaller 不能编组
obj(或任何可从
obj 获得的对象)。请参阅
编组 JAXB 元素。
public final void marshal(Object obj, Writer w) throws JAXBException
Marshaller
复制的描述
Marshaller
中的
marshal
obj
- 要编组的内容树的根。
w
- XML 将被发送到此编写器。
JAXBException
- 如果在编组期间发生任何不可预料的问题。
MarshalException
- 如果
ValidationEventHandler
从其
handleEvent 方法返回 false,或者
Marshaller 不能编组
obj(或任何可从
obj 获得的对象)。请参阅
编组 JAXB 元素。
public final void marshal(Object obj, ContentHandler handler) throws JAXBException
Marshaller
复制的描述
Marshaller
中的
marshal
obj
- 要编组的内容树的根。
handler
- XML 将被作为 SAX2 事件发送到此处理程序。
JAXBException
- 如果在编组期间发生任何不可预料的问题。
MarshalException
- 如果
ValidationEventHandler
从其
handleEvent 方法返回 false,或者
Marshaller 不能编组
obj(或任何可从
obj 获得的对象)。请参阅
编组 JAXB 元素。
public final void marshal(Object obj, Node node) throws JAXBException
Marshaller
复制的描述
Marshaller
中的
marshal
obj
- 要编组的内容树。
node
- DOM 节点将作为此节点的子节点添加。此参数必须是一个可接受子节点(
Document
、
DocumentFragment
或
Element
)的 Node。
JAXBException
- 如果在编组期间发生任何不可预料的问题。
MarshalException
- 如果
ValidationEventHandler
从其
handleEvent 方法返回 false,或者
Marshaller 不能编组
jaxbElement(或任何可从
jaxbElement 获得的对象)。请参阅
编组 JAXB 元素。
public Node getNode(Object obj) throws JAXBException
UnsupportedOperationException
。 选择支持此方法的实现必须重写此方法。
Marshaller
中的
getNode
obj
- XML 内容的 JAXB Java 表示形式
JAXBException
- 如果发生任何不可预料的问题
protected String getEncoding()
protected void setEncoding(String encoding)
encoding
- Marshaller 类文档中指定的有效编码
protected String getSchemaLocation()
protected void setSchemaLocation(String location)
location
- schemaLocation 值
protected String getNoNSSchemaLocation()
protected void setNoNSSchemaLocation(String location)
location
- noNamespaceSchemaLocation 值
protected boolean isFormattedOutput()
protected void setFormattedOutput(boolean v)
v
- 格式化输出标志的值。
protected boolean isFragment()
protected void setFragment(boolean v)
v
- 片段标志的值。
protected String getJavaEncoding(String encoding) throws UnsupportedEncodingException
UnsupportedEncodingException
- 如果此实现无法找到 Java 编码名称。
public void setProperty(String name, Object value) throws PropertyException
Marshaller
中的
setProperty
name
- 要设置的属性的名称。此值可以使用一个常量字段来指定,也可以是一个用户提供的字符串。
value
- 要设置的属性值
PropertyException
- 如果处理给定属性或值时发生错误
public Object getProperty(String name) throws PropertyException
Marshaller
中的
getProperty
name
- 将检索的属性的名称
PropertyException
- 如果检索给定属性或值属性名称时发生错误
public ValidationEventHandler getEventHandler() throws JAXBException
Marshaller
复制的描述
Marshaller
中的
getEventHandler
JAXBException
- 如果获取当前的事件处理程序时遇到错误
Marshaller.getEventHandler()
public void setEventHandler(ValidationEventHandler handler) throws JAXBException
Marshaller
复制的描述
如果在调用任何编组 API 期间遇到任何验证错误,则 JAXB 提供者将调用验证事件处理程序。如果客户端应用程序没有在调用某个 marshal 方法之前注册验证事件处理程序,则将使用默认事件处理程序处理验证事件,默认处理程序将在遇到第一个错误或致命错误之后将终止编组操作。
调用带有 null 参数的此方法将导致 Marshaller 重新使用默认事件处理程序。
Marshaller
中的
setEventHandler
handler
- 验证事件处理程序
JAXBException
- 如果在设置事件处理程序时遇到错误
Marshaller.setEventHandler(ValidationEventHandler)
public void marshal(Object obj, XMLEventWriter writer) throws JAXBException
Marshaller
复制的描述
XMLEventWriter
中。
Marshaller
中的
marshal
obj
- 要编组的以 jaxbElement 为根的内容树。
writer
- XML 将被发送到此编写器。
JAXBException
- 如果在编组期间发生任何不可预料的问题。
MarshalException
- 如果
ValidationEventHandler
从其
handleEvent 方法返回 false,或者
Marshaller 不能编组
obj(或任何可从
obj 获得的对象)。请参阅
编组 JAXB 元素。
public void marshal(Object obj, XMLStreamWriter writer) throws JAXBException
Marshaller
复制的描述
XMLStreamWriter
中。
Marshaller
中的
marshal
obj
- 要编组的内容树。
writer
- XML 将被发送到此编写器。
JAXBException
- 如果在编组期间发生任何不可预料的问题。
MarshalException
- 如果
ValidationEventHandler
从其
handleEvent 方法返回 false,或者
Marshaller 不能编组
obj(或任何可从
obj 获得的对象)。请参阅
编组 JAXB 元素。
public void setSchema(Schema schema)
Marshaller
复制的描述
Schema
对象。向此方法传递 null 将禁用验证。
此方法允许调用者在对已编组的 XML 进行编组时验证它。
最初,此属性被设置为 null。
Marshaller
中的
setSchema
schema
- 作为验证编组操作依据的 Schema 对象;为 null 表示禁用验证
public Schema getSchema()
Marshaller
复制的描述
Schema
对象。如果未在 marshaller 上设置 Schema,则此方法将返回 null,指示不执行编组时验证。
Marshaller
中的
getSchema
public void setAdapter(XmlAdapter adapter)
Marshaller
复制的描述
XmlAdapter
实例与此 marshaller 关联。
这是调用 setAdapter(adapter.getClass(),adapter)
的一个便捷方法。
Marshaller
中的
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,则将注销此类型的当前适配器集合。
public <A extends XmlAdapter> A getAdapter(Class<A> type)
M