Blob Blame History Raw
From 7b44c5e95b07cde11b8b03f940f97e71ea9c7df4 Mon Sep 17 00:00:00 2001
From: Eike Rathke <erack@redhat.com>
Date: Fri, 20 Dec 2013 12:57:15 +0100
Subject: [PATCH 080/109] XMLPropertyMapEntry::mbImportOnly and
 XMLPropertySetMapper bForExport

Although a rather large change this does not change the property
mappings or import/export behavior yet, but prepares for further
changes that add mappings for generating correct ODF and consuming
both old and new namespace/element/attribute names.

This is a combination of 4 commits:

added bool bForExport parameter to XMLPropertySetMapper ctor

Set to true for export, false for import. If export true, an
XMLPropertyMapEntry with mbImportOnly==true is not added to the
mappings. This to be able to have more than one mappings for import
(for example a current extension namespace and the future namespace
proposed to the ODF-TC, or corrected typos in element or attribute
names), but map only to one entry on export, of course.

(cherry picked from commit ebc1b2fe50c7ed1002ed8431410b8e2ac6e795b9)

Conflicts:
	dbaccess/source/filter/xml/xmlHelper.cxx
	xmloff/source/chart/PropertyMaps.cxx
	xmloff/source/draw/sdpropls.cxx
	xmloff/source/style/PageMasterPropMapper.cxx
	xmloff/source/table/XMLTableImport.cxx

prepared XMLPropertyMapEntry with mbImportOnly flag

(cherry picked from commit 9dd7ee88bd9835ae2bae36093100fcd651fd3aeb)

Conflicts:
	dbaccess/source/filter/xml/xmlHelper.cxx
	xmloff/source/table/XMLTableExport.cxx
	xmloff/source/text/txtprmap.cxx

just beautify this a little

(cherry picked from commit 44b4973fbd0f190906f36321b31215d80b363d52)

reordered member variables for 4 byte alignment

(cherry picked from commit dd902b8e256867b5d5fed06b52995f14d969f67d)

Change-Id: I15b03870fd14f110833037b6c0ff934624d72de1
Reviewed-on: https://gerrit.libreoffice.org/7144
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
---
 dbaccess/source/filter/xml/xmlExport.cxx          |  8 ++---
 dbaccess/source/filter/xml/xmlHelper.cxx          | 27 ++++++++--------
 dbaccess/source/filter/xml/xmlHelper.hxx          |  8 ++---
 dbaccess/source/filter/xml/xmlfilter.cxx          |  6 ++--
 include/xmloff/maptype.hxx                        |  8 +++++
 include/xmloff/txtprmap.hxx                       |  2 +-
 include/xmloff/xmlprmap.hxx                       | 26 ++++++++++------
 reportdesign/source/filter/xml/xmlExport.cxx      | 12 +++----
 reportdesign/source/filter/xml/xmlHelper.cxx      | 16 +++++-----
 reportdesign/source/filter/xml/xmlHelper.hxx      |  2 +-
 reportdesign/source/filter/xml/xmlStyleImport.cxx |  2 +-
 reportdesign/source/filter/xml/xmlfilter.cxx      |  8 ++---
 sc/source/filter/xml/xmlexprt.cxx                 | 10 +++---
 sc/source/filter/xml/xmlimprt.cxx                 |  8 ++---
 sc/source/filter/xml/xmlstyle.cxx                 |  6 ++--
 xmloff/inc/XMLChartPropertySetMapper.hxx          |  4 +--
 xmloff/qa/unit/uxmloff.cxx                        |  2 +-
 xmloff/source/chart/PropertyMap.hxx               | 16 +++++-----
 xmloff/source/chart/PropertyMaps.cxx              |  4 +--
 xmloff/source/chart/SchXMLExport.cxx              |  2 +-
 xmloff/source/draw/sdpropls.cxx                   | 11 ++++---
 xmloff/source/draw/sdpropls.hxx                   |  2 +-
 xmloff/source/draw/sdxmlexp.cxx                   |  4 +--
 xmloff/source/draw/shapeexport.cxx                |  4 +--
 xmloff/source/draw/shapeimport.cxx                |  8 ++---
 xmloff/source/forms/controlpropertymap.cxx        |  8 ++---
 xmloff/source/forms/layerexport.cxx               |  2 +-
 xmloff/source/style/PageMasterPropMapper.cxx      |  9 +++---
 xmloff/source/style/PageMasterPropMapper.hxx      |  5 +--
 xmloff/source/style/PageMasterStyleMap.cxx        |  4 +--
 xmloff/source/style/XMLPageExport.cxx             |  2 +-
 xmloff/source/style/xmlprmap.cxx                  | 38 +++++++++++++++++------
 xmloff/source/style/xmlstyle.cxx                  |  4 +--
 xmloff/source/table/XMLTableExport.cxx            |  8 ++---
 xmloff/source/table/XMLTableImport.cxx            |  5 ++-
 xmloff/source/text/txtimp.cxx                     | 22 ++++++-------
 xmloff/source/text/txtparae.cxx                   | 20 ++++++------
 xmloff/source/text/txtprmap.cxx                   | 22 ++++++-------
 xmloff/source/text/txtstyle.cxx                   |  4 +--
 39 files changed, 198 insertions(+), 161 deletions(-)

diff --git a/dbaccess/source/filter/xml/xmlExport.cxx b/dbaccess/source/filter/xml/xmlExport.cxx
index 135ef75..538cfd3 100644
--- a/dbaccess/source/filter/xml/xmlExport.cxx
+++ b/dbaccess/source/filter/xml/xmlExport.cxx
@@ -232,7 +232,7 @@ ODBExport::ODBExport(const Reference< XComponentContext >& _rxContext,sal_uInt16
     m_xColumnExportHelper = new OSpecialHanldeXMLExportPropertyMapper(GetColumnStylesPropertySetMapper());
 
     m_xCellExportHelper = new OSpecialHanldeXMLExportPropertyMapper(GetCellStylesPropertySetMapper());
-    m_xRowExportHelper = new OSpecialHanldeXMLExportPropertyMapper(OXMLHelper::GetRowStylesPropertySetMapper());
+    m_xRowExportHelper = new OSpecialHanldeXMLExportPropertyMapper(OXMLHelper::GetRowStylesPropertySetMapper( true));
 
     GetAutoStylePool()->AddFamily(
         XML_STYLE_FAMILY_TABLE_TABLE,
@@ -1401,7 +1401,7 @@ UniReference < XMLPropertySetMapper > ODBExport::GetTableStylesPropertySetMapper
 {
     if ( !m_xTableStylesPropertySetMapper.is() )
     {
-        m_xTableStylesPropertySetMapper = OXMLHelper::GetTableStylesPropertySetMapper();
+        m_xTableStylesPropertySetMapper = OXMLHelper::GetTableStylesPropertySetMapper( true);
     }
     return m_xTableStylesPropertySetMapper;
 }
@@ -1410,7 +1410,7 @@ UniReference < XMLPropertySetMapper > ODBExport::GetCellStylesPropertySetMapper(
 {
     if ( !m_xCellStylesPropertySetMapper.is() )
     {
-        m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylesPropertySetMapper();
+        m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylesPropertySetMapper( true);
     }
     return m_xCellStylesPropertySetMapper;
 }
@@ -1419,7 +1419,7 @@ UniReference < XMLPropertySetMapper > ODBExport::GetColumnStylesPropertySetMappe
 {
     if ( !m_xColumnStylesPropertySetMapper.is() )
     {
-        m_xColumnStylesPropertySetMapper = OXMLHelper::GetColumnStylesPropertySetMapper();
+        m_xColumnStylesPropertySetMapper = OXMLHelper::GetColumnStylesPropertySetMapper( true);
     }
     return m_xColumnStylesPropertySetMapper;
 }
diff --git a/dbaccess/source/filter/xml/xmlHelper.cxx b/dbaccess/source/filter/xml/xmlHelper.cxx
index a410f08..921581d 100644
--- a/dbaccess/source/filter/xml/xmlHelper.cxx
+++ b/dbaccess/source/filter/xml/xmlHelper.cxx
@@ -71,21 +71,20 @@ const XMLPropertyHandler* OPropertyHandlerFactory::GetPropertyHandler(sal_Int32
     return pHandler;
 }
 // -----------------------------------------------------------------------------
-#define MAP_END() { NULL, 0, 0, XML_TOKEN_INVALID, 0 , 0, SvtSaveOptions::ODFVER_010}
-// -----------------------------------------------------------------------------
-UniReference < XMLPropertySetMapper > OXMLHelper::GetTableStylesPropertySetMapper()
+#define MAP_END() { NULL, 0, 0, XML_TOKEN_INVALID, 0 , 0, SvtSaveOptions::ODFVER_010, false}
+UniReference < XMLPropertySetMapper > OXMLHelper::GetTableStylesPropertySetMapper( bool bForExport )
 {
     static const XMLPropertyMapEntry s_aTableStylesProperties[] =
     {
         MAP_END()
     };
     UniReference < XMLPropertyHandlerFactory> xFac = new ::xmloff::OControlPropertyHandlerFactory();
-    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aTableStylesProperties, xFac);
+    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aTableStylesProperties, xFac, bForExport);
 }
 // -----------------------------------------------------------------------------
-UniReference < XMLPropertySetMapper > OXMLHelper::GetColumnStylesPropertySetMapper()
+UniReference < XMLPropertySetMapper > OXMLHelper::GetColumnStylesPropertySetMapper( bool bForExport )
 {
-#define MAP_CONST_COLUMN( name, prefix, token, type, context )  { name, sizeof(name)-1,  prefix, token, type|XML_TYPE_PROP_TABLE_COLUMN, context, SvtSaveOptions::ODFVER_010 }
+#define MAP_CONST_COLUMN( name, prefix, token, type, context )  { name, sizeof(name)-1,  prefix, token, type|XML_TYPE_PROP_TABLE_COLUMN, context, SvtSaveOptions::ODFVER_010, false }
     static const XMLPropertyMapEntry s_aColumnStylesProperties[] =
     {
         MAP_CONST_COLUMN( PROPERTY_WIDTH,           XML_NAMESPACE_STYLE,    XML_COLUMN_WIDTH,       XML_TYPE_MEASURE, 0),
@@ -94,13 +93,13 @@ UniReference < XMLPropertySetMapper > OXMLHelper::GetColumnStylesPropertySetMapp
         MAP_END()
     };
     UniReference < XMLPropertyHandlerFactory> xFac = new OPropertyHandlerFactory();
-    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aColumnStylesProperties, xFac);
+    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aColumnStylesProperties, xFac, bForExport);
 }
 // -----------------------------------------------------------------------------
-UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylesPropertySetMapper()
+UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylesPropertySetMapper( bool bForExport )
 {
-#define MAP_CONST_CELL( name, prefix, token, type, context ) { name, sizeof(name)-1,  prefix, token, type|XML_TYPE_PROP_PARAGRAPH, context, SvtSaveOptions::ODFVER_010 }
-#define MAP_CONST_TEXT( name, prefix, token, type, context ) { name, sizeof(name)-1,  prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFVER_010 }
+#define MAP_CONST_CELL( name, prefix, token, type, context ) { name, sizeof(name)-1,  prefix, token, type|XML_TYPE_PROP_PARAGRAPH, context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_CONST_TEXT( name, prefix, token, type, context ) { name, sizeof(name)-1,  prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFVER_010, false }
     static const XMLPropertyMapEntry s_aCellStylesProperties[] =
     {
         MAP_CONST_CELL( PROPERTY_ALIGN,             XML_NAMESPACE_FO,       XML_TEXT_ALIGN,             XML_TYPE_TEXT_ALIGN, CTF_DB_COLUMN_TEXT_ALIGN),
@@ -135,19 +134,19 @@ UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylesPropertySetMapper
         MAP_END()
     };
     UniReference < XMLPropertyHandlerFactory> xFac = new /*OPropertyHandlerFactory*/::xmloff::OControlPropertyHandlerFactory();
-    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aCellStylesProperties, xFac);
+    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aCellStylesProperties, xFac, bForExport);
 }
 // -----------------------------------------------------------------------------
-UniReference < XMLPropertySetMapper > OXMLHelper::GetRowStylesPropertySetMapper()
+UniReference < XMLPropertySetMapper > OXMLHelper::GetRowStylesPropertySetMapper( bool bForExport )
 {
-#define MAP_CONST_ROW( name, prefix, token, type, context )  { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TABLE_ROW, context, SvtSaveOptions::ODFVER_010 }
+#define MAP_CONST_ROW( name, prefix, token, type, context )  { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TABLE_ROW, context, SvtSaveOptions::ODFVER_010, false }
     static const XMLPropertyMapEntry s_aStylesProperties[] =
     {
         MAP_CONST_ROW( PROPERTY_ROW_HEIGHT,         XML_NAMESPACE_STYLE,    XML_ROW_HEIGHT,             XML_TYPE_MEASURE, 0),
         MAP_END()
     };
     UniReference < XMLPropertyHandlerFactory> xFac = new OPropertyHandlerFactory();
-    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aStylesProperties, xFac);
+    return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aStylesProperties, xFac, bForExport);
 }
 // -----------------------------------------------------------------------------
 }
diff --git a/dbaccess/source/filter/xml/xmlHelper.hxx b/dbaccess/source/filter/xml/xmlHelper.hxx
index aa7a76e..a9ec5fd 100644
--- a/dbaccess/source/filter/xml/xmlHelper.hxx
+++ b/dbaccess/source/filter/xml/xmlHelper.hxx
@@ -50,10 +50,10 @@ namespace dbaxml
     class OXMLHelper
     {
     public:
-        static UniReference < XMLPropertySetMapper > GetTableStylesPropertySetMapper();
-        static UniReference < XMLPropertySetMapper > GetColumnStylesPropertySetMapper();
-        static UniReference < XMLPropertySetMapper > GetCellStylesPropertySetMapper();
-        static UniReference < XMLPropertySetMapper > GetRowStylesPropertySetMapper();
+        static UniReference < XMLPropertySetMapper > GetTableStylesPropertySetMapper( bool bForExport );
+        static UniReference < XMLPropertySetMapper > GetColumnStylesPropertySetMapper( bool bForExport );
+        static UniReference < XMLPropertySetMapper > GetCellStylesPropertySetMapper( bool bForExport );
+        static UniReference < XMLPropertySetMapper > GetRowStylesPropertySetMapper( bool bForExport );
     };
 // -----------------------------------------------------------------------------
 } // dbaxml
diff --git a/dbaccess/source/filter/xml/xmlfilter.cxx b/dbaccess/source/filter/xml/xmlfilter.cxx
index 96ea9ed..d8186fb 100644
--- a/dbaccess/source/filter/xml/xmlfilter.cxx
+++ b/dbaccess/source/filter/xml/xmlfilter.cxx
@@ -858,7 +858,7 @@ UniReference < XMLPropertySetMapper > ODBFilter::GetTableStylesPropertySetMapper
 {
     if ( !m_xTableStylesPropertySetMapper.is() )
     {
-        m_xTableStylesPropertySetMapper = OXMLHelper::GetTableStylesPropertySetMapper();
+        m_xTableStylesPropertySetMapper = OXMLHelper::GetTableStylesPropertySetMapper( false);
     }
     return m_xTableStylesPropertySetMapper;
 }
@@ -867,7 +867,7 @@ UniReference < XMLPropertySetMapper > ODBFilter::GetColumnStylesPropertySetMappe
 {
     if ( !m_xColumnStylesPropertySetMapper.is() )
     {
-        m_xColumnStylesPropertySetMapper = OXMLHelper::GetColumnStylesPropertySetMapper();
+        m_xColumnStylesPropertySetMapper = OXMLHelper::GetColumnStylesPropertySetMapper( false);
     }
     return m_xColumnStylesPropertySetMapper;
 }
@@ -876,7 +876,7 @@ UniReference < XMLPropertySetMapper > ODBFilter::GetCellStylesPropertySetMapper(
 {
     if ( !m_xCellStylesPropertySetMapper.is() )
     {
-        m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylesPropertySetMapper();
+        m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylesPropertySetMapper( false);
     }
     return m_xCellStylesPropertySetMapper;
 }
diff --git a/include/xmloff/maptype.hxx b/include/xmloff/maptype.hxx
index bfd0463..756238f 100644
--- a/include/xmloff/maptype.hxx
+++ b/include/xmloff/maptype.hxx
@@ -43,6 +43,14 @@ struct XMLPropertyMapEntry
                                                     to im/export the porperty */
     sal_Int16       mnContextId;    /// User defined id for context filtering
     SvtSaveOptions::ODFDefaultVersion   mnEarliestODFVersionForExport;// no export when the used ODF version is lower than this
+
+    /** Flag to specify whether entry is only used during import.
+
+        Allows to handle more than one Namespace/XML-Name to Property-Name
+        mapping, i.e. for extensions. If several entries for the same
+        Property-Name exist, all except one must have this flag set.
+     */
+    bool            mbImportOnly;
 };
 
 ///////////////////////////////////////////////////////////////////////////
diff --git a/include/xmloff/txtprmap.hxx b/include/xmloff/txtprmap.hxx
index 92285911..fe5f80d 100644
--- a/include/xmloff/txtprmap.hxx
+++ b/include/xmloff/txtprmap.hxx
@@ -193,7 +193,7 @@
 class XMLOFF_DLLPUBLIC XMLTextPropertySetMapper : public XMLPropertySetMapper
 {
 public:
-    XMLTextPropertySetMapper( sal_uInt16 nType );
+    XMLTextPropertySetMapper( sal_uInt16 nType, bool bForExport );
     virtual ~XMLTextPropertySetMapper();
 
     static const XMLPropertyMapEntry* getPropertyMapForType( sal_uInt16 _nType );
diff --git a/include/xmloff/xmlprmap.hxx b/include/xmloff/xmlprmap.hxx
index 2105d6f..ad04bce 100644
--- a/include/xmloff/xmlprmap.hxx
+++ b/include/xmloff/xmlprmap.hxx
@@ -53,13 +53,14 @@ class XMLPropertyHandler;
 */
 struct XMLPropertySetMapperEntry_Impl
 {
-    OUString sXMLAttributeName;
-    OUString sAPIPropertyName;
-    sal_uInt16 nXMLNameSpace;
-    sal_Int32  nType;
-    sal_Int16  nContextId;
-    SvtSaveOptions::ODFDefaultVersion   nEarliestODFVersionForExport;
-    const XMLPropertyHandler *pHdl;
+    OUString                           sXMLAttributeName;
+    OUString                           sAPIPropertyName;
+    sal_Int32                          nType;
+    sal_uInt16                         nXMLNameSpace;
+    sal_Int16                          nContextId;
+    SvtSaveOptions::ODFDefaultVersion  nEarliestODFVersionForExport;
+    bool                               bImportOnly;
+    const XMLPropertyHandler          *pHdl;
 
     XMLPropertySetMapperEntry_Impl(
         const XMLPropertyMapEntry& rMapEntry,
@@ -75,12 +76,19 @@ class XMLOFF_DLLPUBLIC XMLPropertySetMapper : public UniRefBase
 {
     ::std::vector< XMLPropertySetMapperEntry_Impl > aMapEntries;
     ::std::vector< UniReference < XMLPropertyHandlerFactory > > aHdlFactories;
+    bool mbOnlyExportMappings;
 
 public:
-    /** The last element of the XMLPropertyMapEntry-array must contain NULL-values */
+    /** The last element of the XMLPropertyMapEntry-array must contain NULL-values.
+
+        @param  bForExport
+                If TRUE, only entries that have the mbImportOnly flag not set
+                will be in the mappings.
+      */
     XMLPropertySetMapper(
             const XMLPropertyMapEntry* pEntries,
-            const UniReference< XMLPropertyHandlerFactory >& rFactory );
+            const UniReference< XMLPropertyHandlerFactory >& rFactory,
+            bool bForExport );
     virtual ~XMLPropertySetMapper();
 
     void AddMapperEntry( const UniReference < XMLPropertySetMapper >& rMapper );
diff --git a/reportdesign/source/filter/xml/xmlExport.cxx b/reportdesign/source/filter/xml/xmlExport.cxx
index 1b17eec..96efbf3 100644
--- a/reportdesign/source/filter/xml/xmlExport.cxx
+++ b/reportdesign/source/filter/xml/xmlExport.cxx
@@ -270,23 +270,23 @@ ORptExport::ORptExport(const Reference< XComponentContext >& _rxContext,sal_uInt
 
     m_xPropHdlFactory = new OXMLRptPropHdlFactory();
     UniReference < XMLPropertyHandlerFactory> xFac = new ::xmloff::OControlPropertyHandlerFactory();
-    UniReference < XMLPropertySetMapper > xTableStylesPropertySetMapper1 = new XMLPropertySetMapper(OXMLHelper::GetTableStyleProps(),xFac);
-    UniReference < XMLPropertySetMapper > xTableStylesPropertySetMapper2 = new XMLTextPropertySetMapper(TEXT_PROP_MAP_TABLE_DEFAULTS );
+    UniReference < XMLPropertySetMapper > xTableStylesPropertySetMapper1 = new XMLPropertySetMapper(OXMLHelper::GetTableStyleProps(),xFac, true);
+    UniReference < XMLPropertySetMapper > xTableStylesPropertySetMapper2 = new XMLTextPropertySetMapper(TEXT_PROP_MAP_TABLE_DEFAULTS, true );
     xTableStylesPropertySetMapper1->AddMapperEntry(xTableStylesPropertySetMapper2);
 
     m_xTableStylesExportPropertySetMapper = new SvXMLExportPropertyMapper(xTableStylesPropertySetMapper1);
 
-    m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylePropertyMap();
+    m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylePropertyMap( false, true);
     m_xCellStylesExportPropertySetMapper = new OSpecialHanldeXMLExportPropertyMapper(m_xCellStylesPropertySetMapper);
     m_xCellStylesExportPropertySetMapper->ChainExportMapper(XMLTextParagraphExport::CreateParaExtPropMapper(*this));
 
-    UniReference < XMLPropertySetMapper > xColumnStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetColumnStyleProps(), m_xPropHdlFactory);
+    UniReference < XMLPropertySetMapper > xColumnStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetColumnStyleProps(), m_xPropHdlFactory, true);
     m_xColumnStylesExportPropertySetMapper = new OSpecialHanldeXMLExportPropertyMapper(xColumnStylesPropertySetMapper);
 
-    UniReference < XMLPropertySetMapper > xRowStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetRowStyleProps(), m_xPropHdlFactory);
+    UniReference < XMLPropertySetMapper > xRowStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetRowStyleProps(), m_xPropHdlFactory, true);
     m_xRowStylesExportPropertySetMapper = new OSpecialHanldeXMLExportPropertyMapper(xRowStylesPropertySetMapper);
 
-    UniReference < XMLPropertySetMapper > xPropMapper(new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA ));
+    UniReference < XMLPropertySetMapper > xPropMapper(new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA, true ));
     m_xParaPropMapper = new OSpecialHanldeXMLExportPropertyMapper( xPropMapper);
 
     OUString sFamily( GetXMLToken(XML_PARAGRAPH) );
diff --git a/reportdesign/source/filter/xml/xmlHelper.cxx b/reportdesign/source/filter/xml/xmlHelper.cxx
index 8537f94..1b1ada3 100644
--- a/reportdesign/source/filter/xml/xmlHelper.cxx
+++ b/reportdesign/source/filter/xml/xmlHelper.cxx
@@ -104,13 +104,13 @@ const XMLPropertyHandler* OPropertyHandlerFactory::GetPropertyHandler(sal_Int32
     return pHandler;
 }
 // -----------------------------------------------------------------------------
-#define MAP_CONST_T_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_TABLE,      context, SvtSaveOptions::ODFVER_010 }
-#define MAP_CONST_P_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_PARAGRAPH,  context, SvtSaveOptions::ODFVER_010 }
-#define MAP_CONST_S( name, prefix, token, type, context )  { name, sizeof(name)-1,      XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_SECTION,    context, SvtSaveOptions::ODFVER_010 }
-#define MAP_CONST_C_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_TABLE_CELL, context, SvtSaveOptions::ODFVER_010 }
-#define MAP_END() { NULL, 0, 0, XML_TOKEN_INVALID, 0 ,0, SvtSaveOptions::ODFVER_010}
+#define MAP_CONST_T_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_TABLE,      context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_CONST_P_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_PARAGRAPH,  context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_CONST_S( name, prefix, token, type, context )  { name, sizeof(name)-1,      XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_SECTION,    context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_CONST_C_ASCII( name, prefix, token, type, context ) { name, sizeof(name)-1, XML_NAMESPACE_##prefix, XML_##token, type|XML_TYPE_PROP_TABLE_CELL, context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_END() { NULL, 0, 0, XML_TOKEN_INVALID, 0 ,0, SvtSaveOptions::ODFVER_010, false}
 // -----------------------------------------------------------------------------
-UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylePropertyMap(bool _bOldFormat)
+UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylePropertyMap(bool _bOldFormat, bool bForExport)
 {
     if ( _bOldFormat )
     {
@@ -133,7 +133,7 @@ UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylePropertyMap(bool _
             MAP_CONST_C_ASCII(      "BorderBottom",     FO,     BORDER_BOTTOM,         XML_TYPE_BORDER, 0 ),
             MAP_END()
         };
-        return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aXMLCellStylesProperties,new OPropertyHandlerFactory());
+        return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aXMLCellStylesProperties,new OPropertyHandlerFactory(), bForExport);
     }
     else
     {
@@ -153,7 +153,7 @@ UniReference < XMLPropertySetMapper > OXMLHelper::GetCellStylePropertyMap(bool _
             MAP_CONST_C_ASCII(      "BorderBottom",     FO,     BORDER_BOTTOM,         XML_TYPE_BORDER, 0 ),
             MAP_END()
         };
-        return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aXMLCellStylesProperties,new OPropertyHandlerFactory());
+        return new XMLPropertySetMapper((XMLPropertyMapEntry*)s_aXMLCellStylesProperties,new OPropertyHandlerFactory(), bForExport);
     }
 }
 // -----------------------------------------------------------------------------
diff --git a/reportdesign/source/filter/xml/xmlHelper.hxx b/reportdesign/source/filter/xml/xmlHelper.hxx
index 6cc32dc..d3fbac9 100644
--- a/reportdesign/source/filter/xml/xmlHelper.hxx
+++ b/reportdesign/source/filter/xml/xmlHelper.hxx
@@ -56,7 +56,7 @@ namespace rptxml
     class OXMLHelper
     {
     public:
-        static UniReference < XMLPropertySetMapper > GetCellStylePropertyMap(bool _bOldFormat = false);
+        static UniReference < XMLPropertySetMapper > GetCellStylePropertyMap(bool _bOldFormat, bool bForExport);
 
         static const SvXMLEnumMapEntry* GetReportPrintOptions();
         static const SvXMLEnumMapEntry* GetForceNewPageOptions();
diff --git a/reportdesign/source/filter/xml/xmlStyleImport.cxx b/reportdesign/source/filter/xml/xmlStyleImport.cxx
index a79a9c2..eb19a01 100644
--- a/reportdesign/source/filter/xml/xmlStyleImport.cxx
+++ b/reportdesign/source/filter/xml/xmlStyleImport.cxx
@@ -241,7 +241,7 @@ UniReference < SvXMLImportPropertyMapper >
                 if( !m_xTableImpPropMapper.is() )
                 {
                     UniReference < XMLPropertyHandlerFactory> xFac = new ::xmloff::OControlPropertyHandlerFactory();
-                    m_xTableImpPropMapper = new SvXMLImportPropertyMapper( new XMLPropertySetMapper(OXMLHelper::GetTableStyleProps(), xFac), m_rImport );
+                    m_xTableImpPropMapper = new SvXMLImportPropertyMapper( new XMLPropertySetMapper(OXMLHelper::GetTableStyleProps(), xFac, false), m_rImport );
                 }
                 xMapper = m_xTableImpPropMapper;
             }
diff --git a/reportdesign/source/filter/xml/xmlfilter.cxx b/reportdesign/source/filter/xml/xmlfilter.cxx
index fa83c16..23115e8 100644
--- a/reportdesign/source/filter/xml/xmlfilter.cxx
+++ b/reportdesign/source/filter/xml/xmlfilter.cxx
@@ -387,10 +387,10 @@ ORptFilter::ORptFilter( const uno::Reference< XComponentContext >& _rxContext,sa
                         XML_NAMESPACE_REPORT );
 
     m_xPropHdlFactory = new OXMLRptPropHdlFactory;
-    m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylePropertyMap(true);
-    m_xColumnStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetColumnStyleProps(), m_xPropHdlFactory);
-    m_xRowStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetRowStyleProps(), m_xPropHdlFactory);
-    m_xTableStylesPropertySetMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_DEFAULTS );
+    m_xCellStylesPropertySetMapper = OXMLHelper::GetCellStylePropertyMap(true, false);
+    m_xColumnStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetColumnStyleProps(), m_xPropHdlFactory, false);
+    m_xRowStylesPropertySetMapper = new XMLPropertySetMapper(OXMLHelper::GetRowStyleProps(), m_xPropHdlFactory, false);
+    m_xTableStylesPropertySetMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_DEFAULTS, false );
 }
 
 // -----------------------------------------------------------------------------
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index 73b3aec..0fbc692 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -476,10 +476,10 @@ ScXMLExport::ScXMLExport(
     // document is not set here - create ScChangeTrackingExportHelper later
 
     xScPropHdlFactory = new XMLScPropHdlFactory;
-    xCellStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScCellStylesProperties, xScPropHdlFactory);
-    xColumnStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScColumnStylesProperties, xScPropHdlFactory);
-    xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScRowStylesProperties, xScPropHdlFactory);
-    xTableStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScTableStylesProperties, xScPropHdlFactory);
+    xCellStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScCellStylesProperties, xScPropHdlFactory, true);
+    xColumnStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScColumnStylesProperties, xScPropHdlFactory, true);
+    xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScRowStylesProperties, xScPropHdlFactory, true);
+    xTableStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScTableStylesProperties, xScPropHdlFactory, true);
     xCellStylesExportPropertySetMapper = new ScXMLCellExportPropertyMapper(xCellStylesPropertySetMapper);
     xCellStylesExportPropertySetMapper->ChainExportMapper(XMLTextParagraphExport::CreateParaExtPropMapper(*this));
     xColumnStylesExportPropertySetMapper = new ScXMLColumnExportPropertyMapper(xColumnStylesPropertySetMapper);
@@ -4638,7 +4638,7 @@ sal_uInt32 ScXMLExport::exportDoc( enum XMLTokenEnum eClass )
                 SfxObjectShell* pFoundShell = reinterpret_cast<SfxObjectShell*>( xObjShellTunnel.is() ? xObjShellTunnel->getSomething(SfxObjectShell::getUnoTunnelId()) : 0 );
                 if ( pFoundShell && ooo::vba::isAlienExcelDoc( *pFoundShell ) )
                 {
-                    xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScFromXLSRowStylesProperties, xScPropHdlFactory);
+                    xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScFromXLSRowStylesProperties, xScPropHdlFactory, true);
                     xRowStylesExportPropertySetMapper = new ScXMLRowExportPropertyMapper(xRowStylesPropertySetMapper);
                     GetAutoStylePool()->SetFamilyPropSetMapper( XML_STYLE_FAMILY_TABLE_ROW,
                         xRowStylesExportPropertySetMapper );
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index fd40dc7..28c3ace 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -2078,10 +2078,10 @@ ScXMLImport::ScXMLImport(
     pStylesImportHelper = new ScMyStylesImportHelper(*this);
 
     xScPropHdlFactory = new XMLScPropHdlFactory;
-    xCellStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScCellStylesProperties, xScPropHdlFactory);
-    xColumnStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScColumnStylesProperties, xScPropHdlFactory);
-    xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScRowStylesImportProperties, xScPropHdlFactory);
-    xTableStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScTableStylesImportProperties, xScPropHdlFactory);
+    xCellStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScCellStylesProperties, xScPropHdlFactory, false);
+    xColumnStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScColumnStylesProperties, xScPropHdlFactory, false);
+    xRowStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScRowStylesImportProperties, xScPropHdlFactory, false);
+    xTableStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScTableStylesImportProperties, xScPropHdlFactory, false);
 
     // #i66550# needed for 'presentation:event-listener' element for URLs in shapes
     GetNamespaceMap().Add(
diff --git a/sc/source/filter/xml/xmlstyle.cxx b/sc/source/filter/xml/xmlstyle.cxx
index 3a5fe2b..88fdef7 100644
--- a/sc/source/filter/xml/xmlstyle.cxx
+++ b/sc/source/filter/xml/xmlstyle.cxx
@@ -54,9 +54,9 @@ using namespace com::sun::star;
 using namespace ::xmloff::token;
 using namespace ::formula;
 
-#define MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010 }
-#define MAP_EXT(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_012_EXT_COMPAT }
-#define MAP_END()   { NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010 }
+#define MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_EXT(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false }
+#define MAP_END()   { NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010, false }
 
 const XMLPropertyMapEntry aXMLScCellStylesProperties[] =
 {
diff --git a/xmloff/inc/XMLChartPropertySetMapper.hxx b/xmloff/inc/XMLChartPropertySetMapper.hxx
index e2463e2..051910e 100644
--- a/xmloff/inc/XMLChartPropertySetMapper.hxx
+++ b/xmloff/inc/XMLChartPropertySetMapper.hxx
@@ -47,8 +47,8 @@ public:
 class XMLChartPropertySetMapper : public XMLPropertySetMapper
 {
 public:
-    XMLChartPropertySetMapper();
-    ~XMLChartPropertySetMapper();
+    explicit XMLChartPropertySetMapper( bool bForExport );
+            ~XMLChartPropertySetMapper();
 };
 
 // ----------------------------------------
diff --git a/xmloff/qa/unit/uxmloff.cxx b/xmloff/qa/unit/uxmloff.cxx
index a0bd430..4380a9e 100644
--- a/xmloff/qa/unit/uxmloff.cxx
+++ b/xmloff/qa/unit/uxmloff.cxx
@@ -62,7 +62,7 @@ void Test::testAutoStylePool()
     UniReference< SvXMLAutoStylePoolP > xPool(
         new SvXMLAutoStylePoolP( *pExport ) );
     UniReference< XMLPropertySetMapper > xSetMapper(
-        new XMLChartPropertySetMapper );
+        new XMLChartPropertySetMapper( true) );
     UniReference< XMLChartExportPropertyMapper > xExportPropMapper(
         new XMLChartExportPropertyMapper( xSetMapper, *pExport ) );
 
diff --git a/xmloff/source/chart/PropertyMap.hxx b/xmloff/source/chart/PropertyMap.hxx
index f19b365..809c043 100644
--- a/xmloff/source/chart/PropertyMap.hxx
+++ b/xmloff/source/chart/PropertyMap.hxx
@@ -84,14 +84,14 @@
 
 #define XML_SCH_CONTEXT_SPECIAL_ERRORBAR_RANGE      ( XML_SCH_CTF_START + 25 )
 
-#define MAP_FULL( ApiName, NameSpace, XMLTokenName, XMLType, ContextId, EarliestODFVersionForExport ) { ApiName, sizeof(ApiName)-1, XML_NAMESPACE_##NameSpace, xmloff::token::XMLTokenName, XMLType|XML_TYPE_PROP_CHART, ContextId, EarliestODFVersionForExport }
-#define MAP_ENTRY( a, ns, nm, t )            { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFVER_010 }
-#define MAP_ENTRY_ODF12( a, ns, nm, t )      { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFVER_012 }
-#define MAP_ENTRY_ODF_EXT( a, ns, nm, t )    { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT }
-#define MAP_CONTEXT( a, ns, nm, t, c )       { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, c, SvtSaveOptions::ODFVER_010 }
-#define MAP_SPECIAL( a, ns, nm, t, c )       { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFVER_010 }
-#define MAP_SPECIAL_ODF12( a, ns, nm, t, c ) { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFVER_012 }
-#define MAP_ENTRY_END { 0,0,0,xmloff::token::XML_TOKEN_INVALID,0,0,SvtSaveOptions::ODFVER_010 }
+#define MAP_FULL( ApiName, NameSpace, XMLTokenName, XMLType, ContextId, EarliestODFVersionForExport ) { ApiName, sizeof(ApiName)-1, XML_NAMESPACE_##NameSpace, xmloff::token::XMLTokenName, XMLType|XML_TYPE_PROP_CHART, ContextId, EarliestODFVersionForExport, false }
+#define MAP_ENTRY( a, ns, nm, t )            { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFVER_010, false }
+#define MAP_ENTRY_ODF12( a, ns, nm, t )      { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFVER_012, false }
+#define MAP_ENTRY_ODF_EXT( a, ns, nm, t )    { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false }
+#define MAP_CONTEXT( a, ns, nm, t, c )       { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, c, SvtSaveOptions::ODFVER_010, false }
+#define MAP_SPECIAL( a, ns, nm, t, c )       { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFVER_010, false }
+#define MAP_SPECIAL_ODF12( a, ns, nm, t, c ) { a, sizeof(a)-1, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFVER_012, false }
+#define MAP_ENTRY_END { 0,0,0,xmloff::token::XML_TOKEN_INVALID,0,0,SvtSaveOptions::ODFVER_010, false }
 
 // ---------------------------------------------------------
 // PropertyMap for Chart properties drawing- and
diff --git a/xmloff/source/chart/PropertyMaps.cxx b/xmloff/source/chart/PropertyMaps.cxx
index da81152..dd7b59a 100644
--- a/xmloff/source/chart/PropertyMaps.cxx
+++ b/xmloff/source/chart/PropertyMaps.cxx
@@ -171,8 +171,8 @@ const XMLPropertyHandler* XMLChartPropHdlFactory::GetPropertyHandler( sal_Int32
 
 // ----------------------------------------
 
-XMLChartPropertySetMapper::XMLChartPropertySetMapper() :
-        XMLPropertySetMapper( aXMLChartPropMap, new XMLChartPropHdlFactory )
+XMLChartPropertySetMapper::XMLChartPropertySetMapper( bool bForExport ) :
+        XMLPropertySetMapper( aXMLChartPropMap, new XMLChartPropHdlFactory, bForExport )
 {
 }
 
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index 89a8dae..8cd6416 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -1064,7 +1064,7 @@ SchXMLExportHelper_Impl::SchXMLExportHelper_Impl(
     msTableName = OUString( "local-table" );
 
     // create property set mapper
-    mxPropertySetMapper = new XMLChartPropertySetMapper;
+    mxPropertySetMapper = new XMLChartPropertySetMapper( true);
     mxExpPropMapper = new XMLChartExportPropertyMapper( mxPropertySetMapper, rExport );
 
     // register chart auto-style family
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 8e243fa..5486a18 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -72,14 +72,14 @@ using ::com::sun::star::uno::Reference;
 using namespace ::com::sun::star;
 using namespace ::xmloff::token;
 
-#define _MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010 }
-#define _MAPV(name,prefix,token,type,context,version)  { name, sizeof(name)-1, prefix, token, type, context, version }
+#define _MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010, false }
+#define _MAPV(name,prefix,token,type,context,version)  { name, sizeof(name)-1, prefix, token, type, context, version, false }
 #define GMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context)
 #define GMAPV(name,prefix,token,type,context,version) _MAPV(name,prefix,token,type|XML_TYPE_PROP_GRAPHIC,context,version)
 #define DPMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_DRAWING_PAGE,context)
 #define TMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_TEXT,context)
 #define PMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_PARAGRAPH,context)
-#define MAP_END() { 0L, 0, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFVER_010}
+#define MAP_END() { 0L, 0, 0, XML_EMPTY, 0 ,0, SvtSaveOptions::ODFVER_010, false }
 
 //////////////////////////////////////////////////////////////////////////////
 // entry list for graphic properties
@@ -1180,8 +1180,9 @@ const XMLPropertyHandler* XMLSdPropHdlFactory::GetPropertyHandler( sal_Int32 nTy
 
 //////////////////////////////////////////////////////////////////////////////
 
-XMLShapePropertySetMapper::XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef)
-: XMLPropertySetMapper( aXMLSDProperties, rFactoryRef )
+XMLShapePropertySetMapper::XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef,
+        bool bForExport)
+: XMLPropertySetMapper( aXMLSDProperties, rFactoryRef, bForExport )
 {
 }
 
diff --git a/xmloff/source/draw/sdpropls.hxx b/xmloff/source/draw/sdpropls.hxx
index 70ac1b7..e10199c 100644
--- a/xmloff/source/draw/sdpropls.hxx
+++ b/xmloff/source/draw/sdpropls.hxx
@@ -244,7 +244,7 @@ public:
 class XMLShapePropertySetMapper : public XMLPropertySetMapper
 {
 public:
-    XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef);
+    XMLShapePropertySetMapper(const UniReference< XMLPropertyHandlerFactory >& rFactoryRef, bool bForExport);
     ~XMLShapePropertySetMapper();
 };
 
diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx
index c9149b9..5bbdce5 100644
--- a/xmloff/source/draw/sdxmlexp.cxx
+++ b/xmloff/source/draw/sdxmlexp.cxx
@@ -444,7 +444,7 @@ void SAL_CALL SdXMLExport::setSourceDocument( const Reference< lang::XComponent
         const UniReference< XMLPropertyHandlerFactory > aFactoryRef = mpSdPropHdlFactory;
 
         // construct PropertySetMapper
-        UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper( aFactoryRef);
+        UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper( aFactoryRef, true);
 
         // get or create text paragraph export
         GetTextParagraphExport();
@@ -456,7 +456,7 @@ void SAL_CALL SdXMLExport::setSourceDocument( const Reference< lang::XComponent
         mpPropertySetMapper->ChainExportMapper(XMLTextParagraphExport::CreateParaExtPropMapper(*this));
 
         // construct PresPagePropsMapper
-        xMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLSDPresPageProps, aFactoryRef);
+        xMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLSDPresPageProps, aFactoryRef, true);
 
         mpPresPagePropsMapper = new XMLPageExportPropertyMapper( xMapper, *this  );
         if(mpPresPagePropsMapper)
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index 14ec5c8..30c0230 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -1014,7 +1014,7 @@ SvXMLExportPropertyMapper* XMLShapeExport::CreateShapePropMapper(
     SvXMLExport& rExport )
 {
     UniReference< XMLPropertyHandlerFactory > xFactory = new XMLSdPropHdlFactory( rExport.GetModel(), rExport );
-    UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper( xFactory );
+    UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper( xFactory, true );
     rExport.GetTextParagraphExport(); // get or create text paragraph export
     SvXMLExportPropertyMapper* pResult =
         new XMLShapeExportPropertyMapper( xMapper, rExport );
@@ -1259,7 +1259,7 @@ const rtl::Reference< XMLTableExport >& XMLShapeExport::GetShapeTableExport()
     if( !mxShapeTableExport.is() )
     {
         rtl::Reference< XMLPropertyHandlerFactory > xFactory( new XMLSdPropHdlFactory( mrExport.GetModel(), mrExport ) );
-        UniReference < XMLPropertySetMapper > xMapper( new XMLShapePropertySetMapper( xFactory.get() ) );
+        UniReference < XMLPropertySetMapper > xMapper( new XMLShapePropertySetMapper( xFactory.get(), true ) );
         mrExport.GetTextParagraphExport(); // get or create text paragraph export
         rtl::Reference< SvXMLExportPropertyMapper > xPropertySetMapper( new XMLShapeExportPropertyMapper( xMapper, mrExport ) );
         mxShapeTableExport = new XMLTableExport( mrExport, xPropertySetMapper, xFactory );
diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx
index fb41110..7a4619ae 100644
--- a/xmloff/source/draw/shapeimport.cxx
+++ b/xmloff/source/draw/shapeimport.cxx
@@ -154,7 +154,7 @@ XMLShapeImportHelper::XMLShapeImportHelper(
     mpSdPropHdlFactory->acquire();
 
     // construct PropertySetMapper
-    UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper(mpSdPropHdlFactory);
+    UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper(mpSdPropHdlFactory, false);
     mpPropertySetMapper = new SvXMLImportPropertyMapper( xMapper, rImporter );
     // set lock to avoid deletion
     mpPropertySetMapper->acquire();
@@ -170,7 +170,7 @@ XMLShapeImportHelper::XMLShapeImportHelper(
     mpPropertySetMapper->ChainImportMapper(XMLTextImportHelper::CreateParaDefaultExtPropMapper(rImporter));
 
     // construct PresPagePropsMapper
-    xMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLSDPresPageProps, mpSdPropHdlFactory);
+    xMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLSDPresPageProps, mpSdPropHdlFactory, false);
     mpPresPagePropsMapper = new SvXMLImportPropertyMapper( xMapper, rImporter );
     if(mpPresPagePropsMapper)
     {
@@ -1055,7 +1055,7 @@ void XMLShapeImportHelper::restoreConnections()
 SvXMLImportPropertyMapper* XMLShapeImportHelper::CreateShapePropMapper( const uno::Reference< frame::XModel>& rModel, SvXMLImport& rImport )
 {
     UniReference< XMLPropertyHandlerFactory > xFactory = new XMLSdPropHdlFactory( rModel, rImport );
-    UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper( xFactory );
+    UniReference < XMLPropertySetMapper > xMapper = new XMLShapePropertySetMapper( xFactory, false );
     SvXMLImportPropertyMapper* pResult = new SvXMLImportPropertyMapper( xMapper, rImport );
 
     // chain text attributes
@@ -1160,7 +1160,7 @@ const rtl::Reference< XMLTableImport >& XMLShapeImportHelper::GetShapeTableImpor
     if( !mxShapeTableImport.is() )
     {
         rtl::Reference< XMLPropertyHandlerFactory > xFactory( new XMLSdPropHdlFactory( mrImporter.GetModel(), mrImporter ) );
-        rtl::Reference< XMLPropertySetMapper > xPropertySetMapper( new XMLShapePropertySetMapper( xFactory.get() ) );
+        rtl::Reference< XMLPropertySetMapper > xPropertySetMapper( new XMLShapePropertySetMapper( xFactory.get(), false ) );
         mxShapeTableImport = new XMLTableImport( mrImporter, xPropertySetMapper, xFactory );
     }
 
diff --git a/xmloff/source/forms/controlpropertymap.cxx b/xmloff/source/forms/controlpropertymap.cxx
index 2f0dc04..59e5986 100644
--- a/xmloff/source/forms/controlpropertymap.cxx
+++ b/xmloff/source/forms/controlpropertymap.cxx
@@ -35,10 +35,10 @@ namespace xmloff
 {
 //.........................................................................
 
-#define MAP_ASCII( name, prefix, token, type, context )  { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFVER_010 }
-#define MAP_CONST( name, prefix, token, type, context )  { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFVER_010 }
-#define MAP_CONST_P( name, prefix, token, type, context ){ name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_PARAGRAPH, context, SvtSaveOptions::ODFVER_010 }
-#define MAP_END()   { NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010 }
+#define MAP_ASCII( name, prefix, token, type, context )  { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_CONST( name, prefix, token, type, context )  { name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_TEXT, context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_CONST_P( name, prefix, token, type, context ){ name, sizeof(name)-1, prefix, token, type|XML_TYPE_PROP_PARAGRAPH, context, SvtSaveOptions::ODFVER_010, false }
+#define MAP_END()   { NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010, false }
 
     XMLPropertyMapEntry* getControlStylePropertyMap_Access( )
     {
diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx
index c880662..663609a 100644
--- a/xmloff/source/forms/layerexport.cxx
+++ b/xmloff/source/forms/layerexport.cxx
@@ -89,7 +89,7 @@ namespace xmloff
 
         // add our style family to the export context's style pool
         m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory();
-        ::rtl::Reference< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper( getControlStylePropertyMap(), m_xPropertyHandlerFactory.get() );
+        ::rtl::Reference< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper( getControlStylePropertyMap(), m_xPropertyHandlerFactory.get(), true );
         m_xStyleExportMapper = new OFormComponentStyleExportMapper( xStylePropertiesMapper.get() );
 
         // our style family
diff --git a/xmloff/source/style/PageMasterPropMapper.cxx b/xmloff/source/style/PageMasterPropMapper.cxx
index 273e1c3..639fbb0 100644
--- a/xmloff/source/style/PageMasterPropMapper.cxx
+++ b/xmloff/source/style/PageMasterPropMapper.cxx
@@ -31,15 +31,16 @@ using namespace ::com::sun::star::beans;
 
 //______________________________________________________________________________
 
-XMLPageMasterPropSetMapper::XMLPageMasterPropSetMapper():
-    XMLPropertySetMapper( aXMLPageMasterStyleMap, new XMLPageMasterPropHdlFactory())
+XMLPageMasterPropSetMapper::XMLPageMasterPropSetMapper( bool bForExport ):
+    XMLPropertySetMapper( aXMLPageMasterStyleMap, new XMLPageMasterPropHdlFactory(), bForExport)
 {
 }
 
 XMLPageMasterPropSetMapper::XMLPageMasterPropSetMapper(
         const XMLPropertyMapEntry* pEntries,
-        const UniReference< XMLPropertyHandlerFactory >& rFactory ) :
-    XMLPropertySetMapper( pEntries, rFactory )
+        const UniReference< XMLPropertyHandlerFactory >& rFactory,
+        bool bForExport ) :
+    XMLPropertySetMapper( pEntries, rFactory, bForExport )
 {
 }
 
diff --git a/xmloff/source/style/PageMasterPropMapper.hxx b/xmloff/source/style/PageMasterPropMapper.hxx
index 231a359..392fe17 100644
--- a/xmloff/source/style/PageMasterPropMapper.hxx
+++ b/xmloff/source/style/PageMasterPropMapper.hxx
@@ -28,10 +28,11 @@
 class XMLPageMasterPropSetMapper : public XMLPropertySetMapper
 {
 public:
-                        XMLPageMasterPropSetMapper();
+                        XMLPageMasterPropSetMapper( bool bForExport );
                         XMLPageMasterPropSetMapper(
                             const XMLPropertyMapEntry* pEntries,
-                            const UniReference< XMLPropertyHandlerFactory >& rFactory );
+                            const UniReference< XMLPropertyHandlerFactory >& rFactory,
+                            bool bForExport );
     virtual             ~XMLPageMasterPropSetMapper();
 };
 
diff --git a/xmloff/source/style/PageMasterStyleMap.cxx b/xmloff/source/style/PageMasterStyleMap.cxx
index 8726729..18d6ea2 100644
--- a/xmloff/source/style/PageMasterStyleMap.cxx
+++ b/xmloff/source/style/PageMasterStyleMap.cxx
@@ -24,7 +24,7 @@
 
 using namespace ::xmloff::token;
 
-#define MAP(name,prefix,token,type,context,version)  { name, sizeof(name)-1, prefix, token, type, context, version }
+#define MAP(name,prefix,token,type,context,version)  { name, sizeof(name)-1, prefix, token, type, context, version, false }
 #define PLMAP(name,prefix,token,type,context) \
         MAP(name,prefix,token,type|XML_TYPE_PROP_PAGE_LAYOUT,context, SvtSaveOptions::ODFVER_010)
 #define PLMAP_12(name,prefix,token,type,context) \
@@ -186,7 +186,7 @@ const XMLPropertyMapEntry aXMLPageMasterStyleMap[] =
     HFMAP( "FooterBackGraphicURL",      XML_NAMESPACE_STYLE,    XML_BACKGROUND_IMAGE,           XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM,                CTF_PM_FOOTERGRAPHICURL ),
     HFMAP( "FooterDynamicSpacing",        XML_NAMESPACE_STYLE,    XML_DYNAMIC_SPACING,           XML_TYPE_BOOL,          CTF_PM_FOOTERFLAG ),
 
-    { 0L, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010 }
+    { 0L, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, false }
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/xmloff/source/style/XMLPageExport.cxx b/xmloff/source/style/XMLPageExport.cxx
index 48e4295..7278eb9 100644
--- a/xmloff/source/style/XMLPageExport.cxx
+++ b/xmloff/source/style/XMLPageExport.cxx
@@ -161,7 +161,7 @@ XMLPageExport::XMLPageExport( SvXMLExport& rExp ) :
     xPageMasterPropHdlFactory = new XMLPageMasterPropHdlFactory;
     xPageMasterPropSetMapper = new XMLPageMasterPropSetMapper(
                                 (XMLPropertyMapEntry*) aXMLPageMasterStyleMap,
-                                xPageMasterPropHdlFactory  );
+                                xPageMasterPropHdlFactory, true );
     xPageMasterExportPropMapper = new XMLPageMasterExportPropMapper(
                                     xPageMasterPropSetMapper, rExp);
 
diff --git a/xmloff/source/style/xmlprmap.cxx b/xmloff/source/style/xmlprmap.cxx
index 351c912..1ea9a6f 100644
--- a/xmloff/source/style/xmlprmap.cxx
+++ b/xmloff/source/style/xmlprmap.cxx
@@ -40,10 +40,11 @@ XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
     sXMLAttributeName( GetXMLToken(rMapEntry.meXMLName) ),
     sAPIPropertyName( OUString(rMapEntry.msApiName, rMapEntry.nApiNameLength,
                                RTL_TEXTENCODING_ASCII_US ) ),
-    nXMLNameSpace( rMapEntry.mnNameSpace ),
     nType( rMapEntry.mnType ),
+    nXMLNameSpace( rMapEntry.mnNameSpace ),
     nContextId( rMapEntry.mnContextId ),
     nEarliestODFVersionForExport( rMapEntry.mnEarliestODFVersionForExport ),
+    bImportOnly( rMapEntry.mbImportOnly),
     pHdl( rFactory->GetPropertyHandler( rMapEntry.mnType & MID_FLAG_MASK ) )
 {
 }
@@ -52,10 +53,11 @@ XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
         const XMLPropertySetMapperEntry_Impl& rEntry ) :
     sXMLAttributeName( rEntry.sXMLAttributeName),
     sAPIPropertyName( rEntry.sAPIPropertyName),
-    nXMLNameSpace( rEntry.nXMLNameSpace),
     nType( rEntry.nType),
+    nXMLNameSpace( rEntry.nXMLNameSpace),
     nContextId( rEntry.nContextId),
     nEarliestODFVersionForExport( rEntry.nEarliestODFVersionForExport ),
+    bImportOnly( rEntry.bImportOnly),
     pHdl( rEntry.pHdl)
 {
     DBG_ASSERT( pHdl, "Unknown XML property type handler!" );
@@ -67,19 +69,36 @@ XMLPropertySetMapperEntry_Impl::XMLPropertySetMapperEntry_Impl(
 //
 XMLPropertySetMapper::XMLPropertySetMapper(
         const XMLPropertyMapEntry* pEntries,
-        const UniReference< XMLPropertyHandlerFactory >& rFactory )
+        const UniReference< XMLPropertyHandlerFactory >& rFactory,
+        bool bForExport )
+    :
+        mbOnlyExportMappings( bForExport)
 {
     aHdlFactories.push_back( rFactory );
     if( pEntries )
     {
         const XMLPropertyMapEntry* pIter = pEntries;
 
-        // count entries
-        while( pIter->msApiName )
+        if (mbOnlyExportMappings)
+        {
+            while( pIter->msApiName )
+            {
+                if (!pIter->mbImportOnly)
+                {
+                    XMLPropertySetMapperEntry_Impl aEntry( *pIter, rFactory );
+                    aMapEntries.push_back( aEntry );
+                }
+                pIter++;
+            }
+        }
+        else
         {
-            XMLPropertySetMapperEntry_Impl aEntry( *pIter, rFactory );
-            aMapEntries.push_back( aEntry );
-            pIter++;
+            while( pIter->msApiName )
+            {
+                XMLPropertySetMapperEntry_Impl aEntry( *pIter, rFactory );
+                aMapEntries.push_back( aEntry );
+                pIter++;
+            }
         }
     }
 }
@@ -104,7 +123,8 @@ void XMLPropertySetMapper::AddMapperEntry(
          aEIter != rMapper->aMapEntries.end();
          ++aEIter )
     {
-        aMapEntries.push_back( *aEIter );
+        if (!mbOnlyExportMappings || !(*aEIter).bImportOnly)
+            aMapEntries.push_back( *aEIter );
     }
 }
 
diff --git a/xmloff/source/style/xmlstyle.cxx b/xmloff/source/style/xmlstyle.cxx
index c54d7ff..7ca0b20 100644
--- a/xmloff/source/style/xmlstyle.cxx
+++ b/xmloff/source/style/xmlstyle.cxx
@@ -677,7 +677,7 @@ UniReference < SvXMLImportPropertyMapper > SvXMLStylesContext::GetImportProperty
     case XML_STYLE_FAMILY_SCH_CHART_ID:
         if( ! mxChartImpPropMapper.is() )
         {
-            XMLPropertySetMapper *pPropMapper = new XMLChartPropertySetMapper();
+            XMLPropertySetMapper *pPropMapper = new XMLChartPropertySetMapper( false );
             mxChartImpPropMapper = new XMLChartImportPropertyMapper( pPropMapper, GetImport() );
         }
         xMapper = mxChartImpPropMapper;
@@ -686,7 +686,7 @@ UniReference < SvXMLImportPropertyMapper > SvXMLStylesContext::GetImportProperty
         if( ! mxPageImpPropMapper.is() )
         {
             XMLPropertySetMapper *pPropMapper =
-                new XMLPageMasterPropSetMapper();
+                new XMLPageMasterPropSetMapper( false );
             mxPageImpPropMapper =
                 new PageMasterImportPropertyMapper( pPropMapper,
                                     ((SvXMLStylesContext*)this)->GetImport() );
diff --git a/xmloff/source/table/XMLTableExport.cxx b/xmloff/source/table/XMLTableExport.cxx
index b710ade..611273d 100644
--- a/xmloff/source/table/XMLTableExport.cxx
+++ b/xmloff/source/table/XMLTableExport.cxx
@@ -54,10 +54,10 @@ using namespace ::com::sun::star::style;
 
 // --------------------------------------------------------------------
 
-#define _MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010 }
+#define _MAP(name,prefix,token,type,context)  { name, sizeof(name)-1, prefix, token, type, context, SvtSaveOptions::ODFVER_010, false }
 #define CMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_TABLE_COLUMN,context)
 #define RMAP(name,prefix,token,type,context) _MAP(name,prefix,token,type|XML_TYPE_PROP_TABLE_ROW,context)
-#define MAP_END { 0L, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010 }
+#define MAP_END { 0L, 0, 0, XML_EMPTY, 0, 0, SvtSaveOptions::ODFVER_010, false }
 
 // --------------------------------------------------------------------
 
@@ -163,8 +163,8 @@ XMLTableExport::XMLTableExport(SvXMLExport& rExp, const rtl::Reference< SvXMLExp
     mxCellExportPropertySetMapper = xExportPropertyMapper;
     mxCellExportPropertySetMapper->ChainExportMapper(XMLTextParagraphExport::CreateParaExtPropMapper(rExp));
 
-    mxRowExportPropertySetMapper = new SvXMLExportPropertyMapper( new XMLPropertySetMapper( getRowPropertiesMap(), xFactoryRef.get() ) );
-    mxColumnExportPropertySetMapper = new SvXMLExportPropertyMapper( new XMLPropertySetMapper( getColumnPropertiesMap(), xFactoryRef.get() ) );
+    mxRowExportPropertySetMapper = new SvXMLExportPropertyMapper( new XMLPropertySetMapper( getRowPropertiesMap(), xFactoryRef.get(), true ) );
+    mxColumnExportPropertySetMapper = new SvXMLExportPropertyMapper( new XMLPropertySetMapper( getColumnPropertiesMap(), xFactoryRef.get(), true ) );
 
     mrExport.GetAutoStylePool()->AddFamily(XML_STYLE_FAMILY_TABLE_COLUMN,
         OUString(XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_NAME),
diff --git a/xmloff/source/table/XMLTableImport.cxx b/xmloff/source/table/XMLTableImport.cxx
index 5925490..1f84765 100644
--- a/xmloff/source/table/XMLTableImport.cxx
+++ b/xmloff/source/table/XMLTableImport.cxx
@@ -205,11 +205,10 @@ XMLTableImport::XMLTableImport( SvXMLImport& rImport, const rtl::Reference< XMLP
     mxCellImportPropertySetMapper = new SvXMLImportPropertyMapper( xCellPropertySetMapper.get(), rImport );
     mxCellImportPropertySetMapper->ChainImportMapper(XMLTextImportHelper::CreateParaExtPropMapper(rImport));
 
-
-    UniReference < XMLPropertySetMapper > xRowMapper( new XMLPropertySetMapper( getRowPropertiesMap(), xFactoryRef.get() ) );
+    UniReference < XMLPropertySetMapper > xRowMapper( new XMLPropertySetMapper( getRowPropertiesMap(), xFactoryRef.get(), false ) );
     mxRowImportPropertySetMapper = new SvXMLImportPropertyMapper( xRowMapper, rImport );
 
-    UniReference < XMLPropertySetMapper > xColMapper( new XMLPropertySetMapper( getColumnPropertiesMap(), xFactoryRef.get() ) );
+    UniReference < XMLPropertySetMapper > xColMapper( new XMLPropertySetMapper( getColumnPropertiesMap(), xFactoryRef.get(), false ) );
     mxColumnImportPropertySetMapper = new SvXMLImportPropertyMapper( xColMapper, rImport );
 }
 
diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx
index 24221a6..42e0576 100644
--- a/xmloff/source/text/txtimp.cxx
+++ b/xmloff/source/text/txtimp.cxx
@@ -1001,23 +1001,23 @@ XMLTextImportHelper::XMLTextImportHelper(
     }
 
     XMLPropertySetMapper *pPropMapper =
-            new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA );
+            new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA, false );
     m_pImpl->m_xParaImpPrMap =
         new XMLTextImportPropertyMapper( pPropMapper, rImport );
 
-    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT );
+    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT, false );
     m_pImpl->m_xTextImpPrMap =
         new XMLTextImportPropertyMapper( pPropMapper, rImport );
 
-    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME );
+    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME, false );
     m_pImpl->m_xFrameImpPrMap =
         new XMLTextImportPropertyMapper( pPropMapper, rImport );
 
-    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_SECTION );
+    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_SECTION, false );
     m_pImpl->m_xSectionImpPrMap =
         new XMLTextImportPropertyMapper( pPropMapper, rImport );
 
-    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_RUBY );
+    pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_RUBY, false );
     m_pImpl->m_xRubyImpPrMap =
         new SvXMLImportPropertyMapper( pPropMapper, rImport );
 }
@@ -1029,25 +1029,25 @@ XMLTextImportHelper::~XMLTextImportHelper()
 SvXMLImportPropertyMapper *XMLTextImportHelper::CreateShapeExtPropMapper(SvXMLImport& rImport)
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME, false );
     return new XMLTextImportPropertyMapper( pPropMapper, rImport );
 }
 
 SvXMLImportPropertyMapper *XMLTextImportHelper::CreateParaExtPropMapper(SvXMLImport& rImport)
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA, false );
     return new XMLTextImportPropertyMapper( pPropMapper, rImport );
 }
 
 SvXMLImportPropertyMapper *XMLTextImportHelper::CreateParaDefaultExtPropMapper(SvXMLImport& rImport)
 {
     XMLPropertySetMapper* pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA, false );
     SvXMLImportPropertyMapper* pImportMapper = new XMLTextImportPropertyMapper( pPropMapper, rImport );
 
     pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT_ADDITIONAL_DEFAULTS );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT_ADDITIONAL_DEFAULTS, false );
     pImportMapper->ChainImportMapper( new XMLTextImportPropertyMapper( pPropMapper, rImport ) );
 
     return pImportMapper;
@@ -1058,7 +1058,7 @@ SvXMLImportPropertyMapper*
         SvXMLImport& rImport )
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_DEFAULTS );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_DEFAULTS, false );
     return new SvXMLImportPropertyMapper( pPropMapper, rImport );
 }
 
@@ -1067,7 +1067,7 @@ SvXMLImportPropertyMapper*
         SvXMLImport& rImport )
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_ROW_DEFAULTS );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_ROW_DEFAULTS, false );
     return new SvXMLImportPropertyMapper( pPropMapper, rImport );
 }
 
diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx
index 3b5933b..e09b6a2 100644
--- a/xmloff/source/text/txtparae.cxx
+++ b/xmloff/source/text/txtparae.cxx
@@ -1273,7 +1273,7 @@ XMLTextParagraphExport::XMLTextParagraphExport(
     sTextFieldStartEnd( "TextFieldStartEnd"  ),
     aCharStyleNamesPropInfoCache( sCharStyleNames )
 {
-    UniReference < XMLPropertySetMapper > xPropMapper(new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA ));
+    UniReference < XMLPropertySetMapper > xPropMapper(new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA, true ));
     xParaPropMapper = new XMLTextExportPropertySetMapper( xPropMapper,
                                                              GetExport() );
 
@@ -1282,7 +1282,7 @@ XMLTextParagraphExport::XMLTextParagraphExport(
     rAutoStylePool.AddFamily( XML_STYLE_FAMILY_TEXT_PARAGRAPH, sFamily,
                               xParaPropMapper, aPrefix );
 
-    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT );
+    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT, true );
     xTextPropMapper = new XMLTextExportPropertySetMapper( xPropMapper,
                                                              GetExport() );
     sFamily = OUString( GetXMLToken(XML_TEXT) );
@@ -1290,7 +1290,7 @@ XMLTextParagraphExport::XMLTextParagraphExport(
     rAutoStylePool.AddFamily( XML_STYLE_FAMILY_TEXT_TEXT, sFamily,
                               xTextPropMapper, aPrefix );
 
-    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_AUTO_FRAME );
+    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_AUTO_FRAME, true );
     xAutoFramePropMapper = new XMLTextExportPropertySetMapper( xPropMapper,
                                                                   GetExport() );
     sFamily = OUString( XML_STYLE_FAMILY_SD_GRAPHICS_NAME );
@@ -1298,7 +1298,7 @@ XMLTextParagraphExport::XMLTextParagraphExport(
     rAutoStylePool.AddFamily( XML_STYLE_FAMILY_TEXT_FRAME, sFamily,
                               xAutoFramePropMapper, aPrefix );
 
-    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_SECTION );
+    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_SECTION, true );
     xSectionPropMapper = new XMLTextExportPropertySetMapper( xPropMapper,
                                                              GetExport() );
     sFamily = OUString( GetXMLToken( XML_SECTION ) );
@@ -1306,14 +1306,14 @@ XMLTextParagraphExport::XMLTextParagraphExport(
     rAutoStylePool.AddFamily( XML_STYLE_FAMILY_TEXT_SECTION, sFamily,
                               xSectionPropMapper, aPrefix );
 
-    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_RUBY );
+    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_RUBY, true );
     xRubyPropMapper = new SvXMLExportPropertyMapper( xPropMapper );
     sFamily = OUString( GetXMLToken( XML_RUBY ) );
     aPrefix = OUString( "Ru"  );
     rAutoStylePool.AddFamily( XML_STYLE_FAMILY_TEXT_RUBY, sFamily,
                               xRubyPropMapper, aPrefix );
 
-    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME );
+    xPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME, true );
     xFramePropMapper = new XMLTextExportPropertySetMapper( xPropMapper,
                                                               GetExport() );
 
@@ -1357,7 +1357,7 @@ SvXMLExportPropertyMapper *XMLTextParagraphExport::CreateShapeExtPropMapper(
         SvXMLExport& rExport )
 {
     UniReference < XMLPropertySetMapper > xPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE, true );
     return new XMLTextExportPropertySetMapper( xPropMapper, rExport );
 }
 
@@ -1365,7 +1365,7 @@ SvXMLExportPropertyMapper *XMLTextParagraphExport::CreateCharExtPropMapper(
         SvXMLExport& rExport)
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT, true );
     return new XMLTextExportPropertySetMapper( pPropMapper, rExport );
 }
 
@@ -1373,7 +1373,7 @@ SvXMLExportPropertyMapper *XMLTextParagraphExport::CreateParaExtPropMapper(
         SvXMLExport& rExport)
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA, true );
     return new XMLTextExportPropertySetMapper( pPropMapper, rExport );
 }
 
@@ -1381,7 +1381,7 @@ SvXMLExportPropertyMapper *XMLTextParagraphExport::CreateParaDefaultExtPropMappe
         SvXMLExport& rExport)
 {
     XMLPropertySetMapper *pPropMapper =
-        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT_ADDITIONAL_DEFAULTS );
+        new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT_ADDITIONAL_DEFAULTS, true );
     return new XMLTextExportPropertySetMapper( pPropMapper, rExport );
 }
 
diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx
index def8335..26d04d8 100644
--- a/xmloff/source/text/txtprmap.cxx
+++ b/xmloff/source/text/txtprmap.cxx
@@ -31,13 +31,13 @@ using namespace ::com::sun::star::uno;
 using namespace ::xmloff::token;
 
 #define _M_E( a, p, l, t, c ) \
-    { a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, t, c, SvtSaveOptions::ODFVER_010 }
+    { a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, t, c, SvtSaveOptions::ODFVER_010, false }
 
 #define _M_EV( a, p, l, t, c, v ) \
-    { a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, t, c, v }
+    { a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, t, c, v, false }
 
 #define _M_ED( a, p, l, t, c ) \
-    { a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, (t) | MID_FLAG_DEFAULT_ITEM_EXPORT, c, SvtSaveOptions::ODFVER_010 }
+    { a, sizeof(a)-1, XML_NAMESPACE_##p, XML_##l, (t) | MID_FLAG_DEFAULT_ITEM_EXPORT, c, SvtSaveOptions::ODFVER_010, false }
 
 // text properties
 #define MT_E( a, p, l, t, c ) \
@@ -68,7 +68,7 @@ using namespace ::xmloff::token;
     _M_E( a, p, l, (t|XML_TYPE_PROP_RUBY), c )
 
 #define M_END() \
-    { NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010 }
+    { NULL, 0, 0, XML_TOKEN_INVALID, 0, 0, SvtSaveOptions::ODFVER_010, false }
 
 
 XMLPropertyMapEntry aXMLParaPropMap[] =
@@ -88,7 +88,7 @@ XMLPropertyMapEntry aXMLParaPropMap[] =
     MP_E( "ParaTopMarginRelative",  FO, MARGIN_TOP,         XML_TYPE_PERCENT16, CTF_PARATOPMARGIN_REL ),
     MP_E( "ParaBottomMargin",       FO, MARGIN_BOTTOM,      XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARABOTTOMMARGIN ),
     MP_E( "ParaBottomMarginRelative",FO,    MARGIN_BOTTOM,      XML_TYPE_PERCENT16, CTF_PARABOTTOMMARGIN_REL ),
-    { "ParaContextMargin", sizeof("ParaContextMargin")-1, XML_NAMESPACE_STYLE, XML_CONTEXTUAL_SPACING, XML_TYPE_BOOL|XML_TYPE_PROP_PARAGRAPH, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT },
+    { "ParaContextMargin", sizeof("ParaContextMargin")-1, XML_NAMESPACE_STYLE, XML_CONTEXTUAL_SPACING, XML_TYPE_BOOL|XML_TYPE_PROP_PARAGRAPH, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false },
     // RES_CHRATR_CASEMAP
     MT_E( "CharCaseMap",        FO,     FONT_VARIANT,       XML_TYPE_TEXT_CASEMAP_VAR,  0 ),
     MT_E( "CharCaseMap",        FO,     TEXT_TRANSFORM,     XML_TYPE_TEXT_CASEMAP,  0 ),
@@ -136,9 +136,9 @@ XMLPropertyMapEntry aXMLParaPropMap[] =
     // RES_CHRATR_WEIGHT
     MT_E( "CharWeight",     FO,     FONT_WEIGHT,        XML_TYPE_TEXT_WEIGHT, 0 ),
 	// RES_CHRATR_RSID
-    { "Rsid", sizeof("Rsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_RSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT },
+    { "Rsid", sizeof("Rsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_RSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false },
 	// RES_PARATR_RSID
-    { "ParRsid", sizeof("ParRsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_PARRSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT },
+    { "ParRsid", sizeof("ParRsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_PARRSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false },
     // RES_CHRATR_WORDLINEMODE
     MT_E( "CharWordMode",   STYLE,  TEXT_UNDERLINE_MODE,        XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
     MT_E( "CharWordMode",   STYLE,  TEXT_OVERLINE_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
@@ -434,9 +434,9 @@ XMLPropertyMapEntry aXMLTextPropMap[] =
     // RES_CHRATR_WEIGHT
     MT_E( "CharWeight",     FO,     FONT_WEIGHT,        XML_TYPE_TEXT_WEIGHT, 0 ),
 	// RES_CHRATR_RSID
-    { "Rsid", sizeof("Rsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_RSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT },
+    { "Rsid", sizeof("Rsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_RSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false },
 	// RES_PARATR_RSID
-    { "ParRsid", sizeof("ParRsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_PARRSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT },
+    { "ParRsid", sizeof("ParRsid")-1, XML_NAMESPACE_OFFICE_EXT, XML_PARRSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT, false },
     // RES_CHRATR_WORDLINEMODE
     MT_E( "CharWordMode",   STYLE,  TEXT_UNDERLINE_MODE,        XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
     MT_E( "CharWordMode",   STYLE,  TEXT_OVERLINE_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
@@ -890,9 +890,9 @@ const XMLPropertyMapEntry* XMLTextPropertySetMapper::getPropertyMapForType( sal_
     return lcl_txtprmap_getMap( _nType );
 }
 
-XMLTextPropertySetMapper::XMLTextPropertySetMapper( sal_uInt16 nType ) :
+XMLTextPropertySetMapper::XMLTextPropertySetMapper( sal_uInt16 nType, bool bForExport ) :
     XMLPropertySetMapper( lcl_txtprmap_getMap( nType ),
-                          new XMLTextPropertyHandlerFactory )
+                          new XMLTextPropertyHandlerFactory, bForExport )
 {
 }
 
diff --git a/xmloff/source/text/txtstyle.cxx b/xmloff/source/text/txtstyle.cxx
index b507b09..c3dd060 100644
--- a/xmloff/source/text/txtstyle.cxx
+++ b/xmloff/source/text/txtstyle.cxx
@@ -128,7 +128,7 @@ void XMLTextParagraphExport::exportTextStyles( sal_Bool bUsed, sal_Bool bProg )
                 GetXMLToken(XML_TABLE),
                 new XMLTextExportPropertySetMapper(
                     new XMLTextPropertySetMapper(
-                        TEXT_PROP_MAP_TABLE_DEFAULTS ),
+                        TEXT_PROP_MAP_TABLE_DEFAULTS, true ),
                     GetExport() ) );
 
             exportDefaultStyle(
@@ -136,7 +136,7 @@ void XMLTextParagraphExport::exportTextStyles( sal_Bool bUsed, sal_Bool bProg )
                 GetXMLToken(XML_TABLE_ROW),
                 new XMLTextExportPropertySetMapper(
                     new XMLTextPropertySetMapper(
-                        TEXT_PROP_MAP_TABLE_ROW_DEFAULTS ),
+                        TEXT_PROP_MAP_TABLE_ROW_DEFAULTS, true ),
                     GetExport() ) );
         }
     }
-- 
1.8.4.2