Community
Participate
Working Groups
Given the following object: @XmlRootElement public class Employee { public Byte[] bigBytes = new Byte[] {23,1,112,12,1,64,1,14,3,2}; } The JAXB RI and EclipseLink generate slightly different schemas (note xs:byte vs. xs:base64binary, and the unused byteArray type): JAXB Context: class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl [<?xml version="1.0" standalone="yes"?> <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="employee" type="employee"/> <xs:complexType name="employee"> <xs:sequence> <xs:element name="first-name" type="xs:string" minOccurs="0"/> <xs:element name="last-name" type="xs:string" minOccurs="0"/> <xs:element name="bigBytes" type="xs:byte" nillable="true" minOccurs="0" maxOccurs="unbounded"/> <xs:any processContents="skip" namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="id" type="xs:int" use="required"/> </xs:complexType> </xs:schema> ] JAXB Context: class org.eclipse.persistence.jaxb.JAXBContext [<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:ns0="http://jaxb.dev.java.net/array" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://jaxb.dev.java.net/array"> <xsd:complexType name="byteArray"> <xsd:sequence> <xsd:element name="item" type="xsd:byte" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:schema> , <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="employee"> <xsd:sequence> <xsd:element name="first-name" type="xsd:string" minOccurs="0"/> <xsd:element name="last-name" type="xsd:string" minOccurs="0"/> <xsd:element name="bigBytes" type="xsd:base64Binary" minOccurs="0"/> <xsd:any processContents="skip" namespace="##other"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:int" use="required"/> </xsd:complexType> <xsd:element name="employee" type="employee"/> </xsd:schema> ] This results in validation errors for each individual Byte elements: ERROR cvc-datatype-valid.1.2.1: '23' is not a valid value for 'base64Binary'. ERROR cvc-type.3.1.3: The value '23' of element 'bigBytes' is not valid. ERROR cvc-datatype-valid.1.2.1: '1' is not a valid value for 'base64Binary'. ERROR cvc-type.3.1.3: The value '1' of element 'bigBytes' is not valid. ERROR cvc-datatype-valid.1.2.1: '112' is not a valid value for 'base64Binary'. ERROR cvc-type.3.1.3: The value '112' of element 'bigBytes' is not valid. ...
Created attachment 198680 [details] Proposed changes and test
Checked in changes to SDOProperty, AnnotationsProcessor and Helper to handle Byte[] properly.
Changed target milestone to 2.3.1 and also checked in to that stream.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink