-1

I want to deserialize xml into a class. Please let me know how will i form the class.
My xml:-

<?xml version="1.0" encoding="utf-8"?>
<cXML xml:lang="en-US"
   timestamp="2002-08-15T08:36:47-07:00">
 <Header>
  <From>
   <Credential domain="ex:ThirdParty">
    <Identity>ex:65652314</Identity>
   </Credential>
  </From>
  <To>
   <Credential domain="ex:xyz">
    <Identity>ex:Punchout</Identity>
   </Credential>
  </To>
  <Sender>
   <Credential domain=" ex:ThirdParty.com ">
    <Identity>ex: Third Party website Credential</Identity>
    <SharedSecret>ex: Third Party Password</SharedSecret>
   </Credential>
   <UserAgent>ex:Third Party Procurement System 2.0</UserAgent>
  </Sender>
 </Header>
 <Request>
  <PunchOutSetupRequest operation="create">
   <BuyerCookie>ex:34234234ADFSDF234234</BuyerCookie>
   <BrowserFormPost>
    <URL>ex:https://thirdpart.com/punchoutexit</URL>
   </BrowserFormPost>
  </PunchOutSetupRequest>
 </Request>
</cXML>
I have to design a class to deserialize this xml
Mohit S
  • 13,723
  • 6
  • 34
  • 69
Suman George
  • 51
  • 3
  • 9

1 Answers1

0

How to do it was discussed here

This is how your class looks like.

/// <remarks />
[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "", IsNullable = false)]
public class cXML
{
    /// <remarks />
    public cXMLHeader Header { get; set; }

    /// <remarks />
    public cXMLRequest Request { get; set; }

    /// <remarks />
    [XmlAttribute(Form = XmlSchemaForm.Qualified, Namespace = "http://www.w3.org/XML/1998/namespace")]
    public string lang { get; set; }

    /// <remarks />
    [XmlAttribute]
    public DateTime timestamp { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeader
{
    /// <remarks />
    public cXMLHeaderFrom From { get; set; }

    /// <remarks />
    public cXMLHeaderTO To { get; set; }

    /// <remarks />
    public cXMLHeaderSender Sender { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeaderFrom
{
    /// <remarks />
    public cXMLHeaderFromCredential Credential { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeaderFromCredential
{
    /// <remarks />
    public string Identity { get; set; }

    /// <remarks />
    [XmlAttribute]
    public string domain { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeaderTO
{
    /// <remarks />
    public cXMLHeaderTOCredential Credential { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeaderTOCredential
{
    /// <remarks />
    public string Identity { get; set; }

    /// <remarks />
    [XmlAttribute]
    public string domain { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeaderSender
{
    /// <remarks />
    public cXMLHeaderSenderCredential Credential { get; set; }

    /// <remarks />
    public string UserAgent { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLHeaderSenderCredential
{
    /// <remarks />
    public string Identity { get; set; }

    /// <remarks />
    public string SharedSecret { get; set; }

    /// <remarks />
    [XmlAttribute]
    public string domain { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLRequest
{
    /// <remarks />
    public cXMLRequestPunchOutSetupRequest PunchOutSetupRequest { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLRequestPunchOutSetupRequest
{
    /// <remarks />
    public string BuyerCookie { get; set; }

    /// <remarks />
    public cXMLRequestPunchOutSetupRequestBrowserFormPost BrowserFormPost { get; set; }

    /// <remarks />
    [XmlAttribute]
    public string operation { get; set; }
}

/// <remarks />
[XmlType(AnonymousType = true)]
public class cXMLRequestPunchOutSetupRequestBrowserFormPost
{
    /// <remarks />
    public string URL { get; set; }
}
Community
  • 1
  • 1
Hari Prasad
  • 16,716
  • 4
  • 21
  • 35