-
@Retention(RUNTIME) @Target(PACKAGE) public @interface XmlSchema
パッケージ名をXML名前空間にマップします。
使用法
XmlSchema注釈は、次のプログラム要素で使用できます。
- パッケージ
これは、パッケージ・レベルの注釈であり、JSR 175、セクション3の「Annotations」に含まれる推奨事項と制限に従います。 そのため、これの使用には次の制約と推奨事項が適用されます。
- JSR 175、セクション3の「Annotations」で記述されているとおり、パッケージ宣言は1つだけです。
- JSR 175は、パッケージ・レベルの注釈としてpackage-info.javaを推奨しています。 この推奨に従うJAXBプロバイダは、パッケージ・レベルの注釈をpackage-info.javaで定義できるようにします。
例1: パッケージのマップ先となるXML名前空間名をカスタマイズする。
@javax.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 @javax.xml.bind.annotation.XmlSchema ( xmlns = { @javax.xml.bind.annotation.XmlNs(prefix = "po", namespaceURI="http://www.example.com/myPO1"), @javax.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をカスタマイズする
@javax.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
-
-
フィールドのサマリー
フィールド 修飾子と型 Fields 説明 static String
NO_LOCATION
location()
属性のデフォルト値であり、スキーマ・ジェネレータがこの名前空間内にコンポーネントを生成することを示します。
-
オプション要素のサマリー
オプションの要素 修飾子と型 オプション要素 説明 XmlNsForm
attributeFormDefault
属性の名前空間修飾です。XmlNsForm
elementFormDefault
要素の名前空間修飾です。String
location
この名前空間(namespace()
によって指定される)に含まれるスキーマがすでに外部で使用可能であり、この場所で使用できることを示します。String
namespace
XML名前空間の名前です。XmlNs[]
xmlns
名前空間URI、接頭辞の関連付けをカスタマイズします。
-
-
-
フィールドの詳細
-
NO_LOCATION
static final String NO_LOCATION
location()
属性のデフォルト値であり、スキーマ・ジェネレータがこの名前空間内にコンポーネントを生成することを示します。
-
-
要素の詳細
-
xmlns
XmlNs[] xmlns
名前空間URI、接頭辞の関連付けをカスタマイズします。 デフォルトでは、XML名前空間の名前空間接頭辞は、JAXBプロバイダによって実装依存の方法で生成されます。- デフォルト:
- {}
-
-
-
namespace
String namespace
XML名前空間の名前です。- デフォルト:
- ""
-
-
-
elementFormDefault
XmlNsForm elementFormDefault
要素の名前空間修飾です。 デフォルトでは、要素デフォルト属性はXML Schemaフラグメントに含まれません。- デフォルト:
- javax.xml.bind.annotation.XmlNsForm.UNSET
-
-
-
attributeFormDefault
XmlNsForm attributeFormDefault
属性の名前空間修飾です。 デフォルトでは、attributesFormDefaultはXML Schemaフラグメントに含まれません。- デフォルト:
- javax.xml.bind.annotation.XmlNsForm.UNSET
-
-
-
location
String location
この名前空間(namespace()
によって指定される)に含まれるスキーマがすでに外部で使用可能であり、この場所で使用できることを示します。これは、コンポーネントをスキーマ内に生成するのとは対照的に、ただ単に指し示されたスキーマを参照するようにJAXBスキーマ・ジェネレータに指示します。 このスキーマは、スキーマ・ジェネレータによってそのほかに生成されるもの(同じ要素名、同じ型名など)に対応するものとします。
この機能は、Javaクラス・セットが、外部で定義されたスキーマに対応するように手書きで作成された既存のスキーマから最初に生成されるときに使用するためのものであり、生成されたスキーマは手動で変更されます。
値には、絶対URI (
http://example.org/some.xsd
など)を指定できます。 また、空の文字列を指定することもでき、その場合はスキーマが外部で使用可能であるが、場所は指定されていない(したがって生成されたスキーマの場所を決めるのは読取り側の責任となる)ことを示します。 最後に、このプロパティのデフォルト値"##generate"
は、スキーマ・ジェネレータがこの名前空間用のコンポーネントを生成しようとしていることを示します(JAXB 2.0以降)。複数のパッケージの複数の
XmlSchema
注釈が同じnamespace()
の管理を許可されています。 このような場合は、そのすべてに同じlocation()
値を指定する必要があります。実装者への注意
より正確には、値は
""
または"##generate"
にするか、<scheme>:
で始まるxs:anyURI
の有効な字句表現にする必要があります。スキーマ・ジェネレータは、対応する
<xs:import namespace="..." schemaLocation="..."/>
(空の文字列を指定した場合はschemaLocation
属性なし)を生成することになっています。 ただし、スキーマ・ジェネレータは、ユーザーがコマンド行インタフェースを介してリソースのローカル・コピーを指定できるようにする場合など、schemaLocation
属性に別の値を使用すること(そのような属性を生成しないことを含む)が許可されています。- 導入されたバージョン:
- 1.6, JAXB 2.1
- デフォルト:
- "##generate"
-
-