📄 qxml.h
字号:
/****************************************************************************** $Id: qt/src/xml/qxml.h 2.3.6 edited 2001-01-26 $**** Definition of QXmlSimpleReader and related classes.**** Created : 000518**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of the XML module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition licenses may use this** file in accordance with the Qt Commercial License Agreement provided** with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for** information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QXML_H#define QXML_H#include <qmodules.h>#if !defined(QT_MODULE_XML)#define QM_EXPORT#else#define QM_EXPORT Q_EXPORT#endif#ifndef QT_H#include <qtextstream.h>#include <qfile.h>#include <qstring.h>#include <qstringlist.h>#include <qvaluestack.h>#include <qmap.h>#endif // QT_H#ifndef QT_NO_XMLclass 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//#if defined(Q_TEMPLATEDLL)// MOC_SKIP_BEGINtemplate class QM_EXPORT QMap<QString, QString>;template class QM_EXPORT QValueStack<QMap<QString, QString> >;template class QM_EXPORT QValueStack<QString>;// MOC_SKIP_END#endifclass QM_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: QValueStack<QMap<QString, QString> > nsStack; QMap<QString, QString> ns; QXmlNamespaceSupportPrivate *d;};//// SAX Attributes//class QM_EXPORT QXmlAttributes{public: QXmlAttributes() {} virtual ~QXmlAttributes() {} int index( const QString& qName ) const; int index( const QString& uri, const QString& localPart ) const; int length() 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 QString& uri, const QString& localName ) const;private: QStringList qnameList; QStringList uriList; QStringList localnameList; QStringList valueList; QXmlAttributesPrivate *d; friend class QXmlSimpleReader;};//// SAX Input Source//class QM_EXPORT QXmlInputSource{public: QXmlInputSource(); QXmlInputSource( QTextStream& stream ); QXmlInputSource( QFile& file ); virtual ~QXmlInputSource(); virtual const QString& data() const; virtual void setData( const QString& d );private: void readInput( QByteArray& rawData ); QString input; QXmlInputSourcePrivate *d;};//// SAX Exception Classes//class QM_EXPORT QXmlParseException{public: QXmlParseException( const QString& name="", int c=-1, int l=-1, const QString& p="", const QString& s="" ) : msg( name ), column( c ), line( l ), pub( p ), sys( s ) { } int columnNumber() const; int lineNumber() const; QString publicId() const; QString systemId() const; QString message() const;private: QString msg; int column; int line; QString pub; QString sys; QXmlParseExceptionPrivate *d;};//// XML Reader//class QM_EXPORT QXmlReader{public: 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;};class QM_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 );private: // variables QXmlContentHandler* contentHnd; QXmlErrorHandler* errorHnd; QXmlDTDHandler* dtdHnd; QXmlEntityResolver* entityRes; QXmlLexicalHandler* lexicalHnd; QXmlDeclHandler* declHnd; QChar c; // the character at reading position int lineNr; // number of line int columnNr; // position in line int pos; // position in string int namePos; QChar nameArray[256]; // only used for names QString nameValue; // only used for names int refPos; QChar refArray[256]; // only used for references QString refValue; // only used for references int stringPos; QChar stringArray[256]; // used for any other strings that are parsed QString stringValue; // used for any other strings that are parsed QString xml; int xmlLength; QString xmlRef; // used for parsing of entity references QValueStack<QString> tags; QXmlSimpleReaderPrivate* d; static const QChar QEOF; // inlines virtual bool is_S( const QChar& ); virtual bool is_Letter( const QChar& ); virtual bool is_NameBeginning( const QChar& ); virtual bool is_Digit( const QChar& ); virtual bool is_CombiningChar( const QChar& ); virtual bool is_Extender( const QChar& ); virtual bool is_NameChar( const QChar& ); QString& string(); void stringClear(); void stringAddC(); void stringAddC(const QChar&); QString& name(); void nameClear(); void nameAddC(); void nameAddC(const QChar&); QString& ref(); void refClear(); void refAddC(); void refAddC(const QChar&); // used by parseReference() and parsePEReference() enum EntityRecognitionContext { InContent, InAttributeValue, InEntityValue, InDTD }; // private functions void eat_ws(); void next_eat_ws(); void next(); bool atEnd(); void init( const QXmlInputSource& i );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -