アノテーション型 XmlSchema
@RetentionSE(RUNTIMESE) @TargetSE(PACKAGESE) public @interface XmlSchema
パッケージ名を XML 名前空間にマップします。
使用方法
XmlSchema アノテーションは、次のプログラム要素で使用できます。
- パッケージ
これはパッケージレベルのアノテーションであり、JSR175 のセクション III「アノテーション」に含まれている推奨事項と制限に従います。使用箇所には次の制約と推奨事項があります。
- JSR 175、セクション III、「アノテーション」に記載されているように、パッケージ宣言は 1 つしか存在できません。
- JSR 175 は、パッケージレベルのアノテーションに package-info.java を推奨しています。この推奨事項に従う Jakarta XML Binding Providers では、パッケージレベルのアノテーションを package-info.java で定義できます。
例 1: パッケージがマップされる XML 名前空間の名前をカスタマイズします。
@jakarta.xml.bind.annotation.XmlSchema ( namespace = "http://www.example.com/MYPO1" )
<!-- XML Schema fragment --> <schema xmlns=... xmlns:po=.... targetNamespace="http://www.example.com/MYPO1" > <!-- prefixes generated by default are implementation depedenent -->
例 2: 名前空間プレフィックス、名前空間 URI マッピングをカスタマイズする
// Package level annotation @jakarta.xml.bind.annotation.XmlSchema ( xmlns = { @jakarta.xml.bind.annotation.XmlNs(prefix = "po", namespaceURI="http://www.example.com/myPO1"), @jakarta.xml.bind.annotation.XmlNs(prefix="xs", namespaceURI="http://www.w3.org/2001/XMLSchema") } )
<!-- XML Schema fragment --> <schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:po="http://www.example.com/PO1" targetNamespace="http://www.example.com/PO1">
例 3: elementFormDefault をカスタマイズする
@jakarta.xml.bind.annotation.XmlSchema ( elementFormDefault=XmlNsForm.UNQUALIFIED ... )
<!-- XML Schema fragment --> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:po="http://www.example.com/PO1" elementFormDefault="unqualified">
- 導入:
- 1.6、JAXB 2.0
- 作成者:
- Sekhar Vajjhala, Sun Microsystems, Inc.
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static StringSE
NO_LOCATION
location()
属性のデフォルト値。これは、スキーマジェネレーターがこの名前空間にコンポーネントを生成することを示します。
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 XmlNsForm
attributeFormDefault
属性の名前空間の修飾。XmlNsForm
elementFormDefault
要素の名前空間の修飾。StringSE
location
この名前空間(namespace()
で指定)に、この場所で利用可能な、外部ですでに利用可能なスキーマがあることを示します。StringSE
namespace
XML 名前空間の名前。XmlNs[]
xmlns
名前空間 URI、プレフィックスの関連付けをカスタマイズします。
フィールドの詳細
NO_LOCATION
static final StringSE NO_LOCATION
location()
属性のデフォルト値。これは、スキーマジェネレーターがこの名前空間にコンポーネントを生成することを示します。
要素の詳細
xmlns
XmlNs[] xmlns
名前空間 URI、プレフィックスの関連付けをカスタマイズします。デフォルトでは、XML 名前空間の名前空間プレフィックスは、実装に依存する方法で Jakarta XML Binding Provider によって生成されます。- デフォルト:
- {}
namespace
StringSE namespace
XML 名前空間の名前。- デフォルト:
- ""
elementFormDefault
XmlNsForm elementFormDefault
要素の名前空間の修飾。デフォルトでは、要素のデフォルト属性は XML スキーマフラグメントに存在しません。- デフォルト:
- jakarta.xml.bind.annotation.XmlNsForm.UNSET
attributeFormDefault
XmlNsForm attributeFormDefault
属性の名前空間修飾。デフォルトでは、attributesFormDefault は XML スキーマフラグメントに存在しません。- デフォルト:
- jakarta.xml.bind.annotation.XmlNsForm.UNSET
location
StringSE location
この名前空間(namespace()
で指定)に、この場所で利用可能な、外部ですでに利用可能なスキーマがあることを示します。これにより、Jakarta XML Binding スキーマジェネレーターは、コンポーネントをスキーマに生成するのではなく、指定されたスキーマを単に参照するように指示されます。このスキーマは、スキーマジェネレーターによって生成されるものと一致すると想定されます (同じ要素名、同じ型名 ..。)
この機能は、Java クラスのセットが元々既存のスキーマから生成された場合、外部で定義されたスキーマと一致するように手書きされた場合、または生成されたスキーマが手動で変更された場合に使用することを目的としています。
値は、
http://example.org/some.xsd
などの任意の絶対 URI にすることができます。空の文字列を指定して、スキーマが外部で使用可能であることを示すこともできますが、場所は指定されていません(したがって、生成スキーマのリーダーがそれを見つける責任があります)。最後に、このプロパティのデフォルト値"##generate"
スキーマジェネレーターがこの名前空間のコンポーネントを生成することを示します (Jakarta XML Binding と同様。)複数のパッケージ上の複数の
XmlSchema
アノテーションは、同じnamespace()
を管理できます。このような場合、すべて同じlocation()
値を持っている必要があります。実装者への注意
より正確には、値は
""
、"##generate"
、<scheme>:
で始まるxs:anyURI
の有効な字句表現のいずれかである必要があります。スキーマジェネレーターは、対応する
<xs:import namespace="..." schemaLocation="..."/>
を生成することが期待されます(または、空の文字列が指定されている場合はschemaLocation
属性をまったく生成しません)。ただし、スキーマジェネレーターはschemaLocation
属性で異なる値を使用できます(そのような属性を生成しないことを含む)。たとえば、ユーザーがコマンドラインインターフェースを介してリソースのローカルコピーを指定できるようにします。- 導入:
- 1.6、JAXB 2.1
- デフォルト:
- "##generate"