Hi Dennis, well, I tried to use a member of type Object in my class. When I tried to compile, Jibx complained about an "Error: No ID definitions for compatible type". Hence I thought that it is not possible to use Object as a refereced object due to the fact that there is no mapping for it. Here is what binding an d class looked like:
--- class ---
[...service.class, custumer.class...]
[...]
public class Ref
{
protected Object referecedObject;
[...]
}
-------------
--- binding ---
[...]
<mapping name="SERVICE" class="de.hsc.jibx.Service">
<value style="attribute" name="ID" field="id" usage="required" ident="def"/>
</mapping>
<mapping name="CUSTOMER" class="de.hsc.jibx.Customer">
<value style="attribute" name="ID" field="id" usage="required" ident="def"/>
</mapping>
<mapping name="REF" class="de.hsc.jibx.Ref">
<value style="attribute" name="LINK" field="link" usage="required"
ident="ref"/>
</mapping>
[...]
---------------
When I compiled -> "Error: No ID definitions for compatible type".
Well, maybe I am just not smart enough (no joke - I mean it in a technical
sense). I came up with the idea to use an abstract class "RefObj" which is
inherited from all referencable objects. Binding and class now looks like that:
--- class ---
[...service.class, custumer.class... which extends RefObj now]
[...]
public class Ref
{
protected RefObj referecedObject;
[...]
}
--- binding ---
[...]
<mapping class="de.hsc.jibx.RefObj" abstract="true">
<value name="ID" field="id" style="attribute" ident="def"/>
</mapping>
<mapping name="SERVICE" class="de.hsc.jibx.Service"
extends="de.hsc.jibx.RefObj">
<structure map-as="de.hsc.jibx.RefObj"/>
</mapping>
<mapping name="CUSTOMER" class="de.hsc.jibx.Customer"
extends="de.hsc.jibx.RefObj">
<structure map-as="de.hsc.jibx.RefObj"/>
</mapping>
<mapping name="REF" class="de.hsc.jibx.Ref">
<value style="attribute" name="LINK" field="link" usage="required"
ident="ref"/>
</mapping>
[...]
---------------
That works fine so far.
Thanks.
- Holger
Dennis Sosnoski schrieb:
> Hi Holger,
>
> Maybe I'm missing something, but I don't see why using java.lang.Object
> wouldn't work for this case. ID/IDREF are an untyped linkage mechanism,
> so there shouldn't be any constraints on using the same form of
> references to different types of elements.
>
> - Dennis
>
> Dennis M. Sosnoski
> SOA and Web Services in Java
> Training and Consulting
> http://www.sosnoski.com - http://www.sosnoski.co.nz
> Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117
>
>
>
> Holger Schultz wrote:
>> Hi all,
>>
>> i've run into a little problem here. Maybe someone has a solution or an idea
>> how
>> it could be solve.
>>
>> Within an XML-Document there is an element which references another element.
>> If
>> the referenced element is always of the same type I've got no problem by
>> using
>> ID/IDREF.
>>
>> Unfortunatelly in this case there is no way to tell what kind of element
>> will be
>> referenced. Example:
>>
>> -------------------------------------
>> <SERVICES NAME="S1">
>> <SERVICE ID="SID1">
>> <DATA>Wrzlprmpf</DATA>
>> </SERVICE>
>> </SERVICES >
>> <SERVICES NAME="S2">
>> <REF IDREF="SID1"/>
>> </SERVICES >
>> <CUSTOMERS NAME="C1">
>> <CUSTOMER ID="CID1"/>
>> <NAME>Holger</NAME>
>> </CUSTOMER>
>> </CUSTOMERS>
>> <CUSTOMERS NAME="C2">
>> <REF IDREF="SID1"/>
>> </CUSTOMERS>
>> -------------------------------------
>>
>> As you can see element "REF" can reference a "SERVICE" as well as a
>> "CUSTOMER".
>> So it is impossible to tell what kind of element will be referenced. As far
>> as I
>> figured it out an ID/IDREF solution can't be used here.
>>
>> Is there any way to tell "REF" and it's representing class that the
>> referenced
>> object can be of any kind. I tried java.lang.Object but after a failed
>> attempt
>> of compiling it, it was quite obvious to me why this couldn't work (shame on
>> me).
>>
>> So, any suggestions or (even better) solutions will be highly appreciated.
>>
>> @Dennis: Thank you so much for your great work and effort here.
>>
>> regards,
>> Holger
>>
>> ------------------------------------------------------------------------
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> http://sourceforge.net/powerbar/db2/
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> jibx-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/jibx-users
>>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> jibx-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>
--
Mit freundlichem Gruß / Kind Regards
Holger Schultz
IT-Berater
# HMS IT-Service Holger Schultz
# Weinbergstraße 26 - 73269 Hochdorf, BaWü - Germany
# Tel. : +49.7153.60.80.90-1
# Fax : +49.7153.60.80.90-9
# Mobil : +49.177.388.0137
# E-Mail: [EMAIL PROTECTED]
# Sitz des Unternehmens: Hochdorf
# Geschäftsführer: Holger Schultz
smime.p7s
Description: S/MIME Cryptographic Signature
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/
_______________________________________________ jibx-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jibx-users
