XML generation using TinyXML

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • bogusbonafide
    New Member
    • Apr 2012
    • 2

    XML generation using TinyXML

    I have written the following classes to generate an XML which is as below:

    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>
    Classes are:
    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);
    }
    But i dont know how to encode these classes into XML form.
    Can you help ? Urgently.
    Last edited by Dormilich; Apr 24 '12, 02:38 PM. Reason: Please use [CODE] [/CODE] tags when posting code.
Working...