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, 2013, Oracle and/or its affiliates. All rights reserved.