3
#include "include/util/reader.h"
4
#include "include/util/filereader.h"
5
#include "include/util/memoryreader.h"
6
#include "include/common/defines.h"
7
#include "include/common/types.h"
8
#include "include/common/source.h"
9
#include "include/common/exception.h"
10
#include "include/xpa/sax/saxparser.h"
11
#include "include/xpa/sax/saxparserfactory.h"
12
#include "include/xpa/sax/contenthandler.h"
13
#include "include/xpa/sax/dtdhandler.h"
14
#include "include/xpa/sax/entityresolver.h"
15
#include "include/xpa/sax/lexicalhandler.h"
16
#include "include/xpa/sax/locator2.h"
21
INTEL_XML_NAMESPACE_USE
22
INTEL_XML_UTIL_NAMESPACE_USE
23
INTEL_XML_PARSE_SAX_NAMESPACE_USE
25
class DocHandlers : public ContentHandler/*, public DTDHandler, public EntityResolver, public LexicalHandler*/ {
27
void startElement(unsigned int namespaceTag, unsigned int elemNameCount, const XMLChar* elemName, unsigned int nAttribute, SAXAttribute** attrs);
29
void characters(unsigned int count, const XMLChar* string, bool more);
30
void startNamespace(unsigned int newNamespaceTag, unsigned int prefixCount, const XMLChar* prefixString, unsigned int uriCount,const XMLChar* uriString);
31
void endNamespace(unsigned int namespaceTag);
34
void pi(unsigned int targetCount, const XMLChar* targetString, unsigned int dataCount, const XMLChar* dataString);
35
void setDocumentLocator(Locator* locator);
36
void skippedEntity(unsigned int count, const XMLChar* name);
39
void DocHandlers::startElement(unsigned int namespaceTag, unsigned int elemNameCount, const XMLChar* elemName, unsigned int nAttribute, SAXAttribute** attrs) {
43
void DocHandlers::endElement() {
47
void DocHandlers::characters(unsigned int count, const XMLChar* string, bool more) {
50
void DocHandlers::startNamespace(unsigned int newNamespaceTag, unsigned int prefixCount, const XMLChar* prefixString, unsigned int uriCount,const XMLChar* uriString) {
53
void DocHandlers::endNamespace(unsigned int namespaceTag) {
56
void DocHandlers::startDocument() {
58
void DocHandlers::endDocument() {
60
void DocHandlers::setDocumentLocator(Locator* locator) {
62
void DocHandlers::skippedEntity(unsigned int count, const XMLChar* name) {
64
void DocHandlers::pi(unsigned int targetCount, const XMLChar* targetString, unsigned int dataCount, const XMLChar* dataString) {
67
SAXParserFactory* saximpl;
71
void initXML(struct TestData *td) {
72
saximpl = SAXParserFactory::newInstance();
73
parser = saximpl->createSAXParser();
75
handler=new DocHandlers;
76
parser->setContentHandler(handler);
77
//parser->setDTDHandler(&sax2CoreDumper);
78
//parser->setLexicalHandler(&sax2CoreDumper);
79
//parser->setEntityResolver(&sax2CoreDumper);
82
void releaseXML(struct TestData *td) {
88
void parseXML(struct TestData *td, unsigned long iter) {
89
const char id[5]="ID1\0";
94
buffer= MemoryReader::createMemoryReader(td->xml,td->xmllen);
95
ss = new StreamSource(buffer, id);
96
// buffer->setCopyBufToStream(false);
103
int main(int argc, char *argv[]) {
104
return Test(argc,argv);