- java.lang.Object
-
- javax.xml.bind.JAXBContext
-
public abstract class JAXBContext extends Object
JAXBContext
クラスは、JAXB APIに対するクライアントのエントリ・ポイントを提供します。 これは、JAXBバインディング・フレームワーク操作(非整列化、整列化および検証)を実装する上で必要になるXML/Javaバインディング情報を管理するための抽象化オブジェクトを提供しています。利用可能なほかの特殊なメソッドの形式はありますが、クライアント・アプリケーションは通常、次の2つのスタイルのnewInstanceメソッドのいずれかを使用して、このクラスの新しいインスタンスを取得します。
JAXBContext.newInstance("com.acme.foo:com.acme.bar")
JAXBContextインスタンスは、コロンで区切られたJavaパッケージ名のリストをもとに初期化されます。 各Javaパッケージには、JAXBマップ・クラス、スキーマ派生クラス、ユーザーによって注釈が付けられたクラスが含まれます。 また、Javaパッケージに、処理すべきJAXBパッケージ注釈が含まれることもあります(JLSのセクション7.4.1名前付きパッケージを参照)。JAXBContext.newInstance(com.acme.foo.Foo.class)
JAXBContextインスタンスは、パラメータとして渡されたクラスとこれらのクラスから静的に到達可能なクラスをもとに初期化されます。 詳細は、newInstance(Class...)
を参照してください。
次のJAXB 1.0要件は、スキーマからJavaへのインタフェースおよび実装バインディングでのみ必要になります。 JAXB注釈付きクラスには適用されません。 JAXBプロバイダは、スキーマ派生クラスを含む各パッケージに
jaxb.properties
ファイルを生成する必要があります。 このプロパティ・ファイルには、プロパティ名がjavax.xml.bind.context.factory
で、値がcreateContext
APIを実装するクラス名であるプロパティが含まれる必要があります。プロバイダが提供するクラスは
javax.xml.bind.JAXBContext
に割当て可能でなくてもよく、単にcreateContext
APIを実装するクラスを提供することが求められます。また、プロバイダは、整列化および非整列化メソッドのクライアント呼出しの前に
DatatypeConverter.setDatatypeConverter
APIを呼び出す必要があります。 これは、これらの操作中に使用されるデータ型コンバータを構成するために必要になります。非整列化
Unmarshaller
クラスは、XMLデータをJavaコンテンツ・オブジェクト・ツリーに変換できる機能をクライアント・アプリケーションに提供します。 非整列化メソッドでは、スキーマ内で宣言された任意のグローバルXML要素を、インスタンス文書のルートとして非整列化することができます。 加えて、非整列化メソッドでは、スキーマで宣言された型定義を参照するxsi:type属性値を持つ未認識のルート文書を、インスタンス文書のルートとして非整列化することができます。JAXBContext
オブジェクトは、contextPath
にリストされたスキーマ・セットにまたがるグローバル要素と型定義のマージを許可しています。 スキーマ・セット内の各スキーマは異なるネームスペースに属することができるため、非整列コンテキストへのスキーマの統一はネームスペースに依存しない必要があります。 このことは、contextPath
でリストされた任意のスキーマのインスタンスであるXML文書をクライアント・アプリケーションが非整列化できることを意味します。 次に例を示します。JAXBContext jc = JAXBContext.newInstance( "com.acme.foo:com.acme.bar" ); Unmarshaller u = jc.createUnmarshaller(); FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // ok BarObject barObj = (BarObject)u.unmarshal( new File( "bar.xml" ) ); // ok BazObject bazObj = (BazObject)u.unmarshal( new File( "baz.xml" ) ); // error, "com.acme.baz" not in contextPath
また、クライアント・アプリケーションは、既存のXMLデータを非整列化するのでなく、Javaコンテンツ・ツリーを明示的に生成することもできます。 すべてのJAXB注釈付き値クラスに対し、アプリケーションはコンストラクタを使用してコンテンツを作成できます。 スキーマ派生インタフェース/実装クラス、およびJAXBアノテーション付きクラスにバインドされていない要素を作成するには、アプリケーションに含まれる各Javaパッケージに存在する各スキーマ派生
ObjectFactory
クラスcontextPath
。 個々のスキーマ派生Javaクラスには、その型のオブジェクトを生成するstaticファクトリ・メソッドが存在します。 たとえば、スキーマをコンパイルしたあと、PurchaseOrder
という名前のスキーマ派生インタフェースを含むパッケージcom.acme.foo
があるとします。 その型のオブジェクトを作成するために、クライアント・アプリケーションは次のファクトリ・メソッドを使用します。com.acme.foo.PurchaseOrder po = com.acme.foo.ObjectFactory.createPurchaseOrder();
スキーマ派生オブジェクトのインスタンスの作成後、クライアント・アプリケーションは変更用メソッドを使用してそれのコンテンツを設定できます。
生成された
ObjectFactory
クラスの詳細は、仕様のセクション4.2Java Packageを参照してください。プロバイダは、静的な
newInstance( javaContentInterface )
メソッドだけでなく、ObjectFactoryというパッケージに必要なすべてのオブジェクト・ファクトリ・メソッドを含む各パッケージにクラスを生成する必要があります整列化
Marshaller
クラスは、Javaコンテンツ・ツリーを変換してXMLデータに戻す機能をクライアント・アプリケーションに提供します。 ファクトリ・メソッドを使用して手動で作成されたコンテンツ・ツリーをマーシャリングし、結果としてunmarshal
操作のコンテンツ・ツリーをマーシャリングすることには違いはありません。 クライアントは、Javaコンテンツ・ツリーをXMLデータに整列化し、java.io.OutputStream
またはjava.io.Writer
に書き込むことができます。 あるいは、整列化プロセスがSAX2イベント・ストリームを生成して登録済みのContentHandler
に渡すか、DOM Nodeオブジェクトを生成することもできます。 クライアント・アプリケーションは、出力エンコーディングと、XMLデータを文書全体またはフラグメントとして整列化するかどうかを制御します。次に、XML文書を非整列化したあと、それを整列化し直す、簡単な例を示します。
JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" ); // unmarshal from foo.xml Unmarshaller u = jc.createUnmarshaller(); FooObject fooObj = (FooObject)u.unmarshal( new File( "foo.xml" ) ); // marshal to System.out Marshaller m = jc.createMarshaller(); m.marshal( fooObj, System.out );
検証
検証は、JAXB 1.0以降、大きく変更されました。
Validator
クラスは、非推奨になり、オプションとされています。 これは、このクラスを使用しないことが推奨されていることを意味し、実際に、使用しているJAXBプロバイダによっては利用できない場合もあります。Validator
に依存するJAXB 1.0クライアント・アプリケーションは、JAXB 1.0実行システムに配備された場合、まだ正常に動作します。 JAXB 2.0では、JAXP 1.3javax.xml.validation
フレームワークを公開する簡易メソッドがUnmarshaller
に含まれています。 詳細は、Unmarshaller.setSchema(javax.xml.validation.Schema)
APIを参照してください。JAXB実行時バインディング・フレームワークの互換性
次のJAXB 1.0の制限は、スキーマとインタフェースまたは実装クラス間のバインディングにのみ適用されます。 このバインディングは共通の実行システムを必要としないため、JAXBクライアント・アプリケーションは、異なるプロバイダの実行時オブジェクト(
JAXBContext、Marshaller
など)の混合を試みることはできません。 このことは、クライアント・アプリケーションに移植性がないことを意味しません。単に、クライアントが、スキーマをコンパイルするときに使用したのと同じプロバイダにより提供される実行システムを使用する必要があることを意味します。JAXB実装の検出
JAXBContext
のインスタンスを作成するには、JAXBContext.newInstance(...)
メソッドの1つが呼び出されます。 JAX-B実装が検出された後、呼び出しは、元の呼び出しからパラメータを渡す適切なプロバイダ・メソッドcreateContext(...)
に委譲されます。JAX-B実装の発見は、
JAXBContext.newInstance
が呼び出されるたびに行われます。 ユーザー固有の構成が提供されていない場合は、デフォルトのJAX-Bプロバイダを返す必要があります。実装の検出は、以下のステップで構成されます:
-
newInstance(java.lang.String)
メソッドに明示的に渡されるパッケージ/クラスは、jaxb.properties
ファイルが関連するクラス・ローダーを使用してパッケージ内で検索されるまで、指定された順序で処理されます - これはClass
引数の場合はthe owner class loader
、パッケージの場合は指定されたClassLoader
です。そのようなリソースが検出された場合、それはプロパティ・ファイルとして
loaded
であり、JAXB_CONTEXT_FACTORY
キーの値はプロバイダ・ファクトリ・クラスとみなされます。 値が見つからない場合、"javax.xml.bind.context.factory"
は下位互換性の理由からキーとして使用されます。 このクラスは、上で説明した関連するクラス・ローダーによってロードされます。検索のこの段階では、一部のパッケージで強制的に特定のJAXB実装を使用できます。 (たとえば、スキーマ・コンパイラによってコード内に何らかのベンダー拡張機能が生成されている場合があります。)
この構成メソッドは非推奨です。
-
システム・プロパティ
JAXB_CONTEXT_FACTORY
が存在する場合は、その値がプロバイダ・ファクトリ・クラスと見なされます。 このようなプロパティが存在しない場合、下位互換性の理由から、プロパティ"javax.xml.bind.context.factory"
および"javax.xml.bind.JAXBContext"
も(この順番で)でチェックされます。 検索のこの段階では、JVM単位でJAXB実装をオーバーライドできます。 -
JAXBContextFactory
のプロバイダは、ServiceLoader
クラスで定義されているサービス・プロバイダのローディング機能を使用してロードされ、デフォルトのロード・メカニズムを使用してサービスの実装の検索とロードを試みます: サービス・プロバイダ・ローディング機能は、現在のスレッド・コンテキスト・クラス・ローダーを使用してコンテキスト・ファクトリをロードしようとします。 コンテキスト・クラス・ローダーがnullの場合、システム・クラス・ローダーが使用されます。service configuration error
の場合はJAXBException
がスローされます。 -
提供されたクラス・ローダーを使用してリソース
/META-INF/services/javax.xml.bind.JAXBContext
を探します。 クラス・ローダー・パラメータを持たないメソッドは、Thread.currentThread().getContextClassLoader()
を使用します。 そのようなリソースが存在する場合、その内容はプロバイダ・ファクトリ・クラスとみなされます。 この構成メソッドは非推奨です。 - 最後に、上記のすべての手順が失敗した場合、残りの検索は指定されていません。 つまり、推奨される動作では、ハードコードされたプラットフォームのデフォルトのJAXB実装が検索されます。 ルックアップのこの段階は、Java SEが最後の手段として独自のJAXB実装を持つことができるようにすることです。
プロバイダ・ファクトリ・クラスが検出されると、コンテキスト作成は
createContext(...)
メソッドの1つに委譲されます。 下位互換性の理由から、プロバイダ・ファクトリ・クラスを実装する方法は2つあります:- クラスは
JAXBContextFactory
の実装です。 引数なしのコンストラクタも実装する必要があります。 他のステップで見つかった場合は3、引数なしのコンストラクタを使用する新しいインスタンスが最初に作成されます。 その後、このインスタンスに対して適切なインスタンス・メソッドが呼び出されます。 - クラスは上記のインタフェースの実装ではなく、次の静的メソッドのシグネチャを実装することが義務付けられています:
public static JAXBContext createContext( String contextPath, ClassLoader classLoader, Map<String,Object> properties ) throws JAXBException public static JAXBContext createContext( Class[] classes, Map<String,Object> properties ) throws JAXBException
このシナリオでは、インスタンス・メソッドの代わりに適切な静的メソッドが使用されます。 この方法はServiceLoader
と互換性がないため、ステップ3では使用できません。
アプローチ1 (JAXBContextFactory)と2 (インタフェースなし、静的メソッド)のどちらを使用するかにかかわらず、与えられたメソッド
createContext(...)
の動作に違いはありません。- APIの注:
- リソース
/META-INF/services/javax.xml.bind.JAXBContext
(ステップ4で説明した)を使用するサービス検出メソッドは、下位互換性を可能にするためだけにサポートされています。標準のServiceLoader
メカニズム(ステップ3で説明した)に移行することを強く推奨します。 ここでの違いは、リソース名であり、サービス型名と一致しません。また、
JAXBContextFactory
インタフェースを実装するプロバイダを使用する方が静的メソッドを定義するものよりも優先されます。JAXB_CONTEXT_FACTORY
プロパティはプロパティ"javax.xml.bind.context.factory"
よりも優先されます - 実装上の注意:
- 最後のステップで、Glassfish AS環境が検出された場合は、その特定のサービス・ローダーを使用してファクトリ・クラスを検索します。
- 導入されたバージョン:
- 1.6, JAXB 1.0
- 関連項目:
Marshaller
,Unmarshaller
, 「S 7.4.1 Java言語仕様における"名前付きパッケージ"」
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static String
JAXB_CONTEXT_FACTORY
新しいJAXBContext
オブジェクトを作成可能なクラスの名前を含むプロパティの名前です。
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
JAXBContext()
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 Binder<Node>
createBinder()
W3C DOM用のBinder
を作成します。<T> Binder<T>
createBinder(Class<T> domType)
関連付けされた、またはインプレースの非整列化または整列化に使用できるBinder
オブジェクトを作成します。JAXBIntrospector
createJAXBIntrospector()
JAXBオブジェクトをイントロスペクションするために使用できるJAXBIntrospector
オブジェクトを作成します。abstract Marshaller
createMarshaller()
Javaコンテンツ・ツリーをXMLデータに変換するために使用できるMarshaller
オブジェクトを作成します。abstract Unmarshaller
createUnmarshaller()
XMLデータをJavaコンテンツ・ツリーに変換するために使用できるUnmarshaller
オブジェクトを作成します。abstract Validator
createValidator()
非推奨。JAXB2.0以降void
generateSchema(SchemaOutputResolver outputResolver)
このコンテキストのスキーマ文書を生成します。static JAXBContext
newInstance(Class<?>... classesToBeBound)
JAXBContext
クラスの新しいインスタンスを作成します。static JAXBContext
newInstance(Class<?>[] classesToBeBound, Map<String,?> properties)
JAXBContext
クラスの新しいインスタンスを作成します。static JAXBContext
newInstance(String contextPath)
JAXBContext
クラスの新しいインスタンスを作成します。static JAXBContext
newInstance(String contextPath, ClassLoader classLoader)
JAXBContext
クラスの新しいインスタンスを作成します。static JAXBContext
newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties)
JAXBContext
クラスの新しいインスタンスを作成します。
-
-
-
メソッドの詳細
-
newInstance
public static JAXBContext newInstance(String contextPath) throws JAXBException
JAXBContext
クラスの新しいインスタンスを作成します。これは、
newInstance(String,ClassLoader)
メソッドを呼び出すための簡易メソッドです。現在のスレッドのコンテキスト・クラス・ローダーを使用します。- 例外:
JAXBException
-JAXBContext
の作成中に次のようなエラーが発生した場合- パッケージ内でObjectFactory.classまたはjaxb.indexが見つからない
- contextPathに含まれるグローバル要素間であいまいさがある
- コンテキスト・ファクトリ・プロバイダ・プロパティの値が見つからない
- 同じcontextPathに異なるプロバイダからのスキーマ派生パッケージが混在している
- パッケージが
java.xml.bind
モジュールに対してオープンしていない
-
newInstance
public static JAXBContext newInstance(String contextPath, ClassLoader classLoader) throws JAXBException
JAXBContext
クラスの新しいインスタンスを作成します。クライアント・アプリケーションは、コロン(:、\u003A)で区切られたJavaパッケージ名のリストであるコンテキスト・パスを提供する必要があります。これには、スキーマ派生クラスおよび完全修飾JAXB注釈付きクラスの両方またはいずれか一方が含まれます。 スキーマ派生コードは、パッケージごとに生成されたObjectFactory.classによってJAXBContextに登録されます。 あるいは、コンテキスト・パスにリストするのではなく、プログラマが注釈を指定したJAXBマップ・クラスを次の形式で
jaxb.index
リソース・ファイルにリストすることもできます。 Javaパッケージは、スキーマ派生クラスとユーザー注釈JAXBクラスの両方を含むことができます。 また、Javaパッケージに、処理すべきJAXBパッケージ注釈が含まれることもあります(JLSのセクション7.4.1名前付きパッケージを参照)。contextPathにリストされる各パッケージは、次の条件の 1つまたは両方を満たす必要があります。これを満たさない場合、
JAXBException
がスローされます。- ObjectFactory.classを含むこと
- jaxb.indexを含むこと
jaxb.indexの形式
このファイルには、改行で区切れられたクラス名のリストが含まれます。 空白文字とタブ文字、および空白行は無視されます。 コメント文字は「#」(0x23)で、行の最初のコメント文字に続く文字はすべて無視されます。 ファイルはUTF-8でエンコードされる必要があります。 また、
newInstance(Class...)
で定義されたとおり、リストされたクラスから到達可能なクラスがJAXBContextに登録されます。jaxb.index
ファイルで発生するクラス名の制約は、次のとおりです。- 「.class」で終わってはならない。
jaxb.index
ファイルを含むパッケージに対して相対的にクラス名が解決される。jaxb.index
ファイルを含むパッケージに直接発生するクラスのみが許可される。- 完全指定されたクラス名は許可されない。 入れ子または内部クラスを指定する際は、現在のパッケージに対して相対的に修飾されたクラス名のみが許可される。
スキーマ・カスタマイズ
<jaxb:globalBindings valueClass="false">
によって有効化される、JAXB 1.0スキーマからJavaへのインタフェース/実装バインディングとの互換性を維持するため、JAXBプロバイダはコンテキスト・パス上の各パッケージにjavax.xml.bind.context.factory
プロパティの値を含むjaxb.properties
ファイルが含まれ、すべての値が同じプロバイダに解決されることを保証します。 この要件は、JAXB注釈付きクラスには適用されません。contextPath
にリストされたさまざまなパッケージにまたがってグローバルXML要素名の競合が発生した場合、JAXBException
がスローされます。同じコンテキスト・パス内に複数のJAXBプロバイダから生成されたインタフェース/実装バインディングが混在する場合、
JAXBException
がスローされる可能性があります。JAXB実装の検出に関連する手順は、クラスjavadocで説明します。
- パラメータ:
contextPath
- スキーマ派生クラスおよび/またはjava to schema (JAXB-annotated)マップ・クラスを含むJavaパッケージ名のリスト。contextPath
の名前付きモジュールに含まれるパッケージは、少なくともjava.xml.bind
モジュールに対してopenでなければなりません。classLoader
- このクラス・ローダーが実装クラスの場所の特定に使用される。- 戻り値:
JAXBContext
の新しいインスタンス- 例外:
JAXBException
-JAXBContext
の作成中に次のようなエラーが発生した場合- パッケージ内でObjectFactory.classまたはjaxb.indexが見つからない
- contextPathに含まれるグローバル要素間であいまいさがある
- コンテキスト・ファクトリ・プロバイダ・プロパティの値が見つからない
- 同じcontextPathに異なるプロバイダからのスキーマ派生パッケージが混在している
- パッケージが
java.xml.bind
モジュールに対してオープンしていない
-
newInstance
public static JAXBContext newInstance(String contextPath, ClassLoader classLoader, Map<String,?> properties) throws JAXBException
JAXBContext
クラスの新しいインスタンスを作成します。これは、
newInstance(String, ClassLoader)
とほとんど同じですが、このバージョンではJAXBContext
のインスタンス化を設定するためにプロバイダ固有のプロパティを渡すことができます。プロパティの解釈は、実装に委ねられます。 実装は、理解できないプロパティを検出した場合は、
JAXBException
をスローする必要があります。- パラメータ:
contextPath
- スキーマ派生クラスおよび/またはjava to schema (JAXB-annotated)マップ・クラスを含むJavaパッケージ名のリスト。contextPath
の名前付きモジュールに含まれるパッケージは、少なくともjava.xml.bind
モジュールに対してopenでなければなりません。classLoader
- このクラス・ローダーが実装クラスの場所の特定に使用される。properties
- プロバイダ固有のプロパティ。 nullでもよいが、空マップで渡す場合と同じことを意味する。- 戻り値:
JAXBContext
の新しいインスタンス- 例外:
JAXBException
-JAXBContext
の作成中に次のようなエラーが発生した場合- パッケージ内でObjectFactory.classまたはjaxb.indexが見つからない
- contextPathに含まれるグローバル要素間であいまいさがある
- コンテキスト・ファクトリ・プロバイダ・プロパティの値が見つからない
- 同じcontextPathに異なるプロバイダからのスキーマ派生パッケージが混在している
- パッケージが
java.xml.bind
モジュールに対してオープンしていない
- 導入されたバージョン:
- 1.6, JAXB 2.0
-
newInstance
public static JAXBContext newInstance(Class<?>... classesToBeBound) throws JAXBException
JAXBContext
クラスの新しいインスタンスを作成します。クライアント・アプリケーションは、新しいコンテキスト・オブジェクトが認識する必要があるクラスのリストを提供する必要があります。 新しいコンテキストは、指定されたすべてのクラスを認識するだけでなく、指定されたクラスから静的に直接または間接的に参照されているすべてのクラスも認識するようになります。 参照されているクラスのサブクラスおよび
XmlTransient
参照クラスは、JAXBContextに登録されません。 たとえば、次のJavaコードでは、newInstance(Foo.class)
を呼び出した場合、新しく作成されたJAXBContext
でFoo
とBar
の両方が認識されるようになりますが、Zot
とFooBar
は認識されません。class Foo { @XmlTransient FooBar c; Bar b; } class Bar { int x; } class Zot extends Bar { int y; } class FooBar { }
そのため、一般的なクライアント・アプリケーションでは、トップレベル・クラスを指定するだけで済みますが、注意深く指定する必要があります。JAXBContextに登録された各Javaパッケージに対して、オプションのパッケージ注釈が存在する場合、それらが処理される必要があります(JLSのセクション7.4.1「名前付きパッケージ」を参照)。
JAXB実装の検出に関連する手順は、クラスjavadocで説明します。
- パラメータ:
classesToBeBound
- 新しいJAXBContext
によって認識されるJavaクラスのリスト。 名前付きモジュールにあるclassesToBeBound
のクラスは、openから少なくともjava.xml.bind
モジュールまでのパッケージ内になければなりません。 空でもよいが、その場合は仕様定義済みクラスだけを認識しているJAXBContext
が返される。- 戻り値:
JAXBContext
の新しいインスタンス。- 例外:
JAXBException
-JAXBContext
の作成中に次のようなエラーが発生した場合(ただし、これらに限定されない)。- JAXB実装が検出されない
- クラスがJAXB注釈を誤って使用している
- クラス間に重複する注釈がある(たとえば、同じ型名を持つ2つのクラス)
- JAXB実装がプロバイダ固有の帯域外情報を見つけられない場合(開発時に生成された追加ファイルなど)
classesToBeBound
はjava.xml.bind
モジュールに対してオープンしていません
IllegalArgumentException
- パラメータにnull
が含まれる場合(つまり、newInstance(null);
)- 導入されたバージョン:
- 1.6, JAXB 2.0
-
newInstance
public static JAXBContext newInstance(Class<?>[] classesToBeBound, Map<String,?> properties) throws JAXBException
JAXBContext
クラスの新しいインスタンスを作成します。JAXBContext
のこのインスタンス化に対して「properties」を構成するnewInstance(Class...)
のオーバーロードです。プロパティの解釈は、実装に委ねられます。 実装は、理解できないプロパティを検出した場合は、
JAXBException
をスローする必要があります。- パラメータ:
classesToBeBound
- 新しいJAXBContext
によって認識されるJavaクラスのリスト。 名前付きモジュールにあるclassesToBeBound
のクラスは、openから少なくともjava.xml.bind
モジュールまでのパッケージ内になければなりません。 空でもよいが、その場合は仕様定義済みクラスだけを認識しているJAXBContext
が返される。properties
- プロバイダ固有のプロパティ。 nullでもよいが、空マップで渡す場合と同じことを意味する。- 戻り値:
JAXBContext
の新しいインスタンス。- 例外:
JAXBException
-JAXBContext
の作成中に次のようなエラーが発生した場合(ただし、これらに限定されない)。- JAXB実装が検出されない
- クラスがJAXB注釈を誤って使用している
- クラス間に重複する注釈がある(たとえば、同じ型名を持つ2つのクラス)
- JAXB実装がプロバイダ固有の帯域外情報を見つけられない場合(開発時に生成された追加ファイルなど)
classesToBeBound
はjava.xml.bind
モジュールに対してオープンしていません
IllegalArgumentException
- パラメータにnull
が含まれる場合(つまり、newInstance(null,someMap);
)- 導入されたバージョン:
- 1.6, JAXB 2.0
-
createUnmarshaller
public abstract Unmarshaller createUnmarshaller() throws JAXBException
XMLデータをJavaコンテンツ・ツリーに変換するために使用できるUnmarshaller
オブジェクトを作成します。- 戻り値:
Unmarshaller
オブジェクト- 例外:
JAXBException
-Unmarshaller
オブジェクトの作成中にエラーが発生した場合
-
createMarshaller
public abstract Marshaller createMarshaller() throws JAXBException
Javaコンテンツ・ツリーをXMLデータに変換するために使用できるMarshaller
オブジェクトを作成します。- 戻り値:
Marshaller
オブジェクト- 例外:
JAXBException
-Marshaller
オブジェクトの作成中にエラーが発生した場合
-
createValidator
@Deprecated public abstract Validator createValidator() throws JAXBException
非推奨。 JAXB2.0以降Validator
は、JAXB 2.0ではオプションであり、非推奨です。 詳細は、Validator
に関するjavadocを参照してください。Javaコンテンツ・ツリーをそれのソース・スキーマに照らし合わせて検証するために使用できる
Validator
オブジェクトを作成します。- 戻り値:
Validator
オブジェクト- 例外:
JAXBException
-Validator
オブジェクトの作成中にエラーが発生した場合
-
createBinder
public <T> Binder<T> createBinder(Class<T> domType)
関連付けされた、またはインプレースの非整列化または整列化に使用できるBinder
オブジェクトを作成します。- パラメータ:
domType
- そのDOM Nodeクラスを渡すことによって使用するDOM APIを選択する。- 戻り値:
- 常に新しい有効な
Binder
オブジェクト。 - 例外:
UnsupportedOperationException
-domType
に対応するDOM APIが実装によってサポートされていない場合。- 導入されたバージョン:
- 1.6, JAXB 2.0
-
createBinder
public Binder<Node> createBinder()
W3C DOM用のBinder
を作成します。- 戻り値:
- 常に新しい有効な
Binder
オブジェクト。 - 導入されたバージョン:
- 1.6, JAXB 2.0
-
createJAXBIntrospector
public JAXBIntrospector createJAXBIntrospector()
JAXBオブジェクトをイントロスペクションするために使用できるJAXBIntrospector
オブジェクトを作成します。- 戻り値:
- 常にnull以外の有効な
JAXBIntrospector
オブジェクトを返す。 - 例外:
UnsupportedOperationException
- JAXB 1.0実装でこのメソッドを呼び出した場合、UnsupportedOperationExceptionがスローされる。- 導入されたバージョン:
- 1.6, JAXB 2.0
-
generateSchema
public void generateSchema(SchemaOutputResolver outputResolver) throws IOException
このコンテキストのスキーマ文書を生成します。- パラメータ:
outputResolver
- このオブジェクトは、スキーマの送信先となる出力を制御する。- 例外:
IOException
-SchemaOutputResolver
がIOException
をスローする場合。UnsupportedOperationException
- JAXB 1.0実装でこのメソッドを呼び出した場合、UnsupportedOperationExceptionがスローされる。- 導入されたバージョン:
- 1.6, JAXB 2.0
-
-