モジュール java.xml.bind
パッケージ javax.xml.bind.helpers

クラスAbstractUnmarshallerImpl

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


    public abstract class AbstractUnmarshallerImpl
    extends Object
    implements Unmarshaller
    部分的なデフォルトUnmarshaller実装です。

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

    JAXBプロバイダは、getUnmarshallerHandler、unmarshal(Node)、unmarshal(XMLReader,InputSource)、unmarshal(XMLStreamReader)、およびunmarshal(XMLEventReader)の5つのメソッドを実装する必要があります。

    導入されたバージョン:
    1.6, JAXB 1.0
    関連項目:
    Unmarshaller
    • フィールドの詳細

      • validating

        protected boolean validating
        unmarshallerが検証を行うかどうか
    • コンストラクタの詳細

      • AbstractUnmarshallerImpl

        public AbstractUnmarshallerImpl​()
    • メソッドの詳細

      • getXMLReader

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

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

        グローバル・ルート要素の非整列化を実装します。

        プラグイン可能なSAX 2.0パーサー

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

        このパーサー置換メカニズムは、JAXBプロバイダの非整列化時の検証エンジンの置換にも使用できます。 クライアント・アプリケーションは、(前述の例に示したように)そのSAX 2.0準拠パーサーが検証を実行するように適切に構成する必要があります。 非整列操作中にパーサーが遭遇したSAXParserExceptionsは、JAXBプロバイダによって処理され、JAXB ValidationEventオブジェクトに変換され、Unmarshallerで登録されたValidationEventHandlerを介してクライアントに報告されます。 注: 非整列化に代替の検証SAX 2.0パーサーを指定した場合でも、オンデマンドの検証を実行するためにJAXBプロバイダが使用する検証エンジンは必ずしも置き換えられません。

        非整列化中に使用される別のパーサー・メカニズムをクライアント・アプリケーションが指定できる唯一の方法は、unmarshal(SAXSource) APIを介する方法です。 非整列化メソッドのほかのすべての形式(File、URL、Nodeなど)は、JAXBプロバイダのデフォルトのパーサーとバリデータ・メカニズムを使用します。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        source - 非整列化するXMLデータが含まれるXML Source (プロバイダがサポートする必要があるのは、SAXSource、DOMSource、およびStreamSourceだけである)
        戻り値:
        新しく作成されるJavaコンテンツ・ツリーのルート・オブジェクト
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
        関連項目:
        Unmarshaller.unmarshal(javax.xml.transform.Source, Class)
      • unmarshal

        protected abstract Object unmarshal​(XMLReader reader,
                                            InputSource source)
                                     throws JAXBException
        指定したXMLReaderとInputSourceを使用して、オブジェクトを非整列化します。 呼び出される側は、XMLReaderのsetErrorHandlerメソッドを呼び出し、エラーがクライアント指定のValidationEventHandlerに渡されるようにしてください。
        例外:
        JAXBException
      • unmarshal

        public final Object unmarshal​(InputStream is)
                               throws JAXBException
        インタフェースからコピーされた説明: Unmarshaller
        指定されたInputStreamからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。 この形式の非整列化APIを使用した場合、検証イベントの位置情報が不完全な場合があります。

        グローバル・ルート要素の非整列化を実装します。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        is - 非整列化するXMLデータが含まれるInputStream
        戻り値:
        新しく作成されるJavaコンテンツ・ツリーのルート・オブジェクト
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
      • unmarshal

        public final Object unmarshal​(Reader reader)
                               throws JAXBException
        インタフェースからコピーされた説明: Unmarshaller
        指定されたReaderからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。 この形式の非整列化APIを使用した場合、ReaderはシステムIDを提供しないため、検証イベントの位置情報が不完全な場合があります。

        グローバル・ルート要素の非整列化を実装します。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        reader - 非整列化するXMLデータが含まれるReader
        戻り値:
        新しく作成されるJavaコンテンツ・ツリーのルート・オブジェクト
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
      • isValidating

        public boolean isValidating​()
                             throws JAXBException
        非整列化操作中に検証するようにUnmarshallerが設定されているかどうかを示します。

        注: getValidating()に対して、JAXPに合わせてisValidating()というメソッド名にしました。

        定義:
        isValidating、インタフェース: Unmarshaller
        戻り値:
        Unmarshallerが非整列化操作中に検証を行うように設定されている場合はtrue、それ以外の場合はfalse
        例外:
        JAXBException - 検証フラグの取得中にエラーが発生した場合
      • setEventHandler

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

        検証イベント・ハンドラは、いずれかのunmarshalメソッドを呼び出している途中で検証エラーが発生した場合、JAXBプロバイダによって呼び出されます。 非整列化メソッドを呼び出す前に、クライアント・アプリケーションが検証イベント・ハンドラを登録しなかった場合、すべての検証イベントは通知されることなく無視され、予想外の動作を引き起こす可能性があります。

        定義:
        setEventHandler、インタフェース: Unmarshaller
        パラメータ:
        handler - 検証イベント・ハンドラ
        例外:
        JAXBException - イベント・ハンドラの設定中にエラーが発生した場合
      • setValidating

        public void setValidating​(boolean validating)
                           throws JAXBException
        非整列化操作中にUnmarshallerが検証を行うかどうかを指定します。 デフォルトでは、Unmarshallerは検証を行いません。

        このメソッドは、非整列化メソッドのいずれかを呼び出す前、または呼び出したあとにのみ、呼び出すことができます。

        定義:
        setValidating、インタフェース: Unmarshaller
        パラメータ:
        validating - Unmarshallerが非整列化中に検証を行うようにする場合はtrue、それ以外の場合はfalse
        例外:
        JAXBException - 非整列化時の検証を有効または無効にしている途中でエラーが発生した場合
      • getEventHandler

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

        protected UnmarshalException createUnmarshalException​(SAXException e)
        SAXExceptionからUnmarshalExceptionを作成します。 これは、派生クラスに提供されるユーティリティ・メソッドです。

        プロバイダが実装したContentHandlerがJAXBExceptionをスローすることを望む場合、SAXExceptionによってその例外をラップする必要があります。 unmarshaller実装がJAXBExceptionによってSAXExceptionをやみくもにラップした場合、こうした例外がほかのJAXBExceptionによってラップされたSAXExceptionによってラップされたJAXBExceptionになります。 これは非常に無益です。

        このメソッドは、SAXExceptionの入れ子の例外をチェックし、こうした過剰なラップを排除します。

        戻り値:
        結果として得られるUnmarshalException
      • setProperty

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

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

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

        このメソッドは、グローバル・ルートの非整列化メソッドです。

        このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        reader - 読み込まれるパーサー。
        戻り値:
        新しく作成されるJavaコンテンツ・ツリーのルート・オブジェクト。
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
        関連項目:
        Unmarshaller.unmarshal(javax.xml.stream.XMLEventReader, Class)
      • unmarshal

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

        グローバル・ルート要素の非整列化を実装します。

        このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        reader - 読み込まれるパーサー。
        戻り値:
        新しく作成されるJavaコンテンツ・ツリーのルート・オブジェクト。
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
        関連項目:
        Unmarshaller.unmarshal(javax.xml.stream.XMLStreamReader, Class)
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(Node node,
                                            Class<T> expectedType)
                                     throws JAXBException
        インタフェースからコピーされた説明: Unmarshaller
        JAXBマップdeclaredTypeによってXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。

        宣言型による非整列化を実装します

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        node - 非整列化するXMLデータが含まれるドキュメントまたは要素。 呼出し側は最低限、文書と要素をサポートする必要がある。
        expectedType - nodeのXMLデータを保持する、適切なJAXBマップ・クラス。
        戻り値:
        nodeJAXB要素表現
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(Source source,
                                            Class<T> expectedType)
                                     throws JAXBException
        インタフェースからコピーされた説明: Unmarshaller
        declaredTypeに基づき、指定されたXML SourceからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。

        宣言型による非整列化を実装します

        プラグイン可能なSAX 2.0パーサー」を参照してください

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        source - 非整列化するXMLデータが含まれるXML Source (プロバイダがサポートする必要があるのは、SAXSource、DOMSource、およびStreamSourceだけである)
        expectedType - sourceのXMLルート要素を保持する、適切なJAXBマップ・クラス
        戻り値:
        JAXB要素をルートとするJavaコンテンツ
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(XMLStreamReader reader,
                                            Class<T> expectedType)
                                     throws JAXBException
        インタフェースからコピーされた説明: Unmarshaller
        JAXBマップdeclaredTypeにルート要素を非整列化し、結果として得られるコンテンツ・ツリーを返します。

        このメソッドは、宣言型による非整列化を実装します。

        このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        reader - 読み込まれるパーサー。
        expectedType - readerのSTART_ELEMENT XMLデータを保持する、適切なJAXBマップ・クラス。
        戻り値:
        JAXB要素表現をルートとするコンテンツ・ツリー
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
      • unmarshal

        public <T> JAXBElement<T> unmarshal​(XMLEventReader reader,
                                            Class<T> expectedType)
                                     throws JAXBException
        インタフェースからコピーされた説明: Unmarshaller
        JAXBマップdeclaredTypeにルート要素を非整列化し、結果として得られるコンテンツ・ツリーを返します。

        このメソッドは、宣言型による非整列化を実装します。

        このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。

        定義:
        unmarshal、インタフェース: Unmarshaller
        パラメータ:
        reader - 読み込まれるパーサー。
        expectedType - readerのSTART_ELEMENT XMLデータを保持する、適切なJAXBマップ・クラス。
        戻り値:
        JAXB要素表現をルートとするコンテンツ・ツリー
        例外:
        JAXBException - 非整列化の実行中に予想外のエラーが発生した場合
        UnmarshalException - ValidationEventHandlerhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 XMLデータの非整列化を参照
      • setSchema

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

        このメソッドは、非推奨のsetValidating(boolean) APIに置き換わるものです。

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

        定義:
        setSchema、インタフェース: Unmarshaller
        パラメータ:
        schema - 非整列化操作の検証に使用するスキーマ・オブジェクト。検証を無効にする場合はnull
      • getSchema

        public Schema getSchema​()
        インタフェースからコピーされた説明: Unmarshaller
        非整列化時の検証に使用されるJAXP 1.3 Schemaオブジェクトを取得します。 Unmarshallerにスキーマが設定されていない場合、このメソッドは、非整列化時に検証を実行しないことを示す、nullを返します。

        このメソッドは、非推奨のUnmarshaller.isValidating() APIに代わる機能であり、Schemaオブジェクトへのアクセスを提供します。 Unmarshallerが検証を有効にしているかどうかを判断するには、戻り値の型とnullを照らし合わせてチェックすれば簡単にわかります。

        
           boolean isValidating = u.getSchema()!=null;
         
        定義:
        getSchema、インタフェース: Unmarshaller
        戻り値:
        非整列化時の検証を実行するために使用されるSchemaオブジェクト。存在しない場合はnull
      • setAdapter

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

        すべてのUnmarshallerは、内部的にMap<Class,XmlAdapter>を保持しており、フィールドまたはメソッドがXmlJavaTypeAdapterで注釈されたクラスを非整列化するために使用します。

        このメソッドにより、アプリケーションはXmlAdapterの構成済みのインスタンスを使用できます。 アダプタのインスタンスが与えられない場合、Unmarshallerはそのデフォルト・コンストラクタを呼び出してインスタンスを作成します。

        定義:
        setAdapter、インタフェース: Unmarshaller
        パラメータ:
        type - アダプタの型。 XmlJavaTypeAdapter.value()がこの型を参照する場合は、指定したインスタンスが使用される。
        adapter - 使用するアダプタのインスタンス。 nullの場合、この型に対して現在設定されているアダプタの登録が解除される。
      • setAttachmentUnmarshaller

        public void setAttachmentUnmarshaller​(AttachmentUnmarshaller au)
        インタフェースからコピーされた説明: Unmarshaller

        cid、コンテンツID URIを、添付として渡されたバイナリ・データに解決するコンテキストを関連付けます。

        非整列化時の検証は、Unmarshaller.setSchema(Schema)を介して有効化され、UnmarshallerがXOP処理を実行する場合でもサポートする必要があります。

        定義:
        setAttachmentUnmarshaller、インタフェース: Unmarshaller
      • setListener

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

        このUnmarshallerに非整列化イベント・コールバックUnmarshaller.Listenerを登録します。

        各UnmarshallerにListenerは1つだけです。 Listenerを設定すると、前に設定されていたListenerと置き換わります。 Listenerにnullを設定することにより、現在のListenerの登録を解除できます。

        定義:
        setListener、インタフェース: Unmarshaller
        パラメータ:
        listener - このUnmarshallerに非整列化イベント・コールバックを提供する