アノテーション型 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 StringSENO_LOCATION
      location() 属性のデフォルト値。これは、スキーマジェネレーターがこの名前空間にコンポーネントを生成することを示します。
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      XmlNsFormattributeFormDefault
      属性の名前空間の修飾。
      XmlNsFormelementFormDefault
      要素の名前空間の修飾。
      StringSElocation
      この名前空間(namespace() で指定)に、この場所で利用可能な、外部ですでに利用可能なスキーマがあることを示します。
      StringSEnamespace
      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"