@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE=PACKAGESE) public @interface XmlSchema
パッケージ名を XML 名前空間にマップします。
XmlSchema アノテーションは、次のプログラム要素で使用できます。
これはパッケージレベルのアノテーションであり、JSR175 のセクション III「アノテーション」に含まれている推奨事項と制限に従います。使用箇所には次の制約と推奨事項があります。
例 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">
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | NO_LOCATION location() 属性のデフォルト値。これは、スキーマジェネレーターがこの名前空間にコンポーネントを生成することを示します。 |
修飾子と型 | オプションの要素と説明 |
---|---|
XmlNsForm | attributeFormDefault 属性の名前空間の修飾。 |
XmlNsForm | elementFormDefault 要素の名前空間の修飾。 |
StringSE | location この名前空間( namespace() で指定)に、この場所で利用可能な、外部ですでに利用可能なスキーマがあることを示します。 |
StringSE | namespace XML 名前空間の名前。 |
XmlNs[] | xmlns 名前空間 URI、プレフィックスの関連付けをカスタマイズします。 |
public static final StringSE NO_LOCATION
location()
属性のデフォルト値。これは、スキーマジェネレーターがこの名前空間にコンポーネントを生成することを示します。public abstract XmlNs[] xmlns
public abstract StringSE namespace
public abstract XmlNsForm elementFormDefault
public abstract XmlNsForm attributeFormDefault
public abstract 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
属性で異なる値を使用できます(そのような属性を生成しないことを含む)。たとえば、ユーザーがコマンドラインインターフェースを介してリソースのローカルコピーを指定できるようにします。
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.