The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
/*
	Copyright (c) 2000 Paul T. Miller
  License: LGPL ( http://www.gnu.org/copyleft/lgpl.html )
  Modified from original sample/testread.cpp in xmlio distribution
    to be suitable for use in the benchmarking system included with
    XML::Bare.
*/

#include "sample.h"
#include "xmlinput.h"
#include "xmlfile.h"
#include <iostream>

static void sDocHandler(XML::Element &elem, void *userData)
{
	// found a Document - make a new one 
	Document *doc = new Document(elem.GetAttribute("name"));

	doc->Read(elem);

	Document::ObjectList::const_iterator it;
	for (it = doc->begin(); it != doc->end(); ++it)
	{
		const Object *obj = (*it);
	}
	delete doc;
}

int main(int argc, char **argv)
{
	XML::FileInputStream file(argv[1]);
	XML::Input input(file);

	// set up initial handler for Document
	XML::Handler handlers[] = {
		XML::Handler("Document", sDocHandler),
		XML::Handler::END
	};

	try {
		input.Process(handlers, NULL);
	}
	catch (const XML::ParseException &e)
	{
		fprintf(stderr, "ERROR: %s (line %d, column %d)\n", e.What(), e.GetLine(), e.GetColumn());
	}
	return 0;
}