public abstract class Binder<XmlNode> extends ObjectSE
このクラスのインスタンスは、情報セット保存ビューの XML ノードと XML ドキュメントの Jakarta XML Binding 表現との間の関連付けを維持します。2 つのビュー間のナビゲーションは、メソッド getXMLNode(Object)
および getJAXBNode(Object)
によって提供されます。
情報セット保存ビューまたはドキュメントの Jakarta XML Binding 表現のいずれかに変更を加えることができますが、他のビューは変更されません。バインダーは、適切なバインダー更新メソッド updateXML(Object, Object)
または updateJAXB(Object)
を使用して、変更されたビューで行われた変更を他のビューに同期することができます。
一般的な使用シナリオは次のとおりです。
unmarshal(Object)
XML 情報セットビューから Jakarta XML Binding ビュー。(リソースを節約するために、XML インフォセットビューのサブツリーのみを Jakarta XML Binding ビューにアンマーシャリングすることが可能であることに注意してください。)updateXML(Object)
は、Jakarta XML Binding ビューへの変更を XML インフォセットビューに同期します。更新操作は、元の XML 情報セットを可能な限り保持します (つまり、コメント、PI、..。) バインダーインスタンスは、ファクトリメソッド JAXBContext.createBinder()
または JAXBContext.createBinder(Class)
を使用して作成されます。
テンプレートパラメーター XmlNode
は、XML 情報セット保存表現のルートインターフェース / クラスです。org.w3c.dom.Node.class
の XmlNode
値を最小限にサポートするには、バインダーの実装が必要です。バインダーの実装は、表現を保持する代替の XML 情報セットをサポートできます。
コンストラクターと説明 |
---|
Binder() |
修飾子と型 | メソッドと説明 |
---|---|
abstract ValidationEventHandler | getEventHandler() 現在のイベントハンドラー、または設定されていない場合はデフォルトのイベントハンドラーを返します。 |
abstract ObjectSE | getJAXBNode(XmlNode xmlNode) 指定された XML 要素に関連付けられた Jakarta XML Binding オブジェクトを取得します。 |
abstract ObjectSE | getProperty(StringSE name) Binder の基礎となる実装で特定のプロパティを取得します。 |
abstract SchemaSE | getSchema() setSchema(Schema) メソッドによって設定された最後の Schema SE オブジェクト(null を含む)を取得します。 |
abstract XmlNode | getXMLNode(ObjectSE jaxbObject) 指定された Jakarta XML Binding オブジェクトに関連付けられた XML 要素を取得します。 |
abstract void | marshal(ObjectSE jaxbObject, XmlNode xmlNode) Jakarta XML Binding オブジェクトツリーを新しい XML ドキュメントにマーシャリングします。 |
abstract void | setEventHandler(ValidationEventHandler handler) アプリケーションが ValidationEventHandler を登録できるようにします。 |
abstract void | setProperty(StringSE name, ObjectSE value) Binder の基礎となる実装で特定のプロパティを設定します。 |
abstract void | setSchema(SchemaSE schema) marshal、unmarshal、update メソッドが XML コンテンツの検証を実行するかどうかを指定します。 |
abstract ObjectSE | unmarshal(XmlNode xmlNode) XML 情報セットビューを Jakarta XML Binding オブジェクトツリーにアンマーシャルします。 |
abstract <T> JAXBElement<T> | unmarshal(XmlNode xmlNode, ClassSE<T> declaredType) declaredType を Jakarta XML Binding オブジェクトツリーに提供することにより、XML ルート要素を非整列化します。 |
abstract ObjectSE | updateJAXB(XmlNode xmlNode) XML ノードを取得し、関連する Jakarta XML Binding オブジェクトとその子孫を更新します。 |
abstract XmlNode | updateXML(ObjectSE jaxbObject) Jakarta XML Binding オブジェクトを取得し、関連する XML ノードとその子孫を更新します。 |
abstract XmlNode | updateXML(ObjectSE jaxbObject, XmlNode xmlNode) Jakarta XML Binding オブジェクトツリーの変更は、関連する XML 解析ツリーで更新されます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public abstract ObjectSE unmarshal(XmlNode xmlNode) throws JAXBException
この方法は Unmarshaller.unmarshal(Node)
に似ていますが、XML ノードと生成された Jakarta XML Binding オブジェクト間の関連付けを維持し、将来の更新操作 updateXML(Object, Object)
または updateJAXB(Object)
を可能にする点が追加されています。
getSchema()
が null 以外の場合、xmlNode
とその子孫はこの操作中に検証されます。
このメソッドは、バインダーの JAXBContext
に、xmlNode
の XML 要素名または型(@xsi:type
を介して指定可能)の Jakarta XML Binding マップクラスへのマッピングがない場合に UnmarshalException
をスローします。メソッド unmarshal(Object, Class)
を使用すると、アプリケーションは、xmlNode
をマップする必要がある Jakarta XML Binding マップクラスを指定できます。
xmlNode
- XML データのマーシャリングを解除するドキュメント / 要素。JAXBException
- マーシャリング解除中に予期しないエラーが発生した場合 UnmarshalException
- ValidationEventHandler
が handleEvent
メソッドから false を返す場合、または Binder
が XML から Java へのバインディングを実行できない場合。IllegalArgumentExceptionSE
- ノードパラメーターが null の場合 public abstract <T> JAXBElement<T> unmarshal(XmlNode xmlNode, ClassSE<T> declaredType) throws JAXBException
declaredType
を Jakarta XML Binding オブジェクトツリーに提供することにより、XML ルート要素を非整列化します。宣言された型によるアンマーシャルを実装します
この方法は Unmarshaller.unmarshal(Node, Class)
に似ていますが、XML ノードと生成された Jakarta XML Binding オブジェクト間の関連付けを維持し、将来の更新操作 updateXML(Object, Object)
または updateJAXB(Object)
を可能にする点が追加されています。
getSchema()
が null 以外の場合、xmlNode
とその子孫はこの操作中に検証されます。
xmlNode
- XML データのマーシャリングを解除するドキュメント / 要素。declaredType
- node
の XML データを保持するための適切な Jakarta XML Binding マップクラス。node
の JAXBElement 表現 JAXBException
- マーシャリング解除中に予期しないエラーが発生した場合 UnmarshalException
- ValidationEventHandler
が handleEvent
メソッドから false を返す場合、または Binder
が XML から Java へのバインディングを実行できない場合。IllegalArgumentExceptionSE
- 入力パラメーターのいずれかが null の場合 public abstract void marshal(ObjectSE jaxbObject, XmlNode xmlNode) throws JAXBException
この方法は Marshaller.marshal(Object, Node)
に似ていますが、Jakarta XML Binding オブジェクトと生成された XML ノード間の関連付けを維持し、updateXML(Object, Object)
や updateJAXB(Object)
などの将来の更新操作を可能にする点が追加されています。
getSchema()
が null 以外の場合、マーシャリングされた xml コンテンツはこの操作中に検証されます。
jaxbObject
- マーシャリングされるコンテンツツリー。xmlNode
- パラメーターは、子を受け入れるノードである必要があります。JAXBException
- マーシャリング中に予期しない問題が発生した場合。MarshalException
- ValidationEventHandler
が handleEvent
メソッドから false を返す場合、または Binder
が jaxbObject
(または jaxbObject
から到達可能なオブジェクト)をマーシャリングできない場合。IllegalArgumentExceptionSE
- メソッドパラメーターのいずれかが null の場合 public abstract XmlNode getXMLNode(ObjectSE jaxbObject)
Jakarta XML Binding オブジェクトツリーが XML フラグメントに関連付けられると、このメソッドは 2 つのツリー間のナビゲーションを有効にします。
XML 要素と Jakarta XML Binding オブジェクト間の関連付けは、bind メソッドと update メソッドによって確立されます。この関連付けは部分的であることに注意してください。すべての XML 要素に Jakarta XML Binding オブジェクトが関連付けられているわけではなく、すべての Jakarta XML Binding オブジェクトに XML 要素が関連付けられているわけでもありません。
jaxbObject
- Jakarta XML Binding オブジェクトツリーを返した bind または update メソッドへの以前の呼び出しから到達可能なインスタンス。Binder
に認識されていない場合、または XML 要素に関連付けられていない場合は null。IllegalArgumentExceptionSE
- jaxbObject パラメーターが null の場合 public abstract ObjectSE getJAXBNode(XmlNode xmlNode)
Jakarta XML Binding オブジェクトツリーが XML フラグメントに関連付けられると、このメソッドは 2 つのツリー間のナビゲーションを有効にします。
XML 要素と Jakarta XML Binding オブジェクト間の関連付けは、unmarshal、marshal、update メソッドによって確立されます。この関連付けは部分的であることに注意してください。すべての XML 要素に Jakarta XML Binding オブジェクトが関連付けられているわけではなく、すべての Jakarta XML Binding オブジェクトに XML 要素が関連付けられているわけでもありません。
Binder
に認識されていない場合、または Jakarta XML Binding オブジェクトに関連付けられていない場合は null。IllegalArgumentExceptionSE
- ノードパラメーターが null の場合 public abstract XmlNode updateXML(ObjectSE jaxbObject) throws JAXBException
これは次の便利なメソッドです。
updateXML( jaxbObject, getXMLNode(jaxbObject));
JAXBException
- 対応する XML コンテンツの更新で予期しない問題が発生した場合。IllegalArgumentExceptionSE
- jaxbObject パラメーターが null の場合 public abstract XmlNode updateXML(ObjectSE jaxbObject, XmlNode xmlNode) throws JAXBException
この操作は、「インプレース」マーシャリングと考えることができます。違いは、この操作では、まったく新しい XML ツリーを作成する代わりに、XML を可能な限り保持しようとしながら、既存のツリーを更新することです。
例: Jakarta XML Binding にバインドされていない XML 内の不明な要素 / 属性は変更されません (一方、マーシャリング操作では、含まない新しいツリーが作成されます。)
副作用として、この操作は XML ノードと Jakarta XML Binding オブジェクト間の関連付けを更新します。
jaxbObject
- 変更される可能性のある Jakarta XML Binding オブジェクトツリーのルート xmlNode
- 更新ターゲット XML 解析ツリーのルート JAXBException
- 対応する XML コンテンツの更新で予期しない問題が発生した場合。IllegalArgumentExceptionSE
- 入力パラメーターのいずれかが null の場合 public abstract ObjectSE updateJAXB(XmlNode xmlNode) throws JAXBException
この操作は、「インプレース」のマーシャリング解除と考えることができます。違いは、まったく新しい Jakarta XML Binding ツリーを作成する代わりに、この操作で既存のツリーを更新し、可能な限り多くの Jakarta XML Binding オブジェクトを再利用することです。
副作用として、この操作は XML ノードと Jakarta XML Binding オブジェクト間の関連付けを更新します。
marshal(Object,Object)
または updateJAXB(Object)
メソッドの呼び出しから返されたオブジェクトと同じですが、たとえば XML 要素の名前が変更された場合などは別のオブジェクトである可能性があります。JAXBException
- 対応する Jakarta XML Binding マップコンテンツの更新で予期しない問題が発生した場合。IllegalArgumentExceptionSE
- ノードパラメーターが null の場合 public abstract void setSchema(SchemaSE schema)
schema
- 検証を無効にするには、null に設定します。Unmarshaller.setSchema(Schema)
public abstract SchemaSE getSchema()
setSchema(Schema)
メソッドによって設定された最後の Schema
SE オブジェクト(null を含む)を取得します。public abstract void setEventHandler(ValidationEventHandler handler) throws JAXBException
ValidationEventHandler
を登録できるようにします。ValidationEventHandler
は、バインダーのアンマーシャル、マーシャル、更新メソッドのいずれかの呼び出し中に検証エラーが発生した場合に、Jakarta XML Binding Provider によって呼び出されます。
null パラメーターを指定してこのメソッドを呼び出すと、バインダーはデフォルトのデフォルトのイベントハンドラーに戻ります。
handler
- 検証イベントハンドラー JAXBException
- イベントハンドラーの設定中にエラーが発生した場合 public abstract ValidationEventHandler getEventHandler() throws JAXBException
JAXBException
- 現在のイベントハンドラーの取得中にエラーが発生した場合 public abstract void setProperty(StringSE name, ObjectSE value) throws PropertyException
Binder
の基礎となる実装で特定のプロパティを設定します。このメソッドは、標準の Jakarta XML Binding で定義されたアンマーシャル / マーシャルプロパティの 1 つ、またはバインダー、アンマーシャル、マーシャルのプロバイダー固有のプロパティを設定するためにのみ使用できます。未定義のプロパティを設定しようとすると、PropertyException がスローされます。サポートされているアンマーシャルプロパティおよびサポートされているマーシャルプロパティを参照してください。name
- 設定するプロパティの名前。この値は、定数フィールドの 1 つまたはユーザー指定の文字列を使用して指定できます。value
- 設定するプロパティの値 PropertyException
- 指定されたプロパティまたは値の処理中にエラーが発生した場合 IllegalArgumentExceptionSE
- name パラメーターが null の場合 public abstract ObjectSE getProperty(StringSE name) throws PropertyException
Binder
の基礎となる実装で特定のプロパティを取得します。このメソッドは、標準の Jakarta XML Binding で定義されたアンマーシャル / マーシャルプロパティ、またはバインダー、アンマーシャル、マーシャルのプロバイダー固有のプロパティの 1 つを取得するためにのみ使用できます。未定義のプロパティを取得しようとすると、PropertyException がスローされます。サポートされているアンマーシャルプロパティおよびサポートされているマーシャルプロパティを参照してください。name
- 取得するプロパティの名前 PropertyException
- 指定されたプロパティまたは値のプロパティ名の取得中にエラーが発生した場合 IllegalArgumentExceptionSE
- name パラメーターが null の場合 Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.