Тип аннотации 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.