public abstract class AbstractUnmarshallerImpl extends Object implements Unmarshaller
このクラスは、Unmarshaller
インタフェースの部分的なデフォルト実装を提供します。
JAXBプロバイダは、getUnmarshallerHandler、unmarshal(Node)、unmarshal(XMLReader,InputSource)、unmarshal(XMLStreamReader)、およびunmarshal(XMLEventReader)の5つのメソッドを実装する必要があります。
Unmarshaller
Unmarshaller.Listener
修飾子と型 | フィールド | 説明 |
---|---|---|
protected boolean |
validating |
unmarshallerが検証を行うかどうか
|
コンストラクタ | 説明 |
---|---|
AbstractUnmarshallerImpl() |
修飾子と型 | メソッド | 説明 |
---|---|---|
protected UnmarshalException |
createUnmarshalException(SAXException e) |
SAXExceptionからUnmarshalExceptionを作成します。
|
<A extends XmlAdapter> |
getAdapter(Class<A> type) |
指定した型に関連付けられているアダプタを取得します。
|
AttachmentUnmarshaller |
getAttachmentUnmarshaller() |
|
ValidationEventHandler |
getEventHandler() |
現在のイベント・ハンドラ、または、それが設定されていない場合はデフォルト・イベント・ハンドラを返します。
|
Unmarshaller.Listener |
getListener() |
この
Unmarshaller に登録されたUnmarshaller.Listener を返します。 |
Object |
getProperty(String name) |
必要なプロパティがないため、getPropertyメソッドのデフォルト実装は常に、PropertyExceptionをスローします。
|
Schema |
getSchema() |
非整列化時の検証に使用されるJAXP 1.3
Schema オブジェクトを取得します。 |
protected XMLReader |
getXMLReader() |
設定されたXMLReaderを取得します。
|
boolean |
isValidating() |
非整列化操作中に検証するようにUnmarshallerが設定されているかどうかを示します。
|
<A extends XmlAdapter> |
setAdapter(Class<A> type, A adapter) |
XmlAdapter の構成済みのインスタンスをこのアンマーシャラに関連付けます。 |
void |
setAdapter(XmlAdapter adapter) |
XmlAdapter の構成済みのインスタンスをこのアンマーシャラに関連付けます。 |
void |
setAttachmentUnmarshaller(AttachmentUnmarshaller au) |
cid、コンテンツID URIを、添付として渡されたバイナリ・データに解決するコンテキストを関連付けます。
|
void |
setEventHandler(ValidationEventHandler handler) |
アプリケーションが検証イベント・ハンドラを登録することができます。
|
void |
setListener(Unmarshaller.Listener listener) |
この
Unmarshaller に非整列化イベント・コールバックUnmarshaller.Listener を登録します。 |
void |
setProperty(String name, Object value) |
必要なプロパティがないため、setPropertyメソッドのデフォルト実装は常に、PropertyExceptionをスローします。
|
void |
setSchema(Schema schema) |
後の非整列化操作の検証に使用する、JAXP 1.3
Schema オブジェクトを指定します。 |
void |
setValidating(boolean validating) |
非整列化操作中にUnmarshallerが検証を行うかどうかを指定します。
|
Object |
unmarshal(File f) |
指定されたファイルからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
Object |
unmarshal(InputSource source) |
指定されたSAX InputSourceからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
Object |
unmarshal(InputStream is) |
指定されたInputStreamからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
<T> JAXBElement<T> |
unmarshal(Node node, Class<T> expectedType) |
JAXBマップdeclaredTypeによってXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
Object |
unmarshal(Reader reader) |
指定されたReaderからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
Object |
unmarshal(Source source) |
指定されたXML SourceからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
<T> JAXBElement<T> |
unmarshal(Source source, Class<T> expectedType) |
declaredTypeに基づき、指定されたXML SourceからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
Object |
unmarshal(URL url) |
指定されたURLからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
Object |
unmarshal(XMLEventReader reader) |
指定されたプル・パーサーからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
<T> JAXBElement<T> |
unmarshal(XMLEventReader reader, Class<T> expectedType) |
JAXBマップdeclaredTypeにルート要素を非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
protected abstract Object |
unmarshal(XMLReader reader, InputSource source) |
指定したXMLReaderとInputSourceを使用して、オブジェクトを非整列化します。
|
Object |
unmarshal(XMLStreamReader reader) |
指定されたプル・パーサーからXMLデータを非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
<T> JAXBElement<T> |
unmarshal(XMLStreamReader reader, Class<T> expectedType) |
JAXBマップdeclaredTypeにルート要素を非整列化し、結果として得られるコンテンツ・ツリーを返します。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getUnmarshallerHandler, unmarshal
protected XMLReader getXMLReader() throws JAXBException
SAXSource
オブジェクトにXMLReaderがない場合に使用されます。 Unmarshaller
は再入不可能なため、XMLReaderの単一のインスタンスのみが使用されます。 JAXBException
public Object unmarshal(Source source) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
クライアント・アプリケーションは、そのJAXBプロバイダで提供されているデフォルト・パーサー・メカニズムを使用しないことを選択できます。 任意のSAX 2.0準拠パーサーを、JAXBプロバイダのデフォルト・メカニズムに置換できます。 これを行うため、クライアント・アプリケーションは、SAX 2.0パーサー・プロバイダが実装しているXMLReaderを含むSAXSourceを適切に構成する必要があります。 XMLReaderにorg.xml.sax.ErrorHandlerが登録されている場合、それがJAXBプロバイダによって置き換えられ、検証エラーはJAXBのValidationEventHandlerメカニズムを介して報告される可能性があります。 SAXSourceにXMLReaderが含まれない場合、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だけである)JAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 Unmarshaller.unmarshal(javax.xml.transform.Source, Class)
protected abstract Object unmarshal(XMLReader reader, InputSource source) throws JAXBException
JAXBException
public final Object unmarshal(InputSource source) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
unmarshal
、インタフェースUnmarshaller
source
- 非整列化するXMLデータが含まれる入力ソースJAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public final Object unmarshal(URL url) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
unmarshal
、インタフェースUnmarshaller
url
- 非整列化するXMLデータが含まれるURLJAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public final Object unmarshal(File f) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
unmarshal
、インタフェースUnmarshaller
f
- 非整列化するXMLデータが含まれるファイルJAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public final Object unmarshal(InputStream is) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
unmarshal
、インタフェースUnmarshaller
is
- 非整列化するXMLデータが含まれるInputStreamJAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public final Object unmarshal(Reader reader) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
unmarshal
、インタフェースUnmarshaller
reader
- 非整列化するXMLデータが含まれるReaderJAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public boolean isValidating() throws JAXBException
ノート: getValidating()に対して、JAXPに合わせてisValidating()というメソッド名にしました。
isValidating
、インタフェースUnmarshaller
JAXBException
- 検証フラグの取得中にエラーが発生した場合public void setEventHandler(ValidationEventHandler handler) throws JAXBException
検証イベント・ハンドラは、いずれかのunmarshalメソッドを呼び出している途中で検証エラーが発生した場合、JAXBプロバイダによって呼び出されます。 非整列化メソッドを呼び出す前に、クライアント・アプリケーションが検証イベント・ハンドラを登録しなかった場合、すべての検証イベントは通知されることなく無視され、予想外の動作を引き起こす可能性があります。
setEventHandler
、インタフェースUnmarshaller
handler
- 検証イベント・ハンドラJAXBException
- イベント・ハンドラの設定中にエラーが発生した場合public void setValidating(boolean validating) throws JAXBException
このメソッドは、非整列化メソッドのいずれかを呼び出す前、または呼び出したあとにのみ、呼び出すことができます。
setValidating
、インタフェースUnmarshaller
validating
- Unmarshallerが非整列化中に検証を行うようにする場合はtrue、それ以外の場合はfalseJAXBException
- 非整列化時の検証を有効または無効にしている途中でエラーが発生した場合public ValidationEventHandler getEventHandler() throws JAXBException
getEventHandler
、インタフェースUnmarshaller
JAXBException
- 現在のイベント・ハンドラの取得中にエラーが発生した場合protected UnmarshalException createUnmarshalException(SAXException e)
プロバイダが実装したContentHandlerがJAXBExceptionをスローすることを望む場合、SAXExceptionによってその例外をラップする必要があります。 unmarshaller実装がJAXBExceptionによってSAXExceptionをやみくもにラップした場合、こうした例外がほかのJAXBExceptionによってラップされたSAXExceptionによってラップされたJAXBExceptionになります。 これは非常に無益です。
このメソッドは、SAXExceptionの入れ子の例外をチェックし、こうした過剰なラップを排除します。
public void setProperty(String name, Object value) throws PropertyException
setProperty
、インタフェースUnmarshaller
name
- 設定するプロパティの名前。 この値は、定数フィールドの1つかユーザーが指定した文字列を使用して指定できる。 value
- 設定するプロパティの値PropertyException
- 指定したプロパティまたは値の処理中にエラーが発生した場合public Object getProperty(String name) throws PropertyException
getProperty
、インタフェースUnmarshaller
name
- 取得するプロパティの名前PropertyException
- 指定したプロパティまたは値プロパティ名の取得中にエラーが発生した場合public Object unmarshal(XMLEventReader reader) throws JAXBException
Unmarshaller
このメソッドは、グローバル・ルートの非整列化メソッドです。
このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。
unmarshal
、インタフェースUnmarshaller
reader
- 読み込まれるパーサー。JAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 Unmarshaller.unmarshal(javax.xml.stream.XMLEventReader, Class)
public Object unmarshal(XMLStreamReader reader) throws JAXBException
Unmarshaller
グローバル・ルート要素の非整列化を実装します。
このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。
unmarshal
、インタフェースUnmarshaller
reader
- 読み込まれるパーサー。JAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 Unmarshaller.unmarshal(javax.xml.stream.XMLStreamReader, Class)
public <T> JAXBElement<T> unmarshal(Node node, Class<T> expectedType) throws JAXBException
Unmarshaller
宣言型による非整列化を実装します
unmarshal
、インタフェースUnmarshaller
node
- 非整列化するXMLデータが含まれるドキュメントまたは要素。 呼出し側は最低限、文書と要素をサポートする必要がある。 expectedType
- nodeのXMLデータを保持する、適切なJAXBマップ・クラス。JAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public <T> JAXBElement<T> unmarshal(Source source, Class<T> expectedType) throws JAXBException
Unmarshaller
宣言型による非整列化を実装します
「プラグイン可能なSAX 2.0パーサー」を参照してください
unmarshal
、インタフェースUnmarshaller
source
- 非整列化するXMLデータが含まれるXML Source (プロバイダがサポートする必要があるのは、SAXSource、DOMSource、およびStreamSourceだけである)expectedType
- sourceのXMLルート要素を保持する、適切なJAXBマップ・クラスJAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public <T> JAXBElement<T> unmarshal(XMLStreamReader reader, Class<T> expectedType) throws JAXBException
Unmarshaller
このメソッドは、宣言型による非整列化を実装します。
このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。
unmarshal
、インタフェースUnmarshaller
reader
- 読み込まれるパーサー。expectedType
- readerのSTART_ELEMENT XMLデータを保持する、適切なJAXBマップ・クラス。JAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public <T> JAXBElement<T> unmarshal(XMLEventReader reader, Class<T> expectedType) throws JAXBException
Unmarshaller
このメソッドは、宣言型による非整列化を実装します。
このメソッドは、パーサーでのSTART_DOCUMENTまたはSTART_ELEMENTイベントの発生を前提としています。 非整列化は、このstartイベントから、対応するendイベントまでの間に実行されます。 このメソッドが正常な結果を返す場合、readerは、endイベントの直後のトークンをポイントします。
unmarshal
、インタフェースUnmarshaller
reader
- 読み込まれるパーサー。expectedType
- readerのSTART_ELEMENT XMLデータを保持する、適切なJAXBマップ・クラス。JAXBException
- 非整列化の実行中に予想外のエラーが発生した場合UnmarshalException
- ValidationEventHandler
のhandleEventメソッドからfalseが返されるか、UnmarshallerがXMLからJavaへのバインディングを実行できない場合。 「XMLデータの非整列化」を参照 public void setSchema(Schema schema)
Unmarshaller
Schema
オブジェクトを指定します。 このメソッドにnullを渡すと、検証は無効になります。
このメソッドは、非推奨のsetValidating(boolean)
APIに置き換わるものです。
このプロパティは最初にnullに設定されます。
setSchema
、インタフェースUnmarshaller
schema
- 非整列化操作の検証に使用するスキーマ・オブジェクト。検証を無効にする場合はnullpublic Schema getSchema()
Unmarshaller
Schema
オブジェクトを取得します。 Unmarshallerにスキーマが設定されていない場合、このメソッドは、非整列化時に検証を実行しないことを示す、nullを返します。
このメソッドは、非推奨のUnmarshaller.isValidating()
APIに代わる機能であり、Schemaオブジェクトへのアクセスを提供します。 Unmarshallerが検証を有効にしているかどうかを判断するには、戻り値の型とnullを照らし合わせてチェックすれば簡単にわかります。
boolean isValidating = u.getSchema()!=null;
getSchema
、インタフェースUnmarshaller
public void setAdapter(XmlAdapter adapter)
Unmarshaller
XmlAdapter
の構成済みのインスタンスをこのアンマーシャラに関連付けます。
これはsetAdapter(adapter.getClass(),adapter);
を呼び出す簡易メソッドです。
setAdapter
、インタフェースUnmarshaller
Unmarshaller.setAdapter(Class,XmlAdapter)
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の場合、この型に対して現在設定されているアダプタの登録が解除される。 public <A extends XmlAdapter> A getAdapter(Class<A> type)
Unmarshaller
Unmarshaller.setAdapter(javax.xml.bind.annotation.adapters.XmlAdapter)
メソッドの逆の操作です。 getAdapter
、インタフェースUnmarshaller
public void setAttachmentUnmarshaller(AttachmentUnmarshaller au)
Unmarshaller
cid、コンテンツID URIを、添付として渡されたバイナリ・データに解決するコンテキストを関連付けます。
非整列化時の検証は、Unmarshaller.setSchema(Schema)
を介して有効化され、UnmarshallerがXOP処理を実行する場合でもサポートする必要があります。
setAttachmentUnmarshaller
、インタフェースUnmarshaller
public AttachmentUnmarshaller getAttachmentUnmarshaller()
getAttachmentUnmarshaller
、インタフェースUnmarshaller
public void setListener(Unmarshaller.Listener listener)
Unmarshaller
このUnmarshaller
に非整列化イベント・コールバックUnmarshaller.Listener
を登録します。
各UnmarshallerにListenerは1つだけです。 Listenerを設定すると、前に設定されていたListenerと置き換わります。 Listenerにnullを設定することにより、現在のListenerの登録を解除できます。
setListener
、インタフェースUnmarshaller
listener
- このUnmarshaller
に非整列化イベント・コールバックを提供するpublic Unmarshaller.Listener getListener()
Unmarshaller
このUnmarshaller
に登録されたUnmarshaller.Listener
を返します。
getListener
、インタフェースUnmarshaller
Unmarshaller.Listener
、またはこのUnmarshallerに登録されているListenerがない場合null
。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。