Hi Santhosh,
My guess is your schema definition has errors.
You should have something like this on the <schema> element:
xmlns:tns="... your models targetNamespace..."
xmlns:sdoXML="commonj.sdo/xml"
and then the the cross reference declared like this:
sdoXML:propertyType="tns:InvolvedPartyImpl"
Also, I don't believe you need this import:
<xsd:import namespace="commonj.sdo/xml"
schemaLocation="sdoXML.xsd">
</xsd:import>
since the annotation namespaces are automatically available.
Frank.
"Santhosh Adiga" <[EMAIL PROTECTED]> wrote on 06/16/2008 05:11:30 AM:
> Hi,
>
> I am trying to serialize and deserialize a SDO containing a
> non-containment reference. Here is the xsd corresponding to the SDO.
>
> <xsd:import namespace="commonj.sdo/xml"
> schemaLocation="sdoXML.xsd">
> </xsd:import>
> <xsd:complexType mixed="true" name="InvolvedPartyImpl">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="involvedPartySurrogate"
> type="domain:SurrogateDomain" />
> <xsd:element minOccurs="0" name="organizationOrPerson"
> type="domain:OrganizationOrPersonDomain" />
> <xsd:element minOccurs="0" name="paymentPlan"
> type="bons0:PaymentPlan" maxOccurs="1">
> </xsd:element>
> <xsd:element minOccurs="0" name="financialTransactions"
> type="bons0:FinancialTransactions">
> </xsd:element>
> <xsd:element minOccurs="0" name="refInvolvedParty"
> type="bons0:InvolvedPartyImpl" maxOccurs="1">
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="PaymentPlan">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="PaymentPlanName"
> type="xsd:string">
> </xsd:element>
> <xsd:element minOccurs="0" name="PaymentPlanID"
> type="xsd:int">
> </xsd:element>
> <xsd:element minOccurs="0" name="refInvolvedParty"
> type="xsd:anyURI"
sdoXML:propertyType="InvolvedPartyImpl">
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="FinancialTransaction">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="financialTransaction"
> type="xsd:double">
> </xsd:element>
> <xsd:element minOccurs="0" name="financialTransactionID"
> type="xsd:long">
> </xsd:element>
> <xsd:element minOccurs="0" name="refInvolvedParty"
> type="xsd:anyURI"
sdoXML:propertyType="InvolvedPartyImpl"
> maxOccurs="1">
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:complexType name="FinancialTransactions">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="financialTransaction"
> type="bons0:FinancialTransaction" maxOccurs="unbounded">
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
>
>
>
>
>
> As you can see the payment plan contains a reference to an involved
party.
> When the referenced involved party is present in the same data graph
> as the payment plan, here is the serialized xml i am getting.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <p:InvolvedPartyImpl xsi:type="p:InvolvedPartyImpl"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:p="http://www.abc.com/edm/entities">
> <financialTransactions>
> <financialTransaction>
> <financialTransactionID>13</financialTransactionID>
> </financialTransaction>
> <financialTransaction>
> <financialTransactionID>12</financialTransactionID>
> </financialTransaction>
> </financialTransactions>
> <involvedPartySurrogate>23</involvedPartySurrogate>
> <paymentPlan>
> <PaymentPlanID>12</PaymentPlanID>
> *<refInvolvedParty>
> BusinessObject: [EMAIL PROTECTED]
> (:mixed=[entities:involvedPartySurrogate=24],
> involvedPartySurrogate=24)
> </refInvolvedParty>*
> </paymentPlan>
> <refInvolvedParty>
> <involvedPartySurrogate>24</involvedPartySurrogate>
> </refInvolvedParty>
> </p:InvolvedPartyImpl>
>
>
> And I am having problems deserializing the reference involved party
> obtained.
> Could you let me know if there is any special trick to be applied while
> serializing or deserializing a
> non-containment reference and is it specific to any implementation?
>
>
> Thanks
> Santhosh