#ifndef XMLPARSER_H
#define XMLPARSER_H

/*
Spec:

Initially support tags with no internal properties.
  e.g. <mytag id="557"> </mytag> is not supported.
  through "<mytag" ... ">" would capture the structure.

Strict:
<tag> ... </tag> supported.

Support both reading and writing.

Structure with strict: Tokenize on tags.
Full and partial tokenization supported.
 Partial tokenization tokenizes on an extraction request.  If the tag is found
 the string is tokenized with respect to the tag.

stringc data( stringc& tag1) from stringtagparser is implemented
 as returning a string sublist.

class stringsublist
{
public:

  // If the tag was not found then invalid.
  bool valid;

  list<string>& seq;

  list<string>::iterator subbeg;
  list<string>::iterator subend;

};

stringsublist read(stringc& tag1);

Deleting tags separate function.

bool write(stringc& tag1, stringc value)
bool write(stringc& tag1, stringsublist)

 serialize and serializeInverse supported.




*/

#include <stringsublist.h>
#include <tokenizer.h>

class xmlparser
{
public: 

  /** String stream. */
  tokenizer ss;

  /* Withing tag1 write the substring. */
  //TODO boolc write(stringc& tag1, stringc& data)
};


#endif


