Annotation Type XmlIsSet


  • @Retention(RUNTIME)
    @Target({FIELD,METHOD})
    public @interface 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.
    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.

    Author:
    Kohsuke Kawaguchi
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      String value
      Deprecated.
      Specifies the name of the property to attach to.
    • Element Detail

      • value

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