パッケージ jakarta.xml.bind

インターフェース Unmarshaller

  • すべての既知の実装クラス:
    AbstractUnmarshallerImpl

    public interface Unmarshaller
    Unmarshaller クラスは、XML データを新しく作成された Java コンテンツツリーに逆直列化するプロセスを管理し、オプションで、XML データがマーシャリングされていないときに検証します。これは、多くの異なる入力の種類に対して非マーシャリングメソッドのオーバーロードを提供します。

    ファイルからのマーシャリング解除:

           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
           Object o = u.unmarshal( new File( "nosferatu.xml" ) );
        

    InputStream からのマーシャリング解除:

           InputStream is = new FileInputStream( "nosferatu.xml" );
           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
           Object o = u.unmarshal( is );
        

    URL からのマーシャリング解除:

           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
           URL url = new URL( "http://beaker.east/nosferatu.xml" );
           Object o = u.unmarshal( url );
        

    javax.xml.transform.stream.StreamSource を使用した StringBuffer からのアンマーシャリング:

    
           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
           StringBuffer xmlStr = new StringBuffer( "<?xml version="1.0"?>..." );
           Object o = u.unmarshal( new StreamSource( new StringReader( xmlStr.toString() ) ) );
        

    org.w3c.dom.Node からのアンマーシャリング:

           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
    
           DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
           dbf.setNamespaceAware(true);
           DocumentBuilder db = dbf.newDocumentBuilder();
           Document doc = db.parse(new File( "nosferatu.xml"));
    
           Object o = u.unmarshal( doc );
        

    クライアント指定の検証 SAX2.0 パーサーを使用した javax.xml.transform.sax.SAXSource からのアンマーシャリング:

           // configure a validating SAX2.0 parser (Xerces2)
           static final String JAXP_SCHEMA_LANGUAGE =
               "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
           static final String JAXP_SCHEMA_LOCATION =
               "http://java.sun.com/xml/jaxp/properties/schemaSource";
           static final String W3C_XML_SCHEMA =
               "http://www.w3.org/2001/XMLSchema";
    
           System.setProperty( "javax.xml.parsers.SAXParserFactory",
                               "org.apache.xerces.jaxp.SAXParserFactoryImpl" );
    
           SAXParserFactory spf = SAXParserFactory.newInstance();
           spf.setNamespaceAware(true);
           spf.setValidating(true);
           SAXParser saxParser = spf.newSAXParser();
    
           try {
               saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
               saxParser.setProperty(JAXP_SCHEMA_LOCATION, "http://....");
           } catch (SAXNotRecognizedException x) {
               // exception handling omitted
           }
    
           XMLReader xmlReader = saxParser.getXMLReader();
           SAXSource source =
               new SAXSource( xmlReader, new InputSource( "http://..." ) );
    
           // Setup Jakarta XML Binding to unmarshal
           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
           ValidationEventCollector vec = new ValidationEventCollector();
           u.setEventHandler( vec );
    
           // turn off the Jakarta XML Binding provider's default validation mechanism to
           // avoid duplicate validation
           u.setValidating( false )
    
           // unmarshal
           Object o = u.unmarshal( source );
    
           // check for events
           if( vec.hasEvents() ) {
              // iterate over events
           }
        

    StAX XMLStreamReader からのマーシャリング解除:

           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
    
           javax.xml.stream.XMLStreamReader xmlStreamReader =
               javax.xml.stream.XMLInputFactory().newInstance().createXMLStreamReader( ... );
    
           Object o = u.unmarshal( xmlStreamReader );
        

    StAX XMLEventReader からのマーシャリング解除:

           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
    
           javax.xml.stream.XMLEventReader xmlEventReader =
               javax.xml.stream.XMLInputFactory().newInstance().createXMLEventReader( ... );
    
           Object o = u.unmarshal( xmlEventReader );
        

    XML データのマーシャリング解除

    アンマーシャリングは、XML ドキュメント全体または XML ドキュメントのサブツリーを表す XML データを逆直列化できます。通常は、グローバルに宣言されているアンマーシャルルート要素で説明されているアンマーシャリングメソッドを使用すれば十分です。これらのアンマーシャリングメソッドは、JAXBContext のグローバル XML 要素宣言と型定義の Jakarta XML Binding マップクラスへのマッピングを利用して、XML データのルート要素のアンマーシャリングを開始します。JAXBContext のマッピングが XML データのルート要素をアンマーシャリングするのに十分でない場合は、アプリケーションで declaredType によるアンマーシャリングメソッドを使用してアンマーシャリングプロセスを支援できます。これらのメソッドは、ルート要素がスキーマ内のローカル要素宣言に対応する XML データをアンマーシャリングする場合に役立ちます。
    アンマーシャルメソッドが null を返すことはありません。アンマーシャルプロセスが XML コンテンツのルートを Jakarta XML Binding マップオブジェクトにアンマーシャリングできない場合、JAXBException をスローして処理を終了する致命的なエラーが報告されます。

    グローバルに宣言されているルート要素をアンマーシャリングします

    declaredType パラメーターを持たないアンマーシャルメソッドは、JAXBContext を使用して XML データのルート要素をアンマーシャルします。JAXBContext インスタンスは、この Unmarshaller を作成するために使用されたインスタンスです。JAXBContext インスタンスは、グローバルに宣言された XML 要素と型定義名から Jakarta XML Binding マップクラスへのマッピングを維持します。アンマーシャルメソッドは、JAXBContext にルート要素の XML 名および / または @xsi:type から Jakarta XML Binding マップクラスへのマッピングがあるかどうかを確認します。マッピングがある場合は、適切な Jakarta XML Binding マップクラスを使用して XML データをアンマーシャルします。ルート要素名が不明で、ルート要素に @xsi:type がある場合、その Jakarta XML Binding マップクラスを JAXBElement の値として使用して XML データがアンマーシャルされることに注意してください。JAXBContext オブジェクトにルート要素の名前またはその @xsi:type のマッピングがない場合 (存在する場合)、アンマーシャル操作は UnmarshalException をスローして直ちに中止されます。この例外シナリオは、次のサブセクションで説明する declaredType によるアンマーシャルメソッドを使用することで回避できます。

    宣言された型によるアンマーシャル

    declaredType パラメーターを使用した unmarshal メソッドを使用すると、JAXBContext にルート要素の XML 名のマッピングがない場合でも、アプリケーションで XML データのルート要素を逆直列化できます。unmarshaller は、declaredType パラメーターとして指定されたアプリケーション提供のマッピングを使用してルート要素をアンマーシャリングします。ルート要素の要素名が JAXBContext によってマップされている場合でも、これらの非マーシャリングメソッドを使用すると、declaredType パラメーターがそのマッピングをオーバーライドしてルート要素を逆直列化することに注意してください。さらに、XML データのルート要素に xsi:type 属性があり、その属性の値が JAXBContext によって Jakarta XML Binding マップクラスにマップされた型定義を参照している場合、ルート要素の xsi:type 属性がアンマーシャルメソッドの declaredType パラメーターよりも優先されます。これらのメソッドは常に JAXBElement<declaredType> インスタンスを返します。次の表は、返された JAXBElement インスタンスのプロパティがどのように設定されるかを示しています。
    宣言された型によるアンマーシャルが JAXBElement を返しました
    JAXBElement プロパティ
    名前 xml element name
    valueinstanceof declaredType
    declaredType アンマーシャルメソッド declaredType パラメーター
    範囲 null (実際の範囲は不明)

    以下は declaredType 方式によるアンマーシャルの例です。

    declaredType による org.w3c.dom.Node からのアンマーシャル:

    
           Schema fragment for example
           <xs:schema>
              <xs:complexType name="FooType">...<\xs:complexType>
              <!-- global element declaration "PurchaseOrder" -->
              <xs:element name="PurchaseOrder">
                  <xs:complexType>
                     <xs:sequence>
                        <!-- local element declaration "foo" -->
                        <xs:element name="foo" type="FooType"/>
                        ...
                     </xs:sequence>
                  </xs:complexType>
              </xs:element>
           </xs:schema>
    
           JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
           Unmarshaller u = jc.createUnmarshaller();
    
           DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
           dbf.setNamespaceAware(true);
           DocumentBuilder db = dbf.newDocumentBuilder();
           Document doc = db.parse(new File( "nosferatu.xml"));
           Element  fooSubtree = ...; // traverse DOM till reach xml element foo, constrained by a
                                      // local element declaration in schema.
    
           // FooType is the Jakarta XML Binding mapping of the type of local element declaration foo.
           JAXBElement<FooType> foo = u.unmarshal( fooSubtree, FooType.class);
        

    SAX2.0 準拠のパーサーのサポート

    クライアントアプリケーションには、SAX2.0 準拠のパーサーを選択する機能があります。SAX パーサーが選択されていない場合は、Jakarta XML Binding Provider のデフォルトのパーサーが使用されます。Jakarta XML Binding Provider のデフォルトのパーサーは SAX2.0 に準拠している必要はありませんが、すべてのプロバイダーは、クライアントアプリケーションが独自の SAX2.0 パーサーを指定できるようにする必要があります。一部のプロバイダーは、クライアントアプリケーションがスキーマのコンパイル時に SAX2.0 パーサーを指定することを要求する場合があります。詳細については、unmarshal(Source) を参照してください。

    検証と整形式

    クライアントアプリケーションは、setSchema(javax.xml.validation.Schema) API を介して JAXP 検証メカニズムを有効または無効にできます。高度なクライアントは、独自の検証用 SAX 2.0 準拠パーサーを指定し、unmarshal(Source) API を使用して JAXP 検証メカニズムをバイパスできます。

    無効な XML コンテンツのアンマーシャリングは Jakarta XML Binding で定義されているため、Unmarshaller のデフォルトの検証イベントハンドラーは、JAXB 1.0 よりも寛大になりました。JAXB 1.0 バインディングコンパイラーによって生成されたスキーマ派生コードが JAXBContext に登録されている場合、デフォルトのアンマーシャル検証ハンドラーは DefaultValidationEventHandler であり、致命的なエラーまたはエラーが発生した後、マーシャル操作を終了します。Jakarta XML Binding クライアントアプリケーションの場合、明示的に定義されたデフォルトの検証ハンドラーはなく、デフォルトのイベント処理は、致命的なエラーが発生した後にのみアンマーシャル操作を終了します。

    サポートされているプロパティ

    現在、Unmarshaller のすべての Jakarta XML Binding Providers でサポートする必要のあるプロパティはありません。ただし、プロバイダーによっては、プロバイダー固有の独自のプロパティセットをサポートしている場合があります。

    アンマーシャルイベントのコールバック

    Unmarshaller は、マーシャリング解除プロセスの重要なポイントでアプリケーション固有の処理を可能にする 2 つのスタイルのコールバックメカニズムを提供します。「クラス定義」イベントコールバックでは、Jakarta XML Binding マップクラスに配置されたアプリケーション固有のコードがマーシャリング解除中にトリガーされます。「外部リスナー」は、型イベントコールバックではなく、1 つのコールバックメソッドで非マーシャリングイベントの集中処理を可能にします。

    「クラス定義」イベントコールバックメソッドを使用すると、Jakarta XML Binding にマップされたクラスは、次のメソッドシグネチャーでメソッドを定義することにより、独自の特定のコールバックメソッドを指定できます。

       // This method is called immediately after the object is created and before the unmarshalling of this
       // object begins. The callback provides an opportunity to initialize JavaBean properties prior to unmarshalling.
       void beforeUnmarshal(Unmarshaller, Object parent);
    
       //This method is called after all the properties (except IDREF) are unmarshalled for this object,
       //but before this object is set to the parent object.
       void afterUnmarshal(Unmarshaller, Object parent);
     
    クラス定義のコールバックメソッドは、コールバックメソッドが非公開メソッドやクラスのフィールドへのアクセスを必要とする場合に使用する必要があります。

    外部リスナーコールバックメカニズムにより、Unmarshaller.Listener インスタンスを setListener(Listener) に登録できます。外部リスナーはすべてのコールバックイベントを受信するため、クラス定義のコールバックメソッドよりも集中処理が可能になります。外部リスナーは、非マーシャリングプロセスが Jakarta XML Binding 要素または Jakarta XML Binding マップクラスにマーシャリングしているときにイベントを受信します。

    「クラス定義」と外部リスナーイベントのコールバックメソッドは互いに独立しており、どちらも 1 つのイベントに対して呼び出すことができます。両方のリスナーコールバックメソッドが存在する場合の呼び出し順序は、Unmarshaller.Listener.beforeUnmarshal(Object, Object)Unmarshaller.Listener.afterUnmarshal(Object, Object) で定義されています。

    例外をスローするイベントコールバックメソッドは、現在のアンマーシャリングプロセスを終了します。

    導入:
    1.6、JAXB 1.0
    作成者:
    • Ryan Shoemaker, Sun Microsystems, Inc.
    • Kohsuke Kawaguchi, Sun Microsystems, Inc.
    • Joe Fialli, Sun Microsystems, Inc.
    関連事項:
    JAXBContext, Marshaller
    • メソッドの詳細

      • unmarshal

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

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

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

        <T> JAXBElement<T> unmarshal​(NodeSE node,
                                     ClassSE<T> declaredType)
                              throws JAXBException
        Jakarta XML Binding によってマップされた declaredType によって XML データをアンマーシャリングし、結果のコンテンツツリーを返します。

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

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

        ObjectSE unmarshal​(SourceSE source)
                  throws JAXBException
        指定された 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 プロバイダーのデフォルトのパーサーおよびバリデーターメカニズムを使用します。

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

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

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

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

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

        ObjectSE unmarshal​(XMLStreamReaderSE reader)
                  throws JAXBException
        指定されたプルパーサーから XML データを非整列化し、結果のコンテンツツリーを返します。

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

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

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

        <T> JAXBElement<T> unmarshal​(XMLStreamReaderSE reader,
                                     ClassSE<T> declaredType)
                              throws JAXBException
        ルート要素を Jakarta XML Binding にマップされた declaredType にアンマーシャルし、結果のコンテンツツリーを返します。

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

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

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

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

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

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

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

        <T> JAXBElement<T> unmarshal​(XMLEventReaderSE reader,
                                     ClassSE<T> declaredType)
                              throws JAXBException
        ルート要素を Jakarta XML Binding にマップされた declaredType にアンマーシャルし、結果のコンテンツツリーを返します。

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

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

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

        UnmarshallerHandler getUnmarshallerHandler()
        XML パイプラインのコンポーネントとして使用できる unmarshaller ハンドラーオブジェクトを取得します。

        Jakarta XML Binding Provider は、このメソッドの複数の呼び出しに対して同じハンドラーオブジェクトを返すことができます。つまり、このメソッドは必ずしも UnmarshallerHandler の新しいインスタンスを作成するわけではありません。アプリケーションが複数の UnmarshallerHandler を使用する必要がある場合は、複数の Unmarshaller を作成する必要があります。

        戻り値:
        アンマーシャラーハンドラーオブジェクト
        関連事項:
        UnmarshallerHandler
      • setEventHandler

        void setEventHandler​(ValidationEventHandler handler)
                      throws JAXBException
        アプリケーションが ValidationEventHandler を登録できるようにします。

        いずれかの非マーシャリングメソッドの呼び出し中に検証エラーが発生した場合、ValidationEventHandler は Jakarta XML Binding Provider によって呼び出されます。クライアントアプリケーションがアンマーシャルメソッドを呼び出す前に ValidationEventHandler を登録しない場合、ValidationEvents はデフォルトのイベントハンドラーによって処理され、最初のエラーまたは致命的なエラーが発生した後にアンマーシャル操作が終了します。

        null パラメーターを指定してこのメソッドを呼び出すと、Unmarshaller はデフォルトのイベントハンドラーに戻ります。

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

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

        void setProperty​(StringSE name,
                         ObjectSE value)
                  throws PropertyException
        Unmarshaller の基礎となる実装で特定のプロパティを設定します。このメソッドは、上記の標準 Jakarta XML Binding 定義プロパティの 1 つ、またはプロバイダー固有のプロパティを設定するためにのみ使用できます。未定義のプロパティを設定しようとすると、PropertyException がスローされます。サポートされているプロパティを参照してください。
        パラメーター:
        name - 設定するプロパティの名前。この値は、定数フィールドの 1 つまたはユーザー指定の文字列を使用して指定できます。
        value - 設定するプロパティの値
        例外:
        PropertyException - 指定されたプロパティまたは値の処理中にエラーが発生した場合
        IllegalArgumentExceptionSE - name パラメーターが null の場合
      • getProperty

        ObjectSE getProperty​(StringSE name)
                    throws PropertyException
        Unmarshaller の基礎となる実装で特定のプロパティを取得します。このメソッドは、上記の標準 Jakarta XML Binding 定義プロパティの 1 つ、またはプロバイダー固有のプロパティを取得するためにのみ使用できます。未定義のプロパティを取得しようとすると、PropertyException がスローされます。サポートされているプロパティを参照してください。
        パラメーター:
        name - 取得するプロパティの名前
        戻り値:
        リクエストされたプロパティの値
        例外:
        PropertyException - 指定されたプロパティまたは値のプロパティ名の取得中にエラーが発生した場合
        IllegalArgumentExceptionSE - name パラメーターが null の場合
      • setSchema

        void setSchema​(SchemaSE schema)
        後続の非整列化操作を検証するために使用する必要がある JAXP SchemaSE オブジェクトを指定します。このメソッドに null を渡すと、検証が無効になります。

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

        パラメーター:
        schema - アンマーシャリング操作を検証するスキーマオブジェクト、または検証を無効にする null
        例外:
        UnsupportedOperationExceptionSE - このメソッドが、JAXB 1.0 マップクラスを参照する JAXBContext から作成された Unmarshaller で呼び出された場合にスローされる可能性があります
        導入:
        1.6、JAXB 2.0
      • getSchema

        SchemaSE getSchema()
        非整列化時の検証を実行するために使用されている JAXP SchemaSE オブジェクトを取得します。アンマーシャラーにスキーマが設定されていない場合、このメソッドは null を返し、アンマーシャル時の検証が実行されないことを示します。
        戻り値:
        非マーシャル時間検証を実行するために使用されているスキーマオブジェクト、または存在しない場合は null
        例外:
        UnsupportedOperationExceptionSE - このメソッドが、JAXB 1.0 マップクラスを参照する JAXBContext から作成された Unmarshaller で呼び出された場合にスローされる可能性があります
        導入:
        1.6、JAXB 2.0
      • setAdapter

        <A extends XmlAdapter<?,​?>> void setAdapter​(A adapter)
        XmlAdapter の構成済みインスタンスをこのアンマーシャラーに関連付けます。

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

        型パラメーター:
        A - XmlAdapter の型
        パラメーター:
        adapter - XmlAdapter の構成済みインスタンス
        例外:
        IllegalArgumentExceptionSE - アダプターパラメーターが null の場合。
        UnsupportedOperationExceptionSE - JAXB 1.0 実装に対して再度呼び出された場合。
        導入:
        1.6、JAXB 2.0
        関連事項:
        setAdapter(Class,XmlAdapter)
      • setAdapter

        <A extends XmlAdapter<?,​?>> void setAdapter​(ClassSE<A> type,
                                                          A adapter)
        XmlAdapter の構成済みインスタンスをこのアンマーシャラーに関連付けます。

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

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

        型パラメーター:
        A - アダプターの型
        パラメーター:
        type - アダプターの型。指定されたインスタンスは、XmlJavaTypeAdapter.value() がこの型を参照するときに使用されます。
        adapter - 使用するアダプターのインスタンス。null の場合、この型に設定されている現在のアダプターの登録が解除されます。
        例外:
        IllegalArgumentExceptionSE - type パラメーターが null の場合。
        UnsupportedOperationExceptionSE - JAXB 1.0 実装に対して再度呼び出された場合。
        導入:
        1.6、JAXB 2.0
      • getAdapter

        <A extends XmlAdapter<?,​?>> A getAdapter​(ClassSE<A> type)
        指定された型に関連付けられたアダプターを取得します。これは、setAdapter(A) メソッドの逆の操作です。
        型パラメーター:
        A - アダプターの型
        パラメーター:
        type - アダプターの型。指定されたインスタンスは、XmlJavaTypeAdapter.value() がこの型を参照するときに使用されます。
        戻り値:
        指定された型に関連付けられたアダプター。
        例外:
        IllegalArgumentExceptionSE - type パラメーターが null の場合。
        UnsupportedOperationExceptionSE - JAXB 1.0 実装に対して再度呼び出された場合。
        導入:
        1.6、JAXB 2.0
      • setAttachmentUnmarshaller

        void setAttachmentUnmarshaller​(AttachmentUnmarshaller au)
        cid の content-id URI を解決するコンテキストを、接続ファイルとして渡されたバイナリデータに関連付けます。アンマーシャラーが XOP 処理を実行している場合でも、setSchema(Schema) を介して有効化されたアンマーシャル時間検証をサポートする必要があります。
        パラメーター:
        au - 設定する添付ファイルのアンマーシャラー
        例外:
        IllegalStateExceptionSE - アンマーシャリング操作中にこのメソッドを同時に呼び出そうとした場合。
      • setListener

        void setListener​(Unmarshaller.Listener listener)

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

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

        パラメーター:
        listener - この Unmarshaller の非マーシャルイベントコールバックを提供します
        導入:
        1.6、JAXB 2.0