Thank you Christopher. I have made changes (one ant bind task using a
directory of binding.xml files) and am finding the multiple bindings at
run time. (I did not think of using a fileset to accomplish this. I
dread to think how long it might have taken me to discover this.)
Thank you (and Gunther earlier.) Open source support is as (or more)
valuable as the code itself. Especially for dummies (I believe I have a
lifetime membership in this group :-) ),
Bill
Shorrock, Christopher wrote:
Hey William,
I'm a little late to the conversation but I thought I would post so
that I can at least outline how I was able to get this to work.
Firstly, in our system we have many different "views" of an object,
some which have upwards of 9 different representations.
With that said, how we do it, is first we generate a different binding
file for each "view" in our system, so after our binding generation we
end up with 24 binding files which follow the format of:
binding-create.xml
binding-fill.xml
binding-id.xml
...
Where "create", "fill" and "id" are the names that refer to each
binding. We then have an ant task in our system which looks like:
<bind verbose="${jibx.verbose}" load="true">
<bindingfileset
dir="${sw.basedir}/${project.tools}/${build.jibx}/@{project
<mailto:$%7Bsw.basedir%7D/$%7Bproject.tools%7D/$%7Bbuild.jibx%7D/@%7Bproject>}">
<include name="*.xml"/>
</bindingfileset>
<classpath>
<path id="@{project}.classpath"/>
<path id="[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>" />
<pathelement path="${sw.basedir}/cas/${build.compiled}"/>
<pathelement path="${sw.basedir}/weblet/${build.compiled}"/>
<pathelement path="${sw.basedir}/back/${build.compiled}"/>
<pathelement path="${sw.basedir}/office/${build.compiled}"/>
<pathelement
path="${sw.basedir}/platform/${build.compiled}"/>
</classpath>
</bind>
The bindingfileset directive simply points to a directory containing
all of the XML that was mentioned prior.
The important things to note is that the binding MUST occur at all
once, we made this mistake at first. Following this we are able to
marshal and demarshal each of the views into their own respective
format. Not sure if this is helpful at all, but I can verify that it
does and has been working using this type of structure for about a
year now. Let me know if I can clarify anything.
------------------------------------------------------------------------
*From:* [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] *On Behalf Of
*William Surowiec
*Sent:* Monday, November 26, 2007 1:56 PM
*To:* JiBX users
*Subject:* Re: [jibx-users] best practice for multiple views of the
same java object
Hmmm, I cannot reproduce what I thought was success. I am reporting so
another does not think (on the basis of my previous email) it works
for me and if it is not working for them then it must be them.
I cannot get two bindings defined on the same class with each
available at runtime.
I can confirm the following:
If I run the ant bind task twice,
with the xml in the binding attribute pointing to the same java
class each time,
then the last of the two definitions survives - the first is not
found at runtime.
If I run the ant task once,
with the the xml in the binding attribute containing two binding
elements,
then the first is found at runtime, the second is not.
If I run the ant bind task once,
with the xml in the binding attribute only including two other
binding files,
then the ant task dies with a
[bind] java.lang.NullPointerException
[bind] at
org.jibx.binding.model.NameAttributes.equals(NameAttributes.java:184)
I thought I tested this - late night testing seems not to be what it
appeared to be.
(Even now, after several daylight hours of twisting and turning I am
no longer sure of even the above.)
Maybe it is that dratted Grinch pilfering gifts.
I will report any discoveries (including convicting the usual suspects
(me.))
Bill
Günther Wieser wrote:
hi bill,
good to hear that you solved your issues!
regarding the track-source feature: this can be left out if you don't
need the functionality, see the first chapter in
http://jibx.sourceforge.net/tutorial/binding-advanced.html
br,
günther
Am 20.11.2007 um 06:05 schrieb William Surowiec:
Gunther,
Thank you, it is now working using the second method you indicated.
It was not obvious to me that I could have multiple bindings in one
file. So, my binding.xml file is structured something like:
<binding name="bindingReportInput" direction="input"
track-source="true">
<mapping name="report" class="xxx.Report">
<BIG SNIP/>
</mapping>
</binding>
<binding name="bindingReportOutput1" direction="output"
track-source="true">
<mapping name="report" class="xxx.Report">
<BIG SNIP/>
</mapping>
</binding>
I am not sure if the track-source has any meaning for the output
direction, but nothing complained when simple cut and paste left it
unintentionally in there. I will remove it (and choose better names
for things as we get more serious.)
Really nice. Great tool.
Thank you again for the help (the "other" ingredient making for a
great tool),
Bill
Günther Wieser wrote:
hi bill,
there are two ways to accomplish that:
first, if your input and output binding will be the same in each
situation, you can use different mappings by specifying the
direction="output" or direction="input" attribute in the binding
element, see
http://jibx.sourceforge.net/tutorial/binding-advanced.html
second, you can use named bindings. you can specify a name in the
binding element, and in your java code, you can specify which named
binding you want to use. this allows you to use as many different
bindings as you like or need.
see the binding definition
at http://jibx.sourceforge.net/details/binding-element.html for
more details on the attribute "name". i think there is also some
more detailed explanation in the tutorial, but i couldn't find it now.
br,
günther
Am 19.11.2007 um 22:16 schrieb William Surowiec:
Hi,
I've recently started using JibX - really useful, thank you.
But, of course, I have a question. I sense there may be several
ways to accomplish what I wish to do and I would appreciate
guidance on the "best practice" way. Here is what I would like to
accomplish:
I have a complex, custom Java object. I receive an xml
representation of it (actually a subset of it.) I can parse the
subset without a problem. I now wish to produce another xml
representation of it (same object) but publishing different facets
of it. Structurally the resultant xml would look different than
the input xml: meta data inserted, aggregation performed, some
field elided.
In this specific situation, it makes sense to maintain a single
object with multiple views. Is there a "best practice" jibx approach?
Thanks,
Bill
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users
--
Günther Wieser
creative-it
Guglgasse 6/1/11/1
A-1110 Wien
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
http://www.creative-it.com
------------------------------------------------------------------------
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
------------------------------------------------------------------------
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users
--
Günther Wieser
creative-it
Guglgasse 6/1/11/1
A-1110 Wien
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
http://www.creative-it.com
------------------------------------------------------------------------
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
------------------------------------------------------------------------
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users
------------------------------------------------------------------------
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
------------------------------------------------------------------------
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users