tango.text.xml.PullParser

License:

BSD style: see license.txt

Version:

Initial release: February 2008

Authors:

Aaron, Kris
enum XmlNodeType [public] #
The XML node types
enum XmlTokenType [public] #
Values returned by the pull-parser
class PullParser(Ch = char) #
Token based xml Parser. Templated to operate with char[], wchar[], and dchar[] content.
The parser is constructed with some tradeoffs relating to document integrity. It is generally optimized for well-formed documents, and currently may read past a document-end for those that are not well formed. There are various compilation options to enable checks and balances, depending on how things should be handled. We'll settle on a common configuration over the next few weeks, but for now all settings are somewhat experimental. Partly because making some tiny unrelated change to the code can cause notable throughput changes, and we need to track that down.

We're not yet clear why these swings are so pronounced (for changes outside the code path) but they seem to be related to the alignment of codegen. It could be a cache-line issue, or something else. We'll figure it out, yet it's interesting that some hardware buttons are clearly being pushed

this(Ch[] content = null) #
Construct a parser on the given content (may be null)
XmlTokenType next() [final] #
Consume the next token and return its type
XmlTokenType doAttributeName() [private] #
XmlTokenType doEndEmptyElement() [private] #
XmlTokenType doComment() [private] #
XmlTokenType doCData() [private] #
XmlTokenType doPI() [private] #
XmlTokenType doDoctype() [private] #
XmlTokenType endOfInput() [private] #
XmlTokenType doUnexpected(char[] msg, Ch* p) [private] #
XmlTokenType doExpected(char[] msg, Ch* p) [private] #
XmlTokenType position(char[] msg, Ch* p) [private] #
XmlTokenType error(char[] msg) [protected, final] #
Ch[] value() [final] #
Return the raw value of the current token
Ch[] name() [final] #
Return the name of the current token
char[] error() [final] #
Returns the text of the last error
bool reset() [final] #
Reset the parser
void reset(Ch[] newText) [final] #
Reset parser with new content
void incremental(bool yes = true) [final] #

experimental:

set streaming mode

Use at your own risk, may be removed.

void reset_() [private] #
struct XmlText(Ch) #