Hi Trevor,

Are you sure you are plugging correctly your mapping to the unmarshaller?
To check if you are using the Introspector or the mapping change the following
property in
castor.properties:
# Defines the NodeType for use with Java primitive types (int, long,
# boolean, etc). This value is only used by the Introspector.
# valid values are either "attribute" or "element". By default
# all primitives are marshalled as attributes. Simply uncomment
# the following line to change the NodeType to element.
#
#org.exolab.castor.xml.introspector.primitive.nodetype=element

If it solved a part of your problem, it means your mapping is not read.

Arnaud

-----Original Message-----
From: Trevor Cook [mailto:[EMAIL PROTECTED]]
Sent: Monday, October 15, 2001 1:08 PM
To: [EMAIL PROTECTED]
Subject: [castor-dev] Xml attribute-element


I'm having problem marshalling, and not sure why.  I know that java primitives
default to "attribute", but it appears that you can override that behaviour by
explicitly specifying them (correct?).  I have the following mapping:
  <class name="com.intrinity.instore.castor.UserImpl" identity="id"
key-generator="SEQUENCE">
    <description>User</description>
    <cache-type type="none" />
    <map-to table="users" xml="user" />
    <field name="id" type="integer">
      <sql name="id" type="integer" />
      <xml name="id" node="attribute" />
    </field>
    <field name="name" type="string">
      <sql name="name" type="varchar" dirty="ignore" />
      <xml name="name" node="text" />
    </field>
    <field name="password" type="string">
      <sql name="password" type="varchar" dirty="ignore" />
      <xml name="password" node="element" />
    </field>
    <field name="isGroup" type="boolean">
      <sql name="isgroup" type="bit" dirty="ignore" />
      <xml name="is_group" node="element" />
    </field>
    <field name="isActive" type="boolean">
      <sql name="active" type="bit" dirty="ignore" />
      <xml name="is_active" node="element" />
    </field>
    <field name="createdBy" type="integer">
      <sql name="createdby" type="integer" dirty="ignore" />
      <xml name="created_by" node="element" />
    </field>
    <field name="created" type="date">
      <sql name="created" type="timestamp" dirty="ignore" />
      <xml name="created" node="element" />
    </field>
    <field name="updatedBy" type="integer">
      <sql name="updatedby" type="integer" dirty="ignore" />
      <xml name="updated_by" node="element" />
    </field>
    <field name="updated" type="date">
      <sql name="updated" type="timestamp" dirty="check" />
      <xml name="updated" node="element" />
    </field>
  </class>
and it generates the following xml:
        <user-impl id="8" is-active="true" created-by="2" updated-by="8"
is-group="false">
                <created>2001-09-13T12:01:23.000</created>
                <updated>2001-10-14T12:04:55.000</updated>
                <name>Bob</name>
                <password>bob</password>
        </user-impl>
To be very specific, is-active, created-by, updated-by and is-group should be
elements (id is correct, I wanted attribu I wanted name to be a te).  Also,text
element inside <user-impl> (I believe it is possible to have text at same level
as element, correct?).
Thanks to whoever can assist,
Trevor D. Cook

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

Reply via email to