|
|
A Serial Access Parser (SAX) for arbitrary XML data
| enum Error { NoError = 0, NotWellFormed, Unknown, IOError, ElementParse, ReadElementName, InvalidElementName, ReadingAttributes, CommentParse, DeclarationParse, DefinitionParse, CDataParse, ReadingEndTag, Incomplete, InvalidEncoding, UnsupportedEncoding, UnsupportedVersion, } | Error |
| enum Type { None = 0, Text = 1, CData = 2, Element = 3, Doctype = 4, Comment = 5, Declaration = 6, Instruction = 7, EndTag = 8, Special = 9 } | Type |
| ~XmlSaxParser ()
| ~XmlSaxParser |
[virtual]
Destructor
| inline unsigned int offset ()
| offset |
[const]
Get the number of bytes successfully parsed
Returns: The number of bytes successfully parsed
| inline unsigned int row ()
| row |
[const]
Get the row where the parser has found an error
Returns: The row number
| inline unsigned int column ()
| column |
[const]
Get the column where the parser has found an error
Returns: The column number
| inline const String& buffer ()
| buffer |
[const]
Retrieve the parser's buffer
Returns: The parser's buffer
| bool parse (const char* data)
| parse |
Parse a given string
Parameters:
| data | The data to parse |
Returns: True if all data was successfully parsed
| bool completeText ()
| completeText |
Process incomplete text if the parser is completed. This method should be called to complete text after all data was pushed into the parser
Returns: True if all data was successfully parsed
| inline Error error ()
| error |
Get the error code found while parsing
Returns: Error code
| bool setError (Error error, XmlChild* child = 0)
| setError |
Set the error code and destroys a child if error code is not NoError
Parameters:
| error | The error found |
| child | Child to destroy |
Returns: False on error
| inline const char* getError (const char* defVal = "Xml error")
| getError |
Retrieve the error string associated with current error status
Parameters:
| defVal | Value to return if not found |
Returns: The error string
| inline Type unparsed ()
| unparsed |
Returns: The last xml type that we were parsing, but we have not finished
| inline void setUnparsed (Type id)
| setUnparsed |
Set the last xml type that we were parsing, but we have not finished
Parameters:
| id | The xml type that we haven't finish to parse |
| void reset ()
| reset |
[virtual]
Reset error flag
| const String& getBuffer ()
| getBuffer |
[const]
Returns: The internal buffer
| inline const char* getError (int code, const char* defVal = "Xml error")
| getError |
[static]
Retrieve the error string associated with a given error code
Parameters:
| code | Code of the error to look up |
| defVal | Value to return if not found |
Returns: The error string
| inline bool blank (char c)
| blank |
[static]
Check if the given character is blank
Parameters:
| c | The character to verify |
Returns: True if c is blank
| bool checkFirstNameCharacter (unsigned char ch)
| checkFirstNameCharacter |
[static]
Verify if the given character is in the range allowed to be first character from a xml tag
Parameters:
| ch | The character to check |
Returns: True if the character is in range
| bool checkDataChar (unsigned char c)
| checkDataChar |
[static]
Check if the given character is in the range allowed for an xml char
Parameters:
| c | The character to check |
Returns: True if the character is in range
| bool checkNameCharacter (unsigned char ch)
| checkNameCharacter |
[static]
Verify if the given character is in the range allowed for a xml name
Parameters:
| ch | The character to check |
Returns: True if the character is in range
| bool validTag (const String& buf)
| validTag |
[static]
Check if a given string is a valid xml tag name
Parameters:
| buf | The string to check |
Returns: True if the string is a valid xml tag name
| void escape (String& buf, const String& text)
| escape |
[static]
XmlEscape the given text
Parameters:
| buf | Destination buffer |
| text | The text to escape |
| static const TokenDict s_errorString[] | s_errorString[] |
| static const XmlEscape s_escape[] | s_escape[] |
| XmlSaxParser (const char* name = "XmlSaxParser")
| XmlSaxParser |
[protected]
Constructor
Parameters:
| name | Debug name |
| bool parseInstruction ()
| parseInstruction |
[protected]
Parse an instruction form the main buffer. Extracts the parsed string from buffer if returns true
Returns: True if the instruction was parsed successfully
| bool parseCData ()
| parseCData |
[protected]
Parse a CData section form the main buffer. Extracts the parsed string from buffer if returns true
Returns: True if the CData section was parsed successfully
| bool parseComment ()
| parseComment |
[protected]
Parse a comment form the main buffer. Extracts the parsed string from buffer if returns true
Returns: True if the comment was parsed successfully
| bool parseElement ()
| parseElement |
[protected]
Parse an element form the main buffer. Extracts the parsed string from buffer if returns true
Returns: True if the element was parsed successfully
| bool parseDeclaration ()
| parseDeclaration |
[protected]
Parse a declaration form the main buffer. Extracts the parsed string from buffer if returns true
Returns: True if the declaration was parsed successfully
| bool parseSpecial ()
| parseSpecial |
[protected]
Helper method to classify the Xml objects starting with "
Returns: True if a corresponding xml object was found and parsed successfully
| bool parseEndTag ()
| parseEndTag |
[protected]
Parse an endtag form the main buffer. Extracts the parsed string from buffer if returns true
Returns: True if the endtag was parsed successfully
| bool parseDoctype ()
| parseDoctype |
[protected]
Parse a doctype form the main buffer. Extracts the parsed string from buffer if returns true. Warning: This is a stub implementation
Returns: True if the doctype was parsed successfully
| bool auxParse ()
| auxParse |
[protected]
Parse an unfinished xml object. Extracts the parsed string from buffer if returns true
Returns: True if the object was parsed successfully
| void unEscape (String& text)
| unEscape |
[protected]
Unescape the given text. Handled: < > ' " & &\#DecimalNumber; &\#xHexNumber;
Parameters:
| text | The requested text to unescape |
| void skipBlanks ()
| skipBlanks |
[protected]
Remove blank characters from the begining of the buffer
| inline bool badCharacter (char c)
| badCharacter |
[protected]
Check if a character is an angle bracket
Parameters:
| c | The character to verify |
Returns: True if c is an angle bracket
| inline void resetError ()
| resetError |
[protected]
Reset the error
| inline void resetParsed ()
| resetParsed |
[protected]
Reset parsed value and parameters
| String* extractName (bool& empty)
| extractName |
[protected]
Extract the name of an element or instruction
Returns: The extracted string or 0
| NamedString* getAttribute ()
| getAttribute |
[protected]
Extract an attribute
Returns: The attribute value or 0
| void gotComment (const String& text)
| gotComment |
[protected virtual]
Callback method. Is called when a comment was successfully parsed. Default implementation does nothing
Parameters:
| text | The comment content |
| void gotProcessing (const NamedString& instr)
| gotProcessing |
[protected virtual]
Callback method. Is called when an instruction was successfully parsed. Default implementation does nothing
Parameters:
| instr | The instruction content |
| void gotDeclaration (const NamedList& decl)
| gotDeclaration |
[protected virtual]
Callback method. Is called when a declaration was successfully parsed. Default implementation does nothing
Parameters:
| decl | The declaration content |
| void gotText (const String& text)
| gotText |
[protected virtual]
Callback method. Is called when a text was successfully parsed. Default implementation does nothing
Parameters:
| text | The text content |
| void gotCdata (const String& data)
| gotCdata |
[protected virtual]
Callback method. Is called when a CData section was successfully parsed. Default implementation does nothing
Parameters:
| data | The CData content |
| void gotElement (const NamedList& element, bool empty)
| gotElement |
[protected virtual]
Callback method. Is called when an element was successfully parsed. Default implementation does nothing
Parameters:
| element | The element content |
| empty | True if the element does not have attributes |
| void endElement (const String& name)
| endElement |
[protected virtual]
Callback method. Is called when a end tag was successfully parsed. Default implementation does nothing
Parameters:
| name | The end tag name |
| void gotDoctype (const String& doc)
| gotDoctype |
[protected virtual]
Callback method. Is called when a doctype was successfully parsed. Default implementation does nothing
Parameters:
| doc | The doctype content |
| bool completed ()
| completed |
[protected virtual]
Callback method. Is called to check if we have an incomplete element. Default implementation returns always true
Returns: True
| bool processElement (NamedList& list, bool empty)
| processElement |
[protected]
Calls gotElement() and eset parsed on success
Parameters:
| list | The list element and its attributes |
| empty | True if the element does not have attributes |
Returns: True if there is no error
| bool processText (String& text)
| processText |
[protected]
Unescape text, call gotText() and reset parsed on success
Parameters:
| text | The text to process |
Returns: True if there is no error
| unsigned int m_offset | m_offset |
[protected]
| unsigned int m_row | m_row |
[protected]
| unsigned int m_column | m_column |
[protected]
| Error m_error | m_error |
[protected]
| String m_buf | m_buf |
[protected]
| NamedList m_parsed | m_parsed |
[protected]
| Type m_unparsed | m_unparsed |
[protected]
| Generated by: paulc on bussard on Sun Oct 20 21:06:06 2013, using kdoc 2.0a54. |