Hi all,
I am mapping the XPDL 1.0 document, in which there is an element DataField with the following xsd
<xsd:element name="DataField">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="xpdl:DataType"/>
<xsd:element ref="xpdl:InitialValue" minOccurs="0"/>
<xsd:element ref="xpdl:Length" minOccurs="0"/>
<xsd:element ref="xpdl:Description" minOccurs="0"/>
<xsd:element ref="xpdl:ExtendedAttributes" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>
<xsd:attribute name="Name" type="xsd:string"/>
<xsd:attribute name="IsArray" default="FALSE">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="TRUE"/>
<xsd:enumeration value="FALSE"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="DataType">
<xsd:complexType>
<xsd:group ref="xpdl:DataTypes"/>
</xsd:complexType>
</xsd:element>
<xsd:group name="DataTypes">
<xsd:choice>
<xsd:element ref="xpdl:BasicType"/>
<xsd:element ref="xpdl:DeclaredType"/>
<xsd:element ref="xpdl:SchemaType"/>
<xsd:element ref="xpdl:ExternalReference"/>
<xsd:element ref="xpdl:RecordType"/>
<xsd:element ref="xpdl:UnionType"/>
<xsd:element ref="xpdl:EnumerationType"/>
<xsd:element ref="xpdl:ArrayType"/>
<xsd:element ref="xpdl:ListType"/>
</xsd:choice>
</xsd:group>
The following are 2 example elements
<DataField Id="Partial_Ship_Status" IsArray="FALSE">
<DataType>
<DeclaredType Id="Business_Example_Typ2"/>
</DataType>
<InitialValue>OK</InitialValue>
<Description>possible values are: "OK" and "NOT_OK"</Description>
</DataField>
<DataField Id="No_Of_Stocked_Items" IsArray="FALSE">
<DataType>
<BasicType Type="INTEGER"/>
</DataType>
<InitialValue>0</InitialValue>
<Description>The number of the stocked items of the product that customer ordered</Description>
</DataField>
Here is my binding
<mapping name="DataField" class="xs.workflow.xpdl10.DataField">
<namespace uri="
http://www.wfmc.org/2002/XPDL1.0" default="elements" />
<structure name="DataType">
<structure field="dataType" usage="required"
type="xs.workflow.xpdl10.DataType" />
</structure>
<value name="InitialValue" field="initialValue" usage="optional" />
<value name="Length" field="length" usage="optional" />
<value name="Description" field="description" usage="optional" />
<collection name="ExtendedAttributes" field="extendedAttributes"
usage="optional" item-type="xs.workflow.xpdl10.ExtendedAttribute" />
<value name="Id" field="id" usage="required" style="attribute" />
<value name="Name" field="name" usage="optional" style="attribute" />
<value name="IsArray" field="isArray" usage="optional"
style="attribute" />
</mapping>
<mapping class="xs.workflow.xpdl10.DataType" abstract="true">
<namespace uri="
http://www.wfmc.org/2002/XPDL1.0" default="elements" />
</mapping>
<mapping name="DeclaredType" class="
xs.workflow.xpdl10.DeclaredType"
extends="xs.workflow.xpdl10.DataType">
<namespace uri="http://www.wfmc.org/2002/XPDL1.0
" default="elements" />
<value ident="ref" name="Id" field="id" usage="required"
style="attribute" />
</mapping>
<mapping name="EnumerationType" class="xs.workflow.xpdl10.EnumerationType"
extends="xs.workflow.xpdl10.DataType">
<namespace uri="
http://www.wfmc.org/2002/XPDL1.0" default="elements" />
<collection field="enumerationValueList">
<structure map-as="
xs.workflow.xpdl10.EnumerationValue"></structure>
</collection>
</mapping>
....
, which has the structure (just with field="dataType") nested in another structure (just with name="DataField").
I cannot find similar structure-nested-structure structure on JiBX's help documents, but I cannot find other
solution for xsd. I can successly compile the mapping but I have a run time error seen below. The JiBX I use is
version 1.0.1.
as.util.ParseException: No unmarshaller defined for class at index 17
at xs.workflow.xpdl10.PackageTransformer.transform(PackageTransformer.java:40)
at xs.workflow.xpdl10.PackageTransformer
.<init>(PackageTransformer.java:30)
at xs.workflow.WorkflowBuilder.getPackage(WorkflowBuilder.java:66)
at xs.workflow.xpdl10.PackageTransformerTest.testCase1(PackageTransformerTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect
(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java
:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by:
org.jibx.runtime.JiBXException: No unmarshaller defined for class at index 17
at org.jibx.runtime.impl.UnmarshallingContext.getUnmarshaller(UnmarshallingContext.java:2425)
at xs.workflow.xpdl10.JiBX_C__projects_XS_workflow_src_java_xs_workflow_xpdl10_bindingDataType_access.unmarshal
()
at xs.workflow.xpdl10.DataField.JiBX_C__projects_XS_workflow_src_java_xs_workflow_xpdl10_binding_unmarshal_1_2(DataField.java)
at xs.workflow.xpdl10.JiBX_C__projects_XS_workflow_src_java_xs_workflow_xpdl10_bindingDataField_access.unmarshal
()
at xs.workflow.xpdl10.JiBX_MungeAdapter.JiBX_C__projects_XS_workflow_src_java_xs_workflow_xpdl10_binding_unmarshal_1_16()
at xs.workflow.xpdl10.Package.JiBX_C__projects_XS_workflow_src_java_xs_workflow_xpdl10_binding_unmarshal_1_0
(Package.java)
at xs.workflow.xpdl10.JiBX_C__projects_XS_workflow_src_java_xs_workflow_xpdl10_bindingPackage_access.unmarshal()
at org.jibx.runtime.impl.UnmarshallingContext.unmarshalElement(UnmarshallingContext.java
:2569)
at org.jibx.runtime.impl.UnmarshallingContext.unmarshalDocument(UnmarshallingContext.java:2729)
at xs.workflow.xpdl10.PackageTransformer.transform(PackageTransformer.java:37)
... 18 more
Any solution?
Regards,
Rice
- [jibx-users] structure-nested-structure mapping Rice Yeh
- Re: [jibx-users] structure-nested-structure mapping Dennis Sosnoski
- Re: [jibx-users] structure-nested-structure mappi... Dennis Sosnoski
