blob: c8480c9343e95e80b6c8fd68acfe229c9181a4c8 [file] [log] [blame]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "u/libu.h"
#include "wsman-soap.h"
#include "wsman-xml.h"
#include "wsman-soap.h"
#include "wsman-xml-serialize.h"
struct __CIM_ComputerSystem {
char *NameFormat;
char *test[2];
XmlSerialiseDynamicSizeData foo;
};
typedef struct __CIM_ComputerSystem CIM_ComputerSystem;
#define NS "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ComputerSystem"
SER_TYPEINFO_STRING;
SER_START_ITEMS(CIM_ComputerSystem)
SER_NS_STR(NS, "NameFormat", 1),
SER_NS_STR(NS, "test", 2),
SER_NS_DYN_ARRAY(NS, "foo", 1, 100, string),
SER_END_ITEMS(CIM_ComputerSystem);
int main(int argc, char *argv[])
{
WsSerializerContextH cntx = ws_serializer_init();
// SoapH soap = ws_context_get_runtime(cntx);
WsXmlDocH doc = ws_xml_read_file( argv[1], "UTF-8", 0 );
WsXmlNodeH node = ws_xml_get_soap_body(doc);
if (!node)
printf("no xml\n");
//node = ws_xml_get_child(node, 0, NULL, NULL);
CIM_ComputerSystem *cs = (CIM_ComputerSystem *)ws_deserialize(cntx,
node,
CIM_ComputerSystem_TypeInfo,
"CIM_ComputerSystem",
NULL, NULL,
0, 0);
if (cs == NULL) {
printf("No cs\n");
return 1;
}
printf("NameFormat = <%s>\n", cs->NameFormat);
/*
printf("test[0] <%s>\n", cs->test[0]);
printf("test[1] <%s>\n", cs->test[1]);
printf("cs->foo.count = %d\n", cs->foo.count);
if (cs->foo.data == NULL) {
printf("No cs->foo.data\n");
return 1;
}
int i;
char **p = (char **)cs->foo.data;
for (i = 0; i < cs->foo.count; i++) {
printf(" foo[%d] = <%s>\n", i, *p);
p++;
}
*/
return 0;
}