Soap Request in Compact Framework is ignoring the attribute XmlSchemaForm.Qualified

160 views Asked by At

I have imported a WSDL into visual studio 2008 and its being built against the compact framework 3.5

If i run this executable on a windows xp (Full framework) machine the SOAP request serializes differently than when i run it on a Windows CE machine (Compact Framework).

Examples below: I have not included the full request but just the section that is different.

Windows CE - Compact Framework

   <soap:Header>
      <serviceBusMessage xmlns="http://www.tibco.com/xmlschemas/Canonicals/ESB/2009/07/ServiceBusMessage1.xsd" 
businessTransactionID="ed406189-df38-4060-99ed-471e239ad140"
correlationID="898f1c66-85fd-48f6-9b4e-6b2e13da7d92" routeInfo="62" 
messageID="1d0bfbb0-f6e2-4302-bb29-6397fed144b2" messageType="REQUEST" 
timestamp="2015-06-19T12:24:55.292+01:00">
         <metadata>
            <meta name="ROLE" value="TIBALL" />
         </metadata>
      </serviceBusMessage>
   </soap:Header>

XP - Full Framework SOAP

   <soap:Header>
      <serviceBusMessage xmlns="http://www.tibco.com/xmlschemas/Canonicals/ESB/2009/07/ServiceBusMessage1.xsd" 
xmlns:d3p1="http://www.tibco.com/xmlschemas/Canonicals/ESB/2009/07/ServiceBusMessage1.xsd" 
businessTransactionID="85ed64b2-fa86-4a22-8029-137b9bf7918e" 
correlationID="d621244d-9b4f-4235-82e7-2331d3ab6da0" routeInfo="62" 
d3p1:messageID="d032324c-d986-491e-ae5e-a690fd876949" 
d3p1:messageType="REQUEST" d3p1:timestamp="2015-06-19T11:58:06.88575+01:00">
             <d3p1:metadata>
            <d3p1:meta name="ROLE" value="TIBALL" />
         </d3p1:metadata>
      </serviceBusMessage>
   </soap:Header>

As you can see in the Full Framework the serviceBusMessage contains a namespace called d3p1 and a few of the variables use this. The service is very picky and requires this formatting.

The compact framework doesnt do this and causes the request to fail.

Any reason for this and how i can fix it?

EDIT

The 3 elements in question which are prefixed with d3p1 have the attribute attached to them in the REference.cs which indicates they should belong to their own namespace.

[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]

The compact framework doesnt seem to be doing this.

/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
public string messageID {
    get {
        return this.messageIDField;
    }
    set {
        this.messageIDField = value;
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
public tMessageType messageType {
    get {
        return this.messageTypeField;
    }
    set {
        this.messageTypeField = value;
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute(Form=System.Xml.Schema.XmlSchemaForm.Qualified)]
public System.DateTime timestamp {
    get {
        return this.timestampField;
    }
    set {
        this.timestampField = value;
    }
}
0

There are 0 answers