パッケージ jakarta.xml.bind.helpers

クラス AbstractUnmarshallerImpl

  • 実装されたすべてのインターフェース:
    Unmarshaller

    public abstract class AbstractUnmarshallerImpl
    extends ObjectSE
    implements Unmarshaller
    部分的なデフォルトの Unmarshaller 実装。

    このクラスは、Unmarshaller インターフェースの部分的なデフォルト実装を提供します。

    Jakarta XML Binding Provider は 5 つのメソッド (getUnmarshallerHandler、unmarshal(Node)、unmarshal(XMLReader,InputSource)、unmarshal(XMLStreamReader)、および unmarshal(XMLEventReader)) を実装する必要があります。

    導入:
    1.6、JAXB 1.0
    作成者:
    • Kohsuke Kawaguchi, Sun Microsystems, Inc.
    関連事項:
    Unmarshaller
    • コンストラクターの詳細

      • AbstractUnmarshallerImpl

        protected AbstractUnmarshallerImpl()
        派生クラスの何もしないコンストラクター。
    • メソッドの詳細

      • getXMLReader

        protected XMLReaderSE getXMLReader()
                                  throws JAXBException
        構成された XMLReader を取得します。このメソッドは、クライアント指定の SAXSourceSE オブジェクトに XMLReader がない場合に使用されます。Unmarshaller は再入可能ではないため、XMLReader の 1 つのインスタンスのみを使用します。
        例外:
        JAXBException
      • unmarshal

        public ObjectSE unmarshal​(SourceSE source)
                         throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        指定された XML ソースから XML データを非整列化し、結果のコンテンツツリーを返します。

        グローバルルート要素のマーシャリング解除を実装します。

        SAX 2.0 パーサーのプラグ可能性

        クライアントアプリケーションは、Jakarta XML Binding プロバイダーで提供されるデフォルトのパーサーメカニズムを使用しないことを選択できます。SAX 2.0 準拠のパーサーは、Jakarta XML Binding プロバイダーのデフォルトメカニズムの代わりに使用できます。これを行うには、クライアントアプリケーションは、SAX 2.0 パーサープロバイダーによって実装された XMLReader を含む SAXSource を適切に構成する必要があります。XMLReader に org.xml.sax.ErrorHandler が登録されている場合は、Jakarta XML Binding Provider に置き換えられ、Jakarta XML Binding の ValidationEventHandler メカニズムを介して検証エラーを報告できるようになります。SAXSource に XMLReader が含まれていない場合は、Jakarta XML Binding プロバイダーのデフォルトのパーサーメカニズムが使用されます。

        このパーサー置換メカニズムは、Jakarta XML Binding プロバイダーの非マーシャル時間検証エンジンを置換するためにも使用できます。クライアントアプリケーションは、検証を実行するために SAX 2.0 準拠のパーサーを適切に構成する必要があります(上記の例を参照)。アンマーシャリング操作中にパーサーが検出した SAXParserExceptions は、Jakarta XML Binding プロバイダーによって処理され、Jakarta XML Binding ValidationEvent オブジェクトに変換され、Unmarshaller に登録された ValidationEventHandler を介してクライアントに報告されます。 注: アンマーシャリングの代わりに検証 SAX 2.0 パーサーを指定しても、オンデマンド検証を実行するために Jakarta XML Binding プロバイダーが使用する検証エンジンが必ずしも置き換えられるわけではありません。

        クライアントアプリケーションがアンマーシャル中に使用される代替パーサーメカニズムを指定する唯一の方法は、unmarshal(SAXSource) API を使用することです。アンマーシャルメソッドの他のすべての形式(ファイル、URL、ノードなど)は、Jakarta XML Binding プロバイダーのデフォルトのパーサーおよびバリデーターメカニズムを使用します。

        次で指定:
        インターフェース Unmarshallerunmarshal 
        パラメーター:
        source - から XML データをアンマーシャリングする XML ソース (プロバイダーは、SAXSource、DOMSource、StreamSource をサポートするためにのみ必要です。)
        戻り値:
        java コンテンツツリーの新しく作成されたルートオブジェクト
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
        関連事項:
        Unmarshaller.unmarshal(javax.xml.transform.Source, Class)
      • unmarshal

        protected abstract ObjectSE unmarshal​(XMLReaderSE reader,
                                            InputSourceSE source)
                                     throws JAXBException
        指定された XMLReader と InputSource を使用してオブジェクトをアンマーシャリングします。呼び出し先は、エラーがクライアント指定の ValidationEventHandler に渡されるように、XMLReader の setErrorHandler メソッドを呼び出す必要があります。
        例外:
        JAXBException
      • unmarshal

        public final ObjectSE unmarshal​(InputStreamSE is)
                               throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        指定された InputStream から XML データをマーシャリング解除し、結果のコンテンツツリーを返します。この形式のアンマーシャル API を使用すると、検証イベントの場所情報が不完全になる場合があります。

        グローバルルート要素のマーシャリング解除を実装します。

        次で指定:
        インターフェース Unmarshallerunmarshal 
        パラメーター:
        is - から XML データをアンマーシャリングする InputStream
        戻り値:
        java コンテンツツリーの新しく作成されたルートオブジェクト
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
      • unmarshal

        public final ObjectSE unmarshal​(ReaderSE reader)
                               throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        指定されたリーダーから XML データをアンマーシャリングし、結果のコンテンツツリーを返します。この形式のアンマーシャル API を使用すると、リーダーがシステム ID を提供しないため、検証イベントの場所情報が不完全になる可能性があります。

        グローバルルート要素のマーシャリング解除を実装します。

        次で指定:
        インターフェース Unmarshallerunmarshal 
        パラメーター:
        reader - から XML データをアンマーシャリングするリーダー
        戻り値:
        java コンテンツツリーの新しく作成されたルートオブジェクト
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
      • setEventHandler

        public void setEventHandler​(ValidationEventHandler handler)
                             throws JAXBException
        アプリケーションが検証イベントハンドラーを登録できるようにします。

        unmarshal メソッドの呼び出し中に検証エラーが発生した場合、検証イベントハンドラーは Jakarta XML Binding Provider によって呼び出されます。クライアントアプリケーションが非整列化メソッドを呼び出す前に検証イベントハンドラーを登録しない場合、すべての検証イベントは暗黙のうちに無視され、予期しない動作を引き起こす可能性があります。

        次で指定:
        インターフェース UnmarshallersetEventHandler 
        パラメーター:
        handler - 検証イベントハンドラー
        例外:
        JAXBException - イベントハンドラーの設定中にエラーが発生した場合
      • getEventHandler

        public ValidationEventHandler getEventHandler()
                                               throws JAXBException
        現在のイベントハンドラー、または設定されていない場合はデフォルトのイベントハンドラーを返します。
        次で指定:
        インターフェース UnmarshallergetEventHandler 
        戻り値:
        現在の ValidationEventHandler、または設定されていない場合はデフォルトのイベントハンドラー
        例外:
        JAXBException - 現在のイベントハンドラーの取得中にエラーが発生した場合
      • createUnmarshalException

        protected UnmarshalException createUnmarshalException​(SAXExceptionSE e)
        SAXException から UnmarshalException を作成します。派生クラス向けのユーティリティメソッドです。

        プロバイダー実装の ContentHandler が JAXBException をスローする場合、SAXException によって例外をラップする必要があります。アンマーシャラー実装が JAXBException によって SAXException を盲目的にラップする場合、そのような例外は、別の JAXBException によってラップされた SAXException によってラップされた JAXBException になります。これはばかげています。

        このメソッドは、SAXException のネストされた例外をチェックし、それらの過剰なラップを減らします。

        戻り値:
        結果の UnmarshalException
      • setProperty

        public void setProperty​(StringSE name,
                                ObjectSE value)
                         throws PropertyException
        setProperty メソッドのデフォルト実装では、必須のプロパティがないため、常に PropertyException がスローされます。プロバイダーが追加のプロパティを処理する必要がある場合は、派生クラスでこのメソッドをオーバーライドする必要があります。
        次で指定:
        インターフェース UnmarshallersetProperty 
        パラメーター:
        name - 設定するプロパティの名前。この値は、定数フィールドの 1 つまたはユーザー指定の文字列を使用して指定できます。
        value - 設定するプロパティの値
        例外:
        PropertyException - 指定されたプロパティまたは値の処理中にエラーが発生した場合
      • getProperty

        public ObjectSE getProperty​(StringSE name)
                           throws PropertyException
        getProperty メソッドのデフォルト実装では、必須のプロパティがないため、常に PropertyException がスローされます。プロバイダーが追加のプロパティを処理する必要がある場合は、派生クラスでこのメソッドをオーバーライドする必要があります。
        次で指定:
        インターフェース UnmarshallergetProperty 
        パラメーター:
        name - 取得するプロパティの名前
        戻り値:
        リクエストされたプロパティの値
        例外:
        PropertyException - 指定されたプロパティまたは値のプロパティ名の取得中にエラーが発生した場合
      • unmarshal

        public ObjectSE unmarshal​(XMLEventReaderSE reader)
                         throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        指定されたプルパーサーから XML データを非整列化し、結果のコンテンツツリーを返します。

        このメソッドはアンマーシャルグローバルルートメソッドです。

        このメソッドは、パーサーが START_DOCUMENT または START_ELEMENT イベントにあることを前提としています。アンマーシャリングは、この開始イベントから対応する終了イベントまで実行されます。このメソッドが正常に返されると、reader は終了イベントの直後にトークンを指します。

        次で指定:
        インターフェース Unmarshallerunmarshal 
        パラメーター:
        reader - 読み取るパーサー。
        戻り値:
        java コンテンツツリーの新しく作成されたルートオブジェクト。
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
        関連事項:
        Unmarshaller.unmarshal(javax.xml.stream.XMLEventReader, Class)
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(NodeSE node,
                                            ClassSE<T> expectedType)
                                     throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        Jakarta XML Binding によってマップされた declaredType によって XML データをアンマーシャリングし、結果のコンテンツツリーを返します。

        宣言された型によるアンマーシャルを実装します

        次で指定:
        インターフェース Unmarshallerunmarshal 
        型パラメーター:
        T - XML バインディングのマップされたクラス
        パラメーター:
        node - XML データのマーシャリングを解除するドキュメント / 要素。呼び出し元は、少なくとも Document と Element をサポートしている必要があります。
        expectedType - node の XML データを保持するための適切な Jakarta XML Binding マップクラス。
        戻り値:
        node の JAXBElement 表現
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(SourceSE source,
                                            ClassSE<T> expectedType)
                                     throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        指定された XML ソースから declaredType によって XML データをアンマーシャリングし、結果のコンテンツツリーを返します。

        宣言された型によるアンマーシャルを実装します

        SAX 2.0 パーサーのプラグ可能性を参照

        次で指定:
        インターフェース Unmarshallerunmarshal 
        型パラメーター:
        T - XML バインディングのマップされたクラス
        パラメーター:
        source - から XML データをアンマーシャリングする XML ソース (プロバイダーは、SAXSource、DOMSource、StreamSource をサポートするためにのみ必要です。)
        expectedType - source の xml ルート要素を保持するための適切な Jakarta XML Binding マップクラス
        戻り値:
        JAXBElement をルートとする Java コンテンツ
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(XMLStreamReaderSE reader,
                                            ClassSE<T> expectedType)
                                     throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        ルート要素を Jakarta XML Binding にマップされた declaredType にアンマーシャルし、結果のコンテンツツリーを返します。

        このメソッドは、declaredType によるアンマーシャルを実装します。

        このメソッドは、パーサーが START_DOCUMENT または START_ELEMENT イベントにあることを前提としています。アンマーシャリングは、この開始イベントから対応する終了イベントまで実行されます。このメソッドが正常に返されると、reader は終了イベントの直後にトークンを指します。

        次で指定:
        インターフェース Unmarshallerunmarshal 
        型パラメーター:
        T - XML バインディングのマップされたクラス
        パラメーター:
        reader - 読み取るパーサー。
        expectedType - reader の START_ELEMENTXML データを保持するための適切な Jakarta XML Binding マップクラス。
        戻り値:
        JAXBElement 表現に根ざしたコンテンツツリー
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(XMLEventReaderSE reader,
                                            ClassSE<T> expectedType)
                                     throws JAXBException
        インターフェースからコピーされた説明: Unmarshaller
        ルート要素を Jakarta XML Binding にマップされた declaredType にアンマーシャルし、結果のコンテンツツリーを返します。

        このメソッドは、declaredType によるアンマーシャルを実装します。

        このメソッドは、パーサーが START_DOCUMENT または START_ELEMENT イベントにあることを前提としています。アンマーシャリングは、この開始イベントから対応する終了イベントまで実行されます。このメソッドが正常に返されると、reader は終了イベントの直後にトークンを指します。

        次で指定:
        インターフェース Unmarshallerunmarshal 
        型パラメーター:
        T - XML バインディングのマップされたクラス
        パラメーター:
        reader - 読み取るパーサー。
        expectedType - reader の START_ELEMENTXML データを保持するための適切な Jakarta XML Binding マップクラス。
        戻り値:
        JAXBElement 表現に根ざしたコンテンツツリー
        例外:
        JAXBException - マーシャリング解除中に予期しないエラーが発生した場合
        UnmarshalException - ValidationEventHandler が handleEvent メソッドから false を返す場合、または Unmarshaller が XML から Java へのバインディングを実行できない場合。XML データのマーシャリング解除を参照してください
      • setSchema

        public void setSchema​(SchemaSE schema)
        インターフェースからコピーされた説明: Unmarshaller
        後続の非整列化操作を検証するために使用する必要がある JAXP SchemaSE オブジェクトを指定します。このメソッドに null を渡すと、検証が無効になります。

        最初、このプロパティは null に設定されています。

        次で指定:
        インターフェース UnmarshallersetSchema 
        パラメーター:
        schema - アンマーシャリング操作を検証するスキーマオブジェクト、または検証を無効にする null
      • getSchema

        public SchemaSE getSchema()
        インターフェースからコピーされた説明: Unmarshaller
        非整列化時の検証を実行するために使用されている JAXP SchemaSE オブジェクトを取得します。アンマーシャラーにスキーマが設定されていない場合、このメソッドは null を返し、アンマーシャル時の検証が実行されないことを示します。
        次で指定:
        インターフェース UnmarshallergetSchema 
        戻り値:
        非マーシャル時間検証を実行するために使用されているスキーマオブジェクト、または存在しない場合は null
      • setAdapter

        public <A extends XmlAdapter<?,​?>> void setAdapter​(A adapter)
        インターフェースからコピーされた説明: Unmarshaller
        XmlAdapter の構成済みインスタンスをこのアンマーシャラーに関連付けます。

        これは、setAdapter(adapter.getClass(),adapter); を呼び出す便利なメソッドです。

        次で指定:
        インターフェース UnmarshallersetAdapter 
        型パラメーター:
        A - XmlAdapter の型
        パラメーター:
        adapter - XmlAdapter の構成済みインスタンス
        関連事項:
        Unmarshaller.setAdapter(Class,XmlAdapter)
      • setAdapter

        public <A extends XmlAdapter<?,​?>> void setAdapter​(ClassSE<A> type,
                                                                 A adapter)
        インターフェースからコピーされた説明: Unmarshaller
        XmlAdapter の構成済みインスタンスをこのアンマーシャラーに関連付けます。

        すべてのアンマーシャラーは、MapSE <ClassSEXmlAdapter> を内部的に維持します。これは、フィールド / メソッドに XmlJavaTypeAdapter アノテーションが付けられたアンマーシャリングクラスに使用されます。

        この方法により、アプリケーションは XmlAdapter の構成済みインスタンスを使用できます。アダプターのインスタンスが指定されていない場合、アンマーシャラーはデフォルトのコンストラクターを呼び出してアダプターを作成します。

        次で指定:
        インターフェース UnmarshallersetAdapter 
        型パラメーター:
        A - アダプターの型
        パラメーター:
        type - アダプターの型。指定されたインスタンスは、XmlJavaTypeAdapter.value() がこの型を参照するときに使用されます。
        adapter - 使用するアダプターのインスタンス。null の場合、この型に設定されている現在のアダプターの登録が解除されます。
      • getAdapter

        public <A extends XmlAdapter<?,​?>> A getAdapter​(ClassSE<A> type)
        インターフェースからコピーされた説明: Unmarshaller
        指定された型に関連付けられたアダプターを取得します。これは、Unmarshaller.setAdapter(A) メソッドの逆の操作です。
        次で指定:
        インターフェース UnmarshallergetAdapter 
        型パラメーター:
        A - アダプターの型
        パラメーター:
        type - アダプターの型。指定されたインスタンスは、XmlJavaTypeAdapter.value() がこの型を参照するときに使用されます。
        戻り値:
        指定された型に関連付けられたアダプター。
      • setAttachmentUnmarshaller

        public void setAttachmentUnmarshaller​(AttachmentUnmarshaller au)
        インターフェースからコピーされた説明: Unmarshaller
        cid の content-id URI を解決するコンテキストを、接続ファイルとして渡されたバイナリデータに関連付けます。アンマーシャラーが XOP 処理を実行している場合でも、Unmarshaller.setSchema(Schema) を介して有効化されたアンマーシャル時間検証をサポートする必要があります。
        次で指定:
        インターフェース UnmarshallersetAttachmentUnmarshaller 
        パラメーター:
        au - 設定する添付ファイルのアンマーシャラー
      • setListener

        public void setListener​(Unmarshaller.Listener listener)
        インターフェースからコピーされた説明: Unmarshaller

        アンマーシャルイベントコールバック Unmarshaller.Listener をこの Unmarshaller に登録します。

        Unmarshaller ごとにリスナーは 1 つだけです。リスナーを設定すると、以前に設定したリスナーが置き換えられます。リスナーを null に設定することにより、現在のリスナーの登録を解除できます。

        次で指定:
        インターフェース UnmarshallersetListener 
        パラメーター:
        listener - この Unmarshaller の非マーシャルイベントコールバックを提供します