Zeb,

Can you attach the full schema, so we can see what the groups that are
being referenced look like. 

Thanks,

--Keith

"Aurangzeb M. Agha" wrote:
> 
> I asked this before but fear that my message was too long.
> 
> I'm using castor 0.9.4.3-xml.jar.
> 
> Here's a summary of my problem:
> 
> I have a valid XML which, when unmarshalled, is getting validated against
> the wrong definition.
> 
> When unmarshalling NexRes/response/viewReservationResponse, I get the
> following error:
> 
> ValidationException: bookingStatus is a required field.;
>    - location of error: XPATH: NexRes/response/bookReservationResponse
> 
> My XSD contains:
> 
> <...NexRes...>
> ...
> <xsd:element name="response">
>     <xsd:complexType>
>         <xsd:sequence>
>             ...
>             <xsd:group ref="bookReservationResponse" minOccurs="0"/>
>             <xsd:group ref="viewReservationResponse" minOccurs="0"/>
>             ...
>         </xsd:sequence>
>     </xsd:complexType>
> </xsd:element>
> 
> I've made sure that these two elements appear in the XSD in the same order
> as they are shown above.  If I switch them (in the XSD shown above), then
> the problem flips, and though I can unmarshall
> NexRes/response/viewReservationResponse without any problem, I get a
> similiar exception when trying to unmarshall bookReservationResponse:
> 
> ValidationException: bookingStatus is a required field.;
>    - location of error: XPATH: NexRes/response/viewReservationResponse
> 
> I've tried to use xsd:all instead of xsd:sequence, but that makes no
> difference either.
> 
> I'd very much appreciate  some help.
> 
>         Sincerely,
>         Zeb
> 
> PS -- The original message is below.
> 
> ---------- Forwarded message ----------
> Date: Tue, 11 Mar 2003 05:41:28 -0800 (PST)
> From: Aurangzeb M. Agha <[EMAIL PROTECTED]>
> Reply-To: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: [castor-dev] Problem with order of ref elements in sequence
> 
> I'm having a big problem with a large schema where the order of reference
> elements in a sequence seem to conflict when I try to unmarshall an
> object.
> 
> I have two elements which seem to be at the root of the problem:
> 
> <xsd:element name="request">
>     <xsd:complexType>
>         <xsd:sequence>
>             <xsd:group ref="propertySearch" minOccurs="0"/>
>             <xsd:group ref="propertyInformationRequest" minOccurs="0"/>
>             <xsd:group ref="propertyAvailabilityRequest" minOccurs="0"/>
>             <xsd:group ref="bookReservation" minOccurs="0"/>
>             <xsd:group ref="cancelReservation" minOccurs="0"/>
>             <xsd:group ref="viewReservation" minOccurs="0"/>
>             <xsd:group ref="rateRulesRequest" minOccurs="0"/>
>         </xsd:sequence>
>     </xsd:complexType>
> </xsd:element>
> 
> <xsd:element name="response">
>     <xsd:complexType>
>         <xsd:sequence>
>             <xsd:group ref="propertyInformationResponse" minOccurs="0"/>
>             <xsd:group ref="propertyAvailabilityResponse" minOccurs="0"/>
>             <xsd:group ref="bookReservationResponse" minOccurs="0"/>
>             <xsd:group ref="cancelReservationResponse" minOccurs="0" />
>             <xsd:group ref="viewReservationResponse" minOccurs="0"/>
>             <xsd:group ref="rateRulesResponse" minOccurs="0"/>
>         </xsd:sequence>
>     </xsd:complexType>
> </xsd:element>
> 
> The order of the elements in the "request" element is causing a problem
> for me no matter how I move the elements around in the XSD.  Using what I
> have above,  if I try to unmarshall a ViewReservation object (which looks
> like this):
> 
> <NexRes product="Hotel">
>         <response status="failure" type="ViewReservation"
> timestamp="20030311081435">
>         <errors>
>                 <error number="0">
>                         <message>We could not find reservation in our
> records.  Please
>                         adjust your information and try again.</message>
>                         <code>H105</code>
>                 </error>
>         </errors>
>         </response>
>         <session>
>                 <language>ENG</language>
>                 <id></id>
>                 <affiliate>
>                         <overrides></overrides>
>                         <id>##########</id>
>                         <subAffiliateId></subAffiliateId>
>                 </affiliate>
>                 <timestamp>20030311081435</timestamp>
>         </session>
>         <request type="ViewReservation">
>         <customer>
>                 <lastName>######</lastName>
>                 <firstName>######</firstName>
>                 <clientId></clientId>
>         </customer>
>         <confirmationNumber>######</confirmationNumber>
>         </request>
> </NexRes>
> 
> I get the following error:
> 
> ValidationException: bookingStatus is a required field.;
>    - location of error: XPATH: NexRes/response/bookReservationResponse
> 
> The problem is that 'bookingStatus' is not an element in
> ViewReservationResponse;
> but it is in BookReservationResponse.
> 
> If I either comment out bookReservation:
> 
> <xsd:element name="request">
>     <xsd:complexType>
>         <xsd:sequence>
>             <xsd:group ref="propertySearch" minOccurs="0"/>
>             <xsd:group ref="propertyInformationRequest" minOccurs="0"/>
>             <xsd:group ref="propertyAvailabilityRequest" minOccurs="0"/>
>             <!--xsd:group ref="bookReservation" minOccurs="0"/-->
>             <xsd:group ref="cancelReservation" minOccurs="0"/>
>             <xsd:group ref="viewReservation" minOccurs="0"/>
>             <xsd:group ref="rateRulesRequest" minOccurs="0"/>
>         </xsd:sequence>
>     </xsd:complexType>
> </xsd:element>
> 
> or change the order of the elements:
> 
> <xsd:element name="request">
>     <xsd:complexType>
>         <xsd:sequence>
>             <xsd:group ref="cancelReservation" minOccurs="0"/>
>             <xsd:group ref="propertySearch" minOccurs="0"/>
>             <xsd:group ref="propertyInformationRequest" minOccurs="0"/>
>             <xsd:group ref="propertyAvailabilityRequest" minOccurs="0"/>
>             <xsd:group ref="bookReservation" minOccurs="0"/>
>             <xsd:group ref="viewReservation" minOccurs="0"/>
>             <xsd:group ref="rateRulesRequest" minOccurs="0"/>
>         </xsd:sequence>
>     </xsd:complexType>
> </xsd:element>
> 
> This problem goes away, but then I have a problem when I try to unmarshall
> the BookReservation element.
> 
> There seems to be some mix up in the order of elements and the sequence
> in which they appear in the XSD file, but I can't figure out what it is,
> or
> how to define it.  Is there some sort of schema validator out there that
> I can use that will validate the sequence of elements in my XSD?
> 
> I'd really appreciate some help, and can send the entire XSD file if you
> can help.
> 
>         Sincerely,
>         Zeb
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to