/* Web Polygraph       http://www.web-polygraph.org/
 * (C) 2003-2006 The Measurement Factory
 * Licensed under the Apache License, Version 2.0 */

#ifndef POLYGRAPH__XML_XMLRENDERER_H
#define POLYGRAPH__XML_XMLRENDERER_H

class XmlDoc;
class XmlNode;
class XmlTag;
class XmlNodes;

// rendering interface
class XmlRenderer {
	public:
		virtual ~XmlRenderer() {}

		virtual void render(const XmlDoc &doc) = 0;

		void renderNode(const XmlNode &node);
		virtual void renderText(const char *buf, Size sz) = 0;
		virtual void renderTag(const XmlTag &tag) = 0;

	protected:
		void foreach(const XmlNodes *nodes);
};

#endif


syntax highlighted by Code2HTML, v. 0.9.1