TQXmlSimpleReader Class

Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# TQXmlSimpleReader Class Reference
[XML module]

The TQXmlSimpleReader class provides an implementation of a simple XML reader (parser). More...

All the functions in this class are reentrant when TQt is built with thread support.

`#include <ntqxml.h>`

Inherits TQXmlReader.

List of all member functions.

## Public Members

- TQXmlSimpleReader ()
- virtual ~TQXmlSimpleReader ()
- virtual void setFeature ( const TQString & name, bool value )
- virtual bool parse ( const TQXmlInputSource * input, bool incremental )
- virtual bool parseContinue ()

## Detailed Description

The TQXmlSimpleReader class provides an implementation of a simple XML reader (parser).

This XML reader is sufficient for simple parsing tasks. The reader:

- provides a well-formed parser;
- does not parse any external entities;
- can do namespace processing.

Documents are parsed with a call to parse().

See also XML.

## Member Function Documentation

### TQXmlSimpleReader::TQXmlSimpleReader ()

Constructs a simple XML reader with the following feature settings:

Feature | Setting
--- | ---
http://xml.org/sax/features/namespaces | TRUE
http://xml.org/sax/features/namespace-prefixes | FALSE
http://trolltech.com/xml/features/report-whitespace-only-CharData | TRUE
http://trolltech.com/xml/features/report-start-end-entity | FALSE

More information about features can be found in the TQt SAX2 overview.

See also setFeature().

### TQXmlSimpleReader::~TQXmlSimpleReader ()`[virtual]`

Destroys the simple XML reader.

### bool TQXmlSimpleReader::parse ( const TQXmlInputSource * input, bool incremental )`[virtual]`

Reads an XML document from input and parses it. Returns FALSE if the parsing detects an error; otherwise returns TRUE.

If incremental is TRUE, the parser does not return FALSE when it reaches the end of the input without reaching the end of the XML file. Instead it stores the state of the parser so that parsing can be continued at a later stage when more data is available. You can use the function parseContinue() to continue with parsing. This class stores a pointer to the input source input and the parseContinue() function tries to read from that input souce. This means that you should not delete the input source input until you've finished your calls to parseContinue(). If you call this function with incremental TRUE whilst an incremental parse is in progress a new parsing session will be started and the previous session lost.

If incremental is FALSE, this function behaves like the normal parse function, i.e. it returns FALSE when the end of input is reached without reaching the end of the XML file and the parsing cannot be continued.

See also parseContinue() and TQSocket.

Examples: xml/tagreader-with-features/tagreader.cpp and xml/tagreader/tagreader.cpp.

### bool TQXmlSimpleReader::parseContinue ()`[virtual]`

Continues incremental parsing; this function reads the input from the TQXmlInputSource that was specified with the last parse() command. To use this function, you must have called parse() with the incremental argument set to TRUE.

Returns FALSE if a parsing error occurs; otherwise returns TRUE.

If the input source returns an empty string for the function TQXmlInputSource::data(), then this means that the end of the XML file has been reached; this is quite important, especially if you want to use the reader to parse more than one XML file.

The case of the end of the XML file being reached without having finished parsing is not considered to be an error: you can continue parsing at a later stage by calling this function again when there is more data available to parse.

This function assumes that the end of the XML document is reached if the TQXmlInputSource::next() function returns TQXmlInputSource::EndOfDocument. If the parser has not finished parsing when it encounters this symbol, it is an error and FALSE is returned.

See also parse() and TQXmlInputSource::next().

### void TQXmlSimpleReader::setFeature ( const TQString & name, bool value )`[virtual]`

Sets the state of the feature name to value:

If the feature is not recognized, it is ignored.

The following features are supported:

Feature | Notes
--- | ---
http://xml.org/sax/features/namespaces | If this feature is TRUE, namespace processing is performed.
http://xml.org/sax/features/namespace-prefixes | If this feature is TRUE, the the original prefixed names and attributes used for namespace declarations are reported.
http://trolltech.com/xml/features/report-whitespace-only-CharData | If this feature is TRUE, CharData that only contain whitespace are not ignored, but are reported via TQXmlContentHandler::characters().
http://trolltech.com/xml/features/report-start-end-entity | If this feature is TRUE, the parser reports TQXmlContentHandler::startEntity() and TQXmlContentHandler::endEntity() events. So character data might be reported in chunks. If this feature is FALSE, the parser does not report those events, but rather silently substitutes the entities and reports the character data in one chunk.

        ** $Id: qt/tagreader.cpp   3.3.8   edited Jan 11 14:46 $

            reader.setFeature( "http://xml.org/sax/features/namespace-prefixes",
                               TRUE );

(Code taken from xml/tagreader-with-features/tagreader.cpp)

See also feature() and hasFeature().

Example: xml/tagreader-with-features/tagreader.cpp.

Reimplemented from TQXmlReader.

This file is part of the TQt toolkit. Copyright © 1995-2007 Trolltech. All Rights Reserved.