Difference between revisions of "EclipseLink/UserGuide/MOXy/Simple Values/Enums"

From Eclipsepedia

Jump to: navigation, search
m
Line 10: Line 10:
  
 
=Mapping Enums=
 
=Mapping Enums=
Use the '''@XmlEnumValue''' annotation with '''XmlEnum''' to map an '''enum''' constant in Enum type to XML representation. The '''@XmlEnumValue''' annotation can be used with the '''enum constant''' element.
+
Java enums can be mapped to XML using the '''@XmlEnum''' and '''@XmlEnumValue''' annotations.
  
  
 
==Mapping enum constant name==
 
==Mapping enum constant name==
  
This code:
+
If your enums constant names
  
 
<source lang="java">
 
<source lang="java">
    @XmlEnum(String.class)
+
@XmlEnum
    public enum Card { CLUBS, DIAMONDS, HEARTS, SPADES }
+
public enum Card { CLUBS, DIAMONDS, HEARTS, SPADES }
 
</source>
 
</source>
  

Revision as of 15:40, 14 January 2011

EclipseLink MOXy

link="http://wiki.eclipse.org/EclipseLink"
EclipseLink
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source

Contents


Mapping Enums

Java enums can be mapped to XML using the @XmlEnum and @XmlEnumValue annotations.


Mapping enum constant name

If your enums constant names

@XmlEnum
public enum Card { CLUBS, DIAMONDS, HEARTS, SPADES }

will generate the following XML schema:

     <xs:simpleType name="Card">
       <xs:restriction base="xs:string"/>
         <xs:enumeration value="CLUBS"/>
         <xs:enumeration value="DIAMONDS"/>
         <xs:enumeration value="HEARTS"/>
         <xs:enumeration value="SPADES"/>
     </xs:simpleType>

Mapping enum constant name(value)

This code:

     @XmlType
     @XmlEnum(Integer.class)
     public enum Coin { 
         @XmlEnumValue("1") PENNY(1),
         @XmlEnumValue("5") NICKEL(5),
         @XmlEnumValue("10") DIME(10),
         @XmlEnumValue("25") QUARTER(25) }

will generate the following XML schema:

     <xs:simpleType name="Coin">
       <xs:restriction base="xs:int">
         <xs:enumeration value="1"/>
         <xs:enumeration value="5"/>
         <xs:enumeration value="10"/>
         <xs:enumeration value="25"/>
       </xs:restriction>
     </xs:simpleType>

Eclipselink-logo.gif
Version: 2.2.0 Draft
Other versions...