/*
Author:		Chris Kaynor (chris@kaynor.net)
Edited By:		

Description:		An XML parser intended to read any well-formed XML documents into an n-ary tree of
			vectors.
			
Usage:		Create an instance of XMLDocument. Passing in a string to the constructor will call the
			open() function with the same parameters, which in turns calls the specific open() function.
			NOTICE: All XML parsing is done upon loading, causing slower load times at the benefit
			of faster read times. Use the getElements() function to retrieve a refrence to the parsed
			element tree. Use getFirstElement() to retrieve an iterator to the same vector. For each
			element, the getChildren() and getFirstChild() have the same function.
			
			NOTICE: If using Visual Studio 2005, a project has been included to compile the XML
			library to a static library (.lib). To do so, add the project to your solution, and add a
			project dependency of the XML project to any projects which use the XML classes.
			Otherwise, compile the XML library to a static library and include it as an additional
			dependency of the linker.
			
Requirements:	string as defined in the standard template library.
			ifstream as defined in the standard template library.
			strstream as defined in the standard template library.
			XMLDocument as defined in kLibrary's XML section.
			Element as defined in kLibrary's XML section.
			Attribute as defined in kLibrary's XML section.
			
Last Edited:	June 24th, 2008
*/
/*
Copyright 2008 Chris Kaynor

This file is part of kLibrary.

kLibrary is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of
the License, or(at your option) any later version.

kLibrary is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License.
*/

#ifndef KLIBRARY_XML_XML_H
#define KLIBRARY_XML_XML_H

#include <fstream>
#include <vector>
#include <strstream>

namespace kLibrary
{
	namespace XML
	{
		class Attribute;
		class Element;

		typedef std::vector<Attribute> attributes;
		typedef attributes::const_iterator attributeIterator;

		typedef std::vector<Element> elements;
		typedef elements::const_iterator elementIterator;
	}
}

#include "document.h"
#include "element.h"
#include "attribute.h"

#endif //KLIBRARY_XML_XML_H