Castor will probably treat your case as an "all" which means sequence
order will probably not be retained. You should expect the sequence
order to be maintained, but I don't think Castor will maintain it in
this case.

If you are not getting the results you expect, please file a bug via
http://bugzilla.exolab.org so that it can be tracked.

Thanks,

--Keith

[EMAIL PROTECTED] wrote:
> 
> Perhaps my note was too long to consider.  I will try to condense.
> 
> If I have an XML Stream like this:
> <SoccerPitch>
>   <RedChap/>
>   <BlackChap/>
>   <Midfield/>
>   <RedChap/>
>   <BlackChap/>
> </SoccerPitch>
> 
> And a Schema for this stream like this:
>   <xsd:element name="SoccerPitch">
>     <xsd:complexType>
>       <xsd:sequence>
>         <xsd:choice minOccurs="0" maxOccurs="unbounded">
>           <xsd:element name="RedChap" type="xsd:string"/>
>           <xsd:element name="BlackChap" type="xsd:string"/>
>         </xsd:choice>
>         <xsd:element name="Midfield" type="xsd:string"/>
>         <xsd:choice minOccurs="0" maxOccurs="unbounded">
>           <xsd:element name="RedChap" type="xsd:string"/>
>           <xsd:element name="BlackChap" type="xsd:string"/>
>         </xsd:choice>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
> 
> Should I expect the unmarshaling order to be retained such that I can get
> the number of Black & Red chaps prior to the Midfield element and the
> number of Black & Red chaps after the Midfield element?
> 
> Kind Regards,
> Greg Kedge
> 716-25-35127
> 
> 
>                       Gregory_Kedge@ne
>                       xpress.com               To:      [EMAIL PROTECTED]
>                                                cc:
>                       10/03/2002 11:58         Subject: [castor-dev] Should Sequence 
>Order be Maintained?
>                       AM
>                       Please respond
>                       to castor-dev
> 
> 
> 
> 
> 
> 
> 
> I have an XML Schema that describes a soccer pitch having red and black
> shirted players.  The XML stream order of player elements combined with a
> Midfield element attempts to determine how may of each of the two team
> members are on either side of Midfield using the order of the stream to
> count.  So, with this XML stream:
> 
> <?xml version="1.0"?>
> <SoccerPitch xmlns="WorldCup" xmlns:ex="WorldCup"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:schemaLocation="WorldCup ../xsd/SoccerPitch.xsd">
> 
>   <RedChap/>
>   <BlackChap/>
>   <Midfield/>
>   <RedChap/>
>   <BlackChap/>
> </SoccerPitch>
> 
> I would expect order to be maintained when unmarshalled to show two players
> on either side of Midfield, one from each team.  The expected print
> out(Parenthesis encapsulate total player count):
> RedChap(0)
> BlackChap(1)
> Midfield
> RedChap(2)
> BlackChap(3)
> 
> The following schema that I Castorize seems to constrain the stream
> properly:
> 
> <?xml version="1.0"?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>             targetNamespace="WorldCup" xmlns="WorldCup"
>             elementFormDefault="qualified">
> 
>   <xsd:element name="SoccerPitch">
>     <xsd:complexType>
>       <xsd:annotation>
>         <xsd:documentation>
>           Type to deal with a soccer pitch having Red and Black jersey
> players.
>           The hope is to allow for players to play both sides of Midfield.
>         </xsd:documentation>
>       </xsd:annotation>
>       <xsd:sequence>
>         <xsd:choice minOccurs="0" maxOccurs="unbounded">
>           <xsd:element name="RedChap" type="xsd:string"/>
>           <xsd:element name="BlackChap" type="xsd:string"/>
>         </xsd:choice>
>         <xsd:element name="Midfield" type="xsd:string"/>
>         <xsd:choice minOccurs="0" maxOccurs="unbounded">
>           <xsd:element name="RedChap" type="xsd:string"/>
>           <xsd:element name="BlackChap" type="xsd:string"/>
>         </xsd:choice>
>       </xsd:sequence>
>     </xsd:complexType>
>   </xsd:element>
> </xsd:schema>
> 
> Catorizing produces the expected 2 Choices and access to the Midfield
> element.  However, the first choice always snarfs up ALL players leaving
> the second choice collection with nothing to show.  I generate the
> following output:
> RedChap(0)
> BlackChap(1)
> RedChap(2)
> BlackChap(3)
> Midfield    <---- Red Card!
> 
> Using this Java source:
> 
>     private void printDocument(SoccerPitch doc) {
>         int elements = 0;
> //        (
> //         <---------------------- s ---------------------->
> //         (RedChap|BlackChap)*,Midfield,(RedChap|BlackChap)*
> //         <------- sc1 ------>          <------- sc2 ------>
> //        )
>         if (doc.getSoccerPitchChoiceCount() > 0) {
>             for (Enumeration sc1Enum = doc.enumerateSoccerPitchChoice();
>                  sc1Enum.hasMoreElements();)
>             {
>                 SoccerPitchChoice sc1
> = (SoccerPitchChoice)sc1Enum.nextElement();
>                 SoccerPitchChoiceItem sc1Item =
>                         sc1.getSoccerPitchChoiceItem();
> 
>                 if (sc1Item.getRedChap() != null)
>                     System.out.println("RedChap(" + elements++ + "): " +
> sc1Item.getRedChap());
>                 else if (sc1Item.getBlackChap() != null)
>                     System.out.println("BlackChap(" + elements++ + "): " +
> sc1Item.getBlackChap());
>             }
>         }
>         if (doc.getMidfield() != null)
>             System.out.println("Midfield");
>         else
>             System.out.println("Error! Should have Midfield somewhere...");
>         if (doc.getSoccerPitchChoice2Count() > 0) {
>             for (Enumeration sc2Enum = doc.enumerateSoccerPitchChoice2();
>                  sc2Enum.hasMoreElements();)
>             {
>                 SoccerPitchChoice2 sc2
> = (SoccerPitchChoice2)sc2Enum.nextElement();
>                 SoccerPitchChoice2Item sc2Item =
>                         sc2.getSoccerPitchChoice2Item();
> 
>                 if (sc2Item.getRedChap() != null)
>                     System.out.println("RedChap(" + elements++ + "): " +
> sc2Item.getRedChap());
>                 else if (sc2Item.getBlackChap() != null)
>                     System.out.println("BlackChap(" + elements++ + "): " +
> sc2Item.getBlackChap());
>             }
>         }
>         System.out.println("");
>     } // void printDocument()
> 
> Kind Regards,
> Greg K
> ______________________________________________________________________
>  IMPORTANT NOTICE:
> The information in this email is confidential and proprietary to NexPress
> Solutions LLC and may be legally privileged.  It is for the intended
> recipient(s) named above only.  Any unauthorized review, printing, copying,
> 
> use or distribution of this email by anyone else is prohibited and may be a
> 
> criminal offense.  If you have received this email in error, please notify
> the
> sender immediately by reply email and delete the original message.
> 
> ______________________________________________________________________
>  IMPORTANT NOTICE:
> The information in this email is confidential and proprietary to NexPress
> Solutions LLC and may be legally privileged.  It is for the intended
> recipient(s) named above only.  Any unauthorized review, printing, copying,
> 
> use or distribution of this email by anyone else is prohibited and may be a
> 
> criminal offense.  If you have received this email in error, please notify
> the
> sender immediately by reply email and delete the original message.
> 
> ______________________________________________________________________
>  IMPORTANT NOTICE:
> The information in this email is confidential and proprietary to NexPress
> Solutions LLC and may be legally privileged.  It is for the intended
> recipient(s) named above only.  Any unauthorized review, printing, copying,
> 
> use or distribution of this email by anyone else is prohibited and may be a
> 
> criminal offense.  If you have received this email in error, please notify
> the
> sender immediately by reply email and delete the original message.
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>              unsubscribe castor-dev
> 
> ______________________________________________________________________
>  IMPORTANT NOTICE:
> The information in this email is confidential and proprietary to NexPress
> Solutions LLC and may be legally privileged.  It is for the intended
> recipient(s) named above only.  Any unauthorized review, printing, copying,
> 
> use or distribution of this email by anyone else is prohibited and may be a
> 
> criminal offense.  If you have received this email in error, please notify
> the
> sender immediately by reply email and delete the original message.
> 
> ______________________________________________________________________
>  IMPORTANT NOTICE:
> The information in this email is confidential and proprietary to NexPress
> Solutions LLC and may be legally privileged.  It is for the intended
> recipient(s) named above only.  Any unauthorized review, printing, copying,
> 
> use or distribution of this email by anyone else is prohibited and may be a
> 
> criminal offense.  If you have received this email in error, please notify
> the
> sender immediately by reply email and delete the original message.
> 
> -----------------------------------------------------------
> 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