Spec-Zone.ru › OpenJDK 8

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


@Retention(value=RUNTIME)
 @Target(value={FIELD,METHOD})
public @interface XmlValue

Позволяет сопоставить класс со сложным типом XML-схемы с простым содержимым или простым типом XML-схемы.

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

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

  • свойством JavaBean.
  • нестатическим, не транзиентным полем.

См. "Спецификация пакета" в javadoc пакета javax.xml.bind для дополнительной общей информации.

Использование подчиняется следующим ограничениям:
  • Максимум одно поле или свойство может быть аннотировано аннотацией @XmlValue.
  • @XmlValue может быть использовано со следующими аннотациями: XmlList. Однако это избыточно, так как XmlList сопоставляет тип с простым типом схемы, который выводится по списку так же, как и XmlValue.
  • Если тип поля или свойства является типом коллекции, то тип элемента коллекции должен быть сопоставлен с простым типом схемы.
  • Если тип поля или свойства не является типом коллекции, то тип должен быть сопоставлен с простым типом XML-схемы.

Если аннотированное свойство JavaBean является единственным членом класса, сопоставляемым со структурой XML-схемы, то класс сопоставляется с простым типом. Если есть дополнительные свойства JavaBean (кроме свойства JavaBean, аннотированного аннотацией @XmlValue ), которые сопоставляются с атрибутами XML, то класс сопоставляется со сложным типом с простым содержимым.

Пример 1: Сопоставить класс с простым типом XML-схемы

// Example 1: Code fragment
     public class USPrice {
         @XmlValue
         public java.math.BigDecimal price;
     }

     <!-- Example 1: XML Schema fragment -->
     <xs:simpleType name="USPrice">
       <xs:restriction base="xs:decimal"/>
     </xs:simpleType>

Пример 2: Сопоставить класс со сложным типом XML-схемы с простым содержимым.

// Example 2: Code fragment
   public class InternationalPrice {
       @XmlValue
       public java.math.BigDecimal price;

       @XmlAttribute
       public String currency;
   }

   <!-- Example 2: XML Schema fragment -->
   <xs:complexType name="InternationalPrice">
     <xs:simpleContent>
       <xs:extension base="xs:decimal">
         <xs:attribute name="currency" type="xs:string"/>
       </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
С тех пор как:
JAXB2.0
См. также:
XmlType

© 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