Yes, this is ugly. It goes back to the issue of the current code being oriented toward elements rather than types. For beta 4 I'm introducing a new element <template> that's more or less equivalent to the current <mapping>, but supporting a type (with the element name filled in at point of reference, if applicable). I'm also taking away some of the current <mapping> flexibility, by restricting <mapping> to use as a child of the <binding> element. The business of nested <mapping>s appears to add very little useful functionality (especially since you'll be able to use nested <template>s for a similar effect) while creating a lot of complexity in the runtime code.

I added work-around support for this in the beta 3d code by allowing a <mapping> with abstract="true" to not define a name, while also allowing a name to be supplied when this type of <mapping> is referenced. It's just a kludge until the <template> support is in place, though. "label" and "using" are also going away in beta 4.

 - Dennis

Eitan Suez wrote:

ok, it looks like if i use the "label" and "using" attributes then
i'm allowed to specify a "name" attribute on the <structure>
tag.

so that solves the problem.  from a user's point of view though,
i don't quite see why i should be required to employ
"label" and "using" attributes in the first place.

thanks, eitan


On Feb 8, 2005, at 5:13 PM, Eitan Suez wrote:

hello,

  i'm sure i'm missing something simple but this is not clear to me from
  the documentation.

  example:  i have a Shipment object with two address fields:
    origin and destination

  both fields are of the same type:  Address

  i want the xml element names corresponding to each field to be unique:
    origin and destination
  as in:

  <shipment>
    <origin street="" city="" state="" zip="" />
   <destination street="" city="" state="" zip="" />
  </shipment>

  in the binding file, i want the address type to be defined as a global
 mapping (that is, not using an inline structure element).

jibx forbids the usage of the "name" attribute in the "structure" element
when referencing a global mapping element.


  so my understanding is that jibx uses the Address type mapping's
  name attribute for the element name of each field.  this forces both
  origin and destination to have the same tag name.

  i'd like to be able to specify the binding for shipment as follows:
    <mapping class="Shipment" name="shipment">
     <structure name="origin" field="origin" />
     <structure name="destination" field="destination" />
   </mapping>

  but i can't because name is forbidden.  what am i missing?

thanks, eitan




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
jibx-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to