basic structure in place.
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index e923c48..aa3788f 100644
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -3,6 +3,7 @@
 #include <string.h>

 #include <stdlib.h>

 #include <stdio.h>

+#include <ctype.h>

 

 using namespace tinyxml2;

 

@@ -23,14 +24,49 @@
 }

 

 

+const char* XMLNode::SkipWhiteSpace( const char* p )

+{

+	while( isspace( *p ) ) {

+		++p;

+	}

+	return p;

+}

+

+

 XMLDocument::XMLDocument() : 

 	charBuffer( 0 )

 {

 }

 

 

-bool XMLDocument::Parse( const char* str ) 

+bool XMLDocument::Parse( const char* p ) 

 {

+	XMLNode* returnNode = 0;

+

+	p = XMLNode::SkipWhiteSpace( p );

+	if( !p || !*p || *p != '<' )

+	{

+		return 0;

+	}

+

+	// What is this thing? 

+	// - Elements start with a letter or underscore, but xml is reserved.

+	// - Comments: <!--

+	// - Decleration: <?xml

+	// - Everthing else is unknown to tinyxml.

+	//

+

+	const char* xmlHeader = { "<?xml" };

+	const char* commentHeader = { "<!--" };

+	const char* dtdHeader = { "<!" };

+	const char* cdataHeader = { "<![CDATA[" };

+

+	if ( XMLNode::StringEqual( p, xmlHeader, 5 ) ) {

+

+	}

+	else {

+		TIXMLASSERT( 0 );

+	}

 

 	return true;

 }

diff --git a/tinyxml2.h b/tinyxml2.h
index aa1fbba..a29739e 100644
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -1,12 +1,33 @@
 #ifndef TINYXML2_INCLUDED

 #define TINYXML2_INCLUDED

 

+#include <limits.h>

+

+#if defined( _DEBUG ) || defined( DEBUG ) || defined (__DEBUG__)

+	#ifndef DEBUG

+		#define DEBUG

+	#endif

+#endif

+

+

+#if defined(DEBUG)

+        #if defined(_MSC_VER)

+                #define TIXMLASSERT( x )           if ( !(x)) { _asm { int 3 } } //if ( !(x)) WinDebugBreak()

+        #elif defined (ANDROID_NDK)

+                #include <android/log.h>

+                #define TIXMLASSERT( x )           if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }

+        #else

+                #include <assert.h>

+                #define TIXMLASSERT                assert

+        #endif

+#else

+        #define TIXMLASSERT( x )           {}

+#endif

+

 

 namespace tinyxml2

 {

 

-

-

 // internal - move to separate namespace

 struct CharBuffer

 {

@@ -18,14 +39,37 @@
 };

 

 

-/*

-class Element

+class XMLNode

 {

+	friend class XMLDocument;

 public:

-	Element

-};

-*/

 

+	static XMLNode* Identify( const char* p );

+

+protected:

+	static const char* SkipWhiteSpace( const char* p );

+	static char* SkipWhiteSpace( char* p ) { return (char*) SkipWhiteSpace( (const char*)p ); }

+

+	inline static bool StringEqual( const char* p, const char* q, int nChar=INT_MAX )  {

+		int n = 0;

+		while( *p && *q && *p == *q && n<nChar ) {

+			++p; ++q; ++n;

+		}

+		if ( (n == nChar) || ( *p == 0 && *q == 0 ) ) {

+			return true;

+		}

+		return false;

+	}

+

+private:

+

+};

+

+

+class XMLComment : public XMLNode

+{

+

+};

 

 

 class XMLDocument

@@ -37,11 +81,15 @@
 

 private:

 	XMLDocument( const XMLDocument& );	// not implemented

+

 	CharBuffer* charBuffer;

 };

 

 

 

+

+

+

 };	// tinyxml2

 

 

diff --git a/tinyxml2.suo b/tinyxml2.suo
index 345fd48..2bca40e 100644
--- a/tinyxml2.suo
+++ b/tinyxml2.suo
Binary files differ
diff --git a/xmltest.cpp b/xmltest.cpp
index c8ef227..8df6ce0 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -7,11 +7,21 @@
 

 int main( int argc, const char* argv )

 {

-	static const char* test = "<hello></hello>";

+	{

+		static const char* test = "<!--hello world-->";

 

-	XMLDocument doc;

-	doc.Parse( test );

-	doc.Print( stdout );

+		XMLDocument doc;

+		doc.Parse( test );

+		doc.Print( stdout );

+	}

+	/*

+	{

+		static const char* test = "<hello></hello>";

 

+		XMLDocument doc;

+		doc.Parse( test );

+		doc.Print( stdout );

+	}

+	*/

 	return 0;

 }
\ No newline at end of file