76 lines
1.8 KiB
C
76 lines
1.8 KiB
C
|
|
|
|
#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;
|
|
}
|