21#include <com/sun/star/beans/XPropertySetInfo.hpp>
22#include <com/sun/star/lang/XMultiServiceFactory.hpp>
23#include <com/sun/star/uno/XComponentContext.hpp>
24#include <rtl/ustrbuf.hxx>
59enum XMLUserDefinedTransformerAction
62 XML_ETACTION_DOCUMENT,
67 XML_ETACTION_STYLE_RENAME,
71 XML_ETACTION_TAB_STOP,
72 XML_ETACTION_FORM_CONTROL,
73 XML_ETACTION_FORM_PROPERTY,
74 XML_ETACTION_CONFIG_ITEM,
75 XML_ETACTION_TRACKED_CHANGES,
77 XML_ETACTION_CHART_PLOT_AREA
82#define ENTRY3( n, l, a, p1, p2, p3 ) \
83 { n, l, a, p1, p2, p3 }
84#define ENTRY3QNQ( n, l, a, n1, l1, p2, n3, l3 ) \
85 ENTRY3( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), \
86 p2, XMLTransformerActionInit::QNameParam( n3, l3 ) )
88#define ENTRY2( n, l, a, p1, p2 ) \
89 ENTRY3( n, l, a, p1, p2, 0 )
90#define ENTRY2QN( n, l, a, n1, l1, p2 ) \
91 ENTRY2( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), p2 )
93#define ENTRY1( n, l, a, p1 ) \
94 ENTRY3( n, l, a, p1, 0, 0 )
95#define ENTRY1Q( n, l, a, p1, t1 ) \
96 ENTRY1( n, l, a, XMLTransformerActionInit::QNameParam( p1, t1 ) )
98#define ENTRY0( n, l, a ) \
99 ENTRY3( n, l, a, 0, 0, 0 )
105 return static_cast< sal_Int32
>(f) | (
static_cast< sal_Int32
>(s) << 16);
1080 OUString m_aElemQName;
1084 const OUString& rQName );
1086 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
override;
1092XMLTableTransformerContext_Impl::XMLTableTransformerContext_Impl(
1094 const OUString& rQName ) :
1096 m_aElemQName( rQName )
1100void XMLTableTransformerContext_Impl::StartElement(
1101 const Reference< XAttributeList >& rAttrList )
1103 Reference< XAttributeList > xAttrList( rAttrList );
1107 sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1108 for( sal_Int16 i=0;
i < nAttrCount;
i++ )
1110 const OUString& rAttrName = xAttrList->getNameByIndex( i );
1111 OUString aLocalName;
1112 sal_uInt16 nPrefix =
1113 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1119 const OUString& rValue = xAttrList->getValueByIndex( i );
1122 m_aElemQName = GetTransformer().GetNamespaceMap().GetQNameByKey(
1125 if ( !pMutableAttrList )
1129 xAttrList = pMutableAttrList;
1131 pMutableAttrList->RemoveAttributeByIndex( i );
1138 const OUString& rValue = xAttrList->getValueByIndex( i );
1139 OUString aAttrValue( rValue );
1142 if ( !pMutableAttrList )
1146 xAttrList = pMutableAttrList;
1148 pMutableAttrList->SetValueByIndex( i, aAttrValue );
1153 if ( !pMutableAttrList )
1157 xAttrList = pMutableAttrList;
1159 pMutableAttrList->RemoveAttributeByIndex( i );
1164 GetTransformer().GetDocHandler()->startElement( m_aElemQName, xAttrList );
1167void XMLTableTransformerContext_Impl::EndElement()
1169 GetTransformer().GetDocHandler()->endElement( m_aElemQName );
1180 const OUString& rQName );
1182 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
override;
1185 const OUString& rLocalName,
1186 const OUString& rQName,
1187 const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
override;
1193XMLBodyOASISTransformerContext_Impl::XMLBodyOASISTransformerContext_Impl(
1195 const OUString& rQName ) :
1197 m_bFirstChild( false )
1201void XMLBodyOASISTransformerContext_Impl::StartElement(
1202 const Reference< XAttributeList >& )
1207 const OUString& rLocalName,
1208 const OUString& rQName,
1209 const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
1213 m_bFirstChild =
true;
1220void XMLBodyOASISTransformerContext_Impl::EndElement()
1234 const OUString& rQName );
1236 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
override;
1241XMLTabStopOASISTContext_Impl::XMLTabStopOASISTContext_Impl(
1243 const OUString& rQName ) :
1248void XMLTabStopOASISTContext_Impl::StartElement(
1249 const Reference< XAttributeList >& rAttrList )
1253 SAL_WARN_IF(
nullptr == pActions,
"xmloff.transform",
"got no actions" );
1256 sal_Int16 nLeaderText = -1;
1257 Reference< XAttributeList > xAttrList( rAttrList );
1259 sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1260 for( sal_Int16 i=0;
i < nAttrCount;
i++ )
1262 const OUString& rAttrName = xAttrList->getNameByIndex( i );
1263 OUString aLocalName;
1264 sal_uInt16 nPrefix =
1265 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1267 XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
1268 XMLTransformerActions::const_iterator aIter =
1269 pActions->find( aKey );
1270 if( aIter != pActions->end() )
1272 if( !pMutableAttrList )
1276 xAttrList = pMutableAttrList;
1278 const OUString& rAttrValue = xAttrList->getValueByIndex( i );
1279 switch( (*aIter).second.m_nActionType )
1285 cStyleLeaderChar =
' ';
1287 cStyleLeaderChar =
'.';
1289 cStyleLeaderChar = 0;
1290 pMutableAttrList->RemoveAttributeByIndex( i );
1297 OUString aNewAttrQName(
1298 GetTransformer().GetNamespaceMap().GetQNameByKey(
1299 (*aIter).second.GetQNamePrefixFromParam1(),
1301 (*aIter).second.GetQNameTokenFromParam1()) ) );
1302 pMutableAttrList->RenameAttributeByIndex( i,
1307 if( rAttrValue.getLength() > 1 )
1309 OUString aAttrValue( rAttrValue.copy( 0, 1 ) );
1310 pMutableAttrList->SetValueByIndex( i, aAttrValue );
1317 OUString aAttrValue( rAttrValue );
1320 pMutableAttrList->SetValueByIndex( i, aAttrValue );
1324 SAL_WARN(
"xmloff.transform",
"unknown action" );
1330 if( cStyleLeaderChar &&
' ' != cStyleLeaderChar )
1332 if( nLeaderText != -1 )
1334 OUString aNewAttrQName(
1335 GetTransformer().GetNamespaceMap().GetQNameByKey(
1338 pMutableAttrList->AddAttribute( aNewAttrQName,
1339 OUString( cStyleLeaderChar ) );
1344 if( nLeaderText != -1 )
1345 pMutableAttrList->RemoveAttributeByIndex( nLeaderText );
1356 bool m_bIsRedlineProtectionKey;
1362 const OUString& rQName );
1364 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
override;
1367 virtual void Characters(
const OUString& rChars )
override;
1372XMLConfigItemTContext_Impl::XMLConfigItemTContext_Impl(
1374 const OUString& rQName ) :
1376 m_bIsRedlineProtectionKey( false ),
1377 m_bIsCursorX( false ),
1378 m_bIsCursorY( false )
1382void XMLConfigItemTContext_Impl::StartElement(
1383 const Reference< XAttributeList >& rAttrList )
1385 sal_Int16 nAttrCount = rAttrList.is() ? rAttrList->getLength() : 0;
1386 for( sal_Int16 i=0;
i < nAttrCount;
i++ )
1388 const OUString& rAttrName = rAttrList->getNameByIndex( i );
1389 OUString aLocalName;
1390 sal_uInt16 nPrefix =
1391 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1397 const OUString& rValue = rAttrList->getValueByIndex( i );
1398 if( rValue ==
"RedlineProtectionKey" )
1399 m_bIsRedlineProtectionKey =
true;
1400 else if( rValue ==
"CursorPositionX" )
1401 m_bIsCursorX =
true;
1402 else if( rValue ==
"CursorPositionY" )
1403 m_bIsCursorY =
true;
1413void XMLConfigItemTContext_Impl::Characters(
const OUString& rChars )
1415 OUString sChars(rChars);
1416 if (m_bIsRedlineProtectionKey)
1418 else if (m_bIsCursorX || m_bIsCursorY)
1420 sal_Int32
nPos = rChars.toInt32();
1421 if (m_bIsCursorX && nPos > 255)
1423 else if (m_bIsCursorY && nPos > 31999)
1426 sChars = OUString::number(nPos);
1432void XMLConfigItemTContext_Impl::EndElement()
1435 if( m_bIsRedlineProtectionKey )
1437 const Reference< XPropertySet > rPropSet =
1438 GetTransformer().GetPropertySet();
1441 OUString
aPropName(
"RedlineProtectionKey");
1442 Reference< XPropertySetInfo > xPropSetInfo(
1443 rPropSet->getPropertySetInfo() );
1444 if( xPropSetInfo.is() &&
1445 xPropSetInfo->hasPropertyByName( aPropName ) )
1447 Sequence < sal_Int8 > aKey;
1449 rPropSet->setPropertyValue( aPropName,
Any( aKey ) );
1460 OUString
const m_aAttrQName;
1465 const OUString& rQName,
1469 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList )
override;
1474XMLTrackedChangesOASISTContext_Impl::XMLTrackedChangesOASISTContext_Impl(
1476 const OUString& rQName,
1480 m_aAttrQName( rImp.GetNamespaceMap().GetQNameByKey( nPrefix,
1485void XMLTrackedChangesOASISTContext_Impl::StartElement(
1486 const Reference< XAttributeList >& rAttrList )
1488 Reference< XAttributeList > xAttrList( rAttrList );
1489 const Reference< XPropertySet > rPropSet =
1490 GetTransformer().GetPropertySet();
1493 OUString
aPropName(
"RedlineProtectionKey");
1494 Reference< XPropertySetInfo > xPropSetInfo(
1495 rPropSet->getPropertySetInfo() );
1496 if( xPropSetInfo.is() &&
1497 xPropSetInfo->hasPropertyByName( aPropName ) )
1499 Any aAny = rPropSet->getPropertyValue( aPropName);
1500 Sequence < sal_Int8 > aKey;
1502 if( aKey.hasElements() )
1508 xAttrList = pMutableAttrList;
1509 pMutableAttrList->AddAttribute( m_aAttrQName,
1510 aBuffer.makeStringAndClear() );
1519 const OUString& rQName,
1524 case XML_ETACTION_META:
1526 case XML_ETACTION_DOCUMENT:
1528 case XML_ETACTION_BODY:
1529 return new XMLBodyOASISTransformerContext_Impl( *
this, rQName );
1530 case XML_ETACTION_NOTES:
1533 case XML_ETACTION_TABLE:
1534 return new XMLTableTransformerContext_Impl( *
this, rQName );
1535 case XML_ETACTION_STYLE:
1537 case XML_ETACTION_STYLE_RENAME:
1541 case XML_ETACTION_FRAME:
1543 case XML_ETACTION_EVENT:
1545 case XML_ETACTION_DLG:
1547 case XML_ETACTION_TAB_STOP:
1548 return new XMLTabStopOASISTContext_Impl( *
this, rQName );
1549 case XML_ETACTION_FORM_CONTROL:
1556 case XML_ETACTION_FORM_PROPERTY:
1559 case XML_ETACTION_CHART:
1561 case XML_ETACTION_CONFIG_ITEM:
1562 return new XMLConfigItemTContext_Impl( *
this, rQName );
1563 case XML_ETACTION_TRACKED_CHANGES:
1564 return new XMLTrackedChangesOASISTContext_Impl( *
this, rQName,
1567 case XML_ETACTION_CHART_PLOT_AREA:
1570 SAL_WARN(
"xmloff.transform",
"no user defined context found!" );
1798 OUString aMacroName;
1799 sal_uInt16 nPrefix =
1808 m_pEventMap(
nullptr ),
1809 m_pFormEventMap(
nullptr )
1874 return "com.sun.star.comp.Oasis2OOoTransformer";
1889extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
1891 css::uno::XComponentContext* , css::uno::Sequence<css::uno::Any>
const&)
1893 SAL_INFO(
"xmloff.transform",
"Creating Oasis2OOoTransformer");
@ OASIS_BACKGROUND_IMAGE_ACTIONS
@ OASIS_TABLE_VALUE_TYPE_ACTIONS
@ OASIS_DDE_CONNECTION_DECL_ACTIONS
@ OASIS_PARA_STYLE_REF_ACTIONS
@ OASIS_FOOTNOTE_SEP_ACTIONS
@ OASIS_TEXT_VALUE_TYPE_ACTIONS
@ OASIS_ANNOTATION_ACTIONS
@ OASIS_INDEX_ENTRY_TAB_STOP_ACTIONS
@ OASIS_FORM_PROP_ACTIONS
@ OASIS_DATAPILOT_MEMBER_ACTIONS
@ OASIS_LINENUMBERING_ACTIONS
@ OASIS_MAP_STYLE_REF_ACTIONS
@ OASIS_TEXT_STYLE_REF_ACTIONS
@ OASIS_CONTENT_VALIDATION_ACTIONS
@ OASIS_CHANGE_INFO_ACTIONS
@ OASIS_ALPHABETICAL_INDEX_MARK_ACTIONS
@ OASIS_LIST_STYLE_REF_ACTIONS
@ OASIS_DDE_CONV_MODE_ACTIONS
@ OASIS_FONT_FACE_ACTIONS
@ OASIS_SOURCE_SERVICE_ACTIONS
@ OASIS_MASTER_PAGE_REF_ACTIONS
@ OASIS_ANIMATION_ACTIONS
@ OASIS_CONNECTOR_ACTIONS
@ OASIS_FRAME_ELEM_ACTIONS
@ OASIS_DRAW_AREA_POLYGON_ACTIONS
@ OASIS_TABLE_STYLE_REF_ACTIONS
@ OASIS_CONFIG_ITEM_SET_ACTIONS
@ OASIS_DATAPILOT_LEVEL_ACTIONS
@ OASIS_FORM_CONTROL_ACTIONS
@ OASIS_FORM_COLUMN_ACTIONS
@ OASIS_MASTER_PAGE_ACTIONS
@ XML_FAMILY_TYPE_PAGE_LAYOUT
@ XML_FAMILY_TYPE_FILL_IMAGE
@ XML_FAMILY_TYPE_GRADIENT
@ XML_FAMILY_TYPE_TABLE_CELL
@ XML_FAMILY_TYPE_GRAPHIC
@ XML_FAMILY_TYPE_STROKE_DASH
@ XML_FAMILY_TYPE_MASTER_PAGE
@ XML_FAMILY_TYPE_PARAGRAPH
@ XML_FAMILY_TYPE_PRESENTATION
@ XML_FAMILY_TYPE_HEADER_FOOTER
XMLTransformerActionInit const aTableStyleRefActionTable[]
#define ENTRY2(n, l, a, p1, p2)
XMLTransformerActionInit const aConnectorActionTable[]
XMLTransformerActionInit const aScriptActionTable[]
XMLTransformerActionInit const aTextStyleRefActionTable[]
XMLTransformerActionInit const aParaStyleRefActionTable[]
XMLTransformerActionInit const aTextValueTypeActionTable[]
XMLTransformerActionInit const aFormControlActionTable[]
XMLTransformerActionInit const aConfigItemSetActionTable[]
XMLTransformerActionInit const aDDEConnectionDeclActionTable[]
XMLTransformerActionInit const aBackgroundImageActionTable[]
XMLTransformerActionInit const aFormulaActionTable[]
XMLTransformerActionInit const aListStyleRefActionTable[]
XMLTransformerActionInit const aAnnotationActionTable[]
XMLTransformerActionInit const aDataPilotLevelActionTable[]
#define ENTRY1(n, l, a, p1)
XMLTransformerActionInit const aDDEConvModeActionTable[]
XMLTransformerActionInit const aStyleActionTable[]
XMLTransformerActionInit const aContentValidationActionTable[]
XMLTransformerActionInit const aDrawAreaPolygonActionTable[]
XMLTransformerActionInit const aXLinkActionTable[]
XMLTransformerActionInit const aFrameActionTable[]
XMLTransformerActionInit const aParaActionTable[]
XMLTokenEnum const aTokenMap[]
XMLTransformerActionInit const aMasterPageRefActionTable[]
XMLTransformerActionInit const aMasterPageActionTable[]
XMLTransformerActionInit const aSourceServiceActionTable[]
XMLTransformerActionInit const aAlphabeticalIndexMarkActionTable[]
XMLTransformerActionInit const aDropCapActionTable[]
XMLTransformerActionInit const aFootnoteSepActionTable[]
XMLTransformerActionInit const aTabStopActionTable[]
XMLTransformerActionInit const aDataPilotMemberActionTable[]
#define ENTRY3QNQ(n, l, a, n1, l1, p2, n3, l3)
XMLTransformerActionInit const aChartActionTable[]
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * xmloff_Oasis2OOoTransformer_get_implementation(css::uno::XComponentContext *, css::uno::Sequence< css::uno::Any > const &)
XMLTransformerActionInit const aEventActionTable[]
#define ENTRY1Q(n, l, a, p1, t1)
XMLTransformerActionInit const aFormActionTable[]
XMLTransformerActionInit const aLineNumberingActionTable[]
XMLTransformerActionInit const aNotesActionTable[]
XMLTransformerActionInit const aActionTable[]
XMLTransformerActionInit const aIndexEntryTabStopActionTable[]
XMLTransformerActionInit const aFormPropActionTable[]
XMLTransformerActionInit const aChangeInfoActionTable[]
XMLTransformerActionInit const aShapeActionTable[]
XMLTransformerActionInit const aDlgActionTable[]
XMLTransformerActionInit const aColumnsActionTable[]
XMLTransformerActionInit const aTableValueTypeActionTable[]
XMLTransformerActionInit const aFontFaceActionTable[]
XMLTransformerActionInit const aFormColumnActionTable[]
XMLTransformerActionInit const aDateTimeActionTable[]
XMLTransformerActionInit const aMapStyleRefActionTable[]
static constexpr sal_Int32 RENAME_ENTRY(XMLTokenEnum f, XMLTokenEnum s)
XMLTransformerActionInit const aAnimationActionTable[]
#define ENTRY2QN(n, l, a, n1, l1, p2)
sal_uInt16 GetKeyByAttrName(const OUString &rAttrName, OUString *pPrefix, OUString *pLocalName, OUString *pNamespace) const
sal_uInt16 Add(const OUString &rPrefix, const OUString &rName, sal_uInt16 nKey=XML_NAMESPACE_UNKNOWN)
static OUString GetEventName(sal_uInt16 nPrefix, const OUString &rName, XMLTransformerOASISEventMap_Impl &rMap, XMLTransformerOASISEventMap_Impl *pMap2)
static XMLTransformerOASISEventMap_Impl * CreateEventMap()
static XMLTransformerOASISEventMap_Impl * CreateFormEventMap()
static void FlushEventMap(XMLTransformerOASISEventMap_Impl *p)
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList) override
static XMLTransformerActions * CreateTransformerActions(sal_uInt16 nType)
virtual rtl::Reference< XMLTransformerContext > CreateChildContext(sal_uInt16 nPrefix, const OUString &rLocalName, const OUString &rQName, const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList)
virtual void Characters(const OUString &rChars)
bool HasQName(sal_uInt16 nPrefix, ::xmloff::token::XMLTokenEnum eToken) const
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList)
virtual void EndElement()
static void encode(OUStringBuffer &aStrBuffer, const css::uno::Sequence< sal_Int8 > &aPass)
static void decode(css::uno::Sequence< sal_Int8 > &aPass, std::u16string_view sBuffer)
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
#define SAL_INFO(area, stream)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
Handling of tokens in XML:
XMLTokenEnum
The enumeration of all XML tokens.
@ XML_ALPHABETICAL_INDEX_MARK
@ XML_INDEX_ENTRY_TAB_STOP
@ XML_LIST_LEVEL_STYLE_IMAGE
@ XML_LIST_LEVEL_STYLE_NUMBER
@ XML_CONTENT_VALIDATION_NAME
@ XML_ALPHABETICAL_INDEX_AUTO_MARK_FILE
@ XML_INDEX_ENTRY_BIBLIOGRAPHY
@ XML_ALPHABETICAL_INDEX_MARK_START
@ XML_INDEX_ENTRY_LINK_START
@ XML_ALPHABETICAL_INDEX_ENTRY_TEMPLATE
@ XML_BIBLIOGRAPHY_ENTRY_TEMPLATE
@ XML_DDE_CONNECTION_DECL
@ XML_ILLUSTRATION_INDEX_ENTRY_TEMPLATE
@ XML_INDEX_TITLE_TEMPLATE
@ XML_DATABASE_ROW_SELECT
@ XML_TABLE_OF_CONTENT_ENTRY_TEMPLATE
@ XML_DEFAULT_OUTLINE_LEVEL
@ XML_INDEX_ENTRY_PAGE_NUMBER
@ XML_OBJECT_INDEX_ENTRY_TEMPLATE
@ XML_COUNT_IN_FLOATING_FRAMES
@ XML_LINENUMBERING_CONFIGURATION
@ XML_COUNT_IN_TEXT_BOXES
@ XML_CITATION_BODY_STYLE_NAME
@ XML_NOTES_CONFIGURATION
@ XML_INDEX_ENTRY_CHAPTER_NUMBER
@ XML_INDEX_ENTRY_CHAPTER
@ XML_LIST_LEVEL_STYLE_BULLET
@ XML_DISTANCE_BEFORE_SEP
@ XML_OUTLINE_LEVEL_STYLE
@ XML_INDEX_ENTRY_LINK_END
@ XML_CONTROL_IMPLEMENTATION
@ XML_USER_INDEX_ENTRY_TEMPLATE
@ XML_CHANGE_TRACK_TABLE_CELL
@ XML_TABLE_INDEX_ENTRY_TEMPLATE
@ XML_CITATION_STYLE_NAME
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
compare eToken to the string
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
return the OUString representation for eToken
::ucbhelper::Content m_aContent
std::unique_ptr< char[]> aBuffer
constexpr sal_uInt16 XML_NAMESPACE_DRAW
constexpr sal_uInt16 XML_NAMESPACE_DLG
constexpr sal_uInt16 XML_NAMESPACE_META
constexpr sal_uInt16 XML_NAMESPACE_DC
constexpr sal_uInt16 XML_NAMESPACE_XLINK
constexpr sal_uInt16 XML_NAMESPACE_SVG
constexpr sal_uInt16 XML_NAMESPACE_TEXT
constexpr sal_uInt16 XML_NAMESPACE_FORM
constexpr sal_uInt16 XML_NAMESPACE_DR3D
constexpr sal_uInt16 XML_NAMESPACE_CHART
constexpr sal_uInt16 XML_NAMESPACE_TABLE
constexpr sal_uInt16 XML_NAMESPACE_OFFICE
constexpr sal_uInt16 XML_NAMESPACE_PRESENTATION
constexpr sal_uInt16 XML_NAMESPACE_CONFIG
constexpr sal_uInt16 XML_NAMESPACE_OOO
constexpr sal_uInt16 XML_NAMESPACE_STYLE
constexpr sal_uInt16 XML_NAMESPACE_SCRIPT
constexpr sal_uInt16 XML_NAMESPACE_FO
constexpr sal_uInt16 XML_NAMESPACE_NUMBER