public abstract class AbstractMarshallerImpl extends Object implements Marshaller
这个类提供了部分默认实现Marshaller
接口。
一个JAXB提供者必须实现的唯一方法是marshal(Object, javax.xml.transform.Result)
, marshal(Object, javax.xml.stream.XMLStreamWriter)
和marshal(Object, javax.xml.stream.XMLEventWriter)
。
Marshaller
Marshaller.Listener
JAXB_ENCODING, JAXB_FORMATTED_OUTPUT, JAXB_FRAGMENT, JAXB_NO_NAMESPACE_SCHEMA_LOCATION, JAXB_SCHEMA_LOCATION
Constructor and Description |
---|
AbstractMarshallerImpl() |
Modifier and Type | Method and Description |
---|---|
<A extends XmlAdapter> |
getAdapter(类<A> type)
获取与指定类型相关联的适配器。
|
AttachmentMarshaller |
getAttachmentMarshaller() |
protected String |
getEncoding()
获取当前输出编码的便利方法。
|
ValidationEventHandler |
getEventHandler()
返回当前事件处理程序或默认事件处理程序(如果尚未设置)。
|
protected String |
getJavaEncoding(String encoding)
从IANA名称获取相应的Java编码名称。
|
Marshaller.Listener |
getListener()
|
Node |
getNode(Object obj)
默认情况下,getNode方法不受支持,并抛出一个 UnsupportedOperationException 。
|
protected String |
getNoNSSchemaLocation()
获取当前noNamespaceSchemaLocation的便利方法。
|
Object |
getProperty(String name)
getProperty方法的默认实现处理Marshaller中四个定义的属性。
|
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 jaxbElement, File output)
将根据
jaxbElement的内容树
组织成一个文件。
|
void |
marshal(Object obj, Node node)
将根源于
jaxbElement的内容树
组织到一个DOM树中。
|
void |
marshal(Object obj, OutputStream os)
将根据
jaxbElement的内容树
组织成输出流。
|
void |
marshal(Object obj, Writer w)
将根植于
jaxbElement的内容树
组织成一个作家。
|
void |
marshal(Object obj, XMLEventWriter writer)
将根据jaxbElement的内容树组织成一个 XMLEventWriter 。
|
void |
marshal(Object obj, XMLStreamWriter writer)
将根植于jaxbElement的内容树组织成一个 XMLStreamWriter 。
|
<A extends XmlAdapter> |
setAdapter(类<A> type, A adapter)
相关联的配置实例 XmlAdapter 这个编组。
|
void |
setAdapter(XmlAdapter adapter)
相关联的配置实例 XmlAdapter 这个编组。
|
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.Listener 与此Marshaller 。
|
protected void |
setNoNSSchemaLocation(String location)
设置noNamespaceSchemaLocation的便利方法。
|
void |
setProperty(String name, Object value)
setProperty方法的默认实现处理Marshaller中四个定义的属性。
|
void |
setSchema(Schema schema)
|
protected void |
setSchemaLocation(String location)
设置schemaLocation的便利方法。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
marshal
public final void marshal(Object obj, OutputStream os) throws JAXBException
Marshaller
复制
marshal
在接口
Marshaller
obj
- 要编组的内容树的根。
os
- XML将被添加到此流。
JAXBException
- 如果在编组过程中发生意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回false,或者Marshaller无法组合obj (或任何可从obj可访问的对象)。
见Marshalling a JAXB element 。
public void marshal(Object jaxbElement, File output) throws JAXBException
Marshaller
复制
marshal
在接口
Marshaller
jaxbElement
- 要编组的内容树的根。
output
- output
文件。
如果这个文件已经存在,它将被覆盖。
JAXBException
- 如果在编组过程中发生意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回false,或者Marshaller无法组织obj (或任何可从obj访问的对象)。
见Marshalling a JAXB element 。
public final void marshal(Object obj, Writer w) throws JAXBException
Marshaller
复制
marshal
在界面
Marshaller
obj
- 要编组的内容树的根。
w
- 将XML发送给作者。
JAXBException
- 如果在编组过程中发生意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回false,或者Marshaller无法组织obj (或任何可从obj可访问的对象)。
见Marshalling a JAXB element 。
public final void marshal(Object obj, ContentHandler handler) throws JAXBException
Marshaller
复制
marshal
在界面
Marshaller
obj
- 要编组的内容树的根。
handler
- XML将作为SAX2事件发送到此处理程序。
JAXBException
- 如果编组期间出现意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回虚假,或者Marshaller无法组织obj (或从obj可访问的任何对象)。
见Marshalling a JAXB element 。
public final void marshal(Object obj, Node node) throws JAXBException
Marshaller
复制
marshal
在界面
Marshaller
obj
- 要编组的内容树。
node
- 将作为此节点的子节点添加DOM节点。
此参数必须是一个可接受子(节点Document
, DocumentFragment
,或Element
)
JAXBException
- 如果在编组过程中出现意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回false,或者Marshaller无法组织jaxbElement (或任何可从jaxbElement可访问的对象)。
见Marshalling a JAXB element 。
public Node getNode(Object obj) throws JAXBException
UnsupportedOperationException
。
选择支持此方法的实现必须覆盖此方法。
getNode
在界面
Marshaller
obj
- - JAXB XML内容的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
setProperty
在界面
Marshaller
name
- 要设置的属性的名称。
可以使用常量字段或用户提供的字符串指定此值。
value
- 要设置的属性的值
PropertyException
- 处理给定属性或值时出错
public Object getProperty(String name) throws PropertyException
getProperty
在界面
Marshaller
name
- 要检索的属性的名称
PropertyException
- 检索给定属性或值属性名称时出现错误
public ValidationEventHandler getEventHandler() throws JAXBException
Marshaller
getEventHandler
在接口
Marshaller
JAXBException
- 如果在获取当前事件处理程序时遇到错误
Marshaller.getEventHandler()
public void setEventHandler(ValidationEventHandler handler) throws JAXBException
Marshaller
复制
如果在任何元帅API的调用期间遇到任何验证错误,JAXB提供者将调用验证事件处理程序。 如果客户端应用程序在调用其中一个元数据方法之前没有注册验证事件处理程序,则验证事件将由默认事件处理程序处理,该事件处理程序将在遇到第一个错误或致命错误后终止元组操作。
使用null参数调用此方法将导致Marshaller恢复为默认的默认事件处理程序。
setEventHandler
在接口
Marshaller
handler
- 验证事件处理程序
JAXBException
- 如果在设置事件处理程序时遇到错误
Marshaller.setEventHandler(ValidationEventHandler)
public void marshal(Object obj, XMLEventWriter writer) throws JAXBException
Marshaller
复制
XMLEventWriter
。
marshal
在界面
Marshaller
obj
- 根据要编组的jaxbElement的内容树。
writer
- XML将被发送到这个作者。
JAXBException
- 如果在编组过程中发生意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回false,或者Marshaller无法组合obj (或任何可从obj可访问的对象)。
见Marshalling a JAXB element 。
public void marshal(Object obj, XMLStreamWriter writer) throws JAXBException
Marshaller
XMLStreamWriter
。
marshal
在界面
Marshaller
obj
- 要编组的内容树。
writer
- XML将被发送到这个作者。
JAXBException
- 如果在编组过程中发生意外问题。
MarshalException
- 如果ValidationEventHandler
从其handleEvent方法返回false,或者Marshaller无法组织obj (或任何可从obj访问的对象)。
见Marshalling a JAXB element 。
public void setSchema(Schema schema)
Marshaller
setSchema
在界面
Marshaller
schema
- 用于验证
schema
模式对象或null以禁用验证
public Schema getSchema()
Marshaller
复制
Schema
对象。
如果在编组器中没有设置Schema,则该方法将返回null,表示将不执行组织时间验证。
getSchema
在界面
Marshaller
public void setAdapter(XmlAdapter adapter)
Marshaller
复制
XmlAdapter
这个编组。
这是调用setAdapter(adapter.getClass(),adapter);
的方便方法。
setAdapter
在接口
Marshaller
Marshaller.setAdapter(Class,XmlAdapter)
public <A extends XmlAdapter> void setAdapter(类<A> type, A adapter)
Marshaller
XmlAdapter
这个编组。
每编组内部维护一个Map
< 类
, XmlAdapter
>,它使用用于编组类,它们的字段/方法的注解为XmlJavaTypeAdapter
。
此方法允许应用程序使用的一个配置实例XmlAdapter
。 当没有给出适配器的实例时,编组者将通过调用其默认构造函数来创建一个。
setAdapter
在接口
Marshaller
type
- 适配器的类型。
当XmlJavaTypeAdapter.value()
引用此类型时,将使用指定的实例。
adapter
- 要使用的适配器的实例。
如果为空,它将取消注册此类型的当前适配器集。
public <A extends XmlAdapter> A getAdapter(类<A> type)
Marshaller
复制
Marshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter)
方法的反向操作。
getAdapter
在接口
Marshaller
public void setAttachmentMarshaller(AttachmentMarshaller am)
Marshaller
关联使XML文档中的二进制数据能够以XML二进制优化的附件传输的上下文。 附件由XML文档内容模型通过存储在xml文档中的content-id URI(cid)引用引用。
setAttachmentMarshaller
在界面
Marshaller
public AttachmentMarshaller getAttachmentMarshaller()
getAttachmentMarshaller
在接口
Marshaller
public void setListener(Marshaller.Listener listener)
Marshaller
注册元帅事件回调Marshaller.Listener
与此Marshaller
。
每个Marshaller只有一个监听器。 设置侦听器将替换以前设置的侦听器。 通过将侦听器设置为null,可以取消注册当前侦听器。
setListener
在界面
Marshaller
listener
-实现一个类的实例Marshaller.Listener
public Marshaller.Listener getListener()
Marshaller
复制
getListener
在接口
Marshaller
Marshaller.Listener
或null
如果没有监听器注册该Marshaller。