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

注釈型XmlElements


  • @Retention(RUNTIME)
    @Target({FIELD,METHOD})
    public @interface XmlElements

    複数の@XmlElement注釈のコンテナです。 1つのプログラム要素に対する同じ型の複数の注釈は許可されていません。 そのため、複数の@XmlElementsのコンテナ注釈として、この注釈は次のように使用されます。

     @XmlElements({ @XmlElement(...),@XmlElement(...) })
     

    @XmlElements注釈は、次のプログラム要素で使用できます:

    • JavaBeanプロパティ
    • staticでない非一時フィールド
    この注釈は、JavaBeanコレクション・プロパティ(Listなど)への注釈として意図されています。

    使用法

    使用には次の制約があります。

    • この注釈型は、次の注釈型とともに使用できます。@XmlIDREF、@XmlElementWrapper
    • @XmlIDREFもJavaBeanプロパティに指定されている場合、各@XmlElement.type()に@XmlIDで注釈されたJavaBeanプロパティが含まれる必要があります。

    追加の一般的な情報については、javax.xml.bind.package javadocの「パッケージの仕様」を参照してください。


    例1: 要素のリストへのマップ

    
        // Mapped code fragment
        public class Foo {
            @XmlElements(
                @XmlElement(name="A", type=Integer.class),
                @XmlElement(name="B", type=Float.class)
             )
             public List items;
        }
     
    
        <!-- XML Representation for a List of {1,2.5}
                XML output is not wrapped using another element -->
        ...
        <A> 1 </A>
        <B> 2.5 </B>
        ...
    
        <!-- XML Schema fragment -->
        <xs:complexType name="Foo">
          <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="A" type="xs:int"/>
              <xs:element name="B" type="xs:float"/>
            <xs:choice>
          </xs:sequence>
        </xs:complexType>
    
     

    例2: ほかの要素でラップされた要素のリストへのマップ

    
        // Mapped code fragment
        public class Foo {
            @XmlElementWrapper(name="bar")
            @XmlElements(
                @XmlElement(name="A", type=Integer.class),
                @XmlElement(name="B", type=Float.class)
            }
            public List items;
        }
     
    
        <!-- XML Schema fragment -->
        <xs:complexType name="Foo">
          <xs:sequence>
            <xs:element name="bar">
              <xs:complexType>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="A" type="xs:int"/>
                  <xs:element name="B" type="xs:float"/>
                </xs:choice>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
     

    例3: アダプタを使用して型に基づいて要素名を変更する。

        class Foo {
           @XmlJavaTypeAdapter(QtoPAdapter.class)
           @XmlElements({
               @XmlElement(name="A",type=PX.class),
               @XmlElement(name="B",type=PY.class)
           })
           Q bar;
        }
    
        @XmlType abstract class P {...}
        @XmlType(name="PX") class PX extends P {...}
        @XmlType(name="PY") class PY extends P {...}
     
    
        <!-- XML Schema fragment -->
        <xs:complexType name="Foo">
          <xs:sequence>
            <xs:element name="bar">
              <xs:complexType>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="A" type="PX"/>
                  <xs:element name="B" type="PY"/>
                </xs:choice>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
     
    導入されたバージョン:
    1.6, JAXB 2.0
    関連項目:
    XmlElement, XmlElementRef, XmlElementRefs, XmlJavaTypeAdapter
    • 必須要素のサマリー

      必須要素 
      修飾子と型 必須要素 説明
      XmlElement[] value
      @XmlElement注釈型のコレクション