5
//-#include <strstream>
9
#include "include/util/reader.h"
10
#include "include/util/filereader.h"
11
#include "include/util/memoryreader.h"
12
#include "include/common/defines.h"
13
#include "include/common/types.h"
14
#include "include/common/source.h"
15
#include "include/common/exception.h"
16
#include "include/xpa/dom/dom.h"
18
#include "include/xslta/transform.h"
19
#include "include/util/memorywriter.h"
20
#include "include/util/filewriter.h"
21
#include "include/util/stdoutwriter.h"
24
//#define PARSE_DOM /* Slower */
28
INTEL_XML_NAMESPACE_USE
29
INTEL_XML_UTIL_NAMESPACE_USE
30
INTEL_XML_PARSE_DOM_NAMESPACE_USE
31
INTEL_XML_PACKAGE_NAMESPACE_USE_ALL
34
DOMImplementationFactory* domfactory;
35
DOMImplementation* domimpl;
38
TransformFactory* factory;
39
StreamSource *stylesheet;
41
Transformer* transformer;
43
MemoryReader *xslbuffer;
45
#define outsize MAXOUTSIZE
49
void initXML(struct TestData *td) {
50
domfactory = DOMImplementationFactory::newInstance();
51
domimpl = domfactory->getDOMImplementation();
52
parser = domimpl->createDOMParser();
53
out = new char[outsize+1];
56
void initXML_Transformation(struct TestData *td) {
57
factory = TransformFactory::newInstance();
59
xslbuffer= MemoryReader::createMemoryReader(td->xsl,td->xsllen);
60
stylesheet = new StreamSource(xslbuffer);
62
templates = factory->newTemplates(stylesheet);
63
transformer = templates->newTransformer();
66
void releaseXML(struct TestData *td) {
69
templates->releaseTransformer(transformer);
70
factory->releaseTemplates(templates);
73
domimpl->releaseDOMParser(parser);
74
DOMImplementationFactory::releaseInstance(domfactory);
79
void parseXML(struct TestData *td, unsigned long iter) {
82
MemoryReader *buffer= MemoryReader::createMemoryReader(td->xml,td->xmllen);
83
StreamSource *ss = new StreamSource(buffer);
84
doc = parser->parse(ss);
88
domimpl->releaseDocument(doc);
91
void transformXML(struct TestData *td, unsigned long iter) {
94
MemoryReader *buffer= MemoryReader::createMemoryReader(td->xml,td->xmllen);
95
StreamSource *ss = new StreamSource(buffer);
97
MemoryWriter *output = MemoryWriter::createMemoryWriter(out, outsize);
98
StreamResult *os = new StreamResult(output);
99
transformer->transform(ss, os);
101
MemoryReader::releaseMemoryReader(buffer);
104
// if (iter==td->iterations) puts(out);
107
MemoryWriter::releaseMemoryWriter(output);
111
int main(int argc, char *argv[]) {
112
return Test(argc,argv);