#include <Xmlw/XmlDocument.h>
#include <Xmlw/XmlNode.h>
using Xmlw::XmlDocument;
using Xmlw::XmlNode;
#include <Sockets/Exception.h>
#include <iostream>

int main()
{
	try
	{
		XmlDocument doc("my_test.wsdl");
		XmlNode root(doc);
		XmlNode tnode(root, "types");
		if (tnode)
		{
			XmlNode snode(tnode, "schema");
			while (snode)
			{
				std::string ns = snode.GetProperty("targetNamespace");
				std::string ns_prefix = root.GetNsMapRe()[ns];

				std::cout << "Namespace : " << ns << std::endl;

				XmlNode n(snode, "complexType");
				while (n)
				{
					std::string name = n.GetProperty("name");
					std::cout << "  " << ns_prefix << ":" << name << std::endl;
					++n;
				}
				++snode;
			}
		}
	}
	catch (const Exception& e)
	{
		std::cerr << e.ToString() << std::endl;
	}
}
