[
http://jira.codehaus.org/browse/JIBX-263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=165202#action_165202
]
Nigel Charman commented on JIBX-263:
------------------------------------
I've been playing around a bit more, and the names of the xsd files seems to
affect the ordering of the <include>s in binding,xml. Adding "ams-" to all of
the names changes the order. Changing a single name also changes the order. I
can't work out any pattern though.
> Codegen: Enumeration in imported schema can result in
> IllegalArgumentException: No enum const class
> ---------------------------------------------------------------------------------------------------
>
> Key: JIBX-263
> URL: http://jira.codehaus.org/browse/JIBX-263
> Project: JiBX
> Issue Type: Bug
> Components: core
> Affects Versions: JiBX 1.2
> Reporter: Nigel Charman
>
> The problem occurs when a complex-type containing a string with an enum
> restriction is imported from another schema. It happens consistently in one
> project, but I've been trying for most of the afternoon to reproduce it in a
> simpler form and can't make it fail outside the original project.
> The project uses 4 schema. Schema C imports schema D. Schema A imports both
> schema C and D. Schema B also imports both schema C and D. Schema D contains
> <xsd:simpleType name="version">
> <xsd:restriction base="xsd:string">
> <xsd:enumeration value="3.2"/>
> <xsd:enumeration value="3.3"/>
> <xsd:enumeration value="4.0"/>
> </xsd:restriction>
> </xsd:simpleType>
> The generated binding.xml includes the bindings in the "wrong" order:
> <include path="binding D"/>
> <include path="binding C"/>
> <include path="binding B"/>
> <include path="binding A"/>
> binding A contains:
> <format type="Version" enum-value-method="value"/>
> bindings C and D contain:
> <value style="attribute" name="Version" get-method="getVersion"
> set-method="setVersion"/>
> However, since C and D are included before A in binding.xml, they do not seem
> to know about the format of the Version enum. The resulting error is:
> [java] Exception in thread "main" java.lang.IllegalArgumentException: No
> enum const class xsd.simpletypes.Version.3.2
> [java] at java.lang.Enum.valueOf(Enum.java:196)
> [java] at xsd.simpletypes.Version.valueOf(Version.java:16)
> [java] at
> xsd.svreq.MESSAGE.JiBX_binding_unmarshalAttr_1_0(MESSAGE.java)
> [java] at xsd.svreq.JiBX_bindingMESSAGE_access.unmarshal()
> [java] at
> org.jibx.runtime.impl.UnmarshallingContext.unmarshalElement(UnmarshallingContext.java:2762)
> [java] at
> org.jibx.runtime.impl.UnmarshallingContext.unmarshalDocument(UnmarshallingContext.java:2905)
> [java] at Test.main(Test.java:25)
> I can work around the issue by either adding the <format type="Version"
> enum-value-method="value"/> element to bindings C and D, or rearranging
> binding.xml to have the bindings in the order A, B, C, D. When I try to
> reproduce the error in a simplified project, the code generator always seems
> to create the binding.xml in the order A, B, C, D.
> I can email you the project, but don't want to upload it publicly.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
jibx-devs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jibx-devs