/xmlbench/trunk

To get this branch, use:
bzr branch http://darksoft.org/webbzr/xmlbench/trunk
1 by Suren A. Chilingaryan
Initial import
1
#include <stdio.h>
2
#include <sys/time.h>
3
#include <xercesc/util/PlatformUtils.hpp>
2 by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts
4
#include <xercesc/framework/XMLGrammarPool.hpp>
1 by Suren A. Chilingaryan
Initial import
5
#include <xercesc/framework/MemBufInputSource.hpp>
6
#include <xercesc/parsers/XercesDOMParser.hpp>
7
#include <iostream>
8
9
#include "DOMTreeErrorReporter.hpp"
10
#include "tools2.h"
11
2 by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts
12
DOMTreeErrorReporter *errReporter = NULL;
13
XercesDOMParser *simple_parser = NULL;
14
XercesDOMParser *parser = NULL;
1 by Suren A. Chilingaryan
Initial import
15
16
17
void initXML(struct TestData *td) {
18
    XMLPlatformUtils::Initialize();
19
    errReporter = new DOMTreeErrorReporter();
20
    simple_parser = new XercesDOMParser;
21
    simple_parser->setDoNamespaces(1);
22
23
    parser = new XercesDOMParser;
24
25
}
26
27
void initXML_Validation(struct TestData *td) {
2 by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts
28
    if (simple_parser) {
29
	delete simple_parser;
30
	simple_parser = NULL;
31
    }
32
    
33
//    parser->loadGrammar(td->scfn, Grammar::SchemaGrammarType, true);
34
    parser->cacheGrammarFromParse(true);
35
    parser->useCachedGrammarInParse(true);
1 by Suren A. Chilingaryan
Initial import
36
    parser->setDoSchema(1);
37
    parser->setDoNamespaces(1);
38
    parser->setValidationScheme(XercesDOMParser::Val_Always);
39
    parser->setValidationSchemaFullChecking(1);
40
    parser->setErrorHandler(errReporter);
41
}
42
43
void releaseXML(struct TestData *td) {
2 by Suren A. Chilingaryan
Intel, Tango, Phobos, and RapidXML parsers; Memory benchmark scripts
44
    if (parser) {
45
	delete parser;
46
	parser = NULL;
47
    }
48
49
    if (simple_parser) {
50
	delete simple_parser;
51
	simple_parser = NULL;
52
    }
53
    
54
    if (errReporter) {
55
	delete errReporter;
56
	errReporter = NULL;
57
    }
58
    
1 by Suren A. Chilingaryan
Initial import
59
    XMLPlatformUtils::Terminate();
60
}
61
62
void parseXML(struct TestData *td, unsigned long iter) {
63
    const char id[5]="ID1\0";
64
    MemBufInputSource *buffer;
65
66
//    parser = new XercesDOMParser;
67
    
68
    buffer=new MemBufInputSource((XMLByte*)td->xml,td->xmllen,(const char*)&id);
69
    buffer->setCopyBufToStream(false);
70
    simple_parser->parse(*buffer);
71
72
    delete buffer;
73
//    delete parser;
74
75
}
76
77
void validateXML(struct TestData *td, unsigned long iter) {
78
    const char id[5]="ID1\0";
79
    MemBufInputSource *buffer;
80
//    XercesDOMParser *parser;
81
/*
82
    parser = new XercesDOMParser;
83
    parser->setDoSchema(1);
84
    parser->setDoNamespaces(1);
85
    parser->setValidationScheme(XercesDOMParser::Val_Always);
86
    parser->setValidationSchemaFullChecking(1);
87
    parser->setErrorHandler(errReporter);
88
*/    
89
    buffer=new MemBufInputSource((XMLByte*)td->xml,td->xmllen,(const char*)&id);
90
    buffer->setCopyBufToStream(false);
91
    parser->parse(*buffer);
92
93
    delete buffer;
94
//    delete parser;
95
}
96
97
98
int main(int argc, char *argv[]) {
99
    return Test(argc,argv);
100
}