9
void ds_xmlSetProp(GdomeNode *node, char *nm, char *val) {
10
GdomeDOMString *dstr_nm, *dstr_val;
12
dstr_nm=gdome_str_mkref_dup(nm);
13
dstr_val=gdome_str_mkref_dup(val);
14
gdome_el_setAttribute((GdomeElement*)node,dstr_nm,dstr_val,&exc);
15
gdome_str_unref(dstr_nm);
16
gdome_str_unref(dstr_val);
19
GdomeNode *ds_xmlNewChild(GdomeNode *node, char *nm, char *title, char *text) {
24
dstr = gdome_str_mkref_dup(title);
25
rnode=(GdomeNode*)gdome_doc_createElement(doc,dstr,&exc);
26
gdome_str_unref(dstr);
27
gdome_n_appendChild(node,(GdomeNode*)rnode,&exc);
29
dstr = gdome_str_mkref_dup(text);
30
gdome_n_appendChild(rnode,(GdomeNode*)gdome_doc_createTextNode(doc,dstr,&exc),&exc);
31
gdome_str_unref(dstr);
37
GdomeDOMImplementation *di;
39
void initXML(struct TestData *td) {
43
void releaseXML(struct TestData *td) {
45
gdome_di_unref(di,&exc);
48
void parseXML(struct TestData *td, unsigned long iter) {
49
GdomeNode *pnode,*node,*node1;
56
dstr = gdome_str_mkref_dup("Envelope");
57
doc=gdome_di_createDocument(di,NULL,dstr,NULL,&exc); gdome_str_unref(dstr);
58
pnode=(GdomeNode*)gdome_doc_documentElement(doc,&exc);
59
ds_xmlSetProp(pnode,"xmlns","http://www.w3.org/2001/12/soap-envelope");
60
ds_xmlSetProp(pnode,"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
61
ds_xmlSetProp(pnode,"xmlns:enc","http://www.w3.org/2001/12/soap-encoding");
62
node=ds_xmlNewChild(pnode,NULL,"Body",NULL);
63
pnode=ds_xmlNewChild(pnode,NULL,"WriteResponse",NULL);
64
ds_xmlSetProp(pnode,"xmlns","http://opcfoundation.org/webservices/OPCDA/");
65
node=ds_xmlNewChild(pnode,NULL,"WriteResult",NULL);
66
ds_xmlSetProp(node,"RcvTime","2002-04-29T10:16:26.6806250+02:00");
67
ds_xmlSetProp(node,"ReplyTime","2002-04-29T10:16:26.7806250+02:00");
68
ds_xmlSetProp(node,"ClientRequestHandle","WriteError");
69
ds_xmlSetProp(node,"RevisedLocaleID","en");
70
ds_xmlSetProp(node,"ServerState","running");
71
node1=ds_xmlNewChild(pnode,NULL,"RItemList",NULL);
72
node=ds_xmlNewChild(pnode,NULL,"Errors",NULL);
73
ds_xmlSetProp(node,"ID","E_UNKNOWNITEMID");
74
ds_xmlNewChild(node,NULL,"Text","The item does not exist in the server address space.");
75
node=ds_xmlNewChild(pnode,NULL,"Errors",NULL);
76
ds_xmlSetProp(node,"ID","S_CLAMP");
77
ds_xmlNewChild(node,NULL,"Text","The value written was accepted but the output was clamped.");
80
node=ds_xmlNewChild(pnode,NULL,"Items",NULL);
81
ds_xmlSetProp(node,"ItemPath","");
82
ds_xmlSetProp(node,"ItemName","WrongItemID1");
83
ds_xmlSetProp(node,"Timestamp","0001-01-01T00:00:00.0000000+01:00");
84
ds_xmlSetProp(node,"ErrorID","E_UNKNOWNITEMID");
85
node1=ds_xmlNewChild(node,NULL,"Value",NULL);
86
ds_xmlSetProp(node1,"xsi:nil","true");
88
node=ds_xmlNewChild(pnode,NULL,"Items",NULL);
89
ds_xmlSetProp(node,"ItemPath","");
90
ds_xmlSetProp(node,"ItemName","WrongItemID2");
91
ds_xmlSetProp(node,"Timestamp","0001-01-01T00:00:00.0000000+01:00");
92
ds_xmlSetProp(node,"ErrorID","E_UNKNOWNITEMID");
93
node1=ds_xmlNewChild(node,NULL,"Value",NULL);
94
ds_xmlSetProp(node1,"xsi:nil","true");
96
node=ds_xmlNewChild(pnode,NULL,"Items",NULL);
97
ds_xmlSetProp(node,"ItemPath","/Reals");
98
ds_xmlSetProp(node,"ItemName","Float1");
99
ds_xmlSetProp(node,"ValueType","xsd:float");
100
ds_xmlSetProp(node,"Timestamp","2002-04-29T11:47:18.1493750+02:00");
101
node1=ds_xmlNewChild(node,NULL,"Value","10.0141414");
102
ds_xmlSetProp(node1,"xsi:type","xsd:float");
104
node=ds_xmlNewChild(pnode,NULL,"Items",NULL);
105
ds_xmlSetProp(node,"ItemPath","/Reals");
106
ds_xmlSetProp(node,"ItemName","Float2");
107
ds_xmlSetProp(node,"ValueType","xsd:float");
108
ds_xmlSetProp(node,"Timestamp","2002-04-29T11:47:18.1493750+02:00");
109
ds_xmlSetProp(node,"SuccessID","S_CLAMP");
110
node1=ds_xmlNewChild(node,NULL,"Value","1.07");
111
ds_xmlSetProp(node1,"xsi:type","xsd:float");
113
for (i=0;i<td->inc;i++) {
114
node=ds_xmlNewChild(pnode,NULL,"Items",NULL);
115
ds_xmlSetProp(node,"ItemPath","/Integer");
116
ds_xmlSetProp(node,"ItemName","IntN");
117
ds_xmlSetProp(node,"ValueType","xsd:int");
118
ds_xmlSetProp(node,"Timestamp","2002-04-29T11:47:18.1493750+02:00");
119
ds_xmlSetProp(node,"SuccessID","S_CLAMP");
120
sprintf(s,"%u",rand());
121
node1=ds_xmlNewChild(node,NULL,"Value",s);
122
ds_xmlSetProp(node1,"xsi:type","xsd:int");
125
gdome_di_saveDocToMemory(di,doc,&mem,0,&exc);
126
gdome_di_freeDoc(di,doc,&exc);
128
// if (iter==td->iterations) puts(mem);
132
int main(int argc, char *argv[]) {
133
return Test(argc,argv);