Hello Keith,
I'm sure you mean
...
> <class name="Article" ...>
> ...
> <field name="categories" type="Category"
> collection="array" ...>
> <bind-xml node="attribute" reference="true"/>
> </field>
> ...
> </class>
Cause reference is an attribute of <bind-xml/>.
My code and mapping looks exactly like you posted, but the Unmarshalling
always ends up with the following exception:
java.lang.IllegalArgumentException: array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at
org.exolab.castor.mapping.loader.J1CollectionHandlers$1.add(Unknown
Source)
at
org.exolab.castor.mapping.loader.FieldHandlerImpl.setValue(Unknown
Source)
at
org.exolab.castor.xml.UnmarshalHandler.processAttribute(Unknown Source)
at
org.exolab.castor.xml.UnmarshalHandler.processAttributes(Unknown Source)
at org.exolab.castor.xml.UnmarshalHandler.startElement(Unknown
Source)
at
org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1340)
at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLVal
idator.java:1197)
at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentSc
anner.java:1862)
at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatc
h(XMLDocumentScanner.java:1238)
at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScan
ner.java:381)
at
org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unknown Source)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unknown Source)
at
sportbet.server.config.def.OptionsDefinitions.load(OptionsDefinitions.ja
va:56)
at
sportbet.server.config.def.OptionsDefinitions.getInstance(OptionsDefinit
ions.java:96)
at sportbet.client.test.Main.testConfigDef(Main.java:49)
at sportbet.client.test.Main.main(Main.java:60)
It seems that castor does not find the <category> elements identified by
their id-attribute. Castor does not make a reference to them.
I can post the code if noone knows the problem. I've attachet the
mapping and a sample xml-file.
Thanks,
Thomas
> -----Urspr�ngliche Nachricht-----
> Von: Keith Visco [mailto:[EMAIL PROTECTED]]
> Gesendet: Mittwoch, 25. September 2002 18:46
> An: [EMAIL PROTECTED]
> Betreff: Re: [castor-dev] Unmarshal IDREFS
>
>
>
>
> Hi Thomas,
>
> You can use something like the following :
>
> <class name="Category" identity="id" ...>
> ...
> <field name="id" ...>
> <bind-xml node="attribute"/>
> </field>
> ...
> </class>
>
> <class name="Article" ...>
> ...
> <field name="categories" type="Category"
> collection="array" reference="true" ...>
> <bind-xml node="attribute"/>
> </field>
> ...
> </class>
>
> Note the use of the 'identity' and 'reference' attributes.
>
> --Keith
>
> Thomas Louis wrote:
> >
> > Hello,
> >
> > Is it possible to unmarshall the following xml
> >
> > <shop>
> > <category id="food"/>
> > <category id="vegetarian"/>
> > <category id="pizza"/>
> >
> > <article categories="food vegetarian pizza">Pizza
> > Funghi</article>
> > ...
> > </shop>
> >
> > To an object-tree like that:
> >
> > Class Shop {
> > Category[] categories;
> > Article[] articles;
> > ...
> > }
> >
> > Class Category {
> > String id;
> > ...
> > }
> >
> > Class Article {
> > Category[] categories;
> > String desc;
> > ...
> > }
> >
> > I hope you can imagine what I mean. I didn't get castor to
> create the
> > Article.categories array on unmarshalling. How must the
> mapping-file
> > look like?
> >
> > Thanks,
> > Thomas
> >
> > -----------------------------------------------------------
> > 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
>
begin 666 mapping.xml
M/#]X;6P@=F5R<VEO;CTB,2XP(C\^"@H\(41/0U194$4@;6%P<&EN9R!054),
M24,@(BTO+T583TQ!0B]#87-T;W(@36%P<&EN9R!$5$0@5F5R<VEO;B Q+C O
M+T5.(@H@(" @(" @(" @(" @(" @(" @(" @(" @(FAT=' Z+R]C87-T;W(N
M97AO;&%B+F]R9R]M87!P:6YG+F1T9"(^"@H\(2TM(%1H:7,@;6%P<&EN9R!F
M:6QE(&ES(&=E;F5R871E9"!B>2!81&]C;&5T+B!0;&5A<V4@9&\@;F]T(&5D
M:70A("TM/@H*/&UA<'!I;F<^"@H@(#PA+2T@/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/2 M+3X*(" \(2TM(" @36%P<&EN9R!F;W(@8VQA<W,@<W!O<G1B970N
M<V5R=F5R+F-O;F9I9RYD968N3W!T:6]N0V%T96=O<GD@("TM/@H@(#PA+2T@
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2 M+3X*"B @/&-L87-S(&YA;64](G-P
M;W)T8F5T+G-E<G9E<BYC;VYF:6<N9&5F+D]P=&EO;D-A=&5G;W)Y(@H@(" @
M(" @("!I9&5N=&ET>3TB:60B"B @(" @(" @(&%C8V5S<STB<VAA<F5D(@H@
M(" @(" @("!A=71O+6-O;7!L971E/2)F86QS92(^"@H@(" @/&9I96QD(&YA
M;64](FED(@H@(" @(" @(" @('1Y<&4](FIA=F$N;&%N9RY3=')I;F<B"B @
M(" @(" @(" @9V5T+6UE=&AO9#TB9V5T260B/@H@(" @(" \8FEN9"UX;6P@
M;F%M93TB:60B"B @(" @(" @(" @(" @("!N;V1E/2)A='1R:6)U=&4B("\^
M"B @(" \+V9I96QD/@H*(" \+V-L87-S/@H*(" \(2TM(#T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T@+2T^"B @/"$M+2 @($UA<'!I;F<@9F]R(&-L87-S('-P
M;W)T8F5T+G-E<G9E<BYC;VYF:6<N9&5F+D]P=&EO;G-$969I;FET:6]N<R @
M+2T^"B @/"$M+2 ]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]("TM/@H*(" \8VQA
M<W,@;F%M93TB<W!O<G1B970N<V5R=F5R+F-O;F9I9RYD968N3W!T:6]N<T1E
M9FEN:71I;VYS(@H@(" @(" @("!A8V-E<W,](G-H87)E9"(*(" @(" @(" @
M875T;RUC;VUP;&5T93TB9F%L<V4B/@H*(" @(#QF:65L9"!N86UE/2)O<'1I
M;VY#871E9V]R>2(*(" @(" @(" @("!T>7!E/2)S<&]R=&)E="YS97)V97(N
M8V]N9FEG+F1E9BY/<'1I;VY#871E9V]R>2(*(" @(" @(" @("!G970M;65T
M:&]D/2)G971/<'1I;VY#871E9V]R>2(*(" @(" @(" @("!C;VQL96-T:6]N
M/2)A<G)A>2(^"B @(" @(#QB:6YD+7AM;"!N86UE/2)O<'1I;VXM8V%T96=O
M<GDB"B @(" @(" @(" @(" @("!N;V1E/2)E;&5M96YT(B O/@H@(" @/"]F
M:65L9#X*"B @(" \9FEE;&0@;F%M93TB;W!T:6]N1&5F(@H@(" @(" @(" @
M('1Y<&4](G-P;W)T8F5T+G-E<G9E<BYC;VYF:6<N9&5F+D]P=&EO;D1E9B(*
M(" @(" @(" @("!G970M;65T:&]D/2)G971/<'1I;VY$968B"B @(" @(" @
M(" @8V]L;&5C=&EO;CTB87)R87DB/@H@(" @(" \8FEN9"UX;6P@;F%M93TB
M;W!T:6]N+61E9B(*(" @(" @(" @(" @(" @(&YO9&4](F5L96UE;G0B("\^
M"B @(" \+V9I96QD/@H*(" @(#QF:65L9"!N86UE/2)T97-T4')O<"(*(" @
M(" @(" @("!T>7!E/2)J879A+FQA;F<N4W1R:6YG(@H@(" @(" @(" @(&=E
M="UM971H;V0](F=E=%1E<W10<F]P(CX*(" @(#PO9FEE;&0^"@H@(#PO8VQA
M<W,^"@H@(#PA+2T@/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2 M+3X*(" \(2TM
M(" @36%P<&EN9R!F;W(@8VQA<W,@<W!O<G1B970N<V5R=F5R+F-O;F9I9RYD
M968N3W!T:6]N4&%R86U$968@("TM/@H@(#PA+2T@/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/2 M+3X*"B @/&-L87-S(&YA;64](G-P;W)T8F5T+G-E<G9E<BYC
M;VYF:6<N9&5F+D]P=&EO;E!A<F%M1&5F(@H@(" @(" @("!A8V-E<W,](G-H
M87)E9"(*(" @(" @(" @875T;RUC;VUP;&5T93TB9F%L<V4B/@H*(" @(#QF
M:65L9"!N86UE/2)N86UE(@H@(" @(" @(" @('1Y<&4](FIA=F$N;&%N9RY3
M=')I;F<B"B @(" @(" @(" @9V5T+6UE=&AO9#TB9V5T3F%M92(^"B @(" \
M+V9I96QD/@H*(" @(#QF:65L9"!N86UE/2)O=F5R=W)I=&5&=6YC=&EO;B(*
M(" @(" @(" @("!T>7!E/2)J879A+FQA;F<N4W1R:6YG(@H@(" @(" @(" @
M(&=E="UM971H;V0](F=E=$]V97)W<FET949U;F-T:6]N(CX*(" @(#PO9FEE
M;&0^"@H@(" @/&9I96QD(&YA;64](G1Y<&5#;&%S<R(*(" @(" @(" @("!T
M>7!E/2)J879A+FQA;F<N0VQA<W,B"B @(" @(" @(" @9V5T+6UE=&AO9#TB
M9V5T5'EP94-L87-S(CX*(" @(" @/&)I;F0M>&UL"B @(" @(" @(" @(" @
M("!T>7!E/2)X<SIT;VME;B(@+SX*(" @(#PO9FEE;&0^"@H@(#PO8VQA<W,^
M"@H@(#PA+2T@/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2 M+3X*(" \(2TM(" @
M36%P<&EN9R!F;W(@8VQA<W,@<W!O<G1B970N<V5R=F5R+F-O;F9I9RYD968N
M3W!T:6]N1&5F(" M+3X*(" \(2TM(#T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T@
M+2T^"@H@(#QC;&%S<R!N86UE/2)S<&]R=&)E="YS97)V97(N8V]N9FEG+F1E
M9BY/<'1I;VY$968B"B @(" @(" @(&ED96YT:71Y/2)I9"(*(" @(" @(" @
M86-C97-S/2)S:&%R960B"B @(" @(" @(&%U=&\M8V]M<&QE=&4](F9A;'-E
M(CX*"B @(" \9FEE;&0@;F%M93TB:6UP;$-L87-S(@H@(" @(" @(" @('1Y
M<&4](FIA=F$N;&%N9RY#;&%S<R(*(" @(" @(" @("!G970M;65T:&]D/2)G
M971);7!L0VQA<W,B/@H@(" @(" \8FEN9"UX;6P*(" @(" @(" @(" @(" @
M('1Y<&4](GAS.G1O:V5N(B O/@H@(" @/"]F:65L9#X*"B @(" \9FEE;&0@
M;F%M93TB:6UP;$5J8E)E9B(*(" @(" @(" @("!T>7!E/2)J879A+FQA;F<N
M4W1R:6YG(@H@(" @(" @(" @(&=E="UM971H;V0](F=E=$EM<&Q%:F)2968B
M/@H@(" @/"]F:65L9#X*"B @(" \9FEE;&0@;F%M93TB;F%M92(*(" @(" @
M(" @("!T>7!E/2)J879A+FQA;F<N4W1R:6YG(@H@(" @(" @(" @(&=E="UM
M971H;V0](F=E=$YA;64B/@H@(" @/"]F:65L9#X*"B @(" \9FEE;&0@;F%M
M93TB;W!T:6]N4&%R86U$969S(@H@(" @(" @(" @('1Y<&4](G-P;W)T8F5T
M+G-E<G9E<BYC;VYF:6<N9&5F+D]P=&EO;E!A<F%M1&5F(@H@(" @(" @(" @
M(&=E="UM971H;V0](F=E=$]P=&EO;E!A<F%M1&5F<R(*(" @(" @(" @("!C
M;VQL96-T:6]N/2)A<G)A>2(^"B @(" @(#QB:6YD+7AM;"!N86UE/2)O<'1I
M;VXM<&%R86TM9&5F(B O/@H@(" @/"]F:65L9#X*"B @(" \9FEE;&0@;F%M
M93TB<W5P<&QY:6YG0V%T96=O<FEE<R(*(" @(" @(" @("!T>7!E/2)S<&]R
M=&)E="YS97)V97(N8V]N9FEG+F1E9BY/<'1I;VY#871E9V]R>2(*(" @(" @
M(" @("!G970M;65T:&]D/2)G9713=7!P;'EI;F=#871E9V]R:65S(@H@(" @
M(" @(" @('-E="UM971H;V0](G-E=%-U<'!L>6EN9T-A=&5G;W)I97,B"B @
M(" @(" @(" @8V]L;&5C=&EO;CTB87)R87DB/@H@(" @(" \8FEN9"UX;6P@
M;F%M93TB<W5P<&QY:6YG+6-A=&5G;W)I97,B"B @(" @(" @(" @(" @("!R
M969E<F5N8V4](G1R=64B"B @(" @(" @(" @(" @("!N;V1E/2)A='1R:6)U
M=&4B("\^"B @(" \+V9I96QD/@H*(" \+V-L87-S/@H*(" \(2TM"B @("!$
M969I;F4@>6]U<B!K97DM9V5N97)A=&]R(&1E8VQA<F%T:6]N(&EN(&$@9FEL
M92!C86QL960@:V5Y+6=E;F5R871O<BYX;6P@86YD('!L86-E(&ET(&EN('EO
H=7(@;65R9V4@9&ER96-T;W)Y+@H@(" M+3X*"CPO;6%P<&EN9SX*"@``
`
end
begin 666 option-defs.xml
M/#]X;6P@=F5R<VEO;CTB,2XP(B!E;F-O9&EN9STB551&+3@B/SX-"CPA+2T@
M961I=&5D('=I=&@@6$U,(%-P>2!V-"XS(%4@*&AT=' Z+R]W=W<N>&UL<W!Y
M+F-O;2D@8GD@;6ES=&5R('@@*&YI>"D@+2T^#0H\(2TM4V%M<&QE(%A-3"!F
M:6QE(&=E;F5R871E9"!B>2!834P@4W!Y('8T+C,@52 H:'1T<#HO+W=W=RYX
M;6QS<'DN8V]M*2TM/@T*/&]P=&EO;G,M9&5F:6YI=&EO;G,@>&UL;G,Z>'-I
M/2)H='1P.B\O=W=W+G<S+F]R9R\R,# Q+UA-3%-C:&5M82UI;G-T86YC92(@
M>'-I.FYO3F%M97-P86-E4V-H96UA3&]C871I;VX](GHZ7'-P;W)T8F5T7'-R
M8UQX;6Q<;W!T:6]N<UQO<'1I;VXM9&5F<RYX<V0B/@T*"3QO<'1I;VXM8V%T
M96=O<GD@:60](D)%5%]%3E1%4E!225-%(B\^#0H)/&]P=&EO;BUC871E9V]R
M>2!I9#TB1U)/55 B+SX-"@D\;W!T:6]N+6-A=&5G;W)Y(&ED/2)04D]'4D%-
M(B\^#0H)/&]P=&EO;BUC871E9V]R>2!I9#TB159%3E0B(&1E<&5N9',](D=2
M3U50(%!23T=204TB+SX-"@D\;W!T:6]N+6-A=&5G;W)Y(&ED/2)#55-43TU%
M4B(@9&5P96YD<STB0D547T5.5$524%))4T4B+SX-"@D\;W!T:6]N+6-A=&5G
M;W)Y(&ED/2)!0T-%4%1!3D-%7T-(04Y.14PB(&1E<&5N9',](D=23U50(%!2
M3T=204TB+SX-"@D\;W!T:6]N+6-A=&5G;W)Y(&ED/2)424-+150B(&1E<&5N
M9',](D5614Y4($-54U1/3452($%#0T505$%.0T5?0TA!3DY%3"(O/@T*"3QO
M<'1I;VXM9&5F('-U<'!L>6EN9RUC871E9V]R:65S/2)"151?14Y415)04DE3
M12!%5D5.5"(@<F5T<FEE=FEN9RUC871E9V]R:65S/2)424-+150B/@T*"0D\
M;F%M93Y7971T<V-H96EN9V5BP[QH<CPO;F%M93X-"@D)/&]P=&EO;BUP87)A
M;2UD968^#0H)"0D\;F%M93Y0<F]Z96YT<V%T>CPO;F%M93X-"@D)"3QT>7!E
M+6-L87-S/FIA=F$N;&%N9RY$;W5B;&4\+W1Y<&4M8VQA<W,^#0H)"0D\;W9E
M<G=R:71E+69U;F-T:6]N/FQA<W0\+V]V97)W<FET92UF=6YC=&EO;CX-"@D)
M/"]O<'1I;VXM<&%R86TM9&5F/@T*"0D\;W!T:6]N+7!A<F%M+61E9CX-"@D)
M"3QN86UE/DEN:VPN("\@17AK;"X\+VYA;64^#0H)"0D\='EP92UC;&%S<SYJ
M879A+FQA;F<N0F]O;&5A;CPO='EP92UC;&%S<SX-"@D)"3QO=F5R=W)I=&4M
M9G5N8W1I;VX^;&%S=#PO;W9E<G=R:71E+69U;F-T:6]N/@T*"0D\+V]P=&EO
M;BUP87)A;2UD968^#0H)"3QI;7!L+65J8BUR968^5&EC:V5T1F5E0V%L8W5L
M871O<CPO:6UP;"UE:F(M<F5F/@T*"3PO;W!T:6]N+61E9CX-"@D\;W!T:6]N
M+61E9B!S=7!P;'EI;F<M8V%T96=O<FEE<STB1U)/55 @04-#15!404Y#15]#
M2$%.3D5,(B!R971R:65V:6YG+6-A=&5G;W)I97,](E1)0TM%5"(^#0H)"3QN
M86UE/DUI;F1E<W1W96=E/"]N86UE/@T*"0D\;W!T:6]N+7!A<F%M+61E9CX-
M"@D)"3QN86UE/DS#I&YG93PO;F%M93X-"@D)"3QT>7!E+6-L87-S/FIA=F$N
M;&%N9RY);G1E9V5R/"]T>7!E+6-L87-S/@T*"0D)/&]V97)W<FET92UF=6YC
M=&EO;CYM87@\+V]V97)W<FET92UF=6YC=&EO;CX-"@D)/"]O<'1I;VXM<&%R
M86TM9&5F/@T*"0D\:6UP;"UE:F(M<F5F/DUI;E=A>59A;&ED871O<CPO:6UP
M;"UE:F(M<F5F/@T*"3PO;W!T:6]N+61E9CX-"@D\;W!T:6]N+61E9B!S=7!P
M;'EI;F<M8V%T96=O<FEE<STB04-#15!404Y#15]#2$%.3D5,(B!R971R:65V
M:6YG+6-A=&5G;W)I97,](E1)0TM%5"(^#0H)"3QN86UE/D%U<WIA:&QU;F=S
M;&EM:70@<')O($%N;F%H;65K86YA;#PO;F%M93X-"@D)/&]P=&EO;BUP87)A
M;2UD968^#0H)"0D\;F%M93Y"971R86<\+VYA;64^#0H)"0D\='EP92UC;&%S
M<SYJ879A+FQA;F<N1&]U8FQE/"]T>7!E+6-L87-S/@T*"0D)/&]V97)W<FET
M92UF=6YC=&EO;CYM:6X\+V]V97)W<FET92UF=6YC=&EO;CX-"@D)/"]O<'1I
M;VXM<&%R86TM9&5F/@T*"0D\:6UP;"UE:F(M<F5F/D%C8V5P=&%N8V5#:&%N
M;F5L36%X4&%Y3W5T5F%L:61A=&]R/"]I;7!L+65J8BUR968^#0H)/"]O<'1I
M;VXM9&5F/@T*"3QT97-T+7!R;W ^;6ES=#PO=&5S="UP<F]P/@T*/"]O<'1I
2;VYS+61E9FEN:71I;VYS/@T*
`
end
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev