Wow thanks to all of you!
Dan.
On 6 Jun 2008, at 21:40, Lukas Lang wrote:
Sorry, of course I was wrong.
I tried it myself and found out that:
<class name="xml.template.Service">
<map-to name="service"/>
<field name="id">
<bind-xml name="service" node="text"/>
</field>
<field name="mode">
<bind-xml name="mode" node="attribute"/>
</field>
</class>
also works. But Werner's solution I think is much more convenient.
Yours,
Lukas
Werner Guttmann schrieb:
Lukas,
imho, the container attribute makes sense in the context of multi-
valued
fields only. Imagine a Java member 'items' (within an Order class)
which
holds a java.util.List of Item instances
A vanilla mapping for this could look like ...
<field name="items" type="Item" collection="arraylist">
<bind-xml name="items" />
</field>
Such a mapping would produce XML as follows:
<oder>
<items>
<item>
...
</item>
<item>
...
</item>
</items>
</order>
Now imagine there's folks who consider the <items> element to be
redundant, in other words want to avoid it. In that case you can
use the
container attribute to signal to Castor that the <item> elements
should
be placed within the <order> itself.
I hope this makes (more) sense ....
Werner
Lukas Lang wrote:
Hey Dan,
as far as I know there is an attribute called "container".
Have a look at the mapping.dtd:
<!ELEMENT field ( description?, sql?, bind-xml?, ldap? )>
<!ATTLIST field
name CDATA #REQUIRED
type CDATA #IMPLIED
...
transient (true|false) "false"
identity (true|false) "false"
container ( true | false ) #IMPLIED
...
I'm wondering, I couldn't find it on the website documentation.
Elements being a container are not marshalled as far as I know.
Greetings,
Lukas
[EMAIL PROTECTED] schrieb:
Hi All,
I have a class called Service with two attributes, mode and id.
Currently I am using Castor to unmarshal this xml:
<service mode="R" id="D2MAX"/>
The fields are mapped like this:
<class name="com.Service">
<map-to xml="service"/>
<field name="id"><bind-xml node="attribute"/></field>
<field name="mode"><bind-xml node="attribute"/></field>
</class>
Is there any way to map the class so that the id attribute is
mapped
like this:
<service mode="R">D2STD</service>
Rather than like this:
<service mode="R"><id>D2STD</id></service>
Much appreciated,
Dan.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email