クラス Binder<XmlNode>
- java.lang.ObjectSE
-
- jakarta.xml.bind.Binder<XmlNode>
- 型パラメーター:
XmlNode- テンプレートパラメーターXmlNodeは、表現を保持する XML 情報セットのルートインターフェース / クラスです。org.w3c.dom.Node.classのXmlNode値を最小限サポートするには、バインダーの実装が必要です。Binder 実装は、表現を保持する代替の XML 情報セットをサポートできます。
public abstract class Binder<XmlNode> extends ObjectSE
XML インフォセットノードと同じ XML ドキュメントを表す Jakarta XML Binding オブジェクト間の同期を有効にします。このクラスのインスタンスは、情報セット保存ビューの XML ノードと XML ドキュメントの Jakarta XML Binding 表現との間の関連付けを維持します。2 つのビュー間のナビゲーションは、メソッド
getXMLNode(Object)およびgetJAXBNode(Object)によって提供されます。情報セット保存ビューまたはドキュメントの Jakarta XML Binding 表現のいずれかに変更を加えることができますが、他のビューは変更されません。バインダーは、適切なバインダー更新メソッド
updateXML(Object, Object)またはupdateJAXB(Object)を使用して、変更されたビューで行われた変更を他のビューに同期することができます。一般的な使用シナリオは次のとおりです。
- XML ドキュメントを XML 情報セット表現にロードします
unmarshal(Object)XML 情報セットビューから Jakarta XML Binding ビュー。(リソースを節約するために、XML インフォセットビューのサブツリーのみを Jakarta XML Binding ビューにアンマーシャリングすることが可能であることに注意してください。)- アプリケーションは、XML ドキュメントの Jakarta XML Binding ビューにアクセス / 更新します。
updateXML(Object)は、Jakarta XML Binding ビューへの変更を XML インフォセットビューに同期します。更新操作は、元の XML 情報セットを可能な限り保持します (つまり、コメント、PI、..。)
バインダーインスタンスは、ファクトリメソッド
JAXBContext.createBinder()またはJAXBContext.createBinder(Class)を使用して作成されます。- 導入:
- 1.6、JAXB 2.0
- 作成者:
- Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) Joseph Fialli
コンストラクター概要
コンストラクター 修飾子 コンストラクター 説明 protectedBinder()派生クラスの何もしないコンストラクター。
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 abstract ValidationEventHandlergetEventHandler()現在のイベントハンドラー、または設定されていない場合はデフォルトのイベントハンドラーを返します。abstract ObjectSEgetJAXBNode(XmlNode xmlNode)指定された XML 要素に関連付けられた Jakarta XML Binding オブジェクトを取得します。abstract ObjectSEgetProperty(StringSE name)Binderの基礎となる実装で特定のプロパティを取得します。abstract SchemaSEgetSchema()setSchema(Schema)メソッドによって設定された最後のSchemaSE オブジェクト(null を含む)を取得します。abstract XmlNodegetXMLNode(ObjectSE jaxbObject)指定された Jakarta XML Binding オブジェクトに関連付けられた XML 要素を取得します。abstract voidmarshal(ObjectSE jaxbObject, XmlNode xmlNode)Jakarta XML Binding オブジェクトツリーを新しい XML ドキュメントにマーシャリングします。abstract voidsetEventHandler(ValidationEventHandler handler)アプリケーションがValidationEventHandlerを登録できるようにします。abstract voidsetProperty(StringSE name, ObjectSE value)Binderの基礎となる実装で特定のプロパティを設定します。abstract voidsetSchema(SchemaSE schema)marshal、unmarshal、update メソッドが XML コンテンツの検証を実行するかどうかを指定します。abstract ObjectSEunmarshal(XmlNode xmlNode)XML 情報セットビューを Jakarta XML Binding オブジェクトツリーにアンマーシャルします。abstract <T> JAXBElement<T>unmarshal(XmlNode xmlNode, ClassSE<T> declaredType)declaredTypeを Jakarta XML Binding オブジェクトツリーに提供することにより、XML ルート要素を非整列化します。abstract ObjectSEupdateJAXB(XmlNode xmlNode)XML ノードを取得し、関連する Jakarta XML Binding オブジェクトとその子孫を更新します。abstract XmlNodeupdateXML(ObjectSE jaxbObject)Jakarta XML Binding オブジェクトを取得し、関連する XML ノードとその子孫を更新します。abstract XmlNodeupdateXML(ObjectSE jaxbObject, XmlNode xmlNode)Jakarta XML Binding オブジェクトツリーの変更は、関連する XML 解析ツリーで更新されます。
メソッドの詳細
unmarshal
public abstract ObjectSE unmarshal(XmlNode xmlNode) throws JAXBException
XML 情報セットビューを Jakarta XML Binding オブジェクトツリーにアンマーシャルします。この方法は
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 データのマーシャリングを解除するドキュメント / 要素。- 戻り値:
- Jakarta XML Binding オブジェクトツリーの新しく作成されたルートオブジェクト。
- 例外:
JAXBException- マーシャリング解除中に予期しないエラーが発生した場合UnmarshalException-ValidationEventHandlerがhandleEventメソッドから false を返す場合、またはBinderが XML から Java へのバインディングを実行できない場合。IllegalArgumentExceptionSE- ノードパラメーターが null の場合
unmarshal
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とその子孫はこの操作中に検証されます。- 型パラメーター:
T- 宣言された型- パラメーター:
xmlNode- XML データのマーシャリングを解除するドキュメント / 要素。declaredType-nodeの XML データを保持するための適切な Jakarta XML Binding マップクラス。- 戻り値:
nodeの JAXBElement 表現- 例外:
JAXBException- マーシャリング解除中に予期しないエラーが発生した場合UnmarshalException-ValidationEventHandlerがhandleEventメソッドから false を返す場合、またはBinderが XML から Java へのバインディングを実行できない場合。IllegalArgumentExceptionSE- 入力パラメーターのいずれかが null の場合- 導入:
- 1.6、JAXB 2.0
marshal
public abstract void marshal(ObjectSE jaxbObject, XmlNode xmlNode) throws JAXBException
Jakarta XML Binding オブジェクトツリーを新しい XML ドキュメントにマーシャリングします。この方法は
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 の場合
getXMLNode
public abstract XmlNode getXMLNode(ObjectSE jaxbObject)
指定された Jakarta XML Binding オブジェクトに関連付けられた XML 要素を取得します。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 メソッドへの以前の呼び出しから到達可能なインスタンス。- 戻り値:
- 指定された Jakarta XML Binding オブジェクトがこの
Binderに認識されていない場合、または XML 要素に関連付けられていない場合は null。 - 例外:
IllegalArgumentExceptionSE- jaxbObject パラメーターが NULL の場合
getJAXBNode
public abstract ObjectSE getJAXBNode(XmlNode xmlNode)
指定された XML 要素に関連付けられた Jakarta XML Binding オブジェクトを取得します。Jakarta XML Binding オブジェクトツリーが XML フラグメントに関連付けられると、このメソッドは 2 つのツリー間のナビゲーションを有効にします。
XML 要素と Jakarta XML Binding オブジェクト間の関連付けは、unmarshal、marshal、update メソッドによって確立されます。この関連付けは部分的であることに注意してください。すべての XML 要素に Jakarta XML Binding オブジェクトが関連付けられているわけではなく、すべての Jakarta XML Binding オブジェクトに XML 要素が関連付けられているわけでもありません。
- パラメーター:
xmlNode- XML 要素- 戻り値:
- 指定された XML ノードがこの
Binderに認識されていない場合、または Jakarta XML Binding オブジェクトに関連付けられていない場合は null。 - 例外:
IllegalArgumentExceptionSE- ノードパラメーターが null の場合
updateXML
public abstract XmlNode updateXML(ObjectSE jaxbObject) throws JAXBException
Jakarta XML Binding オブジェクトを取得し、関連する XML ノードとその子孫を更新します。これは次の便利なメソッドです。
updateXML( jaxbObject, getXMLNode(jaxbObject));
- パラメーター:
jaxbObject- XML バインディングオブジェクト- 戻り値:
- XML Binding オブジェクトに関連付けられた XML ノード
- 例外:
JAXBException- 対応する XML コンテンツの更新で予期しない問題が発生した場合。IllegalArgumentExceptionSE- jaxbObject パラメーターが NULL の場合
updateXML
public abstract XmlNode updateXML(ObjectSE jaxbObject, XmlNode xmlNode) throws JAXBException
Jakarta XML Binding オブジェクトツリーの変更は、関連する XML 解析ツリーで更新されます。この操作は、「インプレース」マーシャリングと考えることができます。違いは、この操作では、まったく新しい XML ツリーを作成する代わりに、XML を可能な限り保持しようとしながら、既存のツリーを更新することです。
例: Jakarta XML Binding にバインドされていない XML 内の不明な要素 / 属性は変更されません (一方、マーシャリング操作では、含まない新しいツリーが作成されます。)
副作用として、この操作は XML ノードと Jakarta XML Binding オブジェクト間の関連付けを更新します。
- パラメーター:
jaxbObject- 変更される可能性のある Jakarta XML Binding オブジェクトツリーのルートxmlNode- 更新ターゲット XML 解析ツリーのルート- 戻り値:
- 更新された XML ノードを返します。通常、これは xmlNode として渡したノードと同じですが、オブジェクトのタグ名が変更された場合など、異なるオブジェクトになることもあります。
- 例外:
JAXBException- 対応する XML コンテンツの更新で予期しない問題が発生した場合。IllegalArgumentExceptionSE- 入力パラメーターのいずれかが null の場合
updateJAXB
public abstract ObjectSE updateJAXB(XmlNode xmlNode) throws JAXBException
XML ノードを取得し、関連する Jakarta XML Binding オブジェクトとその子孫を更新します。この操作は、「インプレース」のマーシャリング解除と考えることができます。違いは、まったく新しい Jakarta XML Binding ツリーを作成する代わりに、この操作で既存のツリーを更新し、可能な限り多くの Jakarta XML Binding オブジェクトを再利用することです。
副作用として、この操作は XML ノードと Jakarta XML Binding オブジェクト間の関連付けを更新します。
- パラメーター:
xmlNode- XML ノード- 戻り値:
- 更新された Jakarta XML Binding オブジェクトを返します。通常、これは以前の
marshal(Object,Object)またはupdateJAXB(Object)メソッドの呼び出しから返されたオブジェクトと同じですが、たとえば XML 要素の名前が変更された場合などは別のオブジェクトである可能性があります。 - 例外:
JAXBException- 対応する Jakarta XML Binding マップコンテンツの更新で予期しない問題が発生した場合。IllegalArgumentExceptionSE- ノードパラメーターが null の場合
setSchema
public abstract void setSchema(SchemaSE schema)
marshal、unmarshal、update メソッドが XML コンテンツの検証を実行するかどうかを指定します。- パラメーター:
schema- 検証を無効にするには、null に設定します。- 関連事項:
Unmarshaller.setSchema(Schema)
getSchema
public abstract SchemaSE getSchema()
setSchema(Schema)メソッドによって設定された最後のSchemaSE オブジェクト(null を含む)を取得します。- 戻り値:
- 検証用のスキーマオブジェクト、または存在しない場合は null
setEventHandler
public abstract void setEventHandler(ValidationEventHandler handler) throws JAXBException
アプリケーションがValidationEventHandlerを登録できるようにします。ValidationEventHandlerは、バインダーのアンマーシャル、マーシャル、更新メソッドのいずれかの呼び出し中に検証エラーが発生した場合に、Jakarta XML Binding Provider によって呼び出されます。null パラメーターを指定してこのメソッドを呼び出すと、バインダーはデフォルトのデフォルトのイベントハンドラーに戻ります。
- パラメーター:
handler- 検証イベントハンドラー- 例外:
JAXBException- イベントハンドラーの設定中にエラーが発生した場合
getEventHandler
public abstract ValidationEventHandler getEventHandler() throws JAXBException
現在のイベントハンドラー、または設定されていない場合はデフォルトのイベントハンドラーを返します。- 戻り値:
- 現在の ValidationEventHandler、または設定されていない場合はデフォルトのイベントハンドラー
- 例外:
JAXBException- 現在のイベントハンドラーの取得中にエラーが発生した場合
setProperty
public abstract void setProperty(StringSE name, ObjectSE value) throws PropertyException
Binderの基礎となる実装で特定のプロパティを設定します。このメソッドは、標準の Jakarta XML Binding で定義されたアンマーシャル / マーシャルプロパティの 1 つ、またはバインダー、アンマーシャル、マーシャルのプロバイダー固有のプロパティを設定するためにのみ使用できます。未定義のプロパティを設定しようとすると、PropertyException がスローされます。サポートされているアンマーシャルプロパティおよびサポートされているマーシャルプロパティを参照してください。- パラメーター:
name- 設定するプロパティの名前。この値は、定数フィールドの 1 つまたはユーザー指定の文字列を使用して指定できます。value- 設定するプロパティの値- 例外:
PropertyException- 指定されたプロパティまたは値の処理中にエラーが発生した場合IllegalArgumentExceptionSE- name パラメーターが null の場合
getProperty
public abstract ObjectSE getProperty(StringSE name) throws PropertyException
Binderの基礎となる実装で特定のプロパティを取得します。このメソッドは、標準の Jakarta XML Binding で定義されたアンマーシャル / マーシャルプロパティ、またはバインダー、アンマーシャル、マーシャルのプロバイダー固有のプロパティの 1 つを取得するためにのみ使用できます。未定義のプロパティを取得しようとすると、PropertyException がスローされます。サポートされているアンマーシャルプロパティおよびサポートされているマーシャルプロパティを参照してください。- パラメーター:
name- 取得するプロパティの名前- 戻り値:
- リクエストされたプロパティの値
- 例外:
PropertyException- 指定されたプロパティまたは値のプロパティ名の取得中にエラーが発生した場合IllegalArgumentExceptionSE- name パラメーターが null の場合