[Libreoffice-commits] core.git: dbaccess/source xmloff/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jan 13 12:34:51 UTC 2020
dbaccess/source/filter/xml/xmlColumn.cxx | 44 +-
dbaccess/source/filter/xml/xmlColumn.hxx | 8
dbaccess/source/filter/xml/xmlComponent.cxx | 33 --
dbaccess/source/filter/xml/xmlComponent.hxx | 6
dbaccess/source/filter/xml/xmlConnectionData.cxx | 28 -
dbaccess/source/filter/xml/xmlConnectionData.hxx | 10
dbaccess/source/filter/xml/xmlConnectionResource.cxx | 84 ++---
dbaccess/source/filter/xml/xmlConnectionResource.hxx | 7
dbaccess/source/filter/xml/xmlDataSource.cxx | 265 ++++++++---------
dbaccess/source/filter/xml/xmlDataSource.hxx | 12
dbaccess/source/filter/xml/xmlDataSourceInfo.cxx | 47 +--
dbaccess/source/filter/xml/xmlDataSourceInfo.hxx | 9
dbaccess/source/filter/xml/xmlDataSourceSetting.cxx | 51 +--
dbaccess/source/filter/xml/xmlDataSourceSetting.hxx | 17 -
dbaccess/source/filter/xml/xmlDataSourceSettings.cxx | 19 -
dbaccess/source/filter/xml/xmlDataSourceSettings.hxx | 9
dbaccess/source/filter/xml/xmlDatabase.cxx | 38 +-
dbaccess/source/filter/xml/xmlDatabase.hxx | 14
dbaccess/source/filter/xml/xmlDatabaseDescription.cxx | 22 -
dbaccess/source/filter/xml/xmlDatabaseDescription.hxx | 10
dbaccess/source/filter/xml/xmlDocuments.cxx | 34 --
dbaccess/source/filter/xml/xmlDocuments.hxx | 11
dbaccess/source/filter/xml/xmlEnums.hxx | 126 --------
dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx | 89 ++---
dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx | 7
dbaccess/source/filter/xml/xmlHierarchyCollection.cxx | 52 +--
dbaccess/source/filter/xml/xmlHierarchyCollection.hxx | 13
dbaccess/source/filter/xml/xmlLogin.cxx | 113 +++----
dbaccess/source/filter/xml/xmlLogin.hxx | 7
dbaccess/source/filter/xml/xmlQuery.cxx | 44 +-
dbaccess/source/filter/xml/xmlQuery.hxx | 11
dbaccess/source/filter/xml/xmlServerDatabase.cxx | 63 ++--
dbaccess/source/filter/xml/xmlServerDatabase.hxx | 7
dbaccess/source/filter/xml/xmlTable.cxx | 85 ++---
dbaccess/source/filter/xml/xmlTable.hxx | 15 -
dbaccess/source/filter/xml/xmlTableFilterList.cxx | 34 +-
dbaccess/source/filter/xml/xmlTableFilterList.hxx | 13
dbaccess/source/filter/xml/xmlTableFilterPattern.cxx | 8
dbaccess/source/filter/xml/xmlTableFilterPattern.hxx | 6
dbaccess/source/filter/xml/xmlfilter.cxx | 268 +-----------------
dbaccess/source/filter/xml/xmlfilter.hxx | 18 -
xmloff/source/core/xmlimp.cxx | 3
42 files changed, 655 insertions(+), 1105 deletions(-)
New commits:
commit db6c54b2e93d1cc5c02e7db7b1841fabbc3ef950
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Sun Jan 12 20:11:49 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Mon Jan 13 13:34:15 2020 +0100
convert dbaccess to FastParser APIs
Noting that I use "& TOKEN_MASK" a lot because we can be dealing with
either NAMESPACE_DB or NAMESPACE_DB_OASIS.
Change-Id: I5ca0aac61e37dc903bb998a43b73b48df22e55fd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86655
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/dbaccess/source/filter/xml/xmlColumn.cxx b/dbaccess/source/filter/xml/xmlColumn.cxx
index fc90f490179c..91dc85582883 100644
--- a/dbaccess/source/filter/xml/xmlColumn.cxx
+++ b/dbaccess/source/filter/xml/xmlColumn.cxx
@@ -32,6 +32,7 @@
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/container/XChild.hpp>
#include "xmlStyleImport.hxx"
+#include <sal/log.hxx>
namespace dbaxml
{
@@ -42,59 +43,52 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLColumn::OXMLColumn( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const Reference< XAttributeList > & _xAttrList
+ ,const Reference< XFastAttributeList > & _xAttrList
,const Reference< XNameAccess >& _xParentContainer
,const Reference< XPropertySet >& _xTable
) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ SvXMLImportContext( rImport )
,m_xParentContainer(_xParentContainer)
,m_xTable(_xTable)
,m_bHidden(false)
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetColumnElemTokenMap();
-
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
OUString sType;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ OUString sValue = aIter.toString();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ switch( aIter.getToken() & TOKEN_MASK )
{
- case XML_TOK_COLUMN_NAME:
+ case XML_NAME:
m_sName = sValue;
break;
- case XML_TOK_COLUMN_STYLE_NAME:
+ case XML_STYLE_NAME:
m_sStyleName = sValue;
break;
- case XML_TOK_COLUMN_HELP_MESSAGE:
+ case XML_HELP_MESSAGE:
m_sHelpMessage = sValue;
break;
- case XML_TOK_COLUMN_VISIBILITY:
+ case XML_VISIBILITY:
m_bHidden = sValue != "visible";
break;
- case XML_TOK_COLUMN_TYPE_NAME:
+ case XML_TYPE_NAME:
sType = sValue;
OSL_ENSURE(!sType.isEmpty(),"No type name set");
break;
- case XML_TOK_COLUMN_DEFAULT_VALUE:
+ case XML_DEFAULT_VALUE:
if ( !(sValue.isEmpty() || sType.isEmpty()) )
m_aDefaultValue <<= sValue;
break;
- case XML_TOK_COLUMN_VISIBLE:
+ case XML_VISIBLE:
m_bHidden = sValue == "false";
break;
- case XML_TOK_DEFAULT_CELL_STYLE_NAME:
+ case XML_DEFAULT_CELL_STYLE_NAME:
m_sCellStyleName = sValue;
break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
}
}
}
@@ -104,7 +98,7 @@ OXMLColumn::~OXMLColumn()
}
-void OXMLColumn::EndElement()
+void OXMLColumn::endFastElement(sal_Int32 )
{
Reference<XDataDescriptorFactory> xFac(m_xParentContainer,UNO_QUERY);
if ( xFac.is() && !m_sName.isEmpty() )
diff --git a/dbaccess/source/filter/xml/xmlColumn.hxx b/dbaccess/source/filter/xml/xmlColumn.hxx
index 7b319fa4766c..cc242a905fc2 100644
--- a/dbaccess/source/filter/xml/xmlColumn.hxx
+++ b/dbaccess/source/filter/xml/xmlColumn.hxx
@@ -42,14 +42,14 @@ namespace dbaxml
public:
OXMLColumn( ODBFilter& rImport
- , sal_uInt16 nPrfx
- ,const OUString& rLName
- ,const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList
+ ,const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
,const css::uno::Reference< css::beans::XPropertySet >& _xTable
);
virtual ~OXMLColumn() override;
- virtual void EndElement() 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.cxx b/dbaccess/source/filter/xml/xmlComponent.cxx
index 7db3101b679d..dde08cd1fe23 100644
--- a/dbaccess/source/filter/xml/xmlComponent.cxx
+++ b/dbaccess/source/filter/xml/xmlComponent.cxx
@@ -39,44 +39,39 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLComponent::OXMLComponent( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const Reference< XAttributeList > & _xAttrList
+ ,const Reference< XFastAttributeList > & _xAttrList
,const Reference< XNameAccess >& _xParentContainer
,const OUString& _sComponentServiceName
) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ SvXMLImportContext( rImport )
,m_bAsTemplate(false)
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetComponentElemTokenMap();
-
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ OUString sValue = aIter.toString();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ switch( aIter.getToken() )
{
- case XML_TOK_HREF:
+ case XML_ELEMENT(XLINK, XML_HREF):
m_sHREF = sValue;
break;
- case XML_TOK_COMPONENT_NAME:
+ case XML_ELEMENT(DB, XML_NAME):
+ case XML_ELEMENT(DB_OASIS, XML_NAME):
m_sName = sValue;
// sanitize the name. Previously, we allowed to create forms/reports/queries which contain
// a / in their name, which nowadays is forbidden. To not lose such objects if they're contained
// in older files, we replace the slash with something less offending.
m_sName = m_sName.replace( '/', '_' );
break;
- case XML_TOK_AS_TEMPLATE:
+ case XML_ELEMENT(DB, XML_AS_TEMPLATE):
+ case XML_ELEMENT(DB_OASIS, XML_AS_TEMPLATE):
m_bAsTemplate = sValue == s_sTRUE;
break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
}
}
if ( !m_sHREF.isEmpty() && !m_sName.isEmpty() && _xParentContainer.is() )
diff --git a/dbaccess/source/filter/xml/xmlComponent.hxx b/dbaccess/source/filter/xml/xmlComponent.hxx
index cd78d501eca7..5cee3a2c381c 100644
--- a/dbaccess/source/filter/xml/xmlComponent.hxx
+++ b/dbaccess/source/filter/xml/xmlComponent.hxx
@@ -34,12 +34,12 @@ namespace dbaxml
public:
OXMLComponent( ODBFilter& rImport
- , sal_uInt16 nPrfx
- ,const OUString& rLName
- ,const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList
+ ,const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList
,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.cxx b/dbaccess/source/filter/xml/xmlConnectionData.cxx
index ddef531688c2..c99853543dfb 100644
--- a/dbaccess/source/filter/xml/xmlConnectionData.cxx
+++ b/dbaccess/source/filter/xml/xmlConnectionData.cxx
@@ -36,9 +36,8 @@ namespace dbaxml
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::xml::sax;
-OXMLConnectionData::OXMLConnectionData( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+OXMLConnectionData::OXMLConnectionData( ODBFilter& rImport) :
+ SvXMLImportContext( rImport )
,m_bFoundOne(false)
{
rImport.setNewFormat(true);
@@ -49,37 +48,34 @@ OXMLConnectionData::~OXMLConnectionData()
}
-SvXMLImportContextRef OXMLConnectionData::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLConnectionData::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDataSourceElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_LOGIN:
+ case XML_LOGIN:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLLogin( GetOwnImport(), nPrefix, rLocalName,xAttrList );
+ pContext = new OXMLLogin( GetOwnImport(), xAttrList );
break;
- case XML_TOK_DATABASE_DESCRIPTION:
+ case XML_DATABASE_DESCRIPTION:
if ( !m_bFoundOne )
{
m_bFoundOne = true;
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDatabaseDescription( GetOwnImport(), nPrefix, rLocalName);
+ pContext = new OXMLDatabaseDescription( GetOwnImport() );
}
break;
- case XML_TOK_CONNECTION_RESOURCE:
+ case XML_CONNECTION_RESOURCE:
if ( !m_bFoundOne )
{
m_bFoundOne = true;
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLConnectionResource( GetOwnImport(), nPrefix, rLocalName,xAttrList );
+ pContext = new OXMLConnectionResource( GetOwnImport(), xAttrList );
}
break;
- case XML_TOK_COMPOUND_DATABASE:
+ case XML_COMPOUND_DATABASE:
if ( !m_bFoundOne )
{
m_bFoundOne = true;
diff --git a/dbaccess/source/filter/xml/xmlConnectionData.hxx b/dbaccess/source/filter/xml/xmlConnectionData.hxx
index 57d0c07ef9fa..20c552e42fec 100644
--- a/dbaccess/source/filter/xml/xmlConnectionData.hxx
+++ b/dbaccess/source/filter/xml/xmlConnectionData.hxx
@@ -33,13 +33,13 @@ namespace dbaxml
ODBFilter& GetOwnImport();
public:
- OXMLConnectionData( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName);
+ OXMLConnectionData( ODBFilter& rImport );
virtual ~OXMLConnectionData() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlConnectionResource.cxx b/dbaccess/source/filter/xml/xmlConnectionResource.cxx
index b1e7e36b6dd8..744345b4c7f9 100644
--- a/dbaccess/source/filter/xml/xmlConnectionResource.cxx
+++ b/dbaccess/source/filter/xml/xmlConnectionResource.cxx
@@ -34,57 +34,53 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLConnectionResource::OXMLConnectionResource( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName,
- const Reference< XAttributeList > & _xAttrList) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ const Reference< XFastAttributeList > & _xAttrList) :
+ SvXMLImportContext( rImport )
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetComponentElemTokenMap();
-
Reference<XPropertySet> xDataSource = rImport.getDataSource();
PropertyValue aProperty;
- const sal_Int16 nLength = (xDataSource.is() && _xAttrList.is()) ? _xAttrList->getLength() : 0;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ if (xDataSource.is())
{
- OUString sLocalName;
- const OUString sAttrName = _xAttrList->getNameByIndex( i );
- const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- const OUString sValue = _xAttrList->getValueByIndex( i );
-
- aProperty.Name.clear();
- aProperty.Value = Any();
-
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- case XML_TOK_HREF:
- try
- {
- xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue));
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
- break;
- case XML_TOK_TYPE:
- aProperty.Name = PROPERTY_TYPE;
- break;
- case XML_TOK_SHOW:
- aProperty.Name = "Show";
- break;
- case XML_TOK_ACTUATE:
- aProperty.Name = "Actuate";
- break;
- }
- if ( !aProperty.Name.isEmpty() )
- {
- if ( !aProperty.Value.hasValue() )
- aProperty.Value <<= sValue;
- rImport.addInfo(aProperty);
+ OUString sValue = aIter.toString();
+ aProperty.Name.clear();
+ aProperty.Value = Any();
+
+ switch( aIter.getToken() )
+ {
+ case XML_ELEMENT(XLINK, XML_HREF):
+ try
+ {
+ xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue));
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
+ break;
+ case XML_ELEMENT(XLINK, XML_TYPE):
+ aProperty.Name = PROPERTY_TYPE;
+ break;
+ case XML_ELEMENT(XLINK, XML_SHOW):
+ aProperty.Name = "Show";
+ break;
+ case XML_ELEMENT(XLINK, XML_ACTUATE):
+ aProperty.Name = "Actuate";
+ break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
+ }
+ if ( !aProperty.Name.isEmpty() )
+ {
+ if ( !aProperty.Value.hasValue() )
+ aProperty.Value <<= sValue;
+ rImport.addInfo(aProperty);
+ }
}
}
}
diff --git a/dbaccess/source/filter/xml/xmlConnectionResource.hxx b/dbaccess/source/filter/xml/xmlConnectionResource.hxx
index d5effa9e65fd..7b2bb478f0c4 100644
--- a/dbaccess/source/filter/xml/xmlConnectionResource.hxx
+++ b/dbaccess/source/filter/xml/xmlConnectionResource.hxx
@@ -30,9 +30,10 @@ namespace dbaxml
{
public:
- OXMLConnectionResource( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList);
+ 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.cxx b/dbaccess/source/filter/xml/xmlDataSource.cxx
index aad160ee9bae..6044ed9d6a34 100644
--- a/dbaccess/source/filter/xml/xmlDataSource.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSource.cxx
@@ -41,15 +41,11 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName,
- const Reference< XAttributeList > & _xAttrList, const UsedFor _eUsedFor ) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& _xAttrList,
+ const UsedFor _eUsedFor ) :
+ SvXMLImportContext( rImport )
{
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetDataSourceElemTokenMap();
-
Reference<XPropertySet> xDataSource = rImport.getDataSource();
PropertyValue aProperty;
@@ -58,112 +54,115 @@ OXMLDataSource::OXMLDataSource( ODBFilter& rImport,
bool bFoundAppendTableAliasName = false;
bool bFoundSuppressVersionColumns = false;
- const sal_Int16 nLength = (xDataSource.is() && _xAttrList.is()) ? _xAttrList->getLength() : 0;
static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
- for(sal_Int16 i = 0; i < nLength; ++i)
+ if (xDataSource.is())
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
+ {
+ OUString sValue = aIter.toString();
- aProperty.Name.clear();
- aProperty.Value = Any();
+ aProperty.Name.clear();
+ aProperty.Value = Any();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
- {
- case XML_TOK_CONNECTION_RESOURCE:
- try
- {
- xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue));
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
- break;
- case XML_TOK_SUPPRESS_VERSION_COLUMNS:
- try
- {
- xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,makeAny(sValue == s_sTRUE));
- bFoundSuppressVersionColumns = true;
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
- break;
- case XML_TOK_JAVA_DRIVER_CLASS:
- aProperty.Name = INFO_JDBCDRIVERCLASS;
- break;
- case XML_TOK_EXTENSION:
- aProperty.Name = INFO_TEXTFILEEXTENSION;
- break;
- case XML_TOK_IS_FIRST_ROW_HEADER_LINE:
- aProperty.Name = INFO_TEXTFILEHEADER;
- aProperty.Value <<= (sValue == s_sTRUE);
- break;
- case XML_TOK_SHOW_DELETED:
- aProperty.Name = INFO_SHOWDELETEDROWS;
- aProperty.Value <<= (sValue == s_sTRUE);
- break;
- case XML_TOK_IS_TABLE_NAME_LENGTH_LIMITED:
- aProperty.Name = INFO_ALLOWLONGTABLENAMES;
- aProperty.Value <<= (sValue == s_sTRUE);
- bFoundTableNameLengthLimited = true;
- break;
- case XML_TOK_SYSTEM_DRIVER_SETTINGS:
- aProperty.Name = INFO_ADDITIONALOPTIONS;
- break;
- case XML_TOK_ENABLE_SQL92_CHECK:
- aProperty.Name = PROPERTY_ENABLESQL92CHECK;
- aProperty.Value <<= (sValue == s_sTRUE);
- break;
- case XML_TOK_APPEND_TABLE_ALIAS_NAME:
- aProperty.Name = INFO_APPEND_TABLE_ALIAS;
- aProperty.Value <<= (sValue == s_sTRUE);
- bFoundAppendTableAliasName = true;
- break;
- case XML_TOK_PARAMETER_NAME_SUBSTITUTION:
- aProperty.Name = INFO_PARAMETERNAMESUBST;
- aProperty.Value <<= (sValue == s_sTRUE);
- bFoundParamNameSubstitution = true;
- break;
- case XML_TOK_IGNORE_DRIVER_PRIVILEGES:
- aProperty.Name = INFO_IGNOREDRIVER_PRIV;
- aProperty.Value <<= (sValue == s_sTRUE);
- break;
- case XML_TOK_BOOLEAN_COMPARISON_MODE:
- aProperty.Name = PROPERTY_BOOLEANCOMPARISONMODE;
- if ( sValue == "equal-integer" )
- aProperty.Value <<= sal_Int32(0);
- else if ( sValue == "is-boolean" )
- aProperty.Value <<= sal_Int32(1);
- else if ( sValue == "equal-boolean" )
- aProperty.Value <<= sal_Int32(2);
- else if ( sValue == "equal-use-only-zero" )
- aProperty.Value <<= sal_Int32(3);
- break;
- case XML_TOK_USE_CATALOG:
- aProperty.Name = INFO_USECATALOG;
- aProperty.Value <<= (sValue == s_sTRUE);
- break;
- case XML_TOK_BASE_DN:
- aProperty.Name = INFO_CONN_LDAP_BASEDN;
- break;
- case XML_TOK_MAX_ROW_COUNT:
- aProperty.Name = INFO_CONN_LDAP_ROWCOUNT;
- aProperty.Value <<= sValue.toInt32();
- break;
- case XML_TOK_JAVA_CLASSPATH:
- aProperty.Name = "JavaDriverClassPath";
- break;
- }
- if ( !aProperty.Name.isEmpty() )
- {
- if ( !aProperty.Value.hasValue() )
- aProperty.Value <<= sValue;
- rImport.addInfo(aProperty);
+ switch( aIter.getToken() & TOKEN_MASK )
+ {
+ case XML_CONNECTION_RESOURCE:
+ try
+ {
+ xDataSource->setPropertyValue(PROPERTY_URL,makeAny(sValue));
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
+ break;
+ case XML_SUPPRESS_VERSION_COLUMNS:
+ try
+ {
+ xDataSource->setPropertyValue(PROPERTY_SUPPRESSVERSIONCL,makeAny(sValue == s_sTRUE));
+ bFoundSuppressVersionColumns = true;
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
+ break;
+ case XML_JAVA_DRIVER_CLASS:
+ aProperty.Name = INFO_JDBCDRIVERCLASS;
+ break;
+ case XML_EXTENSION:
+ aProperty.Name = INFO_TEXTFILEEXTENSION;
+ break;
+ case XML_IS_FIRST_ROW_HEADER_LINE:
+ aProperty.Name = INFO_TEXTFILEHEADER;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ break;
+ case XML_SHOW_DELETED:
+ aProperty.Name = INFO_SHOWDELETEDROWS;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ break;
+ case XML_IS_TABLE_NAME_LENGTH_LIMITED:
+ aProperty.Name = INFO_ALLOWLONGTABLENAMES;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ bFoundTableNameLengthLimited = true;
+ break;
+ case XML_SYSTEM_DRIVER_SETTINGS:
+ aProperty.Name = INFO_ADDITIONALOPTIONS;
+ break;
+ case XML_ENABLE_SQL92_CHECK:
+ aProperty.Name = PROPERTY_ENABLESQL92CHECK;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ break;
+ case XML_APPEND_TABLE_ALIAS_NAME:
+ aProperty.Name = INFO_APPEND_TABLE_ALIAS;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ bFoundAppendTableAliasName = true;
+ break;
+ case XML_PARAMETER_NAME_SUBSTITUTION:
+ aProperty.Name = INFO_PARAMETERNAMESUBST;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ bFoundParamNameSubstitution = true;
+ break;
+ case XML_IGNORE_DRIVER_PRIVILEGES:
+ aProperty.Name = INFO_IGNOREDRIVER_PRIV;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ break;
+ case XML_BOOLEAN_COMPARISON_MODE:
+ aProperty.Name = PROPERTY_BOOLEANCOMPARISONMODE;
+ if ( sValue == "equal-integer" )
+ aProperty.Value <<= sal_Int32(0);
+ else if ( sValue == "is-boolean" )
+ aProperty.Value <<= sal_Int32(1);
+ else if ( sValue == "equal-boolean" )
+ aProperty.Value <<= sal_Int32(2);
+ else if ( sValue == "equal-use-only-zero" )
+ aProperty.Value <<= sal_Int32(3);
+ break;
+ case XML_USE_CATALOG:
+ aProperty.Name = INFO_USECATALOG;
+ aProperty.Value <<= (sValue == s_sTRUE);
+ break;
+ case XML_BASE_DN:
+ aProperty.Name = INFO_CONN_LDAP_BASEDN;
+ break;
+ case XML_MAX_ROW_COUNT:
+ aProperty.Name = INFO_CONN_LDAP_ROWCOUNT;
+ aProperty.Value <<= sValue.toInt32();
+ break;
+ case XML_JAVA_CLASSPATH:
+ aProperty.Name = "JavaDriverClassPath";
+ break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
+ }
+ if ( !aProperty.Name.isEmpty() )
+ {
+ if ( !aProperty.Value.hasValue() )
+ aProperty.Value <<= sValue;
+ rImport.addInfo(aProperty);
+ }
}
}
if ( rImport.isNewFormat() )
@@ -205,50 +204,48 @@ OXMLDataSource::~OXMLDataSource()
}
-SvXMLImportContextRef OXMLDataSource::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDataSource::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDataSourceElemTokenMap();
- const sal_uInt16 nToken = rTokenMap.Get( nPrefix, rLocalName );
- switch( nToken )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_LOGIN:
+ case XML_LOGIN:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLLogin( GetOwnImport(), nPrefix, rLocalName,xAttrList );
+ pContext = new OXMLLogin( GetOwnImport(), xAttrList );
break;
- case XML_TOK_TABLE_FILTER:
- case XML_TOK_TABLE_TYPE_FILTER:
+ case XML_TABLE_FILTER:
+ case XML_TABLE_TYPE_FILTER:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLTableFilterList( GetImport(), nPrefix, rLocalName );
+ pContext = new OXMLTableFilterList( GetImport() );
break;
- case XML_TOK_AUTO_INCREMENT:
- case XML_TOK_DELIMITER:
- case XML_TOK_FONT_CHARSET:
- case XML_TOK_CHARACTER_SET:
+ case XML_AUTO_INCREMENT:
+ case XML_DELIMITER:
+ case XML_FONT_CHARSET:
+ case XML_CHARACTER_SET:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSourceInfo( GetOwnImport(), nPrefix, rLocalName,xAttrList,nToken);
+ pContext = new OXMLDataSourceInfo( GetOwnImport(), nElement, xAttrList );
break;
- case XML_TOK_DATA_SOURCE_SETTINGS:
+ case XML_DATA_SOURCE_SETTINGS:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSourceSettings( GetOwnImport(), nPrefix, rLocalName);
+ pContext = new OXMLDataSourceSettings( GetOwnImport() );
break;
- case XML_TOK_CONNECTION_DATA:
+ case XML_CONNECTION_DATA:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLConnectionData( GetOwnImport(), nPrefix, rLocalName);
+ pContext = new OXMLConnectionData( GetOwnImport() );
break;
- case XML_TOK_DRIVER_SETTINGS:
+ case XML_DRIVER_SETTINGS:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSource( GetOwnImport(), nPrefix, rLocalName, xAttrList, OXMLDataSource::eDriverSettings );
+ pContext = new OXMLDataSource( GetOwnImport(), xAttrList, OXMLDataSource::eDriverSettings );
break;
- case XML_TOK_APPLICATION_CONNECTION_SETTINGS:
+ case XML_APPLICATION_CONNECTION_SETTINGS:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSource( GetOwnImport(), nPrefix, rLocalName, xAttrList, OXMLDataSource::eAppSettings );
+ pContext = new OXMLDataSource( GetOwnImport(), xAttrList, OXMLDataSource::eAppSettings );
break;
+ default:
+ SAL_WARN("dbaccess", "unknown element " << nElement);
}
return pContext;
diff --git a/dbaccess/source/filter/xml/xmlDataSource.hxx b/dbaccess/source/filter/xml/xmlDataSource.hxx
index f78b408c5f2e..4b0ba10c900d 100644
--- a/dbaccess/source/filter/xml/xmlDataSource.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSource.hxx
@@ -37,15 +37,15 @@ namespace dbaxml
eAppSettings
};
- OXMLDataSource( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList,
+ OXMLDataSource( ODBFilter& rImport,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& _xAttrList,
const UsedFor _eUsedFor );
virtual ~OXMLDataSource() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx b/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx
index 5cf4ee184ed5..75e50335dba1 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceInfo.cxx
@@ -28,6 +28,7 @@
#include <strings.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <vector>
+#include <sal/log.hxx>
namespace dbaxml
{
@@ -35,59 +36,51 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const Reference< XAttributeList > & _xAttrList
- ,const sal_uInt16 _nToken) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ ,sal_Int32 nElement
+ ,const Reference< XFastAttributeList > & _xAttrList) :
+ SvXMLImportContext( rImport )
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetDataSourceInfoElemTokenMap();
-
PropertyValue aProperty;
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
bool bAutoEnabled = false;
bool bFoundField = false,bFoundThousand = false, bFoundCharset = false;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ OUString sValue = aIter.toString();
aProperty.Name.clear();
- sal_uInt16 nToken = rTokenMap.Get( nPrefix, sLocalName );
- switch( nToken )
+ switch( aIter.getToken() & TOKEN_MASK )
{
- case XML_TOK_ADDITIONAL_COLUMN_STATEMENT:
+ case XML_ADDITIONAL_COLUMN_STATEMENT:
aProperty.Name = PROPERTY_AUTOINCREMENTCREATION;
bAutoEnabled = true;
break;
- case XML_TOK_ROW_RETRIEVING_STATEMENT:
+ case XML_ROW_RETRIEVING_STATEMENT:
aProperty.Name = INFO_AUTORETRIEVEVALUE;
bAutoEnabled = true;
break;
- case XML_TOK_STRING:
+ case XML_STRING:
aProperty.Name = INFO_TEXTDELIMITER;
break;
- case XML_TOK_FIELD:
+ case XML_FIELD:
aProperty.Name = INFO_FIELDDELIMITER;
bFoundField = true;
break;
- case XML_TOK_DECIMAL:
+ case XML_DECIMAL:
aProperty.Name = INFO_DECIMALDELIMITER;
break;
- case XML_TOK_THOUSAND:
+ case XML_THOUSAND:
aProperty.Name = INFO_THOUSANDSDELIMITER;
bFoundThousand = true;
break;
- case XML_TOK_ENCODING:
+ case XML_ENCODING:
aProperty.Name = INFO_CHARSET;
bFoundCharset = true;
break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
}
if ( !aProperty.Name.isEmpty() )
{
@@ -103,7 +96,7 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport
}
if ( rImport.isNewFormat() )
{
- if ( XML_TOK_DELIMITER == _nToken )
+ if ( (nElement & TOKEN_MASK) == XML_DELIMITER )
{
if ( !bFoundField )
{
@@ -118,7 +111,7 @@ OXMLDataSourceInfo::OXMLDataSourceInfo( ODBFilter& rImport
rImport.addInfo(aProperty);
}
}
- if ( XML_TOK_FONT_CHARSET == _nToken && !bFoundCharset )
+ if ( (nElement & TOKEN_MASK) == XML_FONT_CHARSET && !bFoundCharset )
{
aProperty.Name = INFO_CHARSET;
aProperty.Value <<= OUString("utf8");
diff --git a/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx b/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
index 1d76aca40017..b0f617a53dc8 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceInfo.hxx
@@ -28,10 +28,11 @@ namespace dbaxml
{
public:
- OXMLDataSourceInfo( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList
- ,const sal_uInt16 _nToken);
+ 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.cxx b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
index a874f14bdffb..bd0506401f14 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.cxx
@@ -40,35 +40,27 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLDataSourceSetting::OXMLDataSourceSetting( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const Reference< XAttributeList > & _xAttrList
+ ,const Reference< XFastAttributeList > & _xAttrList
,OXMLDataSourceSetting* _pContainer) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ SvXMLImportContext( rImport )
,m_pContainer(_pContainer)
,m_bIsList(false)
{
m_aPropType = cppu::UnoType<void>::get();
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetDataSourceInfoElemTokenMap();
-
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ OUString sValue = aIter.toString();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ switch( aIter.getToken() & TOKEN_MASK )
{
- case XML_TOK_DATA_SOURCE_SETTING_IS_LIST:
+ case XML_DATA_SOURCE_SETTING_IS_LIST:
m_bIsList = sValue == "true";
break;
- case XML_TOK_DATA_SOURCE_SETTING_TYPE:
+ case XML_DATA_SOURCE_SETTING_TYPE:
{
// needs to be translated into a css::uno::Type
static std::map< OUString, css::uno::Type > s_aTypeNameMap = [&]()
@@ -91,9 +83,11 @@ OXMLDataSourceSetting::OXMLDataSourceSetting( ODBFilter& rImport
m_aPropType = aTypePos->second;
}
break;
- case XML_TOK_DATA_SOURCE_SETTING_NAME:
+ case XML_DATA_SOURCE_SETTING_NAME:
m_aSetting.Name = sValue;
break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
}
}
@@ -103,30 +97,27 @@ OXMLDataSourceSetting::~OXMLDataSourceSetting()
{
}
-SvXMLImportContextRef OXMLDataSourceSetting::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDataSourceSetting::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDataSourceInfoElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_DATA_SOURCE_SETTING:
+ case XML_DATA_SOURCE_SETTING:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSourceSetting( GetOwnImport(), nPrefix, rLocalName,xAttrList);
+ pContext = new OXMLDataSourceSetting( GetOwnImport(), xAttrList);
break;
- case XML_TOK_DATA_SOURCE_SETTING_VALUE:
+ case XML_DATA_SOURCE_SETTING_VALUE:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSourceSetting( GetOwnImport(), nPrefix, rLocalName,xAttrList,this );
+ pContext = new OXMLDataSourceSetting( GetOwnImport(), xAttrList,this );
break;
}
return pContext;
}
-void OXMLDataSourceSetting::EndElement()
+void OXMLDataSourceSetting::endFastElement(sal_Int32 )
{
if ( !m_aSetting.Name.isEmpty() )
{
@@ -142,7 +133,7 @@ void OXMLDataSourceSetting::EndElement()
}
}
-void OXMLDataSourceSetting::Characters( const OUString& rChars )
+void OXMLDataSourceSetting::characters( const OUString& rChars )
{
if ( m_pContainer )
m_pContainer->addValue(rChars);
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx b/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
index 293a9004185b..9f28d3343c83 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSetting.hxx
@@ -38,19 +38,20 @@ namespace dbaxml
static css::uno::Any convertString(const css::uno::Type& _rExpectedType, const OUString& _rReadCharacters);
public:
- OXMLDataSourceSetting( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList
+ OXMLDataSourceSetting( ODBFilter& rImport
+ ,const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList
,OXMLDataSourceSetting* _pContainer = nullptr);
virtual ~OXMLDataSourceSetting() override;
- virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & 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;
- virtual void EndElement() override;
+ virtual void SAL_CALL startFastElement( sal_Int32 /*nElement*/,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList >& ) override {}
- virtual void Characters( const OUString& rChars ) override;
+ virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
+
+ virtual void SAL_CALL characters( const OUString& rChars ) override;
/** adds value to property
@param _sValue
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSettings.cxx b/dbaccess/source/filter/xml/xmlDataSourceSettings.cxx
index 3ff748158753..eff915c1d62a 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSettings.cxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSettings.cxx
@@ -35,10 +35,8 @@ namespace dbaxml
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::xml::sax;
-OXMLDataSourceSettings::OXMLDataSourceSettings( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+OXMLDataSourceSettings::OXMLDataSourceSettings( ODBFilter& rImport ) :
+ SvXMLImportContext( rImport )
{
}
@@ -48,19 +46,16 @@ OXMLDataSourceSettings::~OXMLDataSourceSettings()
}
-SvXMLImportContextRef OXMLDataSourceSettings::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDataSourceSettings::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDataSourceInfoElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_DATA_SOURCE_SETTING:
+ case XML_DATA_SOURCE_SETTING:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSourceSetting( GetOwnImport(), nPrefix, rLocalName,xAttrList);
+ pContext = new OXMLDataSourceSetting( GetOwnImport(), xAttrList );
break;
}
diff --git a/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx b/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
index 1812212479f0..27bd20435fb9 100644
--- a/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
+++ b/dbaccess/source/filter/xml/xmlDataSourceSettings.hxx
@@ -29,12 +29,13 @@ namespace dbaxml
ODBFilter& GetOwnImport();
public:
- OXMLDataSourceSettings( ODBFilter& rImport, sal_uInt16 nPrfx,const OUString& rLName);
+ OXMLDataSourceSettings( ODBFilter& rImport );
virtual ~OXMLDataSourceSettings() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDatabase.cxx b/dbaccess/source/filter/xml/xmlDatabase.cxx
index d6ca6e6e1d4a..80e929e849c9 100644
--- a/dbaccess/source/filter/xml/xmlDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlDatabase.cxx
@@ -40,9 +40,8 @@ namespace dbaxml
using namespace ::com::sun::star::sdbcx;
using namespace ::com::sun::star::xml::sax;
-OXMLDatabase::OXMLDatabase( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& rLName ) :
- SvXMLImportContext( rImport, nPrfx, rLName )
+OXMLDatabase::OXMLDatabase( ODBFilter& rImport ) :
+ SvXMLImportContext( rImport )
{
}
@@ -52,21 +51,18 @@ OXMLDatabase::~OXMLDatabase()
}
-SvXMLImportContextRef OXMLDatabase::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDatabase::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDatabaseElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_DATASOURCE:
+ case XML_DATASOURCE:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLDataSource( GetOwnImport(), nPrefix, rLocalName, xAttrList, OXMLDataSource::eDataSource );
+ pContext = new OXMLDataSource( GetOwnImport(), xAttrList, OXMLDataSource::eDataSource );
break;
- case XML_TOK_FORMS:
+ case XML_FORMS:
{
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Any aValue;
@@ -77,11 +73,11 @@ SvXMLImportContextRef OXMLDatabase::CreateChildContext(
{
Reference<XFormDocumentsSupplier> xSup(GetOwnImport().GetModel(),UNO_QUERY);
if ( xSup.is() )
- pContext = new OXMLDocuments( GetOwnImport(), nPrefix, rLocalName,xSup->getFormDocuments(),SERVICE_NAME_FORM_COLLECTION,SERVICE_SDB_DOCUMENTDEFINITION);
+ pContext = new OXMLDocuments( GetOwnImport(), xSup->getFormDocuments(),SERVICE_NAME_FORM_COLLECTION,SERVICE_SDB_DOCUMENTDEFINITION);
}
}
break;
- case XML_TOK_REPORTS:
+ case XML_REPORTS:
{
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Any aValue;
@@ -92,11 +88,11 @@ SvXMLImportContextRef OXMLDatabase::CreateChildContext(
{
Reference<XReportDocumentsSupplier> xSup(GetOwnImport().GetModel(),UNO_QUERY);
if ( xSup.is() )
- pContext = new OXMLDocuments( GetOwnImport(), nPrefix, rLocalName,xSup->getReportDocuments(),SERVICE_NAME_REPORT_COLLECTION,SERVICE_SDB_DOCUMENTDEFINITION);
+ pContext = new OXMLDocuments( GetOwnImport(), xSup->getReportDocuments(),SERVICE_NAME_REPORT_COLLECTION,SERVICE_SDB_DOCUMENTDEFINITION);
}
}
break;
- case XML_TOK_QUERIES:
+ case XML_QUERIES:
{
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Any aValue;
@@ -107,17 +103,17 @@ SvXMLImportContextRef OXMLDatabase::CreateChildContext(
{
Reference<XQueryDefinitionsSupplier> xSup(GetOwnImport().getDataSource(),UNO_QUERY);
if ( xSup.is() )
- pContext = new OXMLDocuments( GetOwnImport(), nPrefix, rLocalName,xSup->getQueryDefinitions(),SERVICE_NAME_QUERY_COLLECTION);
+ pContext = new OXMLDocuments( GetOwnImport(), xSup->getQueryDefinitions(),SERVICE_NAME_QUERY_COLLECTION);
}
}
break;
- case XML_TOK_TABLES:
- case XML_TOK_SCHEMA_DEFINITION:
+ case XML_TABLE_REPRESENTATIONS:
+ case XML_SCHEMA_DEFINITION:
{
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
Reference<XTablesSupplier> xSup(GetOwnImport().getDataSource(),UNO_QUERY);
if ( xSup.is() )
- pContext = new OXMLDocuments( GetOwnImport(), nPrefix, rLocalName,xSup->getTables());
+ pContext = new OXMLDocuments( GetOwnImport(), xSup->getTables());
}
break;
}
@@ -130,7 +126,7 @@ ODBFilter& OXMLDatabase::GetOwnImport()
return static_cast<ODBFilter&>(GetImport());
}
-void OXMLDatabase::EndElement()
+void OXMLDatabase::endFastElement(sal_Int32)
{
GetOwnImport().setPropertyInfo();
}
diff --git a/dbaccess/source/filter/xml/xmlDatabase.hxx b/dbaccess/source/filter/xml/xmlDatabase.hxx
index 73dd1cfa8de4..d1f87c263c3d 100644
--- a/dbaccess/source/filter/xml/xmlDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlDatabase.hxx
@@ -24,20 +24,20 @@
namespace dbaxml
{
class ODBFilter;
- class OXMLDatabase : public SvXMLImportContext
+ class OXMLDatabase final : public SvXMLImportContext
{
ODBFilter& GetOwnImport();
public:
- OXMLDatabase( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName );
+ OXMLDatabase( ODBFilter& rImport );
virtual ~OXMLDatabase() override;
- virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & 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;
- virtual void EndElement() 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.cxx b/dbaccess/source/filter/xml/xmlDatabaseDescription.cxx
index 3290e3344f8e..c024d99096c1 100644
--- a/dbaccess/source/filter/xml/xmlDatabaseDescription.cxx
+++ b/dbaccess/source/filter/xml/xmlDatabaseDescription.cxx
@@ -35,9 +35,8 @@ namespace dbaxml
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::xml::sax;
-OXMLDatabaseDescription::OXMLDatabaseDescription( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+OXMLDatabaseDescription::OXMLDatabaseDescription( ODBFilter& rImport ) :
+ SvXMLImportContext( rImport )
,m_bFoundOne(false)
{
}
@@ -47,30 +46,27 @@ OXMLDatabaseDescription::~OXMLDatabaseDescription()
}
-SvXMLImportContextRef OXMLDatabaseDescription::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDatabaseDescription::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDatabaseDescriptionElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_FILE_BASED_DATABASE:
+ case XML_FILE_BASED_DATABASE:
if ( !m_bFoundOne )
{
m_bFoundOne = true;
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLFileBasedDatabase( GetOwnImport(), nPrefix, rLocalName,xAttrList );
+ pContext = new OXMLFileBasedDatabase( GetOwnImport(), xAttrList );
}
break;
- case XML_TOK_SERVER_DATABASE:
+ case XML_SERVER_DATABASE:
if ( !m_bFoundOne )
{
m_bFoundOne = true;
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLServerDatabase( GetOwnImport(), nPrefix, rLocalName,xAttrList );
+ pContext = new OXMLServerDatabase( GetOwnImport(), xAttrList );
}
break;
}
diff --git a/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx b/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
index a95f1f546901..331f98dd832c 100644
--- a/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
+++ b/dbaccess/source/filter/xml/xmlDatabaseDescription.hxx
@@ -33,13 +33,13 @@ namespace dbaxml
ODBFilter& GetOwnImport();
public:
- OXMLDatabaseDescription( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName);
+ OXMLDatabaseDescription( ODBFilter& rImport);
virtual ~OXMLDatabaseDescription() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlDocuments.cxx b/dbaccess/source/filter/xml/xmlDocuments.cxx
index 4c58e6fada53..e5fd75d9997b 100644
--- a/dbaccess/source/filter/xml/xmlDocuments.cxx
+++ b/dbaccess/source/filter/xml/xmlDocuments.cxx
@@ -36,12 +36,10 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLDocuments::OXMLDocuments( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- , const OUString& rLName
,const Reference< XNameAccess >& _xContainer
,const OUString& _sCollectionServiceName
,const OUString& _sComponentServiceName) :
- SvXMLImportContext( rImport, nPrfx, rLName )
+ SvXMLImportContext( rImport )
,m_xContainer(_xContainer)
,m_sCollectionServiceName(_sCollectionServiceName)
,m_sComponentServiceName(_sComponentServiceName)
@@ -50,12 +48,10 @@ OXMLDocuments::OXMLDocuments( ODBFilter& rImport
}
OXMLDocuments::OXMLDocuments( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- , const OUString& rLName
,const Reference< XNameAccess >& _xContainer
,const OUString& _sCollectionServiceName
) :
- SvXMLImportContext( rImport, nPrfx, rLName )
+ SvXMLImportContext( rImport )
,m_xContainer(_xContainer)
,m_sCollectionServiceName(_sCollectionServiceName)
{
@@ -66,31 +62,29 @@ OXMLDocuments::~OXMLDocuments()
}
-SvXMLImportContextRef OXMLDocuments::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLDocuments::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDocumentsElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_TABLE:
+ case XML_TABLE:
+ case XML_TABLE_REPRESENTATION:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLTable( GetOwnImport(), nPrefix, rLocalName, xAttrList, m_xContainer, "com.sun.star.sdb.TableDefinition");
+ pContext = new OXMLTable( GetOwnImport(), xAttrList, m_xContainer, "com.sun.star.sdb.TableDefinition");
break;
- case XML_TOK_QUERY:
+ case XML_QUERY:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLQuery( GetOwnImport(), nPrefix, rLocalName,xAttrList,m_xContainer );
+ pContext = new OXMLQuery( GetOwnImport(), xAttrList, m_xContainer );
break;
- case XML_TOK_COMPONENT:
+ case XML_COMPONENT:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLComponent( GetOwnImport(), nPrefix, rLocalName,xAttrList,m_xContainer,m_sComponentServiceName );
+ pContext = new OXMLComponent( GetOwnImport(), xAttrList, m_xContainer,m_sComponentServiceName );
break;
- case XML_TOK_COMPONENT_COLLECTION:
+ case XML_COMPONENT_COLLECTION:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLHierarchyCollection( GetOwnImport(), nPrefix, rLocalName,xAttrList,m_xContainer,m_sCollectionServiceName,m_sComponentServiceName );
+ pContext = new OXMLHierarchyCollection( GetOwnImport(), xAttrList, m_xContainer,m_sCollectionServiceName,m_sComponentServiceName );
break;
}
diff --git a/dbaccess/source/filter/xml/xmlDocuments.hxx b/dbaccess/source/filter/xml/xmlDocuments.hxx
index d0141d632550..027274267650 100644
--- a/dbaccess/source/filter/xml/xmlDocuments.hxx
+++ b/dbaccess/source/filter/xml/xmlDocuments.hxx
@@ -38,25 +38,22 @@ namespace dbaxml
// for forms and reports
OXMLDocuments( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& rLName
,const css::uno::Reference< css::container::XNameAccess >& _xContainer
,const OUString& _sCollectionServiceName
,const OUString& _sComponentServiceName);
// for queries
OXMLDocuments( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& rLName
,const css::uno::Reference< css::container::XNameAccess >& _xContainer
,const OUString& _sCollectionServiceName = OUString()
);
virtual ~OXMLDocuments() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlEnums.hxx b/dbaccess/source/filter/xml/xmlEnums.hxx
index 709536443418..0a52cd22f8bd 100644
--- a/dbaccess/source/filter/xml/xmlEnums.hxx
+++ b/dbaccess/source/filter/xml/xmlEnums.hxx
@@ -23,12 +23,6 @@
namespace dbaxml
{
- enum XMLDocTokens
- {
- XML_TOK_DOC_SETTINGS,
- XML_TOK_DOC_STYLES,
- XML_TOK_DOC_CONTENT,
- };
enum XMLDocContentTokens
{
XML_TOK_CONTENT_AUTOSTYLES,
@@ -36,126 +30,6 @@ namespace dbaxml
XML_TOK_CONTENT_SCRIPTS,
XML_TOK_CONTENT_BODY,
};
- enum XMLDatabaseToken
- {
- XML_TOK_DATASOURCE,
- XML_TOK_FORMS,
- XML_TOK_REPORTS,
- XML_TOK_QUERIES,
- XML_TOK_TABLES,
- XML_TOK_SCHEMA_DEFINITION
- };
- enum XMLDataSource
- {
- XML_TOK_CONNECTION_RESOURCE,
- XML_TOK_SUPPRESS_VERSION_COLUMNS,
- XML_TOK_JAVA_DRIVER_CLASS,
- XML_TOK_EXTENSION,
- XML_TOK_IS_FIRST_ROW_HEADER_LINE,
- XML_TOK_SHOW_DELETED,
- XML_TOK_IS_TABLE_NAME_LENGTH_LIMITED,
- XML_TOK_SYSTEM_DRIVER_SETTINGS,
- XML_TOK_ENABLE_SQL92_CHECK,
- XML_TOK_APPEND_TABLE_ALIAS_NAME,
- XML_TOK_PARAMETER_NAME_SUBSTITUTION,
- XML_TOK_IGNORE_DRIVER_PRIVILEGES,
- XML_TOK_BOOLEAN_COMPARISON_MODE,
- XML_TOK_USE_CATALOG,
- XML_TOK_BASE_DN,
- XML_TOK_MAX_ROW_COUNT,
- XML_TOK_LOGIN,
- XML_TOK_TABLE_FILTER,
- XML_TOK_TABLE_TYPE_FILTER,
- XML_TOK_AUTO_INCREMENT,
- XML_TOK_DELIMITER,
- XML_TOK_DATA_SOURCE_SETTINGS,
- XML_TOK_FONT_CHARSET,
- XML_TOK_DATABASE_DESCRIPTION,
- XML_TOK_COMPOUND_DATABASE,
- XML_TOK_DB_HREF,
- XML_TOK_MEDIA_TYPE,
- XML_TOK_DB_TYPE,
- XML_TOK_HOSTNAME,
- XML_TOK_PORT,
- XML_TOK_LOCAL_SOCKET,
- XML_TOK_DATABASE_NAME,
- XML_TOK_CONNECTION_DATA,
- XML_TOK_DRIVER_SETTINGS,
- XML_TOK_JAVA_CLASSPATH,
- XML_TOK_CHARACTER_SET,
- XML_TOK_APPLICATION_CONNECTION_SETTINGS
- };
- enum XMLDatabaseDescription
- {
- XML_TOK_FILE_BASED_DATABASE,
- XML_TOK_SERVER_DATABASE
- };
- enum XMLLogin
- {
- XML_TOK_USER_NAME,
- XML_TOK_IS_PASSWORD_REQUIRED,
- XML_TOK_USE_SYSTEM_USER,
- XML_TOK_LOGIN_TIMEOUT
- };
- enum XMLDataSourceInfo
- {
- XML_TOK_STRING,
- XML_TOK_FIELD,
- XML_TOK_DECIMAL,
- XML_TOK_THOUSAND,
- XML_TOK_ADDITIONAL_COLUMN_STATEMENT,
- XML_TOK_ROW_RETRIEVING_STATEMENT,
- XML_TOK_DATA_SOURCE_SETTING,
- XML_TOK_DATA_SOURCE_SETTING_VALUE,
- XML_TOK_DATA_SOURCE_SETTING_IS_LIST,
- XML_TOK_DATA_SOURCE_SETTING_TYPE,
- XML_TOK_DATA_SOURCE_SETTING_NAME,
- XML_TOK_ENCODING,
- };
- enum XMLDocuments
- {
- XML_TOK_COMPONENT,
- XML_TOK_COMPONENT_COLLECTION,
- XML_TOK_QUERY_COLLECTION,
- XML_TOK_QUERY,
- XML_TOK_TABLE,
- XML_TOK_COLUMN
- };
- enum XMLComponent
- {
- XML_TOK_HREF ,
- XML_TOK_TYPE ,
- XML_TOK_SHOW ,
- XML_TOK_ACTUATE ,
- XML_TOK_AS_TEMPLATE ,
- XML_TOK_COMPONENT_NAME
- };
- enum XMLQueryTable
- {
- XML_TOK_QUERY_NAME,
- XML_TOK_COMMAND,
- XML_TOK_ESCAPE_PROCESSING,
- XML_TOK_FILTER_STATEMENT,
- XML_TOK_ORDER_STATEMENT,
- XML_TOK_UPDATE_TABLE,
- XML_TOK_CATALOG_NAME,
- XML_TOK_SCHEMA_NAME,
- XML_TOK_STYLE_NAME,
- XML_TOK_APPLY_FILTER,
- XML_TOK_APPLY_ORDER,
- XML_TOK_COLUMNS
- };
- enum XMLColumn
- {
- XML_TOK_COLUMN_NAME,
- XML_TOK_COLUMN_STYLE_NAME,
- XML_TOK_COLUMN_HELP_MESSAGE,
- XML_TOK_COLUMN_VISIBILITY,
- XML_TOK_COLUMN_DEFAULT_VALUE,
- XML_TOK_COLUMN_TYPE_NAME,
- XML_TOK_COLUMN_VISIBLE,
- XML_TOK_DEFAULT_CELL_STYLE_NAME
- };
} // namespace dbaxml
#endif // INCLUDED_DBACCESS_SOURCE_FILTER_XML_XMLENUMS_HXX
diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
index e81ab45933f3..b4aa35af4a87 100644
--- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx
@@ -36,63 +36,62 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLFileBasedDatabase::OXMLFileBasedDatabase( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName,
- const Reference< XAttributeList > & _xAttrList) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ const Reference< XFastAttributeList > & _xAttrList) :
+ SvXMLImportContext( rImport )
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetDataSourceElemTokenMap();
-
Reference<XPropertySet> xDataSource = rImport.getDataSource();
PropertyValue aProperty;
- const sal_Int16 nLength = (xDataSource.is() && _xAttrList.is()) ? _xAttrList->getLength() : 0;
OUString sLocation,sMediaType,sFileTypeExtension;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ if (xDataSource.is())
{
- OUString sLocalName;
- const OUString sAttrName = _xAttrList->getNameByIndex( i );
- const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- const OUString sValue = _xAttrList->getValueByIndex( i );
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
+ {
+ OUString sValue = aIter.toString();
- aProperty.Name.clear();
- aProperty.Value = Any();
+ aProperty.Name.clear();
+ aProperty.Value = Any();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
- {
- case XML_TOK_DB_HREF:
- {
- SvtPathOptions aPathOptions;
- OUString sFileName = aPathOptions.SubstituteVariable(sValue);
- if ( sValue == sFileName )
+ switch( aIter.getToken() )
+ {
+ case XML_ELEMENT(XLINK, XML_HREF):
{
- const sal_Int32 nFileNameLength = sFileName.getLength();
- if ( sFileName.endsWith("/") )
- sFileName = sFileName.copy( 0, nFileNameLength - 1 );
+ SvtPathOptions aPathOptions;
+ OUString sFileName = aPathOptions.SubstituteVariable(sValue);
+ if ( sValue == sFileName )
+ {
+ const sal_Int32 nFileNameLength = sFileName.getLength();
+ if ( sFileName.endsWith("/") )
+ sFileName = sFileName.copy( 0, nFileNameLength - 1 );
- sLocation = ::svt::OFileNotation( rImport.GetAbsoluteReference( sFileName ) ).get( ::svt::OFileNotation::N_SYSTEM );
- }
+ sLocation = ::svt::OFileNotation( rImport.GetAbsoluteReference( sFileName ) ).get( ::svt::OFileNotation::N_SYSTEM );
+ }
- if ( sLocation.isEmpty() )
- sLocation = sValue;
- }
- break;
- case XML_TOK_MEDIA_TYPE:
- sMediaType = sValue;
- break;
- case XML_TOK_EXTENSION:
- aProperty.Name = INFO_TEXTFILEEXTENSION;
- sFileTypeExtension = sValue;
- break;
- }
- if ( !aProperty.Name.isEmpty() )
- {
- if ( !aProperty.Value.hasValue() )
- aProperty.Value <<= sValue;
- rImport.addInfo(aProperty);
+ if ( sLocation.isEmpty() )
+ sLocation = sValue;
+ }
+ break;
+ case XML_ELEMENT(DB, XML_MEDIA_TYPE):
+ case XML_ELEMENT(DB_OASIS, XML_MEDIA_TYPE):
+ sMediaType = sValue;
+ break;
+ case XML_ELEMENT(DB, XML_EXTENSION):
+ case XML_ELEMENT(DB_OASIS, XML_EXTENSION):
+ aProperty.Name = INFO_TEXTFILEEXTENSION;
+ sFileTypeExtension = sValue;
+ break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
+ }
+ if ( !aProperty.Name.isEmpty() )
+ {
+ if ( !aProperty.Value.hasValue() )
+ aProperty.Value <<= sValue;
+ rImport.addInfo(aProperty);
+ }
}
}
if ( !(sLocation.isEmpty() || sMediaType.isEmpty()) )
diff --git a/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx b/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
index ed8926a96034..6ffcd44dbc92 100644
--- a/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx
@@ -30,9 +30,10 @@ namespace dbaxml
{
public:
- OXMLFileBasedDatabase( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList);
+ 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.cxx b/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx
index 44052a93ed67..3ed0e3aabfaa 100644
--- a/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx
+++ b/dbaccess/source/filter/xml/xmlHierarchyCollection.cxx
@@ -31,6 +31,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
#include <comphelper/propertysequence.hxx>
+#include <sal/log.hxx>
namespace dbaxml
{
@@ -40,33 +41,27 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLHierarchyCollection::OXMLHierarchyCollection( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const Reference< XAttributeList > & _xAttrList
+ ,const Reference< XFastAttributeList > & _xAttrList
,const Reference< XNameAccess >& _xParentContainer
,const OUString& _sCollectionServiceName
,const OUString& _sComponentServiceName) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ SvXMLImportContext( rImport )
,m_sCollectionServiceName(_sCollectionServiceName)
,m_sComponentServiceName(_sComponentServiceName)
{
-
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetComponentElemTokenMap();
-
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ OUString sValue = aIter.toString();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ switch( aIter.getToken() & TOKEN_MASK )
{
- case XML_TOK_COMPONENT_NAME:
+ case XML_NAME:
m_sName = sValue;
break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
}
}
if ( !m_sName.isEmpty() && _xParentContainer.is() )
@@ -95,12 +90,10 @@ OXMLHierarchyCollection::OXMLHierarchyCollection( ODBFilter& rImport
}
OXMLHierarchyCollection::OXMLHierarchyCollection( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
,const Reference< XNameAccess >& _xContainer
,const Reference< XPropertySet >& _xTable
) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ SvXMLImportContext( rImport )
,m_xContainer(_xContainer)
,m_xTable(_xTable)
{
@@ -111,27 +104,24 @@ OXMLHierarchyCollection::~OXMLHierarchyCollection()
}
-SvXMLImportContextRef OXMLHierarchyCollection::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLHierarchyCollection::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetDocumentsElemTokenMap();
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_COMPONENT:
+ case XML_COMPONENT:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLComponent( GetOwnImport(), nPrefix, rLocalName,xAttrList,m_xContainer,m_sComponentServiceName );
+ pContext = new OXMLComponent( GetOwnImport(), xAttrList,m_xContainer,m_sComponentServiceName );
break;
- case XML_TOK_COLUMN:
+ case XML_COLUMN:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLColumn( GetOwnImport(), nPrefix, rLocalName,xAttrList,m_xContainer,m_xTable);
+ pContext = new OXMLColumn( GetOwnImport(), xAttrList,m_xContainer,m_xTable);
break;
- case XML_TOK_COMPONENT_COLLECTION:
+ case XML_COMPONENT_COLLECTION:
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
- pContext = new OXMLHierarchyCollection( GetOwnImport(), nPrefix, rLocalName,xAttrList,m_xContainer,m_sCollectionServiceName,m_sComponentServiceName);
+ pContext = new OXMLHierarchyCollection( GetOwnImport(), xAttrList,m_xContainer,m_sCollectionServiceName,m_sComponentServiceName);
break;
}
diff --git a/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx b/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
index 4552b50b7094..758fc6321926 100644
--- a/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
+++ b/dbaccess/source/filter/xml/xmlHierarchyCollection.hxx
@@ -39,24 +39,21 @@ namespace dbaxml
public:
OXMLHierarchyCollection( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& rLName
- ,const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList
+ ,const css::uno::Reference< css::xml::sax::XFastAttributeList > & _xAttrList
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
,const OUString& _sCollectionServiceName
,const OUString& _sComponentServiceName
);
OXMLHierarchyCollection( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& rLName
,const css::uno::Reference< css::container::XNameAccess >& _xContainer
,const css::uno::Reference< css::beans::XPropertySet >& _xTable
);
virtual ~OXMLHierarchyCollection() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlLogin.cxx b/dbaccess/source/filter/xml/xmlLogin.cxx
index d747ef801f55..786be60253b2 100644
--- a/dbaccess/source/filter/xml/xmlLogin.cxx
+++ b/dbaccess/source/filter/xml/xmlLogin.cxx
@@ -37,80 +37,77 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLLogin::OXMLLogin( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName,
- const Reference< XAttributeList > & _xAttrList ) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ const Reference< XFastAttributeList > & _xAttrList ) :
+ SvXMLImportContext( rImport )
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetLoginElemTokenMap();
-
Reference<XPropertySet> xDataSource(rImport.getDataSource());
- const sal_Int16 nLength = (xDataSource.is() && _xAttrList.is()) ? _xAttrList->getLength() : 0;
static const OUString s_sTRUE = ::xmloff::token::GetXMLToken(XML_TRUE);
bool bUserFound = false;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ if (xDataSource.is())
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
-
- try
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ OUString sValue = aIter.toString();
+
+ try
{
- case XML_TOK_USER_NAME:
- if ( !bUserFound )
- {
- bUserFound = true;
+ switch( aIter.getToken() & TOKEN_MASK )
+ {
+ case XML_USER_NAME:
+ if ( !bUserFound )
+ {
+ bUserFound = true;
+ try
+ {
+ xDataSource->setPropertyValue(PROPERTY_USER,makeAny(sValue));
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
+ }
+ break;
+ case XML_IS_PASSWORD_REQUIRED:
try
{
- xDataSource->setPropertyValue(PROPERTY_USER,makeAny(sValue));
+ xDataSource->setPropertyValue(PROPERTY_ISPASSWORDREQUIRED,makeAny(sValue == s_sTRUE));
}
catch(const Exception&)
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- }
- break;
- case XML_TOK_IS_PASSWORD_REQUIRED:
- try
- {
- xDataSource->setPropertyValue(PROPERTY_ISPASSWORDREQUIRED,makeAny(sValue == s_sTRUE));
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
- break;
- case XML_TOK_USE_SYSTEM_USER:
- if ( !bUserFound )
- {
- bUserFound = true;
- PropertyValue aProperty;
- aProperty.Name = "UseSystemUser";
- aProperty.Value <<= (sValue == s_sTRUE);
- rImport.addInfo(aProperty);
- }
- break;
- case XML_TOK_LOGIN_TIMEOUT:
- try
- {
- Reference< XDataSource>(xDataSource,UNO_QUERY_THROW)->setLoginTimeout(sValue.toInt32());
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
- }
- break;
+ break;
+ case XML_USE_SYSTEM_USER:
+ if ( !bUserFound )
+ {
+ bUserFound = true;
+ PropertyValue aProperty;
+ aProperty.Name = "UseSystemUser";
+ aProperty.Value <<= (sValue == s_sTRUE);
+ rImport.addInfo(aProperty);
+ }
+ break;
+ case XML_LOGIN_TIMEOUT:
+ try
+ {
+ Reference< XDataSource>(xDataSource,UNO_QUERY_THROW)->setLoginTimeout(sValue.toInt32());
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
+ }
+ break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
+ }
+ }
+ catch(const Exception&)
+ {
+ DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- }
- catch(const Exception&)
- {
- DBG_UNHANDLED_EXCEPTION("dbaccess");
}
}
}
diff --git a/dbaccess/source/filter/xml/xmlLogin.hxx b/dbaccess/source/filter/xml/xmlLogin.hxx
index ed47680129fd..50297416d221 100644
--- a/dbaccess/source/filter/xml/xmlLogin.hxx
+++ b/dbaccess/source/filter/xml/xmlLogin.hxx
@@ -28,9 +28,10 @@ namespace dbaxml
{
public:
- OXMLLogin( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList );
+ 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.cxx b/dbaccess/source/filter/xml/xmlQuery.cxx
index d41b1929937d..88bc13f74322 100644
--- a/dbaccess/source/filter/xml/xmlQuery.cxx
+++ b/dbaccess/source/filter/xml/xmlQuery.cxx
@@ -29,6 +29,7 @@
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
+#include <sal/log.hxx>
namespace dbaxml
{
@@ -39,35 +40,28 @@ namespace dbaxml
OXMLQuery::OXMLQuery( ODBFilter& rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const Reference< XAttributeList > & _xAttrList
+ ,const Reference< XFastAttributeList > & _xAttrList
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
) :
- OXMLTable( rImport, nPrfx, _sLocalName,_xAttrList,_xParentContainer, "com.sun.star.sdb.CommandDefinition" )
+ OXMLTable( rImport, _xAttrList,_xParentContainer, "com.sun.star.sdb.CommandDefinition" )
,m_bEscapeProcessing(true)
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetQueryElemTokenMap();
-
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
- sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- OUString sValue = _xAttrList->getValueByIndex( i );
+ OUString sValue = aIter.toString();
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ switch( aIter.getToken() & TOKEN_MASK )
{
- case XML_TOK_COMMAND:
+ case XML_COMMAND:
m_sCommand = sValue;
break;
- case XML_TOK_ESCAPE_PROCESSING:
+ case XML_ESCAPE_PROCESSING:
m_bEscapeProcessing = sValue == "true";
break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
}
}
}
@@ -77,19 +71,15 @@ OXMLQuery::~OXMLQuery()
}
-SvXMLImportContextRef OXMLQuery::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< XAttributeList > & xAttrList )
+css::uno::Reference< css::xml::sax::XFastContextHandler > OXMLQuery::createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
{
- SvXMLImportContextRef xContext = OXMLTable::CreateChildContext(nPrefix, rLocalName,xAttrList );
+ css::uno::Reference< css::xml::sax::XFastContextHandler > xContext = OXMLTable::createFastChildContext(nElement,xAttrList );
if (!xContext)
{
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetQueryElemTokenMap();
-
- switch( rTokenMap.Get( nPrefix, rLocalName ) )
+ switch( nElement & TOKEN_MASK )
{
- case XML_TOK_UPDATE_TABLE:
+ case XML_UPDATE_TABLE:
{
GetOwnImport().GetProgressBarHelper()->Increment( PROGRESS_BAR_STEP );
OUString s1;
diff --git a/dbaccess/source/filter/xml/xmlQuery.hxx b/dbaccess/source/filter/xml/xmlQuery.hxx
index 995d406a9d39..211764b49b1f 100644
--- a/dbaccess/source/filter/xml/xmlQuery.hxx
+++ b/dbaccess/source/filter/xml/xmlQuery.hxx
@@ -35,16 +35,15 @@ namespace dbaxml
public:
OXMLQuery( ODBFilter& rImport
- , sal_uInt16 nPrfx
- ,const OUString& rLName
- ,const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList
+ ,const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList
,const css::uno::Reference< css::container::XNameAccess >& _xParentContainer
);
virtual ~OXMLQuery() 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 css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
+ sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList >& AttrList ) override;
};
} // namespace dbaxml
diff --git a/dbaccess/source/filter/xml/xmlServerDatabase.cxx b/dbaccess/source/filter/xml/xmlServerDatabase.cxx
index 6eb9ce76ef12..e231d19f78f1 100644
--- a/dbaccess/source/filter/xml/xmlServerDatabase.cxx
+++ b/dbaccess/source/filter/xml/xmlServerDatabase.cxx
@@ -34,47 +34,44 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLServerDatabase::OXMLServerDatabase( ODBFilter& rImport,
- sal_uInt16 nPrfx, const OUString& _sLocalName,
- const Reference< XAttributeList > & _xAttrList) :
- SvXMLImportContext( rImport, nPrfx, _sLocalName )
+ const Reference< XFastAttributeList > & _xAttrList) :
+ SvXMLImportContext( rImport )
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = rImport.GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = rImport.GetDataSourceElemTokenMap();
-
Reference<XPropertySet> xDataSource = rImport.getDataSource();
PropertyValue aProperty;
- const sal_Int16 nLength = (xDataSource.is() && _xAttrList.is()) ? _xAttrList->getLength() : 0;
OUString sType,sHostName,sPortNumber,sDatabaseName;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ if (xDataSource.is())
{
- OUString sLocalName;
- const OUString sAttrName = _xAttrList->getNameByIndex( i );
- const sal_uInt16 nPrefix = rMap.GetKeyByAttrName( sAttrName,&sLocalName );
- const OUString sValue = _xAttrList->getValueByIndex( i );
-
- switch( rTokenMap.Get( nPrefix, sLocalName ) )
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- case XML_TOK_DB_TYPE:
- sType = sValue;
- break;
- case XML_TOK_HOSTNAME:
- sHostName = sValue;
- break;
- case XML_TOK_PORT:
- sPortNumber = sValue;
- break;
- case XML_TOK_LOCAL_SOCKET:
- aProperty.Name = "LocalSocket";
- aProperty.Value <<= sValue;
- rImport.addInfo(aProperty);
- break;
- case XML_TOK_DATABASE_NAME:
- sDatabaseName = sValue;
- break;
+ OUString sValue = aIter.toString();
+
+ switch( aIter.getToken() & TOKEN_MASK )
+ {
+ case XML_TYPE:
+ sType = sValue;
+ break;
+ case XML_HOSTNAME:
+ sHostName = sValue;
+ break;
+ case XML_PORT:
+ sPortNumber = sValue;
+ break;
+ case XML_LOCAL_SOCKET:
+ aProperty.Name = "LocalSocket";
+ aProperty.Value <<= sValue;
+ rImport.addInfo(aProperty);
+ break;
+ case XML_DATABASE_NAME:
+ sDatabaseName = sValue;
+ break;
+ default:
+ SAL_WARN("dbaccess", "unknown attribute " << SvXMLImport::getNameFromToken(aIter.getToken()) << " value=" << aIter.toString());
+ }
}
}
if ( !sType.isEmpty() )
diff --git a/dbaccess/source/filter/xml/xmlServerDatabase.hxx b/dbaccess/source/filter/xml/xmlServerDatabase.hxx
index f6576f62dab5..41c7186c13c1 100644
--- a/dbaccess/source/filter/xml/xmlServerDatabase.hxx
+++ b/dbaccess/source/filter/xml/xmlServerDatabase.hxx
@@ -30,9 +30,10 @@ namespace dbaxml
{
public:
- OXMLServerDatabase( ODBFilter& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
- const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList);
+ 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/xmlTable.cxx b/dbaccess/source/filter/xml/xmlTable.cxx
index b1fc0084d828..77861056ce94 100644
--- a/dbaccess/source/filter/xml/xmlTable.cxx
+++ b/dbaccess/source/filter/xml/xmlTable.cxx
@@ -34,6 +34,7 @@
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <comphelper/propertysequence.hxx>
+#include <sal/log.hxx>
namespace dbaxml
{
@@ -43,50 +44,43 @@ namespace dbaxml
using namespace ::com::sun::star::xml::sax;
OXMLTable::OXMLTable( ODBFilter& _rImport
- ,sal_uInt16 nPrfx
- ,const OUString& _sLocalName
- ,const uno::Reference< XAttributeList > & _xAttrList
+ ,const uno::Reference< XFastAttributeList > & _xAttrList
,const uno::Reference< css::container::XNameAccess >& _xParentContainer
,const OUString& _sServiceName
)
- :SvXMLImportContext( _rImport, nPrfx, _sLocalName )
+ :SvXMLImportContext( _rImport )
,m_xParentContainer(_xParentContainer)
,m_bApplyFilter(false)
,m_bApplyOrder(false)
{
-
- OSL_ENSURE(_xAttrList.is(),"Attribute list is NULL!");
- const SvXMLNamespaceMap& rMap = GetOwnImport().GetNamespaceMap();
- const SvXMLTokenMap& rTokenMap = GetOwnImport().GetQueryElemTokenMap();
-
- sal_Int16 nLength = (_xAttrList.is()) ? _xAttrList->getLength() : 0;
- for(sal_Int16 i = 0; i < nLength; ++i)
+ sax_fastparser::FastAttributeList *pAttribList =
+ sax_fastparser::FastAttributeList::castToFastAttributeList( _xAttrList );
+ for (auto &aIter : *pAttribList)
{
- OUString sLocalName;
- OUString sAttrName = _xAttrList->getNameByIndex( i );
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list