diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 84da08d7b7fcda12c85caeb5a10b4903770a6f69 (patch) | |
tree | 2a6aea76f2dfffb4cc04bb907c4725af94f70e72 /kate/xmltools/pseudo_dtd.h | |
download | tdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.tar.gz tdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeaddons@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kate/xmltools/pseudo_dtd.h')
-rw-r--r-- | kate/xmltools/pseudo_dtd.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/kate/xmltools/pseudo_dtd.h b/kate/xmltools/pseudo_dtd.h new file mode 100644 index 0000000..f5cf37e --- /dev/null +++ b/kate/xmltools/pseudo_dtd.h @@ -0,0 +1,76 @@ + /*************************************************************************** + pseudoDtd.cpp + copyright : (C) 2001-2002 by Daniel Naber + email : daniel.naber@t-online.de + ***************************************************************************/ + +/*************************************************************************** + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or ( at your option ) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ***************************************************************************/ + +#ifndef _PLUGIN_KANT_XMLTOOLS_DTD_H +#define _PLUGIN_KANT_XMLTOOLS_DTD_H + +#include <qdom.h> +#include <qprogressdialog.h> + +/** + * This class contains the attributes for one element. + * To get ALL attributes, concatenate the two lists. + */ +class ElementAttributes +{ + public: + QStringList optionalAttributes; + QStringList requiredAttributes; +}; + +class PseudoDTD +{ + + public: + PseudoDTD(); + ~PseudoDTD(); + + void analyzeDTD( QString &metaDtdUrl, QString &metaDtd ); + + QStringList allowedElements( QString parentElement ); + QStringList allowedAttributes( QString parentElement ); + QStringList attributeValues( QString element, QString attribute ); + QStringList entities( QString start ); + QStringList requiredAttributes( const QString &parentElement ) const; + + protected: + + bool parseElements( QDomDocument *doc, QProgressDialog *progress ); + bool parseAttributes( QDomDocument *doc, QProgressDialog *progress ); + bool parseAttributeValues( QDomDocument *doc, QProgressDialog *progress ); + bool parseEntities( QDomDocument *doc, QProgressDialog *progress ); + + bool m_sgmlSupport; + + // Entities, e.g. <"nbsp", "160"> + QMap<QString,QString> m_entityList; + // Elements, e.g. <"a", ( "b", "i", "em", "strong" )> + QMap<QString,QStringList> m_elementsList; + // Attributes e.g. <"a", ( "href", "lang", "title" )> + QMap<QString,ElementAttributes> m_attributesList; + // Attribute values e.g. <"td", <"align", ( "left", "right", "justify" )>> + QMap< QString,QMap<QString,QStringList> > m_attributevaluesList; + +}; + +#endif // _PLUGIN_KANT_XMLTOOLS_DTD_H +// kate: space-indent on; indent-width 2; replace-tabs on; mixed-indent off; |