Greetings !

Sorry for this huge post but I'm completely stuck with SDO ...

I am using Tuscany tuscany-sdo-impl-1.1.1.jar with JDK 6.

I have a XML schema audit.xsd :
<xsd:schema targetNamespace="http://example.com/request/1.0";
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  xmlns:req="http://example.com/request/1.0";
  xmlns:um="http://example.com/usermodel/1.0";
  xmlns="http://example.com/request/1.0";
  elementFormDefault="qualified">

  <xsd:include schemaLocation="usermodel.xsd"/>

  <xsd:complexType name="auditlog">
    <xsd:all>
     [...]
<xsd:element name="content" type="content" minOccurs="0" maxOccurs="1"/>
    </xsd:all>
  </xsd:complexType>

  <xsd:complexType name="content" mixed="false">
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="um:userref" minOccurs="0"/>
      </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

This schema references usermodel.xsd which contains :
  <xsd:complexType name="umref">
    <xsd:all>
<xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
    </xsd:all>
  </xsd:complexType>
  <xsd:complexType name="userref">
    <xsd:complexContent>
      <xsd:extension base="um:umref">
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

So I give these two schemas to the XSDHelper through the "define" method. From the same HelperContext, I create a userref DO : dobj = getDataFactory().create("http://example.com/usermodel/1.0";, "userref");
I set its property :
dobj.setString("name", "blabla");

Then, I take an AuditLog DataObject do_audit and I add dobj as the attribute "content" :

Property contentProp = do_audit.getType().getProperty("content");
DataObject contentDO = dobj.createDataObject(contentProp, contentProp.getType());
contentDO.getList("userref").add(dobj);
do_audit.setDataObject(contentProp, contentDO);

Finally, from the same HelperContext, I save the do_audit object :

getXMLHelper().save(content, "http://example.com/request/1.0";, "auditlog");

and I get :

<?xml version="1.0" encoding="UTF-8"?>
<req:auditlog xmlns:req="http://example.com/request/1.0"; xmlns:um="http://example.com/usermodel/1.0";>
  [...]
  <req:content>

<um:userref>org.apache.tuscany.sdo.impl.dynamicdataobjecti...@2c47d7 (eClass: org.apache.tuscany.sdo.impl.classi...@1e2a543 (name: userref) (instanceClassName: null) (abstract: false, interface: false))
    </um:userref>
  </req:content>
</req:auditlog>

Could anybody tell me why the address of the object is written and not its contents ?

Thanks a lot for any tips or advice :)
Best regards and a nice w.e. to all !

Nicolas Nobelis



Reply via email to