public abstract class Binder<XmlNode> extends Object
这个类的一个实例保持InfoSet保存视图的XML节点和XML文档的JAXB表示之间的关联。两视图之间导航的方法和getJAXBNode(Object)
提供getXMLNode(Object)
。
可以修改或信息集保存视图或文档的JAXB表示而其他视图保持不变。粘合剂能够同步改良观到其他视图中使用合适的粘结剂的更新方法的变化,updateXML(Object, Object)
或updateJAXB(Object)
。
一个典型的使用场景如下:
unmarshal(Object)
XML Infoset观JAXB观。(注意节约资源,只能分解子树XML信息集观JAXB的观点。)updateXML(Object)
JAXB视图同步回XML Infoset视图的修改。更新操作保留尽可能多的原始XML Infoset(即评论,PI,…)粘合剂的实例是使用工厂方法创建JAXBContext.createBinder()
或JAXBContext.createBinder(Class)
。
模板参数,XmlNode
,是XML信息集保存表示根接口/类。粘合剂的实现需要最小支持org.w3c.dom.Node.class
一XmlNode
价值。粘合剂实现可以支持替代XML Infoset保存表示。
Constructor and Description |
---|
Binder() |
Modifier and Type | Method and Description |
---|---|
abstract ValidationEventHandler |
getEventHandler()
如果一个没有被设置,返回当前事件处理程序或默认事件处理程序。
|
abstract Object |
getJAXBNode(XmlNode xmlNode)
获取与给定的XML元素相关联的JAXB对象。
|
abstract Object |
getProperty(String name)
在
Binder底层实现获得特定的属性。
|
abstract Schema |
getSchema()
最后
Schema 对象(包括零)的
setSchema(Schema) 方法。
|
abstract XmlNode |
getXMLNode(Object jaxbObject)
获取与给定的JAXB对象关联的XML元素。
|
abstract void |
marshal(Object jaxbObject, XmlNode xmlNode)
元帅JAXB对象树的一个新的XML文档。
|
abstract void |
setEventHandler(ValidationEventHandler handler)
允许应用程序登记一
ValidationEventHandler。
|
abstract void |
setProperty(String name, Object value)
在
Binder底层实现设置特定的属性。
|
abstract void |
setSchema(Schema schema)
指定是否元帅、分解和更新方法对XML内容的验证。
|
abstract Object |
unmarshal(XmlNode xmlNode)
数据的XML Infoset以便JAXB对象树。
|
abstract <T> JAXBElement<T> |
unmarshal(XmlNode xmlNode, 类<T> declaredType)
数据的XML根元素来提供
declaredType JAXB对象树。
|
abstract Object |
updateJAXB(XmlNode xmlNode)
以一个XML节点和更新相关的JAXB对象及其后裔。
|
abstract XmlNode |
updateXML(Object jaxbObject)
采用JAXB对象和更新相关的XML节点及其子孙。
|
abstract XmlNode |
updateXML(Object jaxbObject, XmlNode xmlNode)
在JAXB对象树的变化是在其相关的XML解析树的更新。
|
public abstract Object unmarshal(XmlNode xmlNode) throws JAXBException
这种方法类似于Unmarshaller.unmarshal(Node)
以维护XML节点和生产的JAXB对象之间的关联的加入,使未来的更新操作,updateXML(Object, Object)
或updateJAXB(Object)
。
当getSchema()
非空,xmlNode
及其后代进行了验证该操作中。
该方法将UnmarshalException
当粘合剂的JAXBContext
没有该XML元素的名称或类型的映射,可以通过@xsi:type,xmlNode JAXB映射的一类。方法unmarshal(Object, Class)
使应用程序指定的JAXB映射类,xmlNode应映射到。
xmlNode
-文档/元来分解XML数据。
JAXBException
-如果任何意外的错误发生而解散
UnmarshalException
-如果
ValidationEventHandler
返回false其
handleEvent法或
Binder无法执行XML java绑定。
IllegalArgumentException
如果节点参数为空
public abstract <T> JAXBElement<T> unmarshal(XmlNode xmlNode, 类<T> declaredType) throws JAXBException
这种方法类似于Unmarshaller.unmarshal(Node, Class)
以维护XML节点和生产的JAXB对象之间的关联的加入,使未来的更新操作,updateXML(Object, Object)
或updateJAXB(Object)
。
当getSchema()
非空,xmlNode
及其后代进行了验证该操作中。
xmlNode
-文档/元来分解XML数据。
declaredType
JAXB映射类适合举行
node的XML数据。
JAXBException
-如果任何意外的错误发生而解散
UnmarshalException
-如果
ValidationEventHandler
返回false其
handleEvent法或
Binder无法执行XML java绑定。
IllegalArgumentException
-如果任何输入参数为空
public abstract void marshal(Object jaxbObject, XmlNode xmlNode) throws JAXBException
这种方法类似于Marshaller.marshal(Object, Node)
以维护JAXB对象和产生的XML节点之间的关联,使未来的更新等操作updateXML(Object, Object)
或updateJAXB(Object)
。
当getSchema()
非空,验证在这个操作XML内容整理。
jaxbObject
-内容被整理。
xmlNode
的参数必须是一个节点,接受孩子。
JAXBException
-如果在编组发生任何意外的问题。
MarshalException
-如果
ValidationEventHandler
返回false其
handleEvent法或
Binder无法
jaxbObject元帅(或任何物体可从
jaxbObject)。
IllegalArgumentException
-如果任何方法的参数是空的
public abstract XmlNode getXMLNode(Object jaxbObject)
一旦JAXB对象树是用一个XML片段有关,这种方法使在两棵树之间导航。
一个XML元素和JAXB对象之间的关联是通过绑定方法和更新方法。注意,这个协会是部分;不是所有的XML元素有关联的JAXB对象,并不是所有的JAXB对象相关的XML元素。
jaxbObject
-实例,可从现有电话绑定或更新方法,返回一个JAXB对象树。
Binder
null,或者如果它是不是一个XML元素相关。
IllegalArgumentException
-如果jaxbobject参数为空
public abstract Object getJAXBNode(XmlNode xmlNode)
一旦JAXB对象树是用一个XML片段有关,这种方法使在两棵树之间导航。
一个XML元素和JAXB对象之间的关联是通过数据的建立及更新方法,元帅。注意,这个协会是部分;不是所有的XML元素有关联的JAXB对象,并不是所有的JAXB对象相关的XML元素。
Binder
null,或者如果它不与JAXB对象关联。
IllegalArgumentException
如果节点参数为空
public abstract XmlNode updateXML(Object jaxbObject) throws JAXBException
这是一种方便的方法:
updatexml(jaxbobject,getxmlnode(jaxbobject));
JAXBException
-如果任何意想不到的问题发生相应的XML内容更新。
IllegalArgumentException
-如果jaxbobject参数为空
public abstract XmlNode updateXML(Object jaxbObject, XmlNode xmlNode) throws JAXBException
这种操作可以被认为是一个“到位”的编组。不同的是,这个操作不是创建一个新的XML树,而是在试图尽可能多地保存XML时更新一个现有的树,而不是一个新的XML树。
例如,未知的元素/属性的XML没有必然的JAXB将原封不动(而编组操作将创建一个新的树,不包含任何人。)
作为一个副作用,这个操作更新XML节点和JAXB对象之间的关联。
jaxbObject
根可能修改JAXB对象树
xmlNode
-更新对象的XML解析树的根
JAXBException
-如果任何意想不到的问题发生相应的XML内容更新。
IllegalArgumentException
-如果任何输入参数为空
public abstract Object updateJAXB(XmlNode xmlNode) throws JAXBException
此操作可以被认为是一个“到位”组。不同的是,而不是创建一个全新的JAXB树,此操作更新现有的树,利用尽可能多的JAXB对象。
作为一个副作用,这个操作更新XML节点和JAXB对象之间的关联。
marshal(Object,Object)
或
updateJAXB(Object)
方法调用返回,但它可能是一个不同的对象,例如当XML元素的名称发生了变化。
JAXBException
-如果任何意想不到的问题发生的JAXB映射对应的更新内容。
IllegalArgumentException
如果节点参数为空
public abstract void setSchema(Schema schema)
schema
-设置为禁用验证。
Unmarshaller.setSchema(Schema)
public abstract Schema getSchema()
Schema
对象(包括零)的
setSchema(Schema)
方法。
public abstract void setEventHandler(ValidationEventHandler handler) throws JAXBException
的ValidationEventHandler将由JAXB提供者如果任何验证期间遇到错误调用任何粘合剂的分解,元帅和更新方法。
调用此方法与一个空参数将导致粘合剂恢复到默认的默认事件处理程序。
handler
-验证事件处理程序
JAXBException
如果同时设置事件处理程序时出错
public abstract ValidationEventHandler getEventHandler() throws JAXBException
JAXBException
-如果在当前的事件处理程序时出错
public abstract void setProperty(String name, Object value) throws PropertyException
name
-属性的名称是。此值可以使用常量字段或用户提供的字符串中的一个指定。
value
-属性要设置的值
PropertyException
-当有特定的属性或值的误差处理
IllegalArgumentException
如果Name参数为空
public abstract Object getProperty(String name) throws PropertyException
name
-属性的名称检索
PropertyException
-当有检索给定属性或值的属性名称错误
IllegalArgumentException
如果Name参数为空
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.