summaryrefslogtreecommitdiff
path: root/sw/source/filter/xml
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2020-11-22 20:00:54 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-11-23 07:21:40 +0100
commit607935650fab97092c960df54830e20b4f6b93a7 (patch)
tree2120652bfb532457d8fa4c901923963b68d11123 /sw/source/filter/xml
parente4e88a402cd43a5553ae364c74a01e3f0e462473 (diff)
fastparser in SwXMLTableContext
Change-Id: I52ea773993a19384c5a7ad3eb95b518446ea5e96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106360 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw/source/filter/xml')
-rw-r--r--sw/source/filter/xml/xmltbli.cxx245
-rw-r--r--sw/source/filter/xml/xmltbli.hxx10
-rw-r--r--sw/source/filter/xml/xmltexti.cxx5
3 files changed, 119 insertions, 141 deletions
diff --git a/sw/source/filter/xml/xmltbli.cxx b/sw/source/filter/xml/xmltbli.cxx
index 560e568c5f8e..e3061074329d 100644
--- a/sw/source/filter/xml/xmltbli.cxx
+++ b/sw/source/filter/xml/xmltbli.cxx
@@ -413,8 +413,8 @@ class SwXMLTableCellContext_Impl : public SvXMLImportContext
public:
SwXMLTableCellContext_Impl(
- SwXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
+ SwXMLImport& rImport, sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList,
SwXMLTableContext *pTable );
virtual SvXMLImportContextRef CreateChildContext(
@@ -428,10 +428,10 @@ public:
}
SwXMLTableCellContext_Impl::SwXMLTableCellContext_Impl(
- SwXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
+ SwXMLImport& rImport, sal_Int32 /*nElement*/,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList,
SwXMLTableContext *pTable ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
+ SvXMLImportContext( rImport ),
m_sFormula(),
m_xMyTable( pTable ),
m_fValue( 0.0 ),
@@ -446,115 +446,107 @@ SwXMLTableCellContext_Impl::SwXMLTableCellContext_Impl(
m_bHasTableContent( false )
{
m_sSaveParaDefault = GetImport().GetTextImport()->GetCellParaStyleDefault();
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
+ for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) )
{
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
-
- OUString aLocalName;
- const sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
- const SvXMLTokenMap& rTokenMap =
- GetSwImport().GetTableCellAttrTokenMap();
- switch( rTokenMap.Get( nPrefix, aLocalName ) )
+ const OUString sValue = aIter.toString();
+ switch( aIter.getToken() )
{
- case XML_TOK_TABLE_STYLE_NAME:
- m_aStyleName = rValue;
- GetImport().GetTextImport()->SetCellParaStyleDefault(rValue);
+ case XML_ELEMENT(TABLE, XML_STYLE_NAME):
+ m_aStyleName = sValue;
+ GetImport().GetTextImport()->SetCellParaStyleDefault(sValue);
break;
- case XML_TOK_TABLE_NUM_COLS_SPANNED:
- m_nColSpan = static_cast<sal_uInt32>(std::max<sal_Int32>(1, rValue.toInt32()));
+ case XML_ELEMENT(TABLE, XML_NUMBER_COLUMNS_SPANNED):
+ m_nColSpan = static_cast<sal_uInt32>(std::max<sal_Int32>(1, sValue.toInt32()));
if (m_nColSpan > 256)
{
SAL_INFO("sw.xml", "ignoring huge table:number-columns-spanned " << m_nColSpan);
m_nColSpan = 1;
}
break;
- case XML_TOK_TABLE_NUM_ROWS_SPANNED:
- m_nRowSpan = static_cast<sal_uInt32>(std::max<sal_Int32>(1, rValue.toInt32()));
+ case XML_ELEMENT(TABLE, XML_NUMBER_ROWS_SPANNED):
+ m_nRowSpan = static_cast<sal_uInt32>(std::max<sal_Int32>(1, sValue.toInt32()));
if (m_nRowSpan > 8192 || (m_nRowSpan > 256 && utl::ConfigManager::IsFuzzing()))
{
SAL_INFO("sw.xml", "ignoring huge table:number-rows-spanned " << m_nRowSpan);
m_nRowSpan = 1;
}
break;
- case XML_TOK_TABLE_NUM_COLS_REPEATED:
- m_nColRepeat = static_cast<sal_uInt32>(std::max<sal_Int32>(1, rValue.toInt32()));
+ case XML_ELEMENT(TABLE, XML_NUMBER_COLUMNS_REPEATED):
+ m_nColRepeat = static_cast<sal_uInt32>(std::max<sal_Int32>(1, sValue.toInt32()));
if (m_nColRepeat > 256)
{
SAL_INFO("sw.xml", "ignoring huge table:number-columns-repeated " << m_nColRepeat);
m_nColRepeat = 1;
}
break;
- case XML_TOK_TABLE_FORMULA:
+ case XML_ELEMENT(TABLE, XML_FORMULA):
{
OUString sTmp;
const sal_uInt16 nPrefix2 = GetImport().GetNamespaceMap().
- GetKeyByAttrValueQName(rValue, &sTmp);
- m_sFormula = XML_NAMESPACE_OOOW == nPrefix2 ? sTmp : rValue;
+ GetKeyByAttrValueQName(sValue, &sTmp);
+ m_sFormula = XML_NAMESPACE_OOOW == nPrefix2 ? sTmp : sValue;
}
break;
- case XML_TOK_TABLE_VALUE:
+ case XML_ELEMENT(OFFICE, XML_VALUE):
{
double fTmp;
- if (::sax::Converter::convertDouble(fTmp, rValue))
+ if (::sax::Converter::convertDouble(fTmp, sValue))
{
m_fValue = fTmp;
m_bHasValue = true;
}
}
break;
- case XML_TOK_TABLE_TIME_VALUE:
+ case XML_ELEMENT(OFFICE, XML_TIME_VALUE):
{
double fTmp;
- if (::sax::Converter::convertDuration(fTmp, rValue))
+ if (::sax::Converter::convertDuration(fTmp, sValue))
{
m_fValue = fTmp;
m_bHasValue = true;
}
}
break;
- case XML_TOK_TABLE_DATE_VALUE:
+ case XML_ELEMENT(OFFICE, XML_DATE_VALUE):
{
double fTmp;
if (GetImport().GetMM100UnitConverter().convertDateTime(fTmp,
- rValue))
+ sValue))
{
m_fValue = fTmp;
m_bHasValue = true;
}
}
break;
- case XML_TOK_TABLE_BOOLEAN_VALUE:
+ case XML_ELEMENT(OFFICE, XML_BOOLEAN_VALUE):
{
bool bTmp(false);
- if (::sax::Converter::convertBool(bTmp, rValue))
+ if (::sax::Converter::convertBool(bTmp, sValue))
{
m_fValue = (bTmp ? 1.0 : 0.0);
m_bHasValue = true;
}
}
break;
- case XML_TOK_TABLE_PROTECTED:
+ case XML_ELEMENT(TABLE, XML_PROTECT): // for backwards compatibility with SRC629 (and before)
+ case XML_ELEMENT(TABLE, XML_PROTECTED):
{
bool bTmp(false);
- if (::sax::Converter::convertBool(bTmp, rValue))
+ if (::sax::Converter::convertBool(bTmp, sValue))
{
m_bProtect = bTmp;
}
}
break;
- case XML_TOK_TABLE_STRING_VALUE:
+ case XML_ELEMENT(OFFICE, XML_STRING_VALUE):
{
- m_StringValue = rValue;
+ m_StringValue = sValue;
m_bHasStringValue = true;
}
break;
- case XML_TOK_TABLE_VALUE_TYPE:
+ case XML_ELEMENT(OFFICE, XML_VALUE_TYPE):
{
- if ("string" == rValue)
+ if ("string" == sValue)
{
m_bValueTypeIsString = true;
}
@@ -563,6 +555,8 @@ SwXMLTableCellContext_Impl::SwXMLTableCellContext_Impl(
// but we've been reading those without checking forever.
}
break;
+ default:
+ SAL_WARN("sw", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << aIter.toString());
}
}
}
@@ -627,8 +621,7 @@ SvXMLImportContextRef SwXMLTableCellContext_Impl::CreateChildContext(
if( !HasContent() )
{
SwXMLTableContext *pTableContext =
- new SwXMLTableContext( GetSwImport(), nPrefix, rLocalName,
- GetTable() );
+ new SwXMLTableContext( GetSwImport(), GetTable() );
pContext = pTableContext;
if( GetTable()->IsValid() )
InsertContent( pTableContext );
@@ -861,13 +854,12 @@ class SwXMLTableRowContext_Impl : public SvXMLImportContext
public:
SwXMLTableRowContext_Impl(
- SwXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
+ SwXMLImport& rImport, sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList,
SwXMLTableContext *pTable, bool bInHead=false );
- virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList ) override;
+ virtual css::uno::Reference<css::xml::sax::XFastContextHandler> SAL_CALL createFastChildContext( sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList ) override;
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
@@ -877,52 +869,43 @@ public:
}
SwXMLTableRowContext_Impl::SwXMLTableRowContext_Impl( SwXMLImport& rImport,
- sal_uInt16 nPrfx,
- const OUString& rLName,
- const Reference< xml::sax::XAttributeList > & xAttrList,
+ sal_Int32 /*nElement*/,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList,
SwXMLTableContext *pTable,
bool bInHead ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
+ SvXMLImportContext( rImport ),
xMyTable( pTable ),
nRowRepeat( 1 )
{
OUString aStyleName, aDfltCellStyleName;
OUString sXmlId;
- sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
- for( sal_Int16 i=0; i < nAttrCount; i++ )
+ for( auto& aIter : sax_fastparser::castToFastAttributeList(xAttrList) )
{
- const OUString& rAttrName = xAttrList->getNameByIndex( i );
-
- OUString aLocalName;
- const sal_uInt16 nPrefix =
- GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName,
- &aLocalName );
- const OUString& rValue = xAttrList->getValueByIndex( i );
- if( XML_NAMESPACE_TABLE == nPrefix )
+ const OUString sValue = aIter.toString();
+ switch(aIter.getToken())
{
- if( IsXMLToken( aLocalName, XML_STYLE_NAME ) )
- {
- aStyleName = rValue;
- }
- else if( IsXMLToken( aLocalName, XML_NUMBER_ROWS_REPEATED ) )
+ case XML_ELEMENT(TABLE, XML_STYLE_NAME):
+ aStyleName = sValue;
+ break;
+ case XML_ELEMENT(STYLE, XML_NUMBER_ROWS_REPEATED):
{
- nRowRepeat = static_cast<sal_uInt32>(std::max<sal_Int32>(1, rValue.toInt32()));
+ nRowRepeat = static_cast<sal_uInt32>(std::max<sal_Int32>(1, sValue.toInt32()));
if (nRowRepeat > 8192 || (nRowRepeat > 256 && utl::ConfigManager::IsFuzzing()))
{
SAL_INFO("sw.xml", "ignoring huge table:number-rows-repeated " << nRowRepeat);
nRowRepeat = 1;
}
+ break;
}
- else if( IsXMLToken( aLocalName, XML_DEFAULT_CELL_STYLE_NAME ) )
- {
- aDfltCellStyleName = rValue;
- }
- }
- else if ( (XML_NAMESPACE_XML == nPrefix) &&
- IsXMLToken( aLocalName, XML_ID ) )
- {
- sXmlId = rValue;
+ case XML_ELEMENT(STYLE, XML_DEFAULT_CELL_STYLE_NAME):
+ aDfltCellStyleName = sValue;
+ break;
+ case XML_ELEMENT(XML, XML_ID):
+ sXmlId = sValue;
+ break;
+ default:
+ SAL_WARN("sw", "unknown attribute " << SvXMLImport::getPrefixAndNameFromToken(aIter.getToken()) << "=" << sValue);
}
}
if( GetTable()->IsValid() )
@@ -940,27 +923,25 @@ void SwXMLTableRowContext_Impl::endFastElement(sal_Int32 )
}
}
-SvXMLImportContextRef SwXMLTableRowContext_Impl::CreateChildContext(
- sal_uInt16 nPrefix, const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
+css::uno::Reference<css::xml::sax::XFastContextHandler> SwXMLTableRowContext_Impl::createFastChildContext(
+ sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList )
{
SvXMLImportContext *pContext = nullptr;
- if( XML_NAMESPACE_TABLE == nPrefix || XML_NAMESPACE_LO_EXT == nPrefix )
+ if( nElement == XML_ELEMENT(TABLE, XML_TABLE_CELL) ||
+ nElement == XML_ELEMENT(LO_EXT, XML_TABLE_CELL) )
{
- if( IsXMLToken( rLocalName, XML_TABLE_CELL ) )
- {
- if( !GetTable()->IsValid() || GetTable()->IsInsertCellPossible() )
- pContext = new SwXMLTableCellContext_Impl( GetSwImport(),
- nPrefix,
- rLocalName,
+ if( !GetTable()->IsValid() || GetTable()->IsInsertCellPossible() )
+ pContext = new SwXMLTableCellContext_Impl( GetSwImport(), nElement,
xAttrList,
GetTable() );
- }
- else if( IsXMLToken( rLocalName, XML_COVERED_TABLE_CELL ) )
- pContext = new SvXMLImportContext( GetImport(), nPrefix,
- rLocalName );
}
+ else if( nElement == XML_ELEMENT(TABLE, XML_COVERED_TABLE_CELL) ||
+ nElement == XML_ELEMENT(LO_EXT, XML_COVERED_TABLE_CELL) )
+ pContext = new SvXMLImportContext( GetImport() );
+ else
+ SAL_WARN("sw", "unknown element " << SvXMLImport::getPrefixAndNameFromToken(nElement));
return pContext;
}
@@ -977,14 +958,13 @@ class SwXMLTableRowsContext_Impl : public SvXMLImportContext
public:
- SwXMLTableRowsContext_Impl( SwXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
+ SwXMLTableRowsContext_Impl( SwXMLImport& rImport,
SwXMLTableContext *pTable,
bool bHead );
- virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList ) override;
+ virtual css::uno::Reference<css::xml::sax::XFastContextHandler> SAL_CALL createFastChildContext(
+ sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList ) override;
SwXMLImport& GetSwImport() { return static_cast<SwXMLImport&>(GetImport()); }
};
@@ -992,32 +972,26 @@ public:
}
SwXMLTableRowsContext_Impl::SwXMLTableRowsContext_Impl( SwXMLImport& rImport,
- sal_uInt16 nPrfx,
- const OUString& rLName,
SwXMLTableContext *pTable,
bool bHead ) :
- SvXMLImportContext( rImport, nPrfx, rLName ),
+ SvXMLImportContext( rImport ),
xMyTable( pTable ),
bHeader( bHead )
{
}
-SvXMLImportContextRef SwXMLTableRowsContext_Impl::CreateChildContext(
- sal_uInt16 nPrefix,
- const OUString& rLocalName,
- const Reference< xml::sax::XAttributeList > & xAttrList )
+css::uno::Reference<css::xml::sax::XFastContextHandler> SwXMLTableRowsContext_Impl::createFastChildContext(
+ sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList )
{
- SvXMLImportContext *pContext = nullptr;
-
- if( XML_NAMESPACE_TABLE == nPrefix &&
- IsXMLToken( rLocalName, XML_TABLE_ROW ) &&
+ if( nElement== XML_ELEMENT(TABLE, XML_TABLE_ROW ) &&
GetTable()->IsInsertRowPossible() )
- pContext = new SwXMLTableRowContext_Impl( GetSwImport(), nPrefix,
- rLocalName, xAttrList,
+ return new SwXMLTableRowContext_Impl( GetSwImport(), nElement,
+ xAttrList,
GetTable(),
bHeader );
-
- return pContext;
+ SAL_WARN("sw", "unknown element " << SvXMLImport::getPrefixAndNameFromToken(nElement));
+ return nullptr;
}
class SwXMLDDETableContext_Impl : public SvXMLImportContext
@@ -1223,10 +1197,8 @@ SwXMLTableCell_Impl *SwXMLTableContext::GetCell( sal_uInt32 nRow,
SwXMLTableContext::SwXMLTableContext( SwXMLImport& rImport,
- sal_uInt16 nPrfx,
- const OUString& rLName,
const Reference< xml::sax::XAttributeList > & xAttrList ) :
- XMLTextTableContext( rImport, nPrfx, rLName ),
+ XMLTextTableContext( rImport ),
m_pRows( new SwXMLTableRows_Impl ),
m_pTableNode( nullptr ),
m_pBox1( nullptr ),
@@ -1362,10 +1334,8 @@ SwXMLTableContext::SwXMLTableContext( SwXMLImport& rImport,
}
SwXMLTableContext::SwXMLTableContext( SwXMLImport& rImport,
- sal_uInt16 nPrfx,
- const OUString& rLName,
SwXMLTableContext *pTable ) :
- XMLTextTableContext( rImport, nPrfx, rLName ),
+ XMLTextTableContext( rImport ),
m_pRows( new SwXMLTableRows_Impl ),
m_pTableNode( pTable->m_pTableNode ),
m_pBox1( nullptr ),
@@ -1396,6 +1366,28 @@ SwXMLTableContext::~SwXMLTableContext()
GetImport().GetTextImport()->RedlineAdjustStartNodeCursor();
}
+css::uno::Reference<css::xml::sax::XFastContextHandler> SwXMLTableContext::createFastChildContext(
+ sal_Int32 nElement,
+ const Reference< xml::sax::XFastAttributeList > & xAttrList )
+{
+ bool bHeader = false;
+ switch (nElement)
+ {
+ case XML_ELEMENT(TABLE, XML_TABLE_ROW):
+ case XML_ELEMENT(LO_EXT, XML_TABLE_ROW):
+ if( IsInsertRowPossible() )
+ return new SwXMLTableRowContext_Impl( GetSwImport(), nElement, xAttrList, this );
+ break;
+ case XML_ELEMENT(TABLE, XML_TABLE_HEADER_ROWS):
+ bHeader = true;
+ [[fallthrough]];
+ case XML_ELEMENT(TABLE, XML_TABLE_ROWS):
+ return new SwXMLTableRowsContext_Impl( GetSwImport(), this, bHeader );
+ break;
+ }
+ return nullptr;
+}
+
SvXMLImportContextRef SwXMLTableContext::CreateChildContext( sal_uInt16 nPrefix,
const OUString& rLocalName,
const Reference< xml::sax::XAttributeList > & xAttrList )
@@ -1403,7 +1395,6 @@ SvXMLImportContextRef SwXMLTableContext::CreateChildContext( sal_uInt16 nPrefix,
SvXMLImportContext *pContext = nullptr;
const SvXMLTokenMap& rTokenMap = GetSwImport().GetTableElemTokenMap();
- bool bHeader = false;
switch( rTokenMap.Get( nPrefix, rLocalName ) )
{
case XML_TOK_TABLE_HEADER_COLS:
@@ -1419,20 +1410,6 @@ SvXMLImportContextRef SwXMLTableContext::CreateChildContext( sal_uInt16 nPrefix,
rLocalName, xAttrList,
this );
break;
- case XML_TOK_TABLE_HEADER_ROWS:
- bHeader = true;
- [[fallthrough]];
- case XML_TOK_TABLE_ROWS:
- pContext = new SwXMLTableRowsContext_Impl( GetSwImport(), nPrefix,
- rLocalName,
- this, bHeader );
- break;
- case XML_TOK_TABLE_ROW:
- if( IsInsertRowPossible() )
- pContext = new SwXMLTableRowContext_Impl( GetSwImport(), nPrefix,
- rLocalName, xAttrList,
- this );
- break;
case XML_TOK_OFFICE_DDE_SOURCE:
// save context for later processing (discard old context, if approp.)
if( IsValid() )
diff --git a/sw/source/filter/xml/xmltbli.hxx b/sw/source/filter/xml/xmltbli.hxx
index 9dfaf06f1d74..31ca7e1ebb3a 100644
--- a/sw/source/filter/xml/xmltbli.hxx
+++ b/sw/source/filter/xml/xmltbli.hxx
@@ -136,15 +136,17 @@ class SwXMLTableContext : public XMLTextTableContext
public:
- SwXMLTableContext( SwXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
+ SwXMLTableContext( SwXMLImport& rImport,
const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList );
- SwXMLTableContext( SwXMLImport& rImport, sal_uInt16 nPrfx,
- const OUString& rLName,
+ SwXMLTableContext( SwXMLImport& rImport,
SwXMLTableContext *pTable );
virtual ~SwXMLTableContext() 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;
+
virtual SvXMLImportContextRef CreateChildContext( sal_uInt16 nPrefix,
const OUString& rLocalName,
const css::uno::Reference< css::xml::sax::XAttributeList > & xAttrList ) override;
diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx
index cf0c7e6a85ba..13efb045f7b6 100644
--- a/sw/source/filter/xml/xmltexti.cxx
+++ b/sw/source/filter/xml/xmltexti.cxx
@@ -179,11 +179,10 @@ SwXMLTextImportHelper::~SwXMLTextImportHelper()
SvXMLImportContext *SwXMLTextImportHelper::CreateTableChildContext(
SvXMLImport& rImport,
- sal_uInt16 nPrefix, const OUString& rLocalName,
+ sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/,
const uno::Reference< XAttributeList > & xAttrList )
{
- return new SwXMLTableContext(
- static_cast<SwXMLImport&>(rImport), nPrefix, rLocalName, xAttrList );
+ return new SwXMLTableContext( static_cast<SwXMLImport&>(rImport), xAttrList );
}
bool SwXMLTextImportHelper::IsInHeaderFooter() const