I am using JAXB to generate java code from XML, which has an enum
<xs:simpleType name="color">
<xs:restriction base="xs:string">
<xs:enumeration value="Blue"/>
<xs:enumeration value="Green"/>
<xs:enumeration value="Yellow"/>
</xs:restriction>
</xs:simpleType>
I want to add couple more colors to this enum, say Red and White. we do not want to update xsd or generated XML/Java code because those are not owned by us and we want to maintain it as it is.
Option 1. If there is a way to read the XSD in a way that when it reads xs:simpleType name="color", I can add colors to the enum, so generated java enum has all needed values
Option 2. If I can write an adapter which can help me to add values in generated Enum
I have checked XMLAdapter but overriding that doesn't help in my case. Since its an enum, I find it hard to modify it as Enums are meant to be constant in Java
Since it was difficult to insert values in an enum, we converted "color" element to a String type from Enum using customized JAXB bindings.
New values can now be inserted. We understand this is risky as now "color" element can accept any string, but it works for us from our project point of view.