モジュール java.xml.bind
パッケージ javax.xml.bind.annotation

注釈型XmlSchema


  • @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"