static void test_epr_cmp(void) { WsXmlDocH doc1 = ws_xml_read_file("./epr1.xml", "utf-8", 0); WsXmlDocH doc2 = ws_xml_read_file("./epr2.xml", "utf-8", 0); WsXmlDocH doc3 = ws_xml_read_file("./epr3.xml", "utf-8", 0); if(doc1 == NULL || doc2 == NULL || doc3 == NULL) return; WsXmlNodeH node = ws_xml_get_soap_header(doc1); epr_t *epr1 = epr_deserialize(node, NULL, NULL, 0); if(epr1 == NULL) { printf("epr deserialize failed!\n"); return; } node = ws_xml_get_soap_header(doc2); epr_t *epr2 = epr_deserialize(node, NULL, NULL, 0); if(epr2 == NULL) { printf("epr deserialize failed!\n"); return; } node = ws_xml_get_soap_header(doc3); epr_t *epr3 = epr_deserialize(node, NULL, NULL, 0); if(epr3 == NULL) { printf("epr deserialize failed!\n"); return; } ws_xml_destroy_doc(doc1); ws_xml_destroy_doc(doc2); ws_xml_destroy_doc(doc3); if(epr_cmp(epr1, epr2) == 0) printf("\033[22;32mepr1 == epr2\033[m\n\n"); else printf("\033[22;32mepr1 != epr2\033[m\n\n"); if(epr_cmp(epr1, epr3) == 0) printf("\033[22;32mepr1 == epr3\033[m\n\n"); else printf("\033[22;32mepr1 != epr3\033[m\n\n"); epr_destroy(epr1); epr_destroy(epr2); epr_destroy(epr3); }
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; }
static void test_epr_delete_selector(void) { WsXmlDocH doc1 = ws_xml_read_file("./epr3.xml", "utf-8", 0); if(doc1 == NULL) return; WsXmlNodeH node = ws_xml_get_soap_header(doc1); epr_t *epr = epr_deserialize(node, NULL, NULL, 0); epr_delete_selector(epr, "Handler"); WsXmlDocH doc = ws_xml_create_envelope(); WsXmlNodeH header = ws_xml_get_soap_header(doc); epr_serialize(header,NULL,NULL,epr,0); ws_xml_dump_doc(stdout, doc); ws_xml_destroy_doc(doc1); ws_xml_destroy_doc(doc); epr_destroy(epr); printf("\033[22;32mdelete selector \"Handler\" from EPR\033[m\n\n"); }
static void test_deserialize(void) { WsXmlDocH doc = ws_xml_read_file("./sample.xml", "utf-8", 0); if(doc == NULL) return; WsXmlNodeH node = ws_xml_get_soap_header(doc); epr_t *epr = epr_deserialize(node, NULL, NULL, 0); if(epr == NULL) { printf("epr deserialize failed!\n"); return; } ws_xml_destroy_doc(doc); doc = ws_xml_create_envelope(); node = ws_xml_get_soap_header(doc); epr_serialize(node, NULL, NULL,epr, 0); ws_xml_dump_doc(stdout, doc); epr_destroy(epr); ws_xml_destroy_doc(doc); printf("\033[22;32mtest deserialize epr successfully!\033[m\n\n"); }
WsXmlDocH wsmc_read_file( const char *filename, const char *encoding, unsigned long options) { return ws_xml_read_file( filename, encoding, options); }