Spec-Zone .ru
спецификации, руководства, описания, API
|
@Retention(value=RUNTIME) @Target(value=TYPE) public @interface XmlRootElement
Использование
@XmlRootElement аннотация может использоваться со следующими элементами программы:
См. "Спецификацию Пакета" в javax.xml.bind.package javadoc для дополнительной общей информации.
Когда высокоуровневый класс или перечислимый тип аннотируются @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>
Модификатор и Тип | Дополнительный Элемент и Описание |
---|---|
Строка |
имя
локальное имя элемента XML.
|
Строка |
пространство имен
имя пространства имен элемента XML.
|
public abstract String namespace
Если значение "##default", то имя пространства имен XML получается из пакета класса ( XmlSchema
). Если пакет является неназванным, то пространство имен XML является пустым пространством имен по умолчанию.
public abstract String name
Если значение "##default", то имя получается из имени класса.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.