All,

I think I have hit the following bug and wanted confirmation that that is in
fact the case:

http://jira.codehaus.org/browse/CASTOR-2172

Here is snippet of my XSD:

<xs:complexType name="ResponseType">
        <xs:choice>
            <xs:sequence>
                <xs:element ref="ApplicationKey"/>
                <xs:element ref="ApplicationLabel"/>
                <xs:element ref="Status"/>
                <xs:element ref="Applicant" minOccurs="0"/>
                <xs:element ref="CoApplicant" minOccurs="0"/>
                <xs:element ref="ProductType" minOccurs="0"/>
                <xs:element ref="CreditLimit" minOccurs="0"/>
                <xs:element ref="APR" minOccurs="0"/>
                <xs:element ref="AccountNumber" minOccurs="0"/>
                <xs:element ref="ChaseTransactionID" minOccurs="0"/>
                <xs:element ref="CardExpirationDate" minOccurs="0"/>
                <xs:element ref="VendorStatus" minOccurs="0"/>
            </xs:sequence>
            <xs:sequence>
                <xs:element ref="Status">
                    <xs:annotation>
                        <xs:documentation>Carryover from Legacy (always
Error for IC Web)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice>
                    <xs:sequence>
                        <xs:element ref="Error"/>
                        <xs:element ref="ApplicationLabel" minOccurs="0"/>
                    </xs:sequence>
                    <xs:element ref="AppKey">
                        <xs:annotation>
                            <xs:documentation>Carryover from Legacy.  Only
present in a successful asynchronous response.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:choice>
            </xs:sequence>
        </xs:choice>
    </xs:complexType>

<xs:element name="CreditApplicationResponse">
        <xs:annotation>
            <xs:documentation>This document will be used for returning
synchronous responses from the Credit Application Gateway</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="ResponseType"/>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>

And when I create the following XML:

<CreditApplicationResponse>
    <Status>Dummy</Status>
    <Error>
        <text>Dummy</text>
    </Error>
    <ApplicationLabel>dummy</ApplicationLabel>
</CreditApplicationResponse>

I get the following exception:

org.exolab.castor.xml.MarshalException: Element with name Status passed to
type null in incorrect order; expected element with name 'ApplicationKey' or
any other optional element declared prior to it.{File: [not available];
line: 3; column: 10}

Is this the same problem and if so, how do I work around it?

Thanks,

Ron

Reply via email to