/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk

« back to all changes in this revision

Viewing changes to create/expat-sablotron-dom.cpp

  • Committer: Suren A. Chilingaryan
  • Date: 2009-02-16 09:27:17 UTC
  • Revision ID: csa@dside.dyndns.org-20090216092717-wipyvaaw2srxhgns
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <stdio.h>
 
2
#include <sys/time.h>
 
3
#include <sablot.h>
 
4
#include <sdom.h>
 
5
 
 
6
#include "tools.h"
 
7
 
 
8
SablotSituation *parser;
 
9
 
 
10
void initXML(struct TestData *td) {
 
11
    parser = new SablotSituation;
 
12
    SablotCreateSituation(parser);
 
13
}
 
14
 
 
15
void releaseXML(struct TestData *td) {
 
16
    SablotDestroySituation(*parser);
 
17
    delete parser;
 
18
}
 
19
 
 
20
 
 
21
void parseXML(struct TestData *td, unsigned long iter) {
 
22
    SDOM_Document dom;
 
23
    SDOM_Node pnode,node,tnode,node1,node2;
 
24
    SDOM_char *xmldoc;
 
25
    char s[16];
 
26
    unsigned long i;
 
27
 
 
28
    SablotCreateDocument(*parser, &dom);
 
29
    SDOM_createElementNS(*parser,dom,&pnode,"http://www.w3.org/2001/12/soap-envelope","Envelope");
 
30
    SDOM_appendChild(*parser,dom,pnode);
 
31
//    SDOM_setAttribute(*parser,pnode,"xmlns:soap","http://www.w3.org/2001/12/soap-envelope");
 
32
    SDOM_setAttribute(*parser,pnode,"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
 
33
    SDOM_setAttribute(*parser,pnode,"xmlns:enc","http://www.w3.org/2001/12/soap-encoding");
 
34
    SDOM_createElement(*parser,dom,&node,"Body");
 
35
    SDOM_appendChild(*parser,pnode,node); pnode=node;
 
36
    SDOM_createElementNS(*parser,dom,&node,"http://opcfoundation.org/webservices/OPCDA/","WriteResponse");
 
37
    SDOM_appendChild(*parser,pnode,node); pnode=node;
 
38
    SDOM_createElement(*parser,dom,&node,"WriteResult");
 
39
    SDOM_setAttribute(*parser,node,"RcvTime","2002-04-29T10:16:26.6806250+02:00");
 
40
    SDOM_setAttribute(*parser,node,"ReplyTime","2002-04-29T10:16:26.7806250+02:00");
 
41
    SDOM_setAttribute(*parser,node,"ClientRequestHandle","WriteError");
 
42
    SDOM_setAttribute(*parser,node,"RevisedLocaleID","en");
 
43
    SDOM_setAttribute(*parser,node,"ServerState","running");
 
44
    SDOM_appendChild(*parser,pnode,node);
 
45
    SDOM_createElement(*parser,dom,&node1,"RItemList");
 
46
    SDOM_appendChild(*parser,pnode,node1);
 
47
    SDOM_createElement(*parser,dom,&node,"Errors");
 
48
    SDOM_setAttribute(*parser,node,"ID","E_UNKNOWNITEMID");
 
49
    SDOM_appendChild(*parser,pnode,node);
 
50
    SDOM_createElement(*parser,dom,&node2,"Text");
 
51
    SDOM_appendChild(*parser,node,node2);    
 
52
    SDOM_createTextNode(*parser,dom,&tnode,"The item does not exist in the server address space.");
 
53
    SDOM_appendChild(*parser,node2,tnode);
 
54
    SDOM_createElement(*parser,dom,&node,"Errors");
 
55
    SDOM_setAttribute(*parser,node,"ID","S_CLAMP");
 
56
    SDOM_appendChild(*parser,pnode,node);
 
57
    SDOM_createElement(*parser,dom,&node2,"Text");
 
58
    SDOM_appendChild(*parser,node,node2);    
 
59
    SDOM_createTextNode(*parser,dom,&tnode,"The value written was accepted but the output was clamped.");
 
60
    SDOM_appendChild(*parser,node2,tnode);
 
61
 
 
62
    pnode=node1;
 
63
    SDOM_createElement(*parser,dom,&node,"Items");
 
64
    SDOM_setAttribute(*parser,node,"ItemPath","");
 
65
    SDOM_setAttribute(*parser,node,"ItemName","WrongItemID1");
 
66
    SDOM_setAttribute(*parser,node,"Timestamp","0001-01-01T00:00:00.0000000+01:00");
 
67
    SDOM_setAttribute(*parser,node,"ErrorID","E_UNKNOWNITEMID");
 
68
    SDOM_appendChild(*parser,pnode,node);
 
69
    SDOM_createElement(*parser,dom,&node1,"Value");
 
70
    SDOM_appendChild(*parser,node,node1);
 
71
    SDOM_setAttribute(*parser,node1,"xsi:nil","true");
 
72
 
 
73
    SDOM_createElement(*parser,dom,&node,"Items");
 
74
    SDOM_setAttribute(*parser,node,"ItemPath","");
 
75
    SDOM_setAttribute(*parser,node,"ItemName","WrongItemID2");
 
76
    SDOM_setAttribute(*parser,node,"Timestamp","0001-01-01T00:00:00.0000000+01:00");
 
77
    SDOM_setAttribute(*parser,node,"ErrorID","E_UNKNOWNITEMID");
 
78
    SDOM_appendChild(*parser,pnode,node);
 
79
    SDOM_createElement(*parser,dom,&node1,"Value");
 
80
    SDOM_appendChild(*parser,node,node1);
 
81
    SDOM_setAttribute(*parser,node1,"xsi:nil","true");
 
82
 
 
83
    SDOM_createElement(*parser,dom,&node,"Items");
 
84
    SDOM_setAttribute(*parser,node,"ItemPath","/Reals");
 
85
    SDOM_setAttribute(*parser,node,"ItemName","Float1");
 
86
    SDOM_setAttribute(*parser,node,"ValueType","xsd:float");
 
87
    SDOM_setAttribute(*parser,node,"Timestamp","2002-04-29T11:47:18.1493750+02:00");
 
88
    SDOM_appendChild(*parser,pnode,node);
 
89
    SDOM_createElement(*parser,dom,&node1,"Value");
 
90
    SDOM_appendChild(*parser,node,node1);
 
91
    SDOM_setAttribute(*parser,node1,"xsi:type","xsd:float");
 
92
    SDOM_createTextNode(*parser,dom,&tnode,"10.0141414");
 
93
    SDOM_appendChild(*parser,node1,tnode);
 
94
 
 
95
    SDOM_createElement(*parser,dom,&node,"Items");
 
96
    SDOM_setAttribute(*parser,node,"ItemPath","/Reals");
 
97
    SDOM_setAttribute(*parser,node,"ItemName","Float2");
 
98
    SDOM_setAttribute(*parser,node,"ValueType","xsd:float");
 
99
    SDOM_setAttribute(*parser,node,"Timestamp","2002-04-29T11:47:18.1493750+02:00");
 
100
    SDOM_setAttribute(*parser,node,"SuccessID","S_CLAMP");
 
101
    SDOM_appendChild(*parser,pnode,node);
 
102
    SDOM_createElement(*parser,dom,&node1,"Value");
 
103
    SDOM_appendChild(*parser,node,node1);
 
104
    SDOM_setAttribute(*parser,node1,"xsi:type","xsd:float");
 
105
    SDOM_createTextNode(*parser,dom,&tnode,"1.07");
 
106
    SDOM_appendChild(*parser,node1,tnode);
 
107
    
 
108
    for (i=0;i<td->inc;i++) {
 
109
        SDOM_createElement(*parser,dom,&node,"Items");
 
110
        SDOM_setAttribute(*parser,node,"ItemPath","/Integer");
 
111
        SDOM_setAttribute(*parser,node,"ItemName","IntN");
 
112
        SDOM_setAttribute(*parser,node,"ValueType","xsd:int");
 
113
        SDOM_setAttribute(*parser,node,"Timestamp","2002-04-29T11:47:18.1493750+02:00");
 
114
        SDOM_setAttribute(*parser,node,"SuccessID","S_CLAMP");
 
115
        SDOM_appendChild(*parser,pnode,node);
 
116
        SDOM_createElement(*parser,dom,&node1,"Value");
 
117
        SDOM_appendChild(*parser,node,node1);
 
118
        SDOM_setAttribute(*parser,node1,"xsi:type","xsd:int");
 
119
        sprintf(s,"%u",rand());
 
120
        SDOM_createTextNode(*parser,dom,&tnode,s);
 
121
        SDOM_appendChild(*parser,node1,tnode);
 
122
    }
 
123
    
 
124
    SDOM_docToString(*parser,dom,&xmldoc);
 
125
//    if (iter==td->iterations) puts(xmldoc);
 
126
    free(xmldoc);
 
127
    SablotDestroyDocument(*parser,dom);
 
128
}
 
129
 
 
130
 
 
131
int main(int argc, char *argv[]) {
 
132
    return Test(argc,argv);
 
133
}