com.sun.xml.bind.annotation
Annotation Type XmlIsSet


Deprecated. this hasn't been implemented in the RI, and this hasn't been speced yet. I believe Joe asked for this feature. I'd like to drop this.

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

Designates a boolean field/property as a flag to indicate whether another property is present or not.

Sometimes you'd want to map a Java primitive type to an optional element/attribute. Doing this makes it impossible to represent the absence of the property, thus you always end up producing the value when you marshal to XML. For example,

 XmlElement
 class Foo {
      XmlElement
      int x;
 }

 marshaller.marshal(new Foo());
 
and you get:

 <foo><x>0</x></foo>
 

By creating a side boolean field/property that has this annotation, you can indicate the absence of the property by setting this boolean to false.

 XmlElement
 class Foo {
      XmlElement
      int x;
      XmlIsSet("x")
      boolean xIsPresent;
 }

 Foo f = new Foo();
 f.x = 5;
 f.xIsPresent = false;

 marshaller.marshal(f);

 
 <foo/>
 

 f.xIsPresent = true;
 
 <foo><x>5</x></foo>
 
 

A property/field annotated with XmlIsSet itself will not show up in XML. It is an error to use this annotation on the same property/field as XmlElement, XmlAttribute, XmlValue, or XmlElementRef, ...TBD.


Required Element Summary
 String value
          Deprecated. Specifies the name of the property to attach to.
 

Element Detail

value

public abstract String value
Deprecated. 
Specifies the name of the property to attach to.