📄 qxml.h
字号:
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the QtXML module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QXML_H#define QXML_H#include <QtCore/qtextstream.h>#include <QtCore/qfile.h>#include <QtCore/qstring.h>#include <QtCore/qstringlist.h>#include <QtCore/qlist.h>QT_BEGIN_HEADERQT_MODULE(Xml)class QXmlNamespaceSupport;class QXmlAttributes;class QXmlContentHandler;class QXmlDefaultHandler;class QXmlDTDHandler;class QXmlEntityResolver;class QXmlErrorHandler;class QXmlLexicalHandler;class QXmlDeclHandler;class QXmlInputSource;class QXmlLocator;class QXmlNamespaceSupport;class QXmlParseException;class QXmlReader;class QXmlSimpleReader;class QXmlSimpleReaderPrivate;class QXmlNamespaceSupportPrivate;class QXmlAttributesPrivate;class QXmlInputSourcePrivate;class QXmlParseExceptionPrivate;class QXmlLocatorPrivate;class QXmlDefaultHandlerPrivate;//// SAX Namespace Support//class Q_XML_EXPORT QXmlNamespaceSupport{public: QXmlNamespaceSupport(); ~QXmlNamespaceSupport(); void setPrefix(const QString&, const QString&); QString prefix(const QString&) const; QString uri(const QString&) const; void splitName(const QString&, QString&, QString&) const; void processName(const QString&, bool, QString&, QString&) const; QStringList prefixes() const; QStringList prefixes(const QString&) const; void pushContext(); void popContext(); void reset();private: QXmlNamespaceSupportPrivate *d; friend class QXmlSimpleReaderPrivate; Q_DISABLE_COPY(QXmlNamespaceSupport)};//// SAX Attributes//class Q_XML_EXPORT QXmlAttributes{public: QXmlAttributes() {} virtual ~QXmlAttributes() {} int index(const QString& qName) const; int index(const QLatin1String& qName) const; int index(const QString& uri, const QString& localPart) const; int length() const; int count() const; QString localName(int index) const; QString qName(int index) const; QString uri(int index) const; QString type(int index) const; QString type(const QString& qName) const; QString type(const QString& uri, const QString& localName) const; QString value(int index) const; QString value(const QString& qName) const; QString value(const QLatin1String& qName) const; QString value(const QString& uri, const QString& localName) const; void clear(); void append(const QString &qName, const QString &uri, const QString &localPart, const QString &value);private: struct Attribute { QString qname, uri, localname, value; }; typedef QList<Attribute> AttributeList; AttributeList attList; QXmlAttributesPrivate *d;};//// SAX Input Source//class Q_XML_EXPORT QXmlInputSource{public: QXmlInputSource(); QXmlInputSource(QIODevice *dev); virtual ~QXmlInputSource(); virtual void setData(const QString& dat); virtual void setData(const QByteArray& dat); virtual void fetchData(); virtual QString data() const; virtual QChar next(); virtual void reset(); static const ushort EndOfData; static const ushort EndOfDocument;#ifdef QT3_SUPPORT QT3_SUPPORT_CONSTRUCTOR QXmlInputSource(QFile& file); QT3_SUPPORT_CONSTRUCTOR QXmlInputSource(QTextStream& stream);#endifprotected: virtual QString fromRawData(const QByteArray &data, bool beginning = false);private: void init(); QXmlInputSourcePrivate *d;};//// SAX Exception Classes//class Q_XML_EXPORT QXmlParseException{public: explicit QXmlParseException(const QString &name = QString(), int c = -1, int l = -1, const QString &p = QString(), const QString &s = QString()); ~QXmlParseException(); int columnNumber() const; int lineNumber() const; QString publicId() const; QString systemId() const; QString message() const;private: QXmlParseExceptionPrivate *d;};//// XML Reader//class Q_XML_EXPORT QXmlReader{public: virtual ~QXmlReader() {} virtual bool feature(const QString& name, bool *ok = 0) const = 0; virtual void setFeature(const QString& name, bool value) = 0; virtual bool hasFeature(const QString& name) const = 0; virtual void* property(const QString& name, bool *ok = 0) const = 0; virtual void setProperty(const QString& name, void* value) = 0; virtual bool hasProperty(const QString& name) const = 0; virtual void setEntityResolver(QXmlEntityResolver* handler) = 0; virtual QXmlEntityResolver* entityResolver() const = 0; virtual void setDTDHandler(QXmlDTDHandler* handler) = 0; virtual QXmlDTDHandler* DTDHandler() const = 0; virtual void setContentHandler(QXmlContentHandler* handler) = 0; virtual QXmlContentHandler* contentHandler() const = 0; virtual void setErrorHandler(QXmlErrorHandler* handler) = 0; virtual QXmlErrorHandler* errorHandler() const = 0; virtual void setLexicalHandler(QXmlLexicalHandler* handler) = 0; virtual QXmlLexicalHandler* lexicalHandler() const = 0; virtual void setDeclHandler(QXmlDeclHandler* handler) = 0; virtual QXmlDeclHandler* declHandler() const = 0; virtual bool parse(const QXmlInputSource& input) = 0; virtual bool parse(const QXmlInputSource* input) = 0;};class Q_XML_EXPORT QXmlSimpleReader : public QXmlReader{public: QXmlSimpleReader(); virtual ~QXmlSimpleReader(); bool feature(const QString& name, bool *ok = 0) const; void setFeature(const QString& name, bool value); bool hasFeature(const QString& name) const; void* property(const QString& name, bool *ok = 0) const; void setProperty(const QString& name, void* value); bool hasProperty(const QString& name) const; void setEntityResolver(QXmlEntityResolver* handler); QXmlEntityResolver* entityResolver() const; void setDTDHandler(QXmlDTDHandler* handler); QXmlDTDHandler* DTDHandler() const; void setContentHandler(QXmlContentHandler* handler); QXmlContentHandler* contentHandler() const; void setErrorHandler(QXmlErrorHandler* handler); QXmlErrorHandler* errorHandler() const; void setLexicalHandler(QXmlLexicalHandler* handler); QXmlLexicalHandler* lexicalHandler() const; void setDeclHandler(QXmlDeclHandler* handler); QXmlDeclHandler* declHandler() const; bool parse(const QXmlInputSource& input); bool parse(const QXmlInputSource* input); virtual bool parse(const QXmlInputSource* input, bool incremental); virtual bool parseContinue();private: Q_DISABLE_COPY(QXmlSimpleReader) Q_DECLARE_PRIVATE(QXmlSimpleReader) QXmlSimpleReaderPrivate* d_ptr; friend class QXmlSimpleReaderLocator;};//// SAX Locator//class Q_XML_EXPORT QXmlLocator{public: QXmlLocator(); virtual ~QXmlLocator(); virtual int columnNumber() const = 0; virtual int lineNumber() const = 0;// QString getPublicId() const// QString getSystemId() const};//// SAX handler classes//class Q_XML_EXPORT QXmlContentHandler{public: virtual ~QXmlContentHandler() {} virtual void setDocumentLocator(QXmlLocator* locator) = 0; virtual bool startDocument() = 0; virtual bool endDocument() = 0; virtual bool startPrefixMapping(const QString& prefix, const QString& uri) = 0; virtual bool endPrefixMapping(const QString& prefix) = 0; virtual bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts) = 0; virtual bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName) = 0; virtual bool characters(const QString& ch) = 0; virtual bool ignorableWhitespace(const QString& ch) = 0; virtual bool processingInstruction(const QString& target, const QString& data) = 0; virtual bool skippedEntity(const QString& name) = 0; virtual QString errorString() const = 0;};class Q_XML_EXPORT QXmlErrorHandler{public: virtual ~QXmlErrorHandler() {} virtual bool warning(const QXmlParseException& exception) = 0; virtual bool error(const QXmlParseException& exception) = 0; virtual bool fatalError(const QXmlParseException& exception) = 0; virtual QString errorString() const = 0;};class Q_XML_EXPORT QXmlDTDHandler{public: virtual ~QXmlDTDHandler() {} virtual bool notationDecl(const QString& name, const QString& publicId, const QString& systemId) = 0; virtual bool unparsedEntityDecl(const QString& name, const QString& publicId, const QString& systemId, const QString& notationName) = 0; virtual QString errorString() const = 0;};class Q_XML_EXPORT QXmlEntityResolver{public: virtual ~QXmlEntityResolver() {} virtual bool resolveEntity(const QString& publicId, const QString& systemId, QXmlInputSource*& ret) = 0; virtual QString errorString() const = 0;};class Q_XML_EXPORT QXmlLexicalHandler{public: virtual ~QXmlLexicalHandler() {} virtual bool startDTD(const QString& name, const QString& publicId, const QString& systemId) = 0; virtual bool endDTD() = 0; virtual bool startEntity(const QString& name) = 0; virtual bool endEntity(const QString& name) = 0; virtual bool startCDATA() = 0; virtual bool endCDATA() = 0; virtual bool comment(const QString& ch) = 0; virtual QString errorString() const = 0;};class Q_XML_EXPORT QXmlDeclHandler{public: virtual ~QXmlDeclHandler() {} virtual bool attributeDecl(const QString& eName, const QString& aName, const QString& type, const QString& valueDefault, const QString& value) = 0; virtual bool internalEntityDecl(const QString& name, const QString& value) = 0; virtual bool externalEntityDecl(const QString& name, const QString& publicId, const QString& systemId) = 0; virtual QString errorString() const = 0; // ### Qt5: Conform to SAX by adding elementDecl};class Q_XML_EXPORT QXmlDefaultHandler : public QXmlContentHandler, public QXmlErrorHandler, public QXmlDTDHandler, public QXmlEntityResolver, public QXmlLexicalHandler, public QXmlDeclHandler{public: QXmlDefaultHandler() { } virtual ~QXmlDefaultHandler() { } void setDocumentLocator(QXmlLocator* locator); bool startDocument(); bool endDocument(); bool startPrefixMapping(const QString& prefix, const QString& uri); bool endPrefixMapping(const QString& prefix); bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts); bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName); bool characters(const QString& ch); bool ignorableWhitespace(const QString& ch); bool processingInstruction(const QString& target, const QString& data); bool skippedEntity(const QString& name); bool warning(const QXmlParseException& exception); bool error(const QXmlParseException& exception); bool fatalError(const QXmlParseException& exception); bool notationDecl(const QString& name, const QString& publicId, const QString& systemId); bool unparsedEntityDecl(const QString& name, const QString& publicId, const QString& systemId, const QString& notationName); bool resolveEntity(const QString& publicId, const QString& systemId, QXmlInputSource*& ret); bool startDTD(const QString& name, const QString& publicId, const QString& systemId); bool endDTD(); bool startEntity(const QString& name); bool endEntity(const QString& name); bool startCDATA(); bool endCDATA(); bool comment(const QString& ch); bool attributeDecl(const QString& eName, const QString& aName, const QString& type, const QString& valueDefault, const QString& value); bool internalEntityDecl(const QString& name, const QString& value); bool externalEntityDecl(const QString& name, const QString& publicId, const QString& systemId); QString errorString() const;private: QXmlDefaultHandlerPrivate *d; Q_DISABLE_COPY(QXmlDefaultHandler)};// inlinesinline int QXmlAttributes::count() const{ return length(); }QT_END_HEADER#endif // QXML_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -