I have written the following classes to generate an XML which is as below:
Classes are:
But i dont know how to encode these classes into XML form.
Can you help ? Urgently.
Code:
<JBEToOverseerRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:///c:/Share/resquest.xsd"> <ConfigParams> <Param Name="OverseerConfJBEPortNum">1025</Param> <Param Name="OverseerConfHctHostname">10.31.225.163</Param> <Param Name="OverseerConfTestExecParallelism">5</Param> <Param Name="OverseerConfServerName">10.31.225.163</Param> <Param Name="OverseerDirectory">C:\Documents and Settings\Administrator\Desktop\Pocdemo</Param> <Param Name="OverseerConfKillThreadUsingKillerThread">Yes</Param> <Param Name="OverseerTimeoutCleanup">yes</Param> </ConfigParams> <Requests> <Request> <RequestID>HC1001</RequestID> <Host>hct-nw-server</Host> <Parameters> <Param Name="RequestNumber">1</Param> <Param Name="TimeOut">120</Param> </Parameters> </Request> <Request> <RequestID>HC1001</RequestID> <Host>hct-nw-client</Host> <Parameters> <Param Name="RequestNumber">2</Param> <Param Name="TimeOut">120</Param> </Parameters> </Request> </Requests> </JBEToOverseerRequest>
Code:
#include<io.h> #include<string> #include<list> #include<tinyxml.h> using namespace std; class Param { public: string value; string name; Param(); Param( string value, string name) { this->value=value; this->name=name; } }; class Parameters { public: list<Param> param; Parameters(); Parameters(list<Param> param) { this->param = param; } }; class Request { public: string requestID; string host; Parameters parameters; Request(); Request(string requestID, string host, Parameters parameters) { this->requestID = requestID; this->host = host; this->parameters = parameters; } }; class Requests { public: list<Request> requests; Requests(); Requests(list<Request> requests) { this->requests = requests; } }; class JBEToOverseerRequest { public: Parameters configParams; Requests requests; JBEToOverseerRequest(); JBEToOverseerRequest(Parameters configparams, Requests requests) { this->configParams=configparams; this->requests=requests; } void save(const char* Filename); }; class ConfigParams { public: Parameters configparams; ConfigParams(); ConfigParams(Parameters configparams) { this->configparams = configparams; } }; void JBEToOverseerRequest::save(const char* Filename) { TiXmlDocument doc; TiXmlElement* msg; TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" ); doc.LinkEndChild( decl ); TiXmlElement * root = new TiXmlElement("JBEToOverseerRequest"); doc.LinkEndChild( root ); //block configparams { TiXmlElement * configparams= new TiXmlElement( "ConfigParams" ); root->LinkEndChild( configparams ); Param param1=Param("OverseerConfJBEPortNum", "1844"); Param param2=Param("OverseerConfHctHostname" ," 10.30.89.117"); Param param3=Param("OverseerConfTestExecParallelism", "5"); Param param4=Param("OverseerConfServerName", "10.30.89.117"); Param param5=Param("OverseerDirectory","NSR_TMP_DIRECTORY"); Param param6=Param("OverseerTimeoutCleanup","yes"); Param param7=Param("JBEcategory","HostConnectivity"); Param param8=Param("JBECheckType","Extended"); Param param9=Param("ReportRuns","4"); Param param10=Param("ReportGrouping","RUNS"); Param param11=Param("FilterType","N_RUNS"); Param param12=Param("ExportDirPath","//diagnose"); Param param13=Param("CancelInMillisec","0"); list<Param> params =list<Param>(); list <Param>::iterator Iter; Iter=params.begin(); params.insert(Iter,param1); params.insert(Iter,param2); params.insert(Iter,param3); params.insert(Iter,param4); params.insert(Iter,param5); params.insert(Iter,param6); params.insert(Iter,param7); params.insert(Iter,param8); params.insert(Iter,param9); params.insert(Iter,param10); params.insert(Iter,param11); params.insert(Iter,param12); params.insert(Iter,param13); Parameters parameters=Parameters(params); ConfigParams configparams=ConfigParams(parameters); }
Can you help ? Urgently.