Spec-Zone.ru › OpenJDK 8

Тип аннотации XmlRootElement


@Retention(value=RUNTIME)
 @Target(value=TYPE)
public @interface XmlRootElement

Сопоставляет класс или тип перечисления с элементом XML.

Использование

Аннотация @XmlRootElement может использоваться со следующими элементами программы:

  • главный класс
  • тип перечисления

Дополнительную общую информацию см. в разделе «Спецификация пакета» в справке пакета javax.xml.bind.

Когда главный класс или тип перечисления аннотированы аннотацией @XmlRootElement, его значение представляется как элемент XML в документе XML.

Данная аннотация может использоваться со следующими аннотациями: XmlType, XmlEnum, XmlAccessorType, XmlAccessorOrder.

Пример 1: Связывание элемента с типом схемы XML

// Example: Code fragment
     @XmlRootElement
     class Point {
        int x;
        int y;
        Point(int _x,int _y) {x=_x;y=_y;}
     }
//Example: Code fragment corresponding to XML output
     marshal( new Point(3,5), System.out);
<!-- Example: XML output -->
     <point>
       <x> 3
       <y> 5
     </point>
Аннотация вызывает создание глобального объявления элемента в схеме. Глобальное объявление элемента связывается с типом схемы XML, которому сопоставлен класс.
<!-- Example: XML schema definition -->
     <xs:element name="point" type="point"/>
     <xs:complexType name="point">
       <xs:sequence>
         <xs:element name="x" type="xs:int"/>
         <xs:element name="y" type="xs:int"/>
       </xs:sequence>
     </xs:complexType>

Пример 2: Ортогональность к наследованию типов

Объявление элемента, аннотированное на типе, не наследуется его производными типами. Следующий пример демонстрирует это.

// Example: Code fragment
     @XmlRootElement
     class Point3D extends Point {
         int z;
         Point3D(int _x,int _y,int _z) {super(_x,_y);z=_z;}
     }

     //Example: Code fragment corresponding to XML output *
     marshal( new Point3D(3,5,0), System.out );

     <!-- Example: XML output -->
     <!-- The element name is point3D not point -->
     <point3D>
       <x>3</x>
       <y>5</y>
       <z>0</z>
     </point3D>

     <!-- Example: XML schema definition -->
     <xs:element name="point3D" type="point3D"/>
     <xs:complexType name="point3D">
       <xs:complexContent>
         <xs:extension base="point">
           <xs:sequence>
             <xs:element name="z" type="xs:int"/>
           </xs:sequence>
         </xs:extension>
       </xs:complexContent>
     </xs:complexType>
Пример 3: Связывание глобального элемента со схемой XML, которой сопоставлен класс.
//Example: Code fragment
     @XmlRootElement(name="PriceElement")
     public class USPrice {
         @XmlElement
         public java.math.BigDecimal price;
     }

     <!-- Example: XML schema definition -->
     <xs:element name="PriceElement" type="USPrice"/>
     <xs:complexType name="USPrice">
       <xs:sequence>
         <xs:element name="price" type="xs:decimal"/>
       </sequence>
     </xs:complexType>
С момента:
JAXB2.0

Дополнительные элементы

Модификатор и тип Дополнительный элемент и описание
String name

локальное имя элемента XML.

String namespace

имя пространства имён элемента XML.

Элементы

namespace

public abstract String namespace

имя пространства имён элемента XML.

Если значение равно "##default", имя пространства имён XML определяется по пакету класса ( XmlSchema ). Если пакет не указан, пространство имён XML — это пространство имён по умолчанию без имени.

По умолчанию:
"##default"

name

public abstract String name

локальное имя элемента XML.

Если значение равно "##default", имя определяется по имени класса.

По умолчанию:
"##default"

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API