[Libreoffice-commits] core.git: compilerplugins/clang dbaccess/source editeng/source include/xmloff linguistic/source reportdesign/source sc/source starmath/source svx/source sw/source xmloff/inc xmloff/source

Noel (via logerrit) logerrit at kemper.freedesktop.org
Mon Nov 2 07:17:41 UTC 2020


 compilerplugins/clang/test/xmlimport.cxx                     |  155 ++++-
 compilerplugins/clang/xmlimport.cxx                          |  289 ++++++----
 dbaccess/source/filter/xml/xmlColumn.hxx                     |    2 
 dbaccess/source/filter/xml/xmlComponent.hxx                  |    2 
 dbaccess/source/filter/xml/xmlConnectionData.hxx             |    2 
 dbaccess/source/filter/xml/xmlConnectionResource.hxx         |    2 
 dbaccess/source/filter/xml/xmlDataSource.hxx                 |    2 
 dbaccess/source/filter/xml/xmlDataSourceInfo.hxx             |    2 
 dbaccess/source/filter/xml/xmlDataSourceSetting.hxx          |    3 
 dbaccess/source/filter/xml/xmlDataSourceSettings.hxx         |    2 
 dbaccess/source/filter/xml/xmlDatabase.hxx                   |    2 
 dbaccess/source/filter/xml/xmlDatabaseDescription.hxx        |    2 
 dbaccess/source/filter/xml/xmlDocuments.hxx                  |    2 
 dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx          |    2 
 dbaccess/source/filter/xml/xmlHierarchyCollection.hxx        |    2 
 dbaccess/source/filter/xml/xmlLogin.hxx                      |    2 
 dbaccess/source/filter/xml/xmlQuery.hxx                      |    2 
 dbaccess/source/filter/xml/xmlServerDatabase.hxx             |    2 
 dbaccess/source/filter/xml/xmlStyleImport.cxx                |    3 
 dbaccess/source/filter/xml/xmlTable.hxx                      |    2 
 dbaccess/source/filter/xml/xmlTableFilterList.hxx            |    3 
 dbaccess/source/filter/xml/xmlTableFilterPattern.hxx         |    2 
 dbaccess/source/filter/xml/xmlfilter.cxx                     |   13 
 editeng/source/misc/SvXMLAutoCorrectImport.hxx               |    8 
 editeng/source/xml/xmltxtimp.cxx                             |    2 
 include/xmloff/DocumentSettingsContext.hxx                   |    3 
 include/xmloff/XMLBase64ImportContext.hxx                    |    6 
 include/xmloff/XMLCharContext.hxx                            |    7 
 include/xmloff/XMLEventsImportContext.hxx                    |   10 
 include/xmloff/XMLTextMasterPageContext.hxx                  |    3 
 include/xmloff/xmlimp.hxx                                    |   11 
 include/xmloff/xmlmetai.hxx                                  |    4 
 include/xmloff/xmlprcon.hxx                                  |    3 
 include/xmloff/xmlscripti.hxx                                |    3 
 include/xmloff/xmlstyle.hxx                                  |    3 
 linguistic/source/convdicxml.cxx                             |   10 
 reportdesign/source/filter/xml/xmlCell.hxx                   |    2 
 reportdesign/source/filter/xml/xmlColumn.cxx                 |    4 
 reportdesign/source/filter/xml/xmlColumn.hxx                 |    4 
 reportdesign/source/filter/xml/xmlComponent.hxx              |    2 
 reportdesign/source/filter/xml/xmlCondPrtExpr.hxx            |    3 
 reportdesign/source/filter/xml/xmlControlProperty.hxx        |    4 
 reportdesign/source/filter/xml/xmlFormatCondition.hxx        |    3 
 reportdesign/source/filter/xml/xmlFunction.hxx               |    3 
 reportdesign/source/filter/xml/xmlGroup.hxx                  |    3 
 reportdesign/source/filter/xml/xmlMasterFields.hxx           |    3 
 reportdesign/source/filter/xml/xmlReport.hxx                 |    2 
 reportdesign/source/filter/xml/xmlReportElement.hxx          |    3 
 reportdesign/source/filter/xml/xmlReportElementBase.hxx      |    3 
 reportdesign/source/filter/xml/xmlSection.hxx                |    3 
 reportdesign/source/filter/xml/xmlStyleImport.cxx            |    3 
 reportdesign/source/filter/xml/xmlTable.hxx                  |    2 
 reportdesign/source/filter/xml/xmlfilter.cxx                 |    9 
 reportdesign/source/filter/xml/xmlfilter.hxx                 |    3 
 sc/source/filter/xml/XMLTableHeaderFooterContext.hxx         |    5 
 sc/source/filter/xml/XMLTableSourceContext.cxx               |    6 
 sc/source/filter/xml/XMLTableSourceContext.hxx               |    3 
 sc/source/filter/xml/celltextparacontext.cxx                 |    6 
 sc/source/filter/xml/celltextparacontext.hxx                 |    2 
 sc/source/filter/xml/importcontext.cxx                       |   18 
 sc/source/filter/xml/importcontext.hxx                       |   11 
 sc/source/filter/xml/xmlcoli.cxx                             |    6 
 sc/source/filter/xml/xmlcoli.hxx                             |    3 
 sc/source/filter/xml/xmlconti.cxx                            |    5 
 sc/source/filter/xml/xmlconti.hxx                            |    2 
 sc/source/filter/xml/xmlimprt.cxx                            |   43 -
 sc/source/filter/xml/xmlstyli.cxx                            |    6 
 sc/source/filter/xml/xmltabi.cxx                             |    6 
 sc/source/filter/xml/xmltabi.hxx                             |    3 
 starmath/source/mathmlimport.cxx                             |   41 -
 svx/source/xml/xmlxtimp.cxx                                  |    3 
 sw/source/core/swg/SwXMLBlockImport.cxx                      |   17 
 sw/source/core/swg/SwXMLSectionList.cxx                      |    6 
 sw/source/filter/xml/xmlbrshi.hxx                            |    2 
 sw/source/filter/xml/xmlimp.cxx                              |   11 
 sw/source/filter/xml/xmlitem.hxx                             |    3 
 sw/source/filter/xml/xmltext.cxx                             |    7 
 sw/source/uibase/config/StoredChapterNumbering.cxx           |    4 
 xmloff/inc/DomBuilderContext.hxx                             |    2 
 xmloff/inc/XMLBackgroundImageContext.hxx                     |    2 
 xmloff/inc/XMLElementPropertyContext.hxx                     |    2 
 xmloff/inc/XMLStringBufferImportContext.hxx                  |   11 
 xmloff/inc/XMLTextColumnsContext.hxx                         |    2 
 xmloff/inc/XMLTextHeaderFooterContext.hxx                    |    2 
 xmloff/inc/animationimport.hxx                               |    3 
 xmloff/inc/animimp.hxx                                       |    2 
 xmloff/inc/xmlversion.hxx                                    |    6 
 xmloff/source/chart/SchXMLParagraphContext.cxx               |   44 -
 xmloff/source/chart/SchXMLParagraphContext.hxx               |    4 
 xmloff/source/chart/SchXMLTextListContext.cxx                |   15 
 xmloff/source/chart/SchXMLTextListContext.hxx                |    1 
 xmloff/source/chart/XMLLabelSeparatorContext.cxx             |    4 
 xmloff/source/chart/XMLLabelSeparatorContext.hxx             |    3 
 xmloff/source/chart/contexts.cxx                             |    9 
 xmloff/source/chart/contexts.hxx                             |   13 
 xmloff/source/core/DocumentSettingsContext.cxx               |    6 
 xmloff/source/core/DomBuilderContext.cxx                     |    5 
 xmloff/source/core/XMLBase64ImportContext.cxx                |   10 
 xmloff/source/core/namespacemap.cxx                          |    1 
 xmloff/source/core/xmlictxt.cxx                              |   34 -
 xmloff/source/core/xmlimp.cxx                                |  306 +++++------
 xmloff/source/draw/XMLNumberStyles.cxx                       |    2 
 xmloff/source/draw/XMLShapePropertySetContext.cxx            |    2 
 xmloff/source/draw/animationimport.cxx                       |    8 
 xmloff/source/draw/animimp.cxx                               |   10 
 xmloff/source/draw/layerimp.hxx                              |    3 
 xmloff/source/draw/sdxmlimp.cxx                              |   33 -
 xmloff/source/draw/ximpbody.hxx                              |    3 
 xmloff/source/draw/ximppage.cxx                              |    6 
 xmloff/source/draw/ximpshow.hxx                              |    3 
 xmloff/source/draw/ximpstyl.hxx                              |    6 
 xmloff/source/forms/elementimport.cxx                        |    4 
 xmloff/source/forms/eventimport.cxx                          |    2 
 xmloff/source/forms/officeforms.cxx                          |    2 
 xmloff/source/forms/propertyimport.cxx                       |    9 
 xmloff/source/forms/propertyimport.hxx                       |    4 
 xmloff/source/meta/xmlmetai.cxx                              |    8 
 xmloff/source/script/XMLEventsImportContext.cxx              |   22 
 xmloff/source/script/xmlbasicscript.cxx                      |    5 
 xmloff/source/script/xmlbasicscript.hxx                      |    4 
 xmloff/source/script/xmlscripti.cxx                          |    3 
 xmloff/source/style/FillStyleContext.hxx                     |   12 
 xmloff/source/style/PageHeaderFooterContext.hxx              |    3 
 xmloff/source/style/XMLFontStylesContext_impl.hxx            |    2 
 xmloff/source/style/xmlnumfi.cxx                             |    8 
 xmloff/source/style/xmlnumi.cxx                              |    4 
 xmloff/source/text/XMLAutoTextContainerEventImport.hxx       |    8 
 xmloff/source/text/XMLChangeInfoContext.cxx                  |    5 
 xmloff/source/text/XMLChangeInfoContext.hxx                  |    3 
 xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx |    2 
 xmloff/source/text/XMLFootnoteImportContext.cxx              |    6 
 xmloff/source/text/XMLFootnoteImportContext.hxx              |    3 
 xmloff/source/text/XMLIndexTOCStylesContext.cxx              |    3 
 xmloff/source/text/XMLSectionSourceDDEImportContext.cxx      |    5 
 xmloff/source/text/XMLSectionSourceDDEImportContext.hxx      |    2 
 xmloff/source/text/XMLSectionSourceImportContext.cxx         |    5 
 xmloff/source/text/XMLSectionSourceImportContext.hxx         |    2 
 xmloff/source/text/XMLStringBufferImportContext.cxx          |   31 -
 xmloff/source/text/XMLTextFrameHyperlinkContext.cxx          |    4 
 xmloff/source/text/XMLTextFrameHyperlinkContext.hxx          |    2 
 xmloff/source/text/XMLTextMarkImportContext.cxx              |    2 
 xmloff/source/text/txtdropi.hxx                              |    2 
 xmloff/source/text/txtfldi.cxx                               |    3 
 xmloff/source/text/txtparai.cxx                              |   21 
 144 files changed, 478 insertions(+), 1137 deletions(-)

New commits:
commit 8c5ffecf1dbd3f93128910433da11d5315661680
Author:     Noel <noelgrandin at gmail.com>
AuthorDate: Fri Oct 23 15:12:22 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Nov 2 08:17:00 2020 +0100

    make SvXMLImport capable of mixing fast- and slow- contexts adhoc
    
    so I can convert even *ImportContext subclasses in the middle of
    a context stack, and thus break the cyclic dependency nature
    of the writer import.
    
    and adjust the xmlimport loplugin for the new rules.
    
    As a consequence of the loplugin:xmlimport's checking, we remove
    a bunch of now unnecessary overrides of startFastElement.
    
    Change-Id: I97464522ede8ec5e345e928cdafa4b18364b1b80
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104730
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/compilerplugins/clang/test/xmlimport.cxx b/compilerplugins/clang/test/xmlimport.cxx
index 36230ffdb2d8..98dba400b19e 100644
--- a/compilerplugins/clang/test/xmlimport.cxx
+++ b/compilerplugins/clang/test/xmlimport.cxx
@@ -11,78 +11,185 @@
 
 // Cannot include this, makes clang crash
 //#include "xmloff/xmlimp.hxx"
+// Cannot include this, cannot be found
+//#include <xmloff/xmlictxt.hxx>
 
 #include <com/sun/star/uno/Reference.hxx>
+#include <rtl/ref.hxx>
 
 namespace com::sun::star::xml::sax
 {
 class XAttributeList;
+class XFastContextHandler;
 }
 
+class SvXMLImportContext;
+typedef rtl::Reference<SvXMLImportContext> SvXMLImportContextRef;
 class SvXMLImportContext
 {
 public:
     virtual ~SvXMLImportContext() {}
 
-    virtual void createFastChildContext() {}
     virtual void startFastElement() {}
     virtual void endFastElement() {}
+    virtual void characters(const OUString&) {}
+    virtual css::uno::Reference<css::xml::sax::XFastContextHandler> createFastChildContext()
+    {
+        return nullptr;
+    }
+    virtual css::uno::Reference<css::xml::sax::XFastContextHandler> createUnknownChildContext()
+    {
+        return nullptr;
+    }
 
     virtual void StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>&) {}
     virtual void EndElement() {}
     virtual void Characters(const OUString&) {}
+    virtual SvXMLImportContextRef CreateChildContext() { return nullptr; }
+
+    void acquire();
+    void release();
+
+    void xxx(); // just here to avoid triggering a warning I don't want to check for
 };
 
 class Test1 : public SvXMLImportContext
 {
 public:
-    // expected-error at +1 {{must override startFastElement too [loplugin:xmlimport]}}
-    virtual void createFastChildContext() override;
+    // expected-error at +1 {{cannot override both startFastElement and StartElement [loplugin:xmlimport]}}
+    virtual void startFastElement() override { xxx(); }
+    // expected-error at +1 {{cannot override both startFastElement and StartElement [loplugin:xmlimport]}}
+    virtual void StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>&) override
+    {
+        xxx();
+    }
 };
 
 class Test2 : public SvXMLImportContext
 {
 public:
-    // no warning expected
-    virtual void createFastChildContext() override;
-    virtual void startFastElement() override {}
+    // expected-error at +1 {{cannot override both endFastElement and EndElement [loplugin:xmlimport]}}
+    virtual void endFastElement() override { xxx(); }
+    // expected-error at +1 {{cannot override both endFastElement and EndElement [loplugin:xmlimport]}}
+    virtual void EndElement() override { xxx(); }
 };
 
-class Test3 : public Test2
+class Test3 : public SvXMLImportContext
 {
 public:
-    // no warning expected
-    virtual void createFastChildContext() override;
+    // expected-error at +1 {{cannot override both characters and Characters [loplugin:xmlimport]}}
+    virtual void Characters(const OUString&) override { xxx(); }
+    // expected-error at +1 {{cannot override both characters and Characters [loplugin:xmlimport]}}
+    virtual void characters(const OUString&) override { xxx(); }
 };
 
-class Test4 : public SvXMLImportContext
+class Test7 : public SvXMLImportContext
 {
 public:
-    // expected-error at +1 {{must override startFastElement too [loplugin:xmlimport]}}
-    virtual void endFastElement() override;
+    virtual void startFastElement() override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        SvXMLImportContext::startFastElement();
+    }
+    virtual void endFastElement() override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        SvXMLImportContext::endFastElement();
+    }
+    virtual void characters(const OUString& rChars) override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        SvXMLImportContext::characters(rChars);
+    }
+    virtual css::uno::Reference<css::xml::sax::XFastContextHandler>
+    createFastChildContext() override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        return SvXMLImportContext::createFastChildContext();
+    }
+    virtual css::uno::Reference<css::xml::sax::XFastContextHandler>
+    createUnknownChildContext() override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        return SvXMLImportContext::createUnknownChildContext();
+    }
 };
 
-class Test5 : public SvXMLImportContext
+class Test8 : public SvXMLImportContext
 {
 public:
-    // expected-error at +1 {{overrides startElement, but looks like a fastparser context class, no constructor that takes slowparser args [loplugin:xmlimport]}}
     virtual void
-    StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) override;
-    // expected-error at +1 {{overrides startElement, but looks like a fastparser context class, no constructor that takes slowparser args [loplugin:xmlimport]}}
-    virtual void EndElement() override;
-    // expected-error at +1 {{overrides startElement, but looks like a fastparser context class, no constructor that takes slowparser args [loplugin:xmlimport]}}
-    virtual void Characters(const OUString&) override;
+    StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        SvXMLImportContext::StartElement(xAttrList);
+    }
+    virtual void EndElement() override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        SvXMLImportContext::EndElement();
+    }
+    virtual void Characters(const OUString& rChars) override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        SvXMLImportContext::Characters(rChars);
+    }
+    virtual SvXMLImportContextRef CreateChildContext() override
+    {
+        // expected-error at +1 {{don't call this superclass method [loplugin:xmlimport]}}
+        return SvXMLImportContext::CreateChildContext();
+    }
 };
 
 // no warning expected
-class Test6 : public SvXMLImportContext
+class Test9a : public SvXMLImportContext
+{
+public:
+    virtual void StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>&) override
+    {
+        xxx();
+    }
+};
+class Test9b : public Test9a
 {
 public:
-    Test6(sal_uInt16, const OUString&);
     virtual void
-    StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) override;
-    virtual void EndElement() override;
-    virtual void Characters(const OUString&) override;
+    StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList) override
+    {
+        Test9a::StartElement(xAttrList);
+    }
+};
+
+class Test10a : public SvXMLImportContext
+{
+public:
+    // expected-error at +1 {{empty, should be removed [loplugin:xmlimport]}}
+    virtual void startFastElement() override {}
+    // expected-error at +1 {{empty, should be removed [loplugin:xmlimport]}}
+    virtual void endFastElement() override {}
+    // expected-error at +1 {{empty, should be removed [loplugin:xmlimport]}}
+    virtual void characters(const OUString&) override {}
+    // expected-error at +1 {{empty, should be removed [loplugin:xmlimport]}}
+    virtual css::uno::Reference<css::xml::sax::XFastContextHandler>
+    createFastChildContext() override
+    {
+        return nullptr;
+    }
+    // expected-error at +1 {{empty, should be removed [loplugin:xmlimport]}}
+    virtual css::uno::Reference<css::xml::sax::XFastContextHandler>
+    createUnknownChildContext() override
+    {
+        return nullptr;
+    }
+};
+// no warning expected
+class Test10b : public SvXMLImportContext
+{
+public:
+    virtual void StartElement(const css::uno::Reference<css::xml::sax::XAttributeList>&) override {}
+    virtual void EndElement() override {}
+    virtual void Characters(const OUString&) override {}
+    virtual SvXMLImportContextRef CreateChildContext() override { return nullptr; }
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/compilerplugins/clang/xmlimport.cxx b/compilerplugins/clang/xmlimport.cxx
index d6b1aa78e325..72645564a5d1 100644
--- a/compilerplugins/clang/xmlimport.cxx
+++ b/compilerplugins/clang/xmlimport.cxx
@@ -14,6 +14,7 @@
 #include "plugin.hxx"
 #include "check.hxx"
 #include <iostream>
+#include <unordered_map>
 #include "clang/AST/CXXInheritance.h"
 
 /*
@@ -36,8 +37,23 @@ public:
 
     bool preRun() override
     {
-        //        std::string fn(handler.getMainFileName());
-        //        loplugin::normalizeDotDotInFilePath(fn);
+        StringRef fn(handler.getMainFileName());
+        if (loplugin::isSamePathname(fn, SRCDIR "/xmloff/source/core/xmlictxt.cxx"))
+            return false;
+        if (loplugin::isSamePathname(fn, SRCDIR "/xmloff/source/core/xmlimp.cxx"))
+            return false;
+        // These are mostly classes delegating calls to other classes
+        if (loplugin::isSamePathname(fn, SRCDIR "/xmloff/source/text/XMLTextFrameContext.cxx"))
+            return false;
+        if (loplugin::isSamePathname(fn, SRCDIR "/xmloff/source/draw/ximpshap.cxx"))
+            return false;
+        if (loplugin::isSamePathname(fn, SRCDIR "/xmloff/source/table/XMLTableImport.cxx"))
+            return false;
+        if (loplugin::isSamePathname(fn,
+                                     SRCDIR "/sc/source/filter/xml/XMLTrackedChangesContext.cxx"))
+            return false;
+        if (loplugin::isSamePathname(fn, SRCDIR "/sc/source/filter/xml/xmlannoi.cxx"))
+            return false;
         return true;
     }
 
@@ -50,21 +66,16 @@ public:
     }
 
     bool VisitCXXMethodDecl(const CXXMethodDecl*);
-};
+    bool VisitCXXMemberCallExpr(const CXXMemberCallExpr*);
 
-static bool containsStartFastElementMethod(const CXXRecordDecl* cxxRecordDecl)
-{
-    auto dc = loplugin::DeclCheck(cxxRecordDecl);
-    if (dc.Class("XFastContextHandler"))
-        return false;
-    for (auto it = cxxRecordDecl->method_begin(); it != cxxRecordDecl->method_end(); ++it)
-    {
-        auto i = *it;
-        if (i->getIdentifier() && i->getName() == "startFastElement")
-            return true;
-    }
-    return false;
-}
+private:
+    std::unordered_map<const CXXRecordDecl*, const CXXMethodDecl*> startFastElementSet;
+    std::unordered_map<const CXXRecordDecl*, const CXXMethodDecl*> StartElementSet;
+    std::unordered_map<const CXXRecordDecl*, const CXXMethodDecl*> endFastElementSet;
+    std::unordered_map<const CXXRecordDecl*, const CXXMethodDecl*> EndElementSet;
+    std::unordered_map<const CXXRecordDecl*, const CXXMethodDecl*> charactersSet;
+    std::unordered_map<const CXXRecordDecl*, const CXXMethodDecl*> CharactersSet;
+};
 
 bool XmlImport::VisitCXXMethodDecl(const CXXMethodDecl* methodDecl)
 {
@@ -82,111 +93,165 @@ bool XmlImport::VisitCXXMethodDecl(const CXXMethodDecl* methodDecl)
     if (loplugin::DeclCheck(cxxRecordDecl).Class("SvXMLImportContext"))
         return true;
 
-    if (methodDecl->getName() == "createFastChildContext" || methodDecl->getName() == "characters"
-        || methodDecl->getName() == "endFastElement")
+    if (!loplugin::isDerivedFrom(cxxRecordDecl, [](Decl const* decl) -> bool {
+            auto const dc = loplugin::DeclCheck(decl);
+            return bool(dc.ClassOrStruct("SvXMLImportContext").GlobalNamespace());
+        }))
+        return true;
+
+    auto name = methodDecl->getName();
+    if (name == "startFastElement")
+        startFastElementSet.insert({ cxxRecordDecl, methodDecl });
+    else if (name == "StartElement")
+        StartElementSet.insert({ cxxRecordDecl, methodDecl });
+    else if (name == "endFastElement")
+        endFastElementSet.insert({ cxxRecordDecl, methodDecl });
+    else if (name == "EndElement")
+        EndElementSet.insert({ cxxRecordDecl, methodDecl });
+    else if (name == "characters")
     {
-        auto className = cxxRecordDecl->getName();
-        if (className == "OOXMLFactory") // writerfilter
-            return true;
-        if (className == "SvXMLLegacyToFastDocHandler" || className == "ImportDocumentHandler"
-            || className == "ExportDocumentHandler") // reportdesign
-            return true;
-        if (className == "XMLEmbeddedObjectExportFilter" || className == "XMLBasicExportFilter"
-            || className == "XMLTransformerBase" || className == "SvXMLMetaExport") // xmloff
-            return true;
-
-        if (containsStartFastElementMethod(cxxRecordDecl))
-            return true;
-
-        bool foundStartFastElement = false;
-        bool foundImportContext = false;
-
-        CXXBasePaths aPaths;
-        cxxRecordDecl->lookupInBases(
-            [&](const CXXBaseSpecifier* Specifier, CXXBasePath & /*Path*/) -> bool {
-                if (!Specifier->getType().getTypePtr())
-                    return false;
-                const CXXRecordDecl* baseCXXRecordDecl = Specifier->getType()->getAsCXXRecordDecl();
-                if (!baseCXXRecordDecl)
-                    return false;
-                if (baseCXXRecordDecl->isInvalidDecl())
-                    return false;
-                if (loplugin::DeclCheck(baseCXXRecordDecl).Class("SvXMLImportContext"))
-                    foundImportContext |= true;
-                else
-                    foundStartFastElement |= containsStartFastElementMethod(baseCXXRecordDecl);
-                return false;
-            },
-            aPaths);
-
-        if (foundImportContext && !foundStartFastElement)
-            report(DiagnosticsEngine::Warning, "must override startFastElement too",
-                   compat::getBeginLoc(methodDecl))
-                << methodDecl->getSourceRange();
+        if (methodDecl->getNumParams() == 1)
+            charactersSet.insert({ cxxRecordDecl, methodDecl });
     }
-    else if (methodDecl->getName() == "StartElement" || methodDecl->getName() == "EndElement"
-             || methodDecl->getName() == "Characters")
+    else if (name == "Characters")
     {
-        if (loplugin::DeclCheck(cxxRecordDecl).Class("SchXMLAxisContext"))
-            return true;
-        if (loplugin::DeclCheck(cxxRecordDecl).Class("SchXMLChartContext"))
-            return true;
-        if (loplugin::DeclCheck(cxxRecordDecl).Class("SchXMLParagraphContext"))
-            return true;
-        if (loplugin::DeclCheck(cxxRecordDecl).Class("SchXMLLegendContext"))
-            return true;
-        if (loplugin::DeclCheck(cxxRecordDecl).Class("SchXMLPropertyMappingContext"))
-            return true;
-
-        bool foundImportContext = false;
-        CXXBasePaths aPaths;
-        cxxRecordDecl->lookupInBases(
-            [&](const CXXBaseSpecifier* Specifier, CXXBasePath & /*Path*/) -> bool {
-                if (!Specifier->getType().getTypePtr())
-                    return false;
-                const CXXRecordDecl* baseCXXRecordDecl = Specifier->getType()->getAsCXXRecordDecl();
-                if (!baseCXXRecordDecl)
-                    return false;
-                if (baseCXXRecordDecl->isInvalidDecl())
-                    return false;
-                if (loplugin::DeclCheck(baseCXXRecordDecl).Class("SvXMLImportContext"))
-                    foundImportContext |= true;
-                return false;
-            },
-            aPaths);
-
-        if (!foundImportContext)
-            return true;
-
-        bool foundConstructor = false;
-        for (auto it = cxxRecordDecl->ctor_begin(); it != cxxRecordDecl->ctor_end(); ++it)
+        if (methodDecl->getNumParams() == 1)
+            CharactersSet.insert({ cxxRecordDecl, methodDecl });
+    }
+
+    {
+        auto it1 = endFastElementSet.find(cxxRecordDecl);
+        auto it2 = EndElementSet.find(cxxRecordDecl);
+        if (it1 != endFastElementSet.end() && it2 != EndElementSet.end())
         {
-            const CXXConstructorDecl* ctor = *it;
-            bool foundInt16 = false;
-            for (auto paramIt = ctor->param_begin(); paramIt != ctor->param_end(); ++paramIt)
-            {
-                const ParmVarDecl* pvd = *paramIt;
-                auto tc = loplugin::TypeCheck(pvd->getType());
-                if (tc.Typedef("sal_uInt16"))
-                    foundInt16 = true;
-                else if (tc.LvalueReference().Const().Class("OUString") && foundInt16)
-                    foundConstructor = true;
-                else
-                    foundInt16 = false;
-                if (tc.LvalueReference().Const().Class("OUString")
-                    && pvd->getName() == "rLocalName")
-                    foundConstructor = true;
-            }
+            auto methodDecl1 = it1->second;
+            report(DiagnosticsEngine::Warning, "cannot override both endFastElement and EndElement",
+                   compat::getBeginLoc(methodDecl1))
+                << methodDecl1->getSourceRange();
+            auto methodDecl2 = it2->second;
+            report(DiagnosticsEngine::Warning, "cannot override both endFastElement and EndElement",
+                   compat::getBeginLoc(methodDecl2))
+                << methodDecl2->getSourceRange();
         }
+    }
 
-        if (!foundConstructor)
+    {
+        auto it1 = startFastElementSet.find(cxxRecordDecl);
+        auto it2 = StartElementSet.find(cxxRecordDecl);
+        if (it1 != startFastElementSet.end() && it2 != StartElementSet.end())
+        {
+            auto methodDecl1 = it1->second;
+            report(DiagnosticsEngine::Warning,
+                   "cannot override both startFastElement and StartElement",
+                   compat::getBeginLoc(methodDecl1))
+                << methodDecl1->getSourceRange();
+            auto methodDecl2 = it2->second;
             report(DiagnosticsEngine::Warning,
-                   "overrides startElement, but looks like a fastparser context class, no "
-                   "constructor that takes slowparser args",
-                   compat::getBeginLoc(methodDecl))
-                << methodDecl->getSourceRange();
+                   "cannot override both startFastElement and StartElement",
+                   compat::getBeginLoc(methodDecl2))
+                << methodDecl2->getSourceRange();
+        }
+    }
+    {
+        auto it1 = charactersSet.find(cxxRecordDecl);
+        auto it2 = CharactersSet.find(cxxRecordDecl);
+        if (it1 != charactersSet.end() && it2 != CharactersSet.end())
+        {
+            auto methodDecl1 = it1->second;
+            report(DiagnosticsEngine::Warning, "cannot override both characters and Characters",
+                   compat::getBeginLoc(methodDecl1))
+                << methodDecl1->getSourceRange();
+            auto methodDecl2 = it2->second;
+            report(DiagnosticsEngine::Warning, "cannot override both characters and Characters",
+                   compat::getBeginLoc(methodDecl2))
+                << methodDecl2->getSourceRange();
+        }
     }
 
+    auto checkEmpty = [&]() {
+        if (!methodDecl->isThisDeclarationADefinition())
+            return;
+        auto compoundStmt = dyn_cast_or_null<CompoundStmt>(methodDecl->getBody());
+        if (compoundStmt == nullptr || compoundStmt->size() > 0)
+            return;
+        report(DiagnosticsEngine::Warning, "empty, should be removed",
+               compat::getBeginLoc(methodDecl))
+            << methodDecl->getSourceRange();
+        auto canonicalDecl = methodDecl->getCanonicalDecl();
+        if (canonicalDecl != methodDecl)
+            report(DiagnosticsEngine::Note, "definition here", compat::getBeginLoc(canonicalDecl))
+                << canonicalDecl->getSourceRange();
+    };
+    auto checkOnlyReturn = [&]() {
+        if (!methodDecl->isThisDeclarationADefinition())
+            return;
+        auto compoundStmt = dyn_cast_or_null<CompoundStmt>(methodDecl->getBody());
+        if (compoundStmt == nullptr || compoundStmt->size() > 1)
+            return;
+        auto returnStmt = dyn_cast_or_null<ReturnStmt>(*compoundStmt->body_begin());
+        if (!returnStmt)
+            return;
+        auto cxxConstructExpr
+            = dyn_cast_or_null<CXXConstructExpr>(returnStmt->getRetValue()->IgnoreImplicit());
+        if (!cxxConstructExpr)
+            return;
+        if (cxxConstructExpr->getNumArgs() != 1)
+            return;
+        if (!isa<CXXNullPtrLiteralExpr>(cxxConstructExpr->getArg(0)->IgnoreImplicit()))
+            return;
+        report(DiagnosticsEngine::Warning, "empty, should be removed",
+               compat::getBeginLoc(methodDecl))
+            << methodDecl->getSourceRange();
+        auto canonicalDecl = methodDecl->getCanonicalDecl();
+        if (canonicalDecl != methodDecl)
+            report(DiagnosticsEngine::Note, "definition here", compat::getBeginLoc(canonicalDecl))
+                << canonicalDecl->getSourceRange();
+    };
+
+    if (name == "startFastElement")
+        checkEmpty();
+    else if (name == "endFastElement")
+        checkEmpty();
+    else if (name == "characters")
+        checkEmpty();
+    else if (name == "createFastChildContext")
+        checkOnlyReturn();
+    else if (name == "createUnknownChildContext")
+        checkOnlyReturn();
+
+    return true;
+}
+
+bool XmlImport::VisitCXXMemberCallExpr(const CXXMemberCallExpr* callExpr)
+{
+    auto beginLoc = compat::getBeginLoc(callExpr);
+    if (!beginLoc.isValid() || ignoreLocation(callExpr))
+        return true;
+
+    CXXMethodDecl* methodDecl = callExpr->getMethodDecl();
+    if (!methodDecl || !methodDecl->getIdentifier())
+        return true;
+
+    auto cxxRecordDecl = methodDecl->getParent();
+    if (!cxxRecordDecl || !cxxRecordDecl->getIdentifier())
+        return true;
+
+    if (!loplugin::DeclCheck(cxxRecordDecl).Class("SvXMLImportContext"))
+        return true;
+
+    auto name = methodDecl->getName();
+    if (name == "startFastElement" || name == "characters" || name == "endFastElement"
+        || name == "createFastChildContext" || name == "createUnknownChildContext"
+        || name == "StartElement" || name == "EndElement" || name == "Characters"
+        || name == "CreateChildContext")
+    {
+        /**
+         * Calling this superclass method from a subclass method will mess with the fallback logic in the superclass.
+         */
+        report(DiagnosticsEngine::Warning, "don't call this superclass method",
+               compat::getBeginLoc(callExpr))
+            << callExpr->getSourceRange();
+    }
     return true;
 }
 
diff --git a/dbaccess/source/filter/xml/xmlColumn.hxx b/dbaccess/source/filter/xml/xmlColumn.hxx
index 42bf80d209f2..8deca87c7c42 100644
--- a/dbaccess/source/filter/xml/xmlColumn.hxx
+++ b/dbaccess/source/filter/xml/xmlColumn.hxx
@@ -46,8 +46,6 @@ namespace dbaxml
                     ,const css::uno::Reference< css::beans::XPropertySet >&    _xTable
                     );
         virtual ~OXMLColumn() override;
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlComponent.hxx b/dbaccess/source/filter/xml/xmlComponent.hxx
index dee94cfdf186..136d5b6854a5 100644
--- a/dbaccess/source/filter/xml/xmlComponent.hxx
+++ b/dbaccess/source/filter/xml/xmlComponent.hxx
@@ -33,8 +33,6 @@ namespace dbaxml
                     ,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
                     ,const OUString& _sComponentServiceName
                     );
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual ~OXMLComponent() override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlConnectionData.hxx b/dbaccess/source/filter/xml/xmlConnectionData.hxx
index 0d2abae839a6..466c047888f3 100644
--- a/dbaccess/source/filter/xml/xmlConnectionData.hxx
+++ b/dbaccess/source/filter/xml/xmlConnectionData.hxx
@@ -33,8 +33,6 @@ namespace dbaxml
         OXMLConnectionData( ODBFilter& rImport );
         virtual ~OXMLConnectionData() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlConnectionResource.hxx b/dbaccess/source/filter/xml/xmlConnectionResource.hxx
index 71ca5b197ede..357bbe1e117a 100644
--- a/dbaccess/source/filter/xml/xmlConnectionResource.hxx
+++ b/dbaccess/source/filter/xml/xmlConnectionResource.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
 
         OXMLConnectionResource( ODBFilter& rImport,
                 const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList );
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual ~OXMLConnectionResource() override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDataSource.hxx b/dbaccess/source/filter/xml/xmlDataSource.hxx
index ee9c6d59daed..5b78ff4fe40d 100644
--- a/dbaccess/source/filter/xml/xmlDataSource.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSource.hxx
@@ -39,8 +39,6 @@ namespace dbaxml
                     const UsedFor _eUsedFor );
         virtual ~OXMLDataSource() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx b/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
index e96e9290f86e..e29d37a7d3a8 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
@@ -30,8 +30,6 @@ namespace dbaxml
         OXMLDataSourceInfo( ODBFilter& rImport,
                 sal_Int32 nElement,
                 const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList);
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual ~OXMLDataSourceInfo() override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx b/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
index 49008d93e897..3ed92f80e79b 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
@@ -45,9 +45,6 @@ namespace dbaxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         virtual void SAL_CALL characters( const OUString& rChars ) override;
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx b/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
index 0cba86f5a1dd..50fea5c000aa 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
@@ -31,8 +31,6 @@ namespace dbaxml
         OXMLDataSourceSettings( ODBFilter& rImport );
         virtual ~OXMLDataSourceSettings() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlDatabase.hxx b/dbaccess/source/filter/xml/xmlDatabase.hxx
index 989dab658662..0dab56c51ca7 100644
--- a/dbaccess/source/filter/xml/xmlDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlDatabase.hxx
@@ -34,8 +34,6 @@ namespace dbaxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx b/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
index 1d20f52fb217..146ecb401747 100644
--- a/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
+++ b/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
@@ -33,8 +33,6 @@ namespace dbaxml
         OXMLDatabaseDescription( ODBFilter& rImport);
         virtual ~OXMLDatabaseDescription() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlDocuments.hxx b/dbaccess/source/filter/xml/xmlDocuments.hxx
index f6afc1d3a562..c0542dcfb1a3 100644
--- a/dbaccess/source/filter/xml/xmlDocuments.hxx
+++ b/dbaccess/source/filter/xml/xmlDocuments.hxx
@@ -48,8 +48,6 @@ namespace dbaxml
 
         virtual ~OXMLDocuments() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
index b50149b62bb1..3720e1da354a 100644
--- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
 
         OXMLFileBasedDatabase( ODBFilter& rImport,
                 const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList );
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual ~OXMLFileBasedDatabase() override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx b/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
index 953de765141e..689434822922 100644
--- a/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
+++ b/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
@@ -47,8 +47,6 @@ namespace dbaxml
                     );
         virtual ~OXMLHierarchyCollection() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlLogin.hxx b/dbaccess/source/filter/xml/xmlLogin.hxx
index aefb60298214..adb25c739b78 100644
--- a/dbaccess/source/filter/xml/xmlLogin.hxx
+++ b/dbaccess/source/filter/xml/xmlLogin.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
 
         OXMLLogin( ODBFilter& rImport,
                 const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList );
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual ~OXMLLogin() override;
 
     };
diff --git a/dbaccess/source/filter/xml/xmlQuery.hxx b/dbaccess/source/filter/xml/xmlQuery.hxx
index 067e8cbf5c5c..d3e01193c473 100644
--- a/dbaccess/source/filter/xml/xmlQuery.hxx
+++ b/dbaccess/source/filter/xml/xmlQuery.hxx
@@ -38,8 +38,6 @@ namespace dbaxml
                     );
         virtual ~OXMLQuery() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlServerDatabase.hxx b/dbaccess/source/filter/xml/xmlServerDatabase.hxx
index 1491ed6f3e35..ec3401fff795 100644
--- a/dbaccess/source/filter/xml/xmlServerDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlServerDatabase.hxx
@@ -29,8 +29,6 @@ namespace dbaxml
 
         OXMLServerDatabase( ODBFilter& rImport,
                 const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList );
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual ~OXMLServerDatabase() override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlStyleImport.cxx b/dbaccess/source/filter/xml/xmlStyleImport.cxx
index 46534bb233c7..91ccd77c462a 100644
--- a/dbaccess/source/filter/xml/xmlStyleImport.cxx
+++ b/dbaccess/source/filter/xml/xmlStyleImport.cxx
@@ -141,9 +141,8 @@ OTableStylesContext::~OTableStylesContext()
 
 }
 
-void OTableStylesContext::endFastElement(sal_Int32 nElement)
+void OTableStylesContext::endFastElement(sal_Int32 )
 {
-    SvXMLStylesContext::endFastElement(nElement);
     if (bAutoStyles)
         GetImport().GetTextImport()->SetAutoStyles( this );
     else
diff --git a/dbaccess/source/filter/xml/xmlTable.hxx b/dbaccess/source/filter/xml/xmlTable.hxx
index 9d46a7275d83..cee19ef19e40 100644
--- a/dbaccess/source/filter/xml/xmlTable.hxx
+++ b/dbaccess/source/filter/xml/xmlTable.hxx
@@ -60,8 +60,6 @@ namespace dbaxml
 
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 } // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlTableFilterList.hxx b/dbaccess/source/filter/xml/xmlTableFilterList.hxx
index 007d06eab8b3..1988bdd29cf7 100644
--- a/dbaccess/source/filter/xml/xmlTableFilterList.hxx
+++ b/dbaccess/source/filter/xml/xmlTableFilterList.hxx
@@ -39,9 +39,6 @@ namespace dbaxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         /** pushes a new TableFilterPattern to the list of patterns
diff --git a/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx b/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx
index 5aa7d405c033..8f0b64f37a3a 100644
--- a/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx
+++ b/dbaccess/source/filter/xml/xmlTableFilterPattern.hxx
@@ -36,8 +36,6 @@ namespace dbaxml
 
         virtual ~OXMLTableFilterPattern() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
         virtual void SAL_CALL characters( const OUString& rChars ) override;
     };
diff --git a/dbaccess/source/filter/xml/xmlfilter.cxx b/dbaccess/source/filter/xml/xmlfilter.cxx
index 942ef787c171..7a6cda3b5b79 100644
--- a/dbaccess/source/filter/xml/xmlfilter.cxx
+++ b/dbaccess/source/filter/xml/xmlfilter.cxx
@@ -374,9 +374,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
@@ -396,10 +393,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-
     virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
@@ -429,9 +422,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
@@ -456,9 +446,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
diff --git a/editeng/source/misc/SvXMLAutoCorrectImport.hxx b/editeng/source/misc/SvXMLAutoCorrectImport.hxx
index d04e8f1a10ef..364b30a37062 100644
--- a/editeng/source/misc/SvXMLAutoCorrectImport.hxx
+++ b/editeng/source/misc/SvXMLAutoCorrectImport.hxx
@@ -55,7 +55,6 @@ public:
 
     virtual css::uno::Reference<XFastContextHandler> SAL_CALL createFastChildContext( sal_Int32 Element,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
-    virtual void SAL_CALL startFastElement( sal_Int32 /*Element*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*Attribs*/ ) override {}
 
     virtual ~SvXMLWordListContext() override;
 };
@@ -65,7 +64,6 @@ class SvXMLWordContext : public SvXMLImportContext
 public:
     SvXMLWordContext ( SvXMLAutoCorrectImport& rImport,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList );
-    virtual void SAL_CALL startFastElement( sal_Int32 /*Element*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*Attribs*/ ) override {}
 
     virtual ~SvXMLWordContext() override;
 };
@@ -96,9 +94,6 @@ private:
 public:
     SvXMLExceptionListContext ( SvXMLExceptionListImport& rImport );
 
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
     virtual css::uno::Reference<XFastContextHandler> SAL_CALL createFastChildContext( sal_Int32 Element,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
 
@@ -111,9 +106,6 @@ public:
     SvXMLExceptionContext ( SvXMLExceptionListImport& rImport,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList );
 
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
     virtual ~SvXMLExceptionContext() override;
 };
 
diff --git a/editeng/source/xml/xmltxtimp.cxx b/editeng/source/xml/xmltxtimp.cxx
index c6607cef4d87..e04d2839d170 100644
--- a/editeng/source/xml/xmltxtimp.cxx
+++ b/editeng/source/xml/xmltxtimp.cxx
@@ -56,8 +56,6 @@ public:
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement,
             const uno::Reference< xml::sax::XFastAttributeList >& xAttrList) override;
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
 
 private:
     const uno::Reference< XText > mxText;
diff --git a/include/xmloff/DocumentSettingsContext.hxx b/include/xmloff/DocumentSettingsContext.hxx
index f09d0f919dc7..130da3814631 100644
--- a/include/xmloff/DocumentSettingsContext.hxx
+++ b/include/xmloff/DocumentSettingsContext.hxx
@@ -46,9 +46,6 @@ public:
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
 private:
diff --git a/include/xmloff/XMLBase64ImportContext.hxx b/include/xmloff/XMLBase64ImportContext.hxx
index 6777ce10c296..94b07422203c 100644
--- a/include/xmloff/XMLBase64ImportContext.hxx
+++ b/include/xmloff/XMLBase64ImportContext.hxx
@@ -45,14 +45,8 @@ public:
 
     virtual ~XMLBase64ImportContext() override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32) override;
     virtual void SAL_CALL characters( const OUString& rChars ) override;
-
-    virtual void EndElement() override;
-    virtual void Characters( const OUString& rChars ) override;
-
 };
 
 #endif // INCLUDED_XMLOFF_XMLBASE64IMPORTCONTEXT_HXX
diff --git a/include/xmloff/XMLCharContext.hxx b/include/xmloff/XMLCharContext.hxx
index bb118dc212c7..b17d8ea46d3c 100644
--- a/include/xmloff/XMLCharContext.hxx
+++ b/include/xmloff/XMLCharContext.hxx
@@ -59,17 +59,10 @@ public:
 
     virtual ~XMLCharContext() override;
 
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
     // EndElement is called before a context will be destructed, but
     // after an elements context has been parsed. It may be used for actions
     // that require virtual methods. The default is to do nothing.
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
-    // EndElement is called before a context will be destructed, but
-    // after an elements context has been parsed. It may be used for actions
-    // that require virtual methods. The default is to do nothing.
-    virtual void EndElement() override;
 
     virtual void InsertControlCharacter(sal_Int16   _nControl);
     virtual void InsertString(const OUString& _sString);
diff --git a/include/xmloff/XMLEventsImportContext.hxx b/include/xmloff/XMLEventsImportContext.hxx
index fd0a98396f2b..36b18f86fd90 100644
--- a/include/xmloff/XMLEventsImportContext.hxx
+++ b/include/xmloff/XMLEventsImportContext.hxx
@@ -107,21 +107,11 @@ public:
 
 protected:
 
-    virtual void StartElement(
-        const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList) override;
-
-    virtual void EndElement() override;
-
     virtual SvXMLImportContextRef CreateChildContext(
         sal_uInt16 nPrefix,
         const OUString& rLocalName,
         const css::uno::Reference<css::xml::sax::XAttributeList> & xAttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 nElement,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override;
-
-    virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 };
diff --git a/include/xmloff/XMLTextMasterPageContext.hxx b/include/xmloff/XMLTextMasterPageContext.hxx
index 3d2bd7302f68..d39159890788 100644
--- a/include/xmloff/XMLTextMasterPageContext.hxx
+++ b/include/xmloff/XMLTextMasterPageContext.hxx
@@ -57,9 +57,6 @@ public:
             bool bOverwrite );
     virtual ~XMLTextMasterPageContext() override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement,
         const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
diff --git a/include/xmloff/xmlimp.hxx b/include/xmloff/xmlimp.hxx
index f55ccf46149b..763e24ae6db9 100644
--- a/include/xmloff/xmlimp.hxx
+++ b/include/xmloff/xmlimp.hxx
@@ -214,9 +214,8 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public cppu::WeakImplHelper<
 
     std::unique_ptr<SvXMLNamespaceMap>    mpNamespaceMap;
     std::unique_ptr<SvXMLUnitConverter>   mpUnitConv;
-    std::stack<SvXMLImportContextRef>     maContexts;
-    std::stack<css::uno::Reference<css::xml::sax::XFastContextHandler>>
-                                          maFastContexts;
+    std::stack<SvXMLImportContextRef, std::vector<SvXMLImportContextRef>>
+                                          maContexts;
     std::unique_ptr<SvXMLNumFmtHelper>    mpNumImport;
     std::unique_ptr<ProgressBarHelper>    mpProgressBarHelper;
     std::unique_ptr<XMLEventImportHelper> mpEventImportHelper;
@@ -227,7 +226,6 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public cppu::WeakImplHelper<
 
     SvXMLImportFlags  mnImportFlags;
     std::set< OUString > embeddedFontUrlsKnown;
-    bool isFastContext;
     css::uno::Reference< css::xml::sax::XFastParser > mxParser;
     rtl::Reference< SvXMLImportFastNamespaceHandler > maNamespaceHandler;
     rtl::Reference < comphelper::AttributeList > maAttrList;
@@ -242,7 +240,6 @@ class XMLOFF_DLLPUBLIC SvXMLImport : public cppu::WeakImplHelper<
     void registerNamespaces();
     std::unique_ptr<SvXMLNamespaceMap> processNSAttributes(
         const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList);
-    void Characters(const OUString& aChars);
 
     css::uno::Reference< css::task::XStatusIndicator > mxStatusIndicator;
 
@@ -305,10 +302,6 @@ public:
 
     virtual ~SvXMLImport() throw() override;
 
-    void startElement(const OUString& aName,
-        const css::uno::Reference< css::xml::sax::XAttributeList > & xAttribs);
-    void endElement(const OUString& aName);
-
     virtual void SAL_CALL startDocument() override;
     virtual void SAL_CALL endDocument() override;
     virtual void SAL_CALL characters(const OUString& aChars) override;
diff --git a/include/xmloff/xmlmetai.hxx b/include/xmloff/xmlmetai.hxx
index 3af85c3f4a39..92fe0f085654 100644
--- a/include/xmloff/xmlmetai.hxx
+++ b/include/xmloff/xmlmetai.hxx
@@ -45,13 +45,9 @@ public:
 
     virtual ~SvXMLMetaDocumentContext() override;
 
-    virtual void SAL_CALL characters( const OUString& aChars ) override;
-
     virtual void SAL_CALL startFastElement( sal_Int32 nElement,
         const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
-    virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
diff --git a/include/xmloff/xmlprcon.hxx b/include/xmloff/xmlprcon.hxx
index 9a430adb97ff..37ce9ba2c0f4 100644
--- a/include/xmloff/xmlprcon.hxx
+++ b/include/xmloff/xmlprcon.hxx
@@ -48,9 +48,6 @@ public:
 
     virtual ~SvXMLPropertySetContext() override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement,
         const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
diff --git a/include/xmloff/xmlscripti.hxx b/include/xmloff/xmlscripti.hxx
index bfe390dd68b9..0be5a0c6f904 100644
--- a/include/xmloff/xmlscripti.hxx
+++ b/include/xmloff/xmlscripti.hxx
@@ -40,9 +40,6 @@ public:
 
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
-
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
 };
 
 #endif // INCLUDED_XMLOFF_XMLSCRIPTI_HXX
diff --git a/include/xmloff/xmlstyle.hxx b/include/xmloff/xmlstyle.hxx
index f606d9aef30b..0f891cacaa34 100644
--- a/include/xmloff/xmlstyle.hxx
+++ b/include/xmloff/xmlstyle.hxx
@@ -188,9 +188,6 @@ public:
 
     virtual ~SvXMLStylesContext() override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     // Create child element.
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
diff --git a/linguistic/source/convdicxml.cxx b/linguistic/source/convdicxml.cxx
index f7503732465f..bc9aede1c32b 100644
--- a/linguistic/source/convdicxml.cxx
+++ b/linguistic/source/convdicxml.cxx
@@ -85,10 +85,6 @@ public:
     }
 
     // SvXMLImportContext
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-    virtual void SAL_CALL characters( const OUString &rChars ) override;
     virtual css::uno::Reference<XFastContextHandler> SAL_CALL createFastChildContext(
         sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
 };
@@ -156,8 +152,8 @@ public:
 
 }
 
-void ConvDicXMLImportContext::characters(const OUString & /*rChars*/)
-{
+//void ConvDicXMLImportContext::characters(const OUString & /*rChars*/)
+//{
     /*
     Whitespace occurring within the content of token elements is "trimmed"
     from the ends (i.e. all whitespace at the beginning and end of the
@@ -166,7 +162,7 @@ void ConvDicXMLImportContext::characters(const OUString & /*rChars*/)
     */
     //collapsing not done yet!
 
-}
+//}
 
 css::uno::Reference<XFastContextHandler> ConvDicXMLImportContext::createFastChildContext(
         sal_Int32 Element,
diff --git a/reportdesign/source/filter/xml/xmlCell.hxx b/reportdesign/source/filter/xml/xmlCell.hxx
index 998e3a936f54..d11826af3170 100644
--- a/reportdesign/source/filter/xml/xmlCell.hxx
+++ b/reportdesign/source/filter/xml/xmlCell.hxx
@@ -54,8 +54,6 @@ namespace rptxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                    const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual void SAL_CALL characters( const OUString& rChars ) override;
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
diff --git a/reportdesign/source/filter/xml/xmlColumn.cxx b/reportdesign/source/filter/xml/xmlColumn.cxx
index 527b1f252c70..0271084ea5cd 100644
--- a/reportdesign/source/filter/xml/xmlColumn.cxx
+++ b/reportdesign/source/filter/xml/xmlColumn.cxx
@@ -164,10 +164,6 @@ ORptFilter& OXMLRowColumn::GetOwnImport()
     return static_cast<ORptFilter&>(GetImport());
 }
 
-void OXMLRowColumn::endFastElement(sal_Int32 )
-{
-}
-
 } // namespace rptxml
 
 
diff --git a/reportdesign/source/filter/xml/xmlColumn.hxx b/reportdesign/source/filter/xml/xmlColumn.hxx
index cd87a9cbebb9..e5bed54f7da7 100644
--- a/reportdesign/source/filter/xml/xmlColumn.hxx
+++ b/reportdesign/source/filter/xml/xmlColumn.hxx
@@ -42,12 +42,8 @@ namespace rptxml
                     );
         virtual ~OXMLRowColumn() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
-        virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 
 } // namespace rptxml
diff --git a/reportdesign/source/filter/xml/xmlComponent.hxx b/reportdesign/source/filter/xml/xmlComponent.hxx
index 83216bf91a83..d48d7dcef56a 100644
--- a/reportdesign/source/filter/xml/xmlComponent.hxx
+++ b/reportdesign/source/filter/xml/xmlComponent.hxx
@@ -37,8 +37,6 @@ namespace rptxml
                     ,const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList
                     ,const css::uno::Reference< css::report::XReportComponent >& _xComponent
                     );
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual ~OXMLComponent() override;
     };
 
diff --git a/reportdesign/source/filter/xml/xmlCondPrtExpr.hxx b/reportdesign/source/filter/xml/xmlCondPrtExpr.hxx
index dfa7674e0e1a..a69c5a49329e 100644
--- a/reportdesign/source/filter/xml/xmlCondPrtExpr.hxx
+++ b/reportdesign/source/filter/xml/xmlCondPrtExpr.hxx
@@ -40,9 +40,6 @@ namespace rptxml
                     ,const css::uno::Reference< css::beans::XPropertySet >& _xComponent);
         virtual ~OXMLCondPrtExpr() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual void SAL_CALL characters( const OUString& rChars ) override;
         virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
     };
diff --git a/reportdesign/source/filter/xml/xmlControlProperty.hxx b/reportdesign/source/filter/xml/xmlControlProperty.hxx
index 41d6c759ab1d..019ec80635ee 100644
--- a/reportdesign/source/filter/xml/xmlControlProperty.hxx
+++ b/reportdesign/source/filter/xml/xmlControlProperty.hxx
@@ -55,10 +55,6 @@ namespace rptxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         virtual void SAL_CALL characters( const OUString& rChars ) override;
diff --git a/reportdesign/source/filter/xml/xmlFormatCondition.hxx b/reportdesign/source/filter/xml/xmlFormatCondition.hxx
index a4594b495c7a..56bd5602fb24 100644
--- a/reportdesign/source/filter/xml/xmlFormatCondition.hxx
+++ b/reportdesign/source/filter/xml/xmlFormatCondition.hxx
@@ -39,9 +39,6 @@ namespace rptxml
                     ,const css::uno::Reference< css::report::XFormatCondition >& _xComponent
                     );
         virtual ~OXMLFormatCondition() override;
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 
diff --git a/reportdesign/source/filter/xml/xmlFunction.hxx b/reportdesign/source/filter/xml/xmlFunction.hxx
index efdd2ba7179b..fbbc38e3efdb 100644
--- a/reportdesign/source/filter/xml/xmlFunction.hxx
+++ b/reportdesign/source/filter/xml/xmlFunction.hxx
@@ -46,9 +46,6 @@ namespace rptxml
                     );
         virtual ~OXMLFunction() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     };
 
diff --git a/reportdesign/source/filter/xml/xmlGroup.hxx b/reportdesign/source/filter/xml/xmlGroup.hxx
index ac1ba4e530ed..92500cc2174d 100644
--- a/reportdesign/source/filter/xml/xmlGroup.hxx
+++ b/reportdesign/source/filter/xml/xmlGroup.hxx
@@ -41,9 +41,6 @@ namespace rptxml
                     );
         virtual ~OXMLGroup() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
diff --git a/reportdesign/source/filter/xml/xmlMasterFields.hxx b/reportdesign/source/filter/xml/xmlMasterFields.hxx
index 5dbb36987bb0..e8e212827e60 100644
--- a/reportdesign/source/filter/xml/xmlMasterFields.hxx
+++ b/reportdesign/source/filter/xml/xmlMasterFields.hxx
@@ -36,9 +36,6 @@ namespace rptxml
                     ,IMasterDetailFieds* _pReport);
         virtual ~OXMLMasterFields() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
     };
diff --git a/reportdesign/source/filter/xml/xmlReport.hxx b/reportdesign/source/filter/xml/xmlReport.hxx
index 7b010d9e74c2..eda2c0462e37 100644
--- a/reportdesign/source/filter/xml/xmlReport.hxx
+++ b/reportdesign/source/filter/xml/xmlReport.hxx
@@ -42,8 +42,6 @@ namespace rptxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                    const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         virtual void addMasterDetailPair(const ::std::pair< OUString,OUString >& _aPair) override;
diff --git a/reportdesign/source/filter/xml/xmlReportElement.hxx b/reportdesign/source/filter/xml/xmlReportElement.hxx
index dbf5d180c4d0..5f64dbe732e8 100644
--- a/reportdesign/source/filter/xml/xmlReportElement.hxx
+++ b/reportdesign/source/filter/xml/xmlReportElement.hxx
@@ -38,9 +38,6 @@ namespace rptxml
                     ,const css::uno::Reference< css::report::XReportControlModel >& _xComponent);
         virtual ~OXMLReportElement() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
     };
diff --git a/reportdesign/source/filter/xml/xmlReportElementBase.hxx b/reportdesign/source/filter/xml/xmlReportElementBase.hxx
index 0d06e0717962..c37e17c50428 100644
--- a/reportdesign/source/filter/xml/xmlReportElementBase.hxx
+++ b/reportdesign/source/filter/xml/xmlReportElementBase.hxx
@@ -52,9 +52,6 @@ namespace rptxml
                     ,OXMLTable* _pContainer);
         virtual ~OXMLReportElementBase() override;
 
-        virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                    const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
diff --git a/reportdesign/source/filter/xml/xmlSection.hxx b/reportdesign/source/filter/xml/xmlSection.hxx
index beed05c9870f..c1e25cd837f8 100644
--- a/reportdesign/source/filter/xml/xmlSection.hxx
+++ b/reportdesign/source/filter/xml/xmlSection.hxx
@@ -41,9 +41,6 @@ namespace rptxml
                     ,bool _bPageHeader = true);
         virtual ~OXMLSection() override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
     };
diff --git a/reportdesign/source/filter/xml/xmlStyleImport.cxx b/reportdesign/source/filter/xml/xmlStyleImport.cxx
index 07c2336349c2..5b269a5d7e9d 100644
--- a/reportdesign/source/filter/xml/xmlStyleImport.cxx
+++ b/reportdesign/source/filter/xml/xmlStyleImport.cxx
@@ -163,9 +163,8 @@ OReportStylesContext::~OReportStylesContext()
 }
 
 
-void OReportStylesContext::endFastElement(sal_Int32 nElement)
+void OReportStylesContext::endFastElement(sal_Int32 )
 {
-    SvXMLStylesContext::endFastElement(nElement);
     if (bAutoStyles)
         GetImport().GetTextImport()->SetAutoStyles( this );
     else
diff --git a/reportdesign/source/filter/xml/xmlTable.hxx b/reportdesign/source/filter/xml/xmlTable.hxx
index b84f7310a59e..508ad5087166 100644
--- a/reportdesign/source/filter/xml/xmlTable.hxx
+++ b/reportdesign/source/filter/xml/xmlTable.hxx
@@ -65,8 +65,6 @@ namespace rptxml
         virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
                 sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
-        virtual void SAL_CALL startFastElement(
-                sal_Int32 /*nElement*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
         virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
         void addHeight(sal_Int32 _nHeight) { m_aHeight.push_back(_nHeight); }
diff --git a/reportdesign/source/filter/xml/xmlfilter.cxx b/reportdesign/source/filter/xml/xmlfilter.cxx
index 5c65664625f3..d3d495d79d0f 100644
--- a/reportdesign/source/filter/xml/xmlfilter.cxx
+++ b/reportdesign/source/filter/xml/xmlfilter.cxx
@@ -543,9 +543,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
@@ -565,9 +562,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
@@ -632,9 +626,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
     {
diff --git a/reportdesign/source/filter/xml/xmlfilter.hxx b/reportdesign/source/filter/xml/xmlfilter.hxx
index 5165da21884f..33aa2e3b5843 100644
--- a/reportdesign/source/filter/xml/xmlfilter.hxx
+++ b/reportdesign/source/filter/xml/xmlfilter.hxx
@@ -135,9 +135,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 /*nElement*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override;
 };
diff --git a/sc/source/filter/xml/XMLTableHeaderFooterContext.hxx b/sc/source/filter/xml/XMLTableHeaderFooterContext.hxx
index f9088ebe8f38..2b2138ec0988 100644
--- a/sc/source/filter/xml/XMLTableHeaderFooterContext.hxx
+++ b/sc/source/filter/xml/XMLTableHeaderFooterContext.hxx
@@ -55,9 +55,6 @@ public:
             const OUString& rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
@@ -82,8 +79,6 @@ public:
             const OUString& rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
diff --git a/sc/source/filter/xml/XMLTableSourceContext.cxx b/sc/source/filter/xml/XMLTableSourceContext.cxx
index 38bb4c3bee86..c64fd897087e 100644
--- a/sc/source/filter/xml/XMLTableSourceContext.cxx
+++ b/sc/source/filter/xml/XMLTableSourceContext.cxx
@@ -77,12 +77,6 @@ ScXMLTableSourceContext::~ScXMLTableSourceContext()
 {
 }
 
-uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableSourceContext::createFastChildContext(
-    sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ )
-{
-    return nullptr;
-}
-
 void SAL_CALL ScXMLTableSourceContext::endFastElement( sal_Int32 /*nElement*/ )
 {
     if (sLink.isEmpty())
diff --git a/sc/source/filter/xml/XMLTableSourceContext.hxx b/sc/source/filter/xml/XMLTableSourceContext.hxx
index 23c62ba6da5e..523c28bfc2fb 100644
--- a/sc/source/filter/xml/XMLTableSourceContext.hxx
+++ b/sc/source/filter/xml/XMLTableSourceContext.hxx
@@ -40,9 +40,6 @@ public:
 
     virtual ~ScXMLTableSourceContext() override;
 
-    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
-        sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
-
     virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
 };
 
diff --git a/sc/source/filter/xml/celltextparacontext.cxx b/sc/source/filter/xml/celltextparacontext.cxx
index d4feaafead94..8a54d38c2b32 100644
--- a/sc/source/filter/xml/celltextparacontext.cxx
+++ b/sc/source/filter/xml/celltextparacontext.cxx
@@ -189,12 +189,6 @@ void ScXMLCellFieldSheetNameContext::SetStyleName(const OUString& rStyleName)
     maStyleName = rStyleName;
 }
 
-void SAL_CALL ScXMLCellFieldSheetNameContext::startFastElement( sal_Int32 /*nElement*/,
-    const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ )
-{
-    // <text:sheet-name> has no attributes (that I'm aware of).
-}
-
 void SAL_CALL ScXMLCellFieldSheetNameContext::endFastElement( sal_Int32 /*nElement*/ )
 {
     mrParentCxt.PushFieldSheetName(maStyleName);
diff --git a/sc/source/filter/xml/celltextparacontext.hxx b/sc/source/filter/xml/celltextparacontext.hxx
index 3d62077c329e..35a553ce7f9c 100644
--- a/sc/source/filter/xml/celltextparacontext.hxx
+++ b/sc/source/filter/xml/celltextparacontext.hxx
@@ -68,8 +68,6 @@ public:
 
     void SetStyleName(const OUString& rStyleName);
 
-    virtual void SAL_CALL startFastElement( sal_Int32 nElement,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
     virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
 };
 
diff --git a/sc/source/filter/xml/importcontext.cxx b/sc/source/filter/xml/importcontext.cxx
index df219df61679..611c704c75c8 100644
--- a/sc/source/filter/xml/importcontext.cxx
+++ b/sc/source/filter/xml/importcontext.cxx
@@ -30,22 +30,4 @@ const ScXMLImport& ScXMLImportContext::GetScImport() const
     return static_cast<const ScXMLImport&>(GetImport());
 }
 
-void SAL_CALL ScXMLImportContext::startFastElement(sal_Int32 /*nElement*/, const css::uno::Reference< css::xml::sax::XFastAttributeList > & /*xAttrList*/)
-{
-}
-
-void SAL_CALL ScXMLImportContext::endFastElement(sal_Int32 /*nElement*/)
-{
-}
-
-void SAL_CALL ScXMLImportContext::characters(const OUString &)
-{
-}
-
-css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL ScXMLImportContext::createFastChildContext(
-    sal_Int32/* nElement */, const css::uno::Reference< css::xml::sax::XFastAttributeList >&/* xAttrList */ )
-{
-    return nullptr;
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/importcontext.hxx b/sc/source/filter/xml/importcontext.hxx
index 90a7a2d0e053..c762469d2360 100644
--- a/sc/source/filter/xml/importcontext.hxx
+++ b/sc/source/filter/xml/importcontext.hxx
@@ -25,17 +25,6 @@ public:
 
     ScXMLImportContext( SvXMLImport& rImport );
 
-    virtual void SAL_CALL startFastElement (sal_Int32 nElement,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) override;
-
-    virtual void SAL_CALL characters(const OUString & aChars) override;
-
-    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
-
-    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
-        sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs ) override;
-
-
 protected:
     ScXMLImport& GetScImport();
     const ScXMLImport& GetScImport() const;
diff --git a/sc/source/filter/xml/xmlcoli.cxx b/sc/source/filter/xml/xmlcoli.cxx
index 47e523f83a0b..8bec39546541 100644
--- a/sc/source/filter/xml/xmlcoli.cxx
+++ b/sc/source/filter/xml/xmlcoli.cxx
@@ -79,12 +79,6 @@ ScXMLTableColContext::~ScXMLTableColContext()
 {
 }
 
-uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableColContext::createFastChildContext(
-    sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ )
-{
-    return nullptr;
-}
-
 void SAL_CALL ScXMLTableColContext::endFastElement( sal_Int32 /*nElement*/ )
 {
     ScXMLImport& rXMLImport = GetScImport();
diff --git a/sc/source/filter/xml/xmlcoli.hxx b/sc/source/filter/xml/xmlcoli.hxx
index bc401698eee6..fe90136e61a3 100644
--- a/sc/source/filter/xml/xmlcoli.hxx
+++ b/sc/source/filter/xml/xmlcoli.hxx
@@ -37,9 +37,6 @@ public:
 
     virtual ~ScXMLTableColContext() override;
 
-    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
-        sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
-
     virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
 };
 
diff --git a/sc/source/filter/xml/xmlconti.cxx b/sc/source/filter/xml/xmlconti.cxx
index 2e357163f82b..1c5d55292fdc 100644
--- a/sc/source/filter/xml/xmlconti.cxx
+++ b/sc/source/filter/xml/xmlconti.cxx
@@ -95,11 +95,6 @@ css::uno::Reference< css::xml::sax::XFastContextHandler > ScXMLContentContext::c
     return new SvXMLImportContext( GetImport() );
 }
 
-void ScXMLContentContext::Characters( const OUString& rChars )
-{
-    sValue.append(rChars);
-}
-
 void ScXMLContentContext::characters( const OUString& rChars )
 {
     sValue.append(rChars);
diff --git a/sc/source/filter/xml/xmlconti.hxx b/sc/source/filter/xml/xmlconti.hxx
index 1aabd9f49b5c..7fd2cb0274db 100644
--- a/sc/source/filter/xml/xmlconti.hxx
+++ b/sc/source/filter/xml/xmlconti.hxx
@@ -40,8 +40,6 @@ public:
                                      const OUString& rLocalName,
                                      const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override;
 
-    virtual void Characters( const OUString& rChars ) override;
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index 84b50188b7b6..e30a54366912 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -215,13 +215,6 @@ public:
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL
         createFastChildContext( sal_Int32 nElement,
         const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList ) override;
-
-    virtual void SAL_CALL startFastElement (sal_Int32 nElement,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) override;
-
-    virtual void SAL_CALL characters(const OUString & aChars) override;
-
-    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
 }
@@ -242,13 +235,6 @@ public:
     ScXMLFlatDocContext_Impl( ScXMLImport& i_rImport,
         const uno::Reference<document::XDocumentProperties>& i_xDocProps);
 
-    virtual void SAL_CALL startFastElement (sal_Int32 nElement,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList) override;
-
-    virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
-
-    virtual void SAL_CALL characters( const OUString& aChars ) override;
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL
         createFastChildContext( sal_Int32 nElement,
         const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList ) override;
@@ -274,22 +260,6 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
         return ScXMLDocContext_Impl::createFastChildContext( nElement, xAttrList );
 }
 
-void SAL_CALL ScXMLFlatDocContext_Impl::startFastElement(sal_Int32 nElement,
-    const uno::Reference< xml::sax::XFastAttributeList > & xAttrList)
-{
-    SvXMLMetaDocumentContext::startFastElement( nElement, xAttrList );
-}
-
-void SAL_CALL ScXMLFlatDocContext_Impl::endFastElement(sal_Int32 nElement)
-{
-    SvXMLMetaDocumentContext::endFastElement( nElement );
-}
-
-void SAL_CALL ScXMLFlatDocContext_Impl::characters(const OUString& rChars)
-{
-    SvXMLMetaDocumentContext::characters(rChars);
-}
-
 namespace {
 
 class ScXMLBodyContext_Impl : public ScXMLImportContext
@@ -362,19 +332,6 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL
     return pContext;
 }
 
-void SAL_CALL ScXMLDocContext_Impl::startFastElement(sal_Int32 /*nElement*/,
-    const uno::Reference< xml::sax::XFastAttributeList > & /*xAttrList*/)
-{
-}
-
-void SAL_CALL ScXMLDocContext_Impl::endFastElement(sal_Int32 /*nElement*/)
-{
-}
-
-void SAL_CALL ScXMLDocContext_Impl::characters(const OUString &)
-{
-}
-
 const SvXMLTokenMap& ScXMLImport::GetTableElemTokenMap()
 {
     if( !pTableElemTokenMap )
diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx
index 8712531e526c..3a6df40abfe7 100644
--- a/sc/source/filter/xml/xmlstyli.cxx
+++ b/sc/source/filter/xml/xmlstyli.cxx
@@ -339,9 +339,6 @@ public:
             SvXMLImport& rImport, sal_Int32 nElement,
             const uno::Reference< xml::sax::XFastAttributeList > & xAttrList );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     ScCondFormatEntry* CreateConditionEntry();
 };
 
@@ -677,9 +674,8 @@ XMLTableStylesContext::~XMLTableStylesContext()
 {
 }
 
-void XMLTableStylesContext::endFastElement(sal_Int32 nElement)
+void XMLTableStylesContext::endFastElement(sal_Int32 )
 {
-    SvXMLStylesContext::endFastElement(nElement);
     if (bAutoStyles)
         GetImport().GetTextImport()->SetAutoStyles( this );
     else
diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx
index f27ab0ca238d..3784b9d54455 100644
--- a/sc/source/filter/xml/xmltabi.cxx
+++ b/sc/source/filter/xml/xmltabi.cxx
@@ -480,10 +480,4 @@ ScXMLTableProtectionContext::~ScXMLTableProtectionContext()
 {
 }
 
-uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableProtectionContext::createFastChildContext(
-    sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ )
-{
-    return nullptr;
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/xmltabi.hxx b/sc/source/filter/xml/xmltabi.hxx
index 2b194d172d16..a20959a58e01 100644
--- a/sc/source/filter/xml/xmltabi.hxx
+++ b/sc/source/filter/xml/xmltabi.hxx
@@ -71,9 +71,6 @@ public:
                         const rtl::Reference<sax_fastparser::FastAttributeList>& rAttrList );
 
     virtual ~ScXMLTableProtectionContext() override;
-
-    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
-        sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 };
 
 #endif
diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx
index 2f8dfb4aeab2..675081ef574e 100644
--- a/starmath/source/mathmlimport.cxx
+++ b/starmath/source/mathmlimport.cxx
@@ -518,8 +518,6 @@ public:
 
     virtual void TCharacters(const OUString & /*rChars*/);
     virtual void SAL_CALL characters(const OUString &rChars) override;
-    virtual uno::Reference< xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
-        sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList ) override;
     virtual void SAL_CALL startFastElement(sal_Int32 /*nElement*/, const css::uno::Reference<css::xml::sax::XFastAttributeList>& /*rAttrList*/) override
     {
         if (GetSmImport().TooDeep())
@@ -547,12 +545,6 @@ void SmXMLImportContext::characters(const OUString &rChars)
         TCharacters(rChars2/*.collapse()*/);
 }
 
-uno::Reference< xml::sax::XFastContextHandler > SAL_CALL SmXMLImportContext::createFastChildContext(
-        sal_Int32 /*nElement*/, const uno::Reference< xml::sax::XFastAttributeList >& /*xAttrList*/ )
-{
-    return nullptr;
-}
-
 namespace {
 
 struct SmXMLContext_Helper
@@ -1859,9 +1851,6 @@ public:
         {}
 
     /*Don't do anything with alignment for now*/
-    void SAL_CALL endFastElement(sal_Int32 ) override
-    {
-    }
 };
 
 
@@ -1888,13 +1877,6 @@ public:
     SmXMLOfficeContext_Impl( SmXMLImport &rImport )
         : SvXMLImportContext(rImport) {}
 
-    virtual void SAL_CALL characters( const OUString& /*aChars*/ ) override {}
-
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-
-    virtual void SAL_CALL endFastElement( sal_Int32 /*nElement*/ ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 };
@@ -1925,13 +1907,6 @@ public:
     SmXMLFlatDocContext_Impl( SmXMLImport& i_rImport,
         const uno::Reference<document::XDocumentProperties>& i_xDocProps);
 
-    virtual void SAL_CALL characters( const OUString& aChars ) override;
-
-    virtual void SAL_CALL startFastElement( sal_Int32 nElement,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
-
-    virtual void SAL_CALL endFastElement( sal_Int32 nElement ) override;
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
 };
@@ -1946,22 +1921,6 @@ SmXMLFlatDocContext_Impl::SmXMLFlatDocContext_Impl( SmXMLImport& i_rImport,
 {
 }
 
-void SAL_CALL SmXMLFlatDocContext_Impl::startFastElement( sal_Int32 nElement,
-    const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
-{
-    SvXMLMetaDocumentContext::startFastElement(nElement, xAttrList);
-}
-
-void SAL_CALL SmXMLFlatDocContext_Impl::endFastElement( sal_Int32 nElement )
-{
-    SvXMLMetaDocumentContext::endFastElement(nElement);
-}
-
-void SAL_CALL SmXMLFlatDocContext_Impl::characters( const OUString& rChars )
-{
-    SvXMLMetaDocumentContext::characters(rChars);
-}
-
 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL SmXMLFlatDocContext_Impl::createFastChildContext(
     sal_Int32 nElement, const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
 {
diff --git a/svx/source/xml/xmlxtimp.cxx b/svx/source/xml/xmlxtimp.cxx
index 0b7c6f8ece27..4fc35c289993 100644
--- a/svx/source/xml/xmlxtimp.cxx
+++ b/svx/source/xml/xmlxtimp.cxx
@@ -68,9 +68,6 @@ public:
     SvxXMLTableImportContext( SvXMLImport& rImport, SvxXMLTableImportContextEnum eContext, const uno::Reference< XNameContainer >& xTable,
         bool bOOoFormat );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL
         createFastChildContext(sal_Int32 Element,
             const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs) override;
diff --git a/sw/source/core/swg/SwXMLBlockImport.cxx b/sw/source/core/swg/SwXMLBlockImport.cxx
index ab5519e27bf4..c0358b246773 100644
--- a/sw/source/core/swg/SwXMLBlockImport.cxx
+++ b/sw/source/core/swg/SwXMLBlockImport.cxx
@@ -54,9 +54,6 @@ public:
     SwXMLBlockListContext( SwXMLBlockListImport& rImport,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
 };
@@ -66,8 +63,6 @@ class SwXMLBlockContext : public SvXMLImportContext
 public:
     SwXMLBlockContext( SwXMLBlockListImport& rImport,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList );
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
 };
 
 class SwXMLTextBlockDocumentContext : public SvXMLImportContext
@@ -78,9 +73,6 @@ private:
 public:
     SwXMLTextBlockDocumentContext( SwXMLTextBlockImport& rImport );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
 };
@@ -93,9 +85,6 @@ private:
 public:
     SwXMLTextBlockBodyContext( SwXMLTextBlockImport& rImport );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32, const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
 };
@@ -108,9 +97,6 @@ private:
 public:
     SwXMLTextBlockTextContext( SwXMLTextBlockImport& rImport );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 Element,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
@@ -124,9 +110,6 @@ private:
 public:
     SwXMLTextBlockParContext( SwXMLTextBlockImport & rImport );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual void SAL_CALL characters( const OUString & aChars ) override;
 
     virtual ~SwXMLTextBlockParContext() override;
diff --git a/sw/source/core/swg/SwXMLSectionList.cxx b/sw/source/core/swg/SwXMLSectionList.cxx
index 3f0fc562cfda..4fe4c1b0c710 100644
--- a/sw/source/core/swg/SwXMLSectionList.cxx
+++ b/sw/source/core/swg/SwXMLSectionList.cxx
@@ -36,9 +36,6 @@ private:
 public:
     SvXMLSectionListContext(SwXMLSectionList& rImport);
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference<css::xml::sax::XFastContextHandler> SAL_CALL createFastChildContext(
         sal_Int32 Element,
         const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList ) override;
@@ -55,9 +52,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference<XFastContextHandler> SAL_CALL createFastChildContext(
         sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > & /*xAttrList*/ ) override
     {
diff --git a/sw/source/filter/xml/xmlbrshi.hxx b/sw/source/filter/xml/xmlbrshi.hxx
index 4e0af97bda30..117cfa0b34dd 100644
--- a/sw/source/filter/xml/xmlbrshi.hxx
+++ b/sw/source/filter/xml/xmlbrshi.hxx
@@ -67,8 +67,6 @@ public:
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 
     const SvxBrushItem& GetItem() const { return *pItem; }
diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx
index 752125c3c2ab..15c71e820fe1 100644
--- a/sw/source/filter/xml/xmlimp.cxx
+++ b/sw/source/filter/xml/xmlimp.cxx
@@ -131,10 +131,6 @@ public:
 
     SwXMLBodyContext_Impl( SwXMLImport& rImport );
 
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
             sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 };
@@ -198,9 +194,6 @@ public:
 
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
-
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
 };
 
 }
@@ -278,10 +271,6 @@ public:
     SwXMLOfficeDocContext_Impl( SwXMLImport& rImport,
                 const Reference< document::XDocumentProperties >& xDocProps);
 
-    virtual void SAL_CALL startFastElement( sal_Int32 nElement,
-                const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override
-    { SvXMLMetaDocumentContext::startFastElement(nElement, xAttrList); }
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& Attribs ) override;
 };
diff --git a/sw/source/filter/xml/xmlitem.hxx b/sw/source/filter/xml/xmlitem.hxx
index 55971f339a0d..dcdafd2022c1 100644
--- a/sw/source/filter/xml/xmlitem.hxx
+++ b/sw/source/filter/xml/xmlitem.hxx
@@ -46,9 +46,6 @@ public:
 
     virtual ~SwXMLItemSetContext() override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
diff --git a/sw/source/filter/xml/xmltext.cxx b/sw/source/filter/xml/xmltext.cxx
index 09571b5350a5..0da867359fdb 100644
--- a/sw/source/filter/xml/xmltext.cxx
+++ b/sw/source/filter/xml/xmltext.cxx
@@ -34,17 +34,10 @@ public:
 
     SwXMLBodyContentContext_Impl( SwXMLImport& rImport );
 
-    virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
-            sal_Int32 /*nElement*/, const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override
-    { return nullptr; }
-
     virtual SvXMLImportContextRef CreateChildContext(
             sal_uInt16 nPrefix, const OUString& rLocalName,
             const Reference< xml::sax::XAttributeList > & xAttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
-
     // The body element's text:global attribute can be ignored, because
     // we must have the correct object shell already.
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
diff --git a/sw/source/uibase/config/StoredChapterNumbering.cxx b/sw/source/uibase/config/StoredChapterNumbering.cxx
index 4bedb4fa29a4..07d72b222521 100644
--- a/sw/source/uibase/config/StoredChapterNumbering.cxx
+++ b/sw/source/uibase/config/StoredChapterNumbering.cxx
@@ -318,10 +318,6 @@ public:
     {
     }
 
-    virtual void SAL_CALL startFastElement(
-            sal_Int32 /*nElement*/,
-            const css::uno::Reference< css::xml::sax::XFastAttributeList >& /*xAttrList*/ ) override {}
-
     virtual void SAL_CALL endFastElement(sal_Int32 /*Element*/) override
     {
         assert(m_Contexts.size() < SwChapterNumRules::nMaxRules);
diff --git a/xmloff/inc/DomBuilderContext.hxx b/xmloff/inc/DomBuilderContext.hxx
index dcdd16819083..81fe98942160 100644
--- a/xmloff/inc/DomBuilderContext.hxx
+++ b/xmloff/inc/DomBuilderContext.hxx
@@ -79,8 +79,6 @@ public:
     virtual void StartElement(
         const css::uno::Reference<css::xml::sax::XAttributeList>& xAttrList ) override;
 
-    virtual void EndElement() override;
-
     virtual void Characters( const OUString& rChars ) override;
 };
 
diff --git a/xmloff/inc/XMLBackgroundImageContext.hxx b/xmloff/inc/XMLBackgroundImageContext.hxx
index 3ad9509e7bca..8d3f466ae353 100644
--- a/xmloff/inc/XMLBackgroundImageContext.hxx
+++ b/xmloff/inc/XMLBackgroundImageContext.hxx
@@ -63,8 +63,6 @@ public:
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
diff --git a/xmloff/inc/XMLElementPropertyContext.hxx b/xmloff/inc/XMLElementPropertyContext.hxx
index 427e6d0f46ac..f6164e75a2a4 100644
--- a/xmloff/inc/XMLElementPropertyContext.hxx
+++ b/xmloff/inc/XMLElementPropertyContext.hxx
@@ -45,8 +45,6 @@ public:
 
     virtual ~XMLElementPropertyContext() override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
diff --git a/xmloff/inc/XMLStringBufferImportContext.hxx b/xmloff/inc/XMLStringBufferImportContext.hxx
index 9c607480084f..7896667ff357 100644
--- a/xmloff/inc/XMLStringBufferImportContext.hxx
+++ b/xmloff/inc/XMLStringBufferImportContext.hxx
@@ -50,19 +50,8 @@ public:
 
     virtual ~XMLStringBufferImportContext() override;
 
-    virtual SvXMLImportContextRef CreateChildContext(
-        sal_uInt16 nPrefix,
-        const OUString& rLocalName,
-        const css::uno::Reference<css::xml::sax::XAttributeList >& xAttrList ) override;
-
-    virtual void Characters(
-        const OUString& rChars ) override;
-
-    virtual void EndElement() override;
-
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
-    virtual void SAL_CALL startFastElement( sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
     virtual void SAL_CALL characters(const OUString& rChars) override;
 };
diff --git a/xmloff/inc/XMLTextColumnsContext.hxx b/xmloff/inc/XMLTextColumnsContext.hxx
index ea020811934f..55a2cd400027 100644
--- a/xmloff/inc/XMLTextColumnsContext.hxx
+++ b/xmloff/inc/XMLTextColumnsContext.hxx
@@ -51,8 +51,6 @@ public:
     virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
         sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
diff --git a/xmloff/inc/XMLTextHeaderFooterContext.hxx b/xmloff/inc/XMLTextHeaderFooterContext.hxx
index 86ac28b1f558..9e0a0b86cec9 100644
--- a/xmloff/inc/XMLTextHeaderFooterContext.hxx
+++ b/xmloff/inc/XMLTextHeaderFooterContext.hxx
@@ -55,8 +55,6 @@ public:
             const OUString& rLocalName,
             const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override;
 
-    virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
     virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
 };
 
diff --git a/xmloff/inc/animationimport.hxx b/xmloff/inc/animationimport.hxx
index 5633e0ca3f1a..16e8dfa9becd 100644
--- a/xmloff/inc/animationimport.hxx
+++ b/xmloff/inc/animationimport.hxx
@@ -48,9 +48,6 @@ public:
         const css::uno::Reference< css::xml::sax::XFastAttributeList>& xAttrList,
         const std::shared_ptr<AnimationsImportHelperImpl>& pImpl = nullptr );
 
-    virtual void SAL_CALL startFastElement( sal_Int32 nElement,
-        const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
-

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list