package com.fasterxml.jackson.dataformat.xml.annotation;
import java.lang.annotation.*;
Interface that is loosely similar to jakarta.xml.bind.annotation.XmlValue
in that it can be used on one (and only one!) property of a POJO. It will result in value of the property be serialized without element wrapper, as long as there are no element-wrapped other properties (attribute-valued properties are acceptable). It is also somewhat similar to core Jackson @JsonValue
annotation; but has to be separate as @JsonValue
does not allow any other properties.
Note that only one such property is allowed on a POJO: if multiple properties
are annotated, behavior is not defined.
Internally properties annotated will be considered to be properties with no name (that is, with marker ""
(empty String)).
/**
* Interface that is loosely similar to {@code jakarta.xml.bind.annotation.XmlValue}
* in that it can be used on one (and only one!) property of a POJO.
* It will result in value of the property be serialized without element wrapper,
* as long as there are no element-wrapped other properties (attribute-valued
* properties are acceptable).
* It is also somewhat similar to core Jackson {@code @JsonValue} annotation; but
* has to be separate as {@code @JsonValue} does not allow any other
* properties.
*<p>
* Note that only one such property is allowed on a POJO: if multiple properties
* are annotated, behavior is not defined.
*<p>
* Internally properties annotated will be considered to be properties with
* no name (that is, with marker {@code ""} (empty String)).
*/
@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD,
// @since 2.12 also allowed on (constructor) parameter
ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface JacksonXmlText
{
Whether serialization of the property should always be done as basic
XML text or not; if true, will be, if false, not.
/**
* Whether serialization of the property should always be done as basic
* XML text or not; if true, will be, if false, not.
*/
public boolean value() default true;
}