From 84da08d7b7fcda12c85caeb5a10b4903770a6f69 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: 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 --- kate/xmltools/pseudo_dtd.h | 76 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 kate/xmltools/pseudo_dtd.h (limited to 'kate/xmltools/pseudo_dtd.h') 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 +#include + +/** + * 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 m_entityList; + // Elements, e.g. <"a", ( "b", "i", "em", "strong" )> + QMap m_elementsList; + // Attributes e.g. <"a", ( "href", "lang", "title" )> + QMap m_attributesList; + // Attribute values e.g. <"td", <"align", ( "left", "right", "justify" )>> + QMap< QString,QMap > m_attributevaluesList; + +}; + +#endif // _PLUGIN_KANT_XMLTOOLS_DTD_H +// kate: space-indent on; indent-width 2; replace-tabs on; mixed-indent off; -- cgit v1.2.1