Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/UserGuide/MOXy/Simple Values/Special Schema Types/Binary Types"
< EclipseLink | UserGuide | MOXy | Simple Values | Special Schema Types
Line 11: | Line 11: | ||
There are a few extra things to consider when mapping to fields of type '''byte[ ]''' or '''Byte[ ]'''. | There are a few extra things to consider when mapping to fields of type '''byte[ ]''' or '''Byte[ ]'''. | ||
+ | |||
+ | |||
+ | == Binary Formats - Base64 and Hex == | ||
+ | |||
+ | EclipseLink supports marshalling and unmarshalling binary data from two different representation formats: '''base64''' (default) and '''hex'''. You can specify the desired binary format using the . | ||
+ | |||
+ | <div style="width:700px"> | ||
+ | <source lang="java"> | ||
+ | package example; | ||
+ | |||
+ | import javax.xml.bind.annotation.*; | ||
+ | |||
+ | @XmlRootElement | ||
+ | public class BinaryData { | ||
+ | |||
+ | public byte[] primitiveBytes; | ||
+ | public Byte[] byteObjects; | ||
+ | |||
+ | } | ||
+ | </source> | ||
Revision as of 15:22, 28 June 2011
EclipseLink MOXy
EclipseLink | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source |
Key API
Binary Types
There are a few extra things to consider when mapping to fields of type byte[ ] or Byte[ ].
Binary Formats - Base64 and Hex
EclipseLink supports marshalling and unmarshalling binary data from two different representation formats: base64 (default) and hex. You can specify the desired binary format using the .
package example; import javax.xml.bind.annotation.*; @XmlRootElement public class BinaryData { public byte[] primitiveBytes; public Byte[] byteObjects; }
byte[ ] versus Byte[ ]
Unlike other Java primitive/wrapper types, Eclipselink differentiates between byte[ ] (primitive) and Byte[ ] (wrapper) data types. By default, byte[ ] will marshal to an element or attribute of type base64Binary, whereas Byte[ ] will marshal each byte as its own element, as illustrated by the following example:
package example; import javax.xml.bind.annotation.*; @XmlRootElement public class BinaryData { public byte[] primitiveBytes; public Byte[] byteObjects; }
BinaryData b = new BinaryData(); b.primitiveBytes = new byte[] {34,45,56,67,78,89,89,34,23,12,12,11,2}; b.byteObjects = new Byte[] {23,1,112,12,1,64,1,14,3,2}; jaxbContext.createMarshaller().marshal(b, System.out);
<?xml version="1.0" encoding="UTF-8"?> <binaryData> <primitiveBytes>Ii04Q05ZWSIXDAwLAg==</primitiveBytes> <byteObjects>23</byteObjects> <byteObjects>1</byteObjects> <byteObjects>112</byteObjects> <byteObjects>12</byteObjects> <byteObjects>1</byteObjects> <byteObjects>64</byteObjects> <byteObjects>1</byteObjects> <byteObjects>14</byteObjects> <byteObjects>3</byteObjects> <byteObjects>2</byteObjects> </binaryData>