20#include <com/sun/star/xml/sax/SAXException.hpp>
21#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
22#include <com/sun/star/xml/sax/XAttributeList.hpp>
40#include <rtl/math.hxx>
41#include <rtl/ustrbuf.hxx>
42#include <osl/diagnose.h>
51#define ENTRY4(a,b,c,d) \
52 { XML_PROP_TYPE_##a, XML_PROP_TYPE_##b, \
53 XML_PROP_TYPE_##c, XML_PROP_TYPE_##d }
54#define ENTRY3(a,b,c) \
55 { XML_PROP_TYPE_##a, XML_PROP_TYPE_##b, \
56 XML_PROP_TYPE_##c, XML_PROP_TYPE_END }
58 { XML_PROP_TYPE_##a, XML_PROP_TYPE_##b, \
59 XML_PROP_TYPE_END, XML_PROP_TYPE_END }
61 { XML_PROP_TYPE_##a, XML_PROP_TYPE_##END, \
62 XML_PROP_TYPE_END, XML_PROP_TYPE_END }
148 css::uno::Reference< css::xml::sax::XAttributeList >
m_xAttrList;
152 const OUString& rQName );
156 const OUString &sValue );
158 const OUString &sValue );
160 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& rAttrList )
override;
162 virtual void Export()
override;
167XMLTypedPropertiesOOoTContext_Impl::XMLTypedPropertiesOOoTContext_Impl(
169 const OUString& rQName ) :
175void XMLTypedPropertiesOOoTContext_Impl::AddAttribute(
176 const OUString &sName ,
177 const OUString &sValue )
180 ->AddAttribute( sName, sValue );
183void XMLTypedPropertiesOOoTContext_Impl::AddAttribute(
185 const OUString &sValue )
188 GetTransformer().GetNamespaceMap().GetQNameByKey(
191 ->AddAttribute( sName, sValue );
194void XMLTypedPropertiesOOoTContext_Impl::StartElement(
195 const Reference< XAttributeList >& )
200void XMLTypedPropertiesOOoTContext_Impl::Export()
202 if( m_xAttrList->getLength() || HasElementContent() )
204 GetTransformer().GetDocHandler()->startElement( GetQName(), m_xAttrList );
206 GetTransformer().GetDocHandler()->endElement( GetQName() );
217 using XMLPropTypes = std::array<XMLPropType, MAX_PROP_TYPES>;
219 XMLPropTypes
const & m_rPropTypes;
221 bool const m_bPersistent;
223 XMLTypedPropertiesOOoTContext_Impl *GetPropContextAndAction(
225 sal_uInt16 nPrefix,
const OUString& rLocalName,
228 XMLTypedPropertiesOOoTContext_Impl *GetPropContext(
233 const OUString& rQName,
234 const XMLPropTypes& rTypes,
239 const OUString& rLocalName,
240 const OUString& rQName,
241 const Reference< XAttributeList >& rAttrList )
override;
243 virtual void StartElement(
const css::uno::Reference< css::xml::sax::XAttributeList >& rAttrList )
override;
247 virtual void Characters(
const OUString& rChars )
override;
249 virtual void Export()
override;
256XMLTypedPropertiesOOoTContext_Impl
257 *XMLPropertiesOOoTContext_Impl::GetPropContext(
263 if( m_rPropTypes[i] == eType )
272 if( !m_aPropContexts[nIndex].is() )
275 new XMLTypedPropertiesOOoTContext_Impl(
277 GetTransformer().GetNamespaceMap().GetQNameByKey(
283 return m_aPropContexts[
nIndex].get();
286XMLTypedPropertiesOOoTContext_Impl
287 *XMLPropertiesOOoTContext_Impl::GetPropContextAndAction(
289 sal_uInt16 nPrefix,
const OUString& rLocalName,
295 XMLTransformerActions::key_type aKey( nPrefix, rLocalName );
299 sal_uInt16 nActionMap =
304 GetTransformer().GetUserDefinedActions( nActionMap );
305 OSL_ENSURE( pActions,
"go no actions" );
308 XMLTransformerActions::const_iterator aIter =
309 pActions->find( aKey );
311 if( aIter != pActions->end() )
313 rAction = (*aIter).second;
328 SAL_WARN(
"xmloff",
"Didn't find property: "
329 << GetTransformer().GetNamespaceMap().GetPrefixByKey( nPrefix )
332 <<
", assuming <style:"
338 if( !m_aPropContexts[nIndex].is() )
341 new XMLTypedPropertiesOOoTContext_Impl(
343 GetTransformer().GetNamespaceMap().GetQNameByKey(
349 return m_aPropContexts[
nIndex].get();
352XMLPropertiesOOoTContext_Impl::XMLPropertiesOOoTContext_Impl(
354 const OUString& rQName,
355 const XMLPropTypes& rTypes,
359 m_rPropTypes(rTypes),
360 m_bPersistent( bPersistent )
366 const OUString& rLocalName,
367 const OUString& rQName,
368 const Reference< XAttributeList >& rAttrList )
371 return GetPropContextAndAction( aAction, nPrefix, rLocalName,
true )
372 ->CreateChildContext( nPrefix, rLocalName, rQName, rAttrList );
375void XMLPropertiesOOoTContext_Impl::StartElement(
376 const Reference< XAttributeList >& rAttrList )
378 XMLTypedPropertiesOOoTContext_Impl * pIntervalMinorDivisorContext =
nullptr;
379 double fIntervalMajor = 0.0;
380 double fIntervalMinor = 0.0;
381 bool bMoveProtect =
false;
382 bool bSizeProtect =
false;
383 OUString aProtectAttrValue;
384 XMLTypedPropertiesOOoTContext_Impl * pProtectContext =
nullptr;
390 bool bExistStyleMirror(
false );
391 OUStringBuffer aStyleMirrorAttrValue;
392 bool bExistDrawMirror(
false );
393 OUString aDrawMirrorAttrValue;
394 XMLTypedPropertiesOOoTContext_Impl* pMirrorContext(
nullptr );
396 sal_Int16 nAttrCount = rAttrList.is() ? rAttrList->getLength() : 0;
397 for( sal_Int16 i=0;
i < nAttrCount;
i++ )
399 const OUString sAttrName = rAttrList->getNameByIndex( i );
400 const OUString sAttrValue = rAttrList->getValueByIndex( i );
403 GetTransformer().GetNamespaceMap().GetKeyByAttrName( sAttrName,
406 XMLTypedPropertiesOOoTContext_Impl *pContext =
407 GetPropContextAndAction( aAction, nPrefix, aLocalName,
false );
413 pContext->AddAttribute( sAttrName, sAttrValue );
417 pContext->AddAttribute( sAttrName, sAttrValue );
418 XMLTypedPropertiesOOoTContext_Impl *pContext2 =
421 pContext2->AddAttribute( sAttrName, sAttrValue );
433 OUString aAttrValue( sAttrValue );
434 GetTransformer().EncodeStyleName(aAttrValue);
435 pContext->AddAttribute( sAttrName, aAttrValue );
440 OUString aAttrValue( sAttrValue );
441 GetTransformer().EncodeStyleName(aAttrValue);
449 OUString aAttrValue( sAttrValue );
451 pContext->AddAttribute( sAttrName, aAttrValue );
456 OUString aAttrValue( sAttrValue );
465 OUString aAttrValue( sAttrValue );
467 pContext->AddAttribute( sAttrName, aAttrValue );
472 OUString aAttrValue( sAttrValue );
474 pContext->AddAttribute( sAttrName, aAttrValue );
475 XMLTypedPropertiesOOoTContext_Impl *pContext2 =
478 pContext2->AddAttribute( sAttrName, aAttrValue );
483 OUString aAttrValue( sAttrValue );
485 pContext->AddAttribute( sAttrName, aAttrValue );
495 GetTransformer().GetNamespaceMap().GetQNameByKey(
498 pContext->AddAttribute( aAttrQName, aAttrValue );
501 GetTransformer().GetNamespaceMap().GetQNameByKey(
504 pContext->AddAttribute( aAttrQName, aAttrValue );
513 pContext->AddAttribute( sAttrName, aAttrValue );
519 bool bBold =
false, bDouble =
false;
566 OSL_FAIL(
"xmloff::XMLPropertiesOOoTContext_Impl::StartElement(), unknown underline token!" );
569 pContext->AddAttribute(
570 GetTransformer().GetNamespaceMap().GetQNameByKey(
576 pContext->AddAttribute(
577 GetTransformer().GetNamespaceMap().GetQNameByKey(
582 pContext->AddAttribute(
583 GetTransformer().GetNamespaceMap().GetQNameByKey(
592 bool bBold =
false, bDouble =
false;
618 pContext->AddAttribute(
619 GetTransformer().GetNamespaceMap().GetQNameByKey(
625 pContext->AddAttribute(
626 GetTransformer().GetNamespaceMap().GetQNameByKey(
631 pContext->AddAttribute(
632 GetTransformer().GetNamespaceMap().GetQNameByKey(
637 pContext->AddAttribute(
638 GetTransformer().GetNamespaceMap().GetQNameByKey(
646 sal_Int32 nSplineType = sAttrValue.toInt32();
647 OUString aNewAttrName = GetTransformer().GetNamespaceMap().GetQNameByKey(
650 switch( nSplineType )
654 pContext->AddAttribute(
659 pContext->AddAttribute(
664 pContext->AddAttribute(
669 OSL_FAIL(
"invalid spline type" );
670 pContext->AddAttribute(
677 pContext->AddAttribute( sAttrName, sAttrValue );
682 pIntervalMinorDivisorContext = pContext;
686 sal_Int32 nSymbolType = sAttrValue.toInt32();
687 OUString aNewAttrName = GetTransformer().GetNamespaceMap().GetQNameByKey(
690 if( nSymbolType >= 0 )
694 switch( nSymbolType )
751 OSL_FAIL(
"invalid named symbol" );
757 pContext->AddAttribute( GetTransformer().GetNamespaceMap().GetQNameByKey(
764 switch( nSymbolType )
768 pContext->AddAttribute(
773 pContext->AddAttribute(
778 pContext->AddAttribute(
782 OSL_FAIL(
"invalid symbol type" );
783 pContext->AddAttribute(
794 GetTransformer(), GetTransformer().GetNamespaceMap().GetQNameByKey(
798 OUString aAttrValue( sAttrValue );
799 if( GetTransformer().ConvertURIToOASIS( aAttrValue,
true ))
802 pContext->AddContent(xSymbolImageContext);
810 OUString aAttrValue( sAttrValue );
823 pContext->AddAttribute(
833 OUString aAttrValue( sAttrValue );
834 if( aAttrValue.indexOf(
'%' ) != -1 )
843 aAttrValue = aOut.makeStringAndClear();
851 pContext->AddAttribute( sAttrName, aAttrValue );
856 pProtectContext = pContext;
860 pProtectContext = pContext;
863 aProtectAttrValue = sAttrValue;
864 pProtectContext = pContext;
869 aDrawMirrorAttrValue =
872 bExistDrawMirror =
true;
873 pMirrorContext = pContext;
880 std::u16string_view aToken;
881 while( aTokenEnum.getNextToken( aToken ) )
883 if ( !aStyleMirrorAttrValue.isEmpty() )
885 aStyleMirrorAttrValue.append(
" ");
898 aStyleMirrorAttrValue.append(aToken);
901 bExistStyleMirror =
true;
902 pMirrorContext = pContext;
907 double fValue = sAttrValue.toDouble();
908 sal_Int32
nValue =
static_cast<sal_Int32
>((fValue * 100.0) + ( fValue > 0 ? 0.5 : - 0.5 ) );
912 OUString aAttrValue( aOut.makeStringAndClear() );
913 pContext->AddAttribute( sAttrName, aAttrValue );
919 if( sAttrValue.indexOf(
'%' ) != -1 )
925 nValue = sal_Int32( sAttrValue.toDouble() * 100.0 );
931 pContext->AddAttribute( sAttrName, aOut.makeStringAndClear() );
935 OSL_ENSURE(
false,
"unknown action" );
941 if ( bExistStyleMirror )
943 pMirrorContext->AddAttribute(
944 GetTransformer().GetNamespaceMap().GetQNameByKey(
946 aStyleMirrorAttrValue.makeStringAndClear());
948 else if ( bExistDrawMirror )
950 pMirrorContext->AddAttribute(
951 GetTransformer().GetNamespaceMap().GetQNameByKey(
953 aDrawMirrorAttrValue);
956 if (bMoveProtect || bSizeProtect || !aProtectAttrValue.isEmpty())
959 aProtectAttrValue.clear();
962 if( bMoveProtect && -1 == aProtectAttrValue.indexOf( rPosition ) )
964 if( !aProtectAttrValue.isEmpty() )
965 aProtectAttrValue +=
" ";
966 aProtectAttrValue += rPosition;
970 if( bSizeProtect && -1 == aProtectAttrValue.indexOf( rSize ) )
972 if( !aProtectAttrValue.isEmpty() )
973 aProtectAttrValue +=
" ";
974 aProtectAttrValue += rSize;
977 assert(pProtectContext &&
"coverity[var_deref_model] - pProtectContext should be assigned in a superset of the enclosing if condition entry logic");
981 if( !pIntervalMinorDivisorContext )
984 if( fIntervalMinor != 0.0 )
986 sal_Int32 nIntervalMinorDivisor =
static_cast< sal_Int32
>(
987 ::rtl::math::round( fIntervalMajor / fIntervalMinor ));
989 pIntervalMinorDivisorContext->AddAttribute(
990 GetTransformer().GetNamespaceMap().GetQNameByKey(
993 OUString::number( nIntervalMinorDivisor ));
997void XMLPropertiesOOoTContext_Impl::EndElement()
1003void XMLPropertiesOOoTContext_Impl::Characters(
const OUString& )
1008void XMLPropertiesOOoTContext_Impl::Export()
1013 if( rPropContext.is() )
1014 rPropContext->Export();
1018bool XMLPropertiesOOoTContext_Impl::IsPersistent()
const
1020 return m_bPersistent;
1024 const OUString& rQName,
1026 bool bPersistent ) :
1029 m_bPersistent( bPersistent )
1035 const OUString& rQName,
1039 bool bPersistent ) :
1042 m_bPersistent( bPersistent )
1052 const OUString& rLocalName,
1053 const OUString& rQName,
1054 const Reference< XAttributeList >& rAttrList )
1063 OSL_ENSURE(
false,
"unexpected properties element" );
1066 nPrefix, rLocalName, rQName, rAttrList )
1068 nPrefix, rLocalName, rQName, rAttrList );
1072 sal_uInt16 nActionMap =
1076 pContext.set(
new XMLPropertiesOOoTContext_Impl(
1096 pContext.set(
new XMLPropertiesOOoTContext_Impl(
1108 nPrefix, rLocalName, rQName, rAttrList )
1110 nPrefix, rLocalName, rQName, rAttrList );
1117 const Reference< XAttributeList >& rAttrList )
1121 OSL_ENSURE( pActions,
"go no actions" );
1123 Reference< XAttributeList > xAttrList( rAttrList );
1125 sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1126 for( sal_Int16
i=0;
i < nAttrCount;
i++ )
1128 const OUString sAttrName = xAttrList->getNameByIndex(
i );
1129 OUString aLocalName;
1130 sal_uInt16 nPrefix =
1133 XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
1134 XMLTransformerActions::const_iterator aIter =
1135 pActions->find( aKey );
1136 if( aIter != pActions->end() )
1138 if( !pMutableAttrList )
1142 xAttrList = pMutableAttrList;
1144 const OUString sAttrValue = xAttrList->getValueByIndex(
i );
1145 switch( (*aIter).second.m_nActionType )
1149 bool bControl =
false;
1184 pMutableAttrList->SetValueByIndex(
i,
1189 pMutableAttrList->SetValueByIndex(
i,
1196 OUString aAttrValue( sAttrValue );
1199 pMutableAttrList->SetValueByIndex(
i, aAttrValue );
1204 OUString aAttrValue( sAttrValue );
1207 pMutableAttrList->SetValueByIndex(
i, aAttrValue );
1208 OUString aNewAttrQName(
1213 pMutableAttrList->AddAttribute( aNewAttrQName,
1220 OUString aAttrValue( sAttrValue );
1222 pMutableAttrList->SetValueByIndex(
i, aAttrValue );
1227 OUString aAttrValue( sAttrValue );
1229 pMutableAttrList->SetValueByIndex(
i, aAttrValue );
1234 OUString aAttrValue( sAttrValue );
1236 static_cast< bool >((*aIter).second.m_nParam1)))
1237 pMutableAttrList->SetValueByIndex(
i, aAttrValue );
1241 OSL_ENSURE(
false,
"unknown action" );
@ PROP_OOO_PARAGRAPH_ELEM_ACTIONS
@ PROP_OOO_HEADER_FOOTER_ATTR_ACTIONS
@ PROP_OOO_GRAPHIC_ATTR_ACTIONS
@ PROP_OOO_PAGE_LAYOUT_ATTR_ACTIONS
@ PROP_OOO_GRAPHIC_ELEM_ACTIONS
@ PROP_OOO_CHART_ELEM_ACTIONS
@ PROP_OOO_SECTION_ATTR_ACTIONS
@ PROP_OOO_TABLE_COLUMN_ATTR_ACTIONS
@ PROP_OOO_TABLE_CELL_ATTR_ACTIONS
@ PROP_OOO_TEXT_ATTR_ACTIONS
@ PROP_OOO_LIST_LEVEL_ATTR_ACTIONS
@ PROP_OOO_TABLE_CELL_ELEM_ACTIONS
@ PROP_OOO_TABLE_ROW_ATTR_ACTIONS
@ PROP_OOO_TEXT_ELEM_ACTIONS
@ PROP_OOO_DRAWING_PAGE_ATTR_ACTIONS
@ PROP_OOO_CHART_ATTR_ACTIONS
@ PROP_OOO_TABLE_ATTR_ACTIONS
@ PROP_OOO_PARAGRAPH_ATTR_ACTIONS
@ XML_FAMILY_TYPE_TABLE_COLUMN
@ XML_FAMILY_TYPE_TABLE_ROW
@ XML_FAMILY_TYPE_TABLE_CELL
@ XML_FAMILY_TYPE_GRAPHIC
@ XML_FAMILY_TYPE_PARAGRAPH
@ XML_FAMILY_TYPE_PRESENTATION
@ XML_FAMILY_TYPE_SECTION
@ XML_FAMILY_TYPE_DRAWING_PAGE
XMLTransformerActionInit const aListLevelPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aTextPropertyOOoElemActionTable[]
XMLTransformerActionInit const aTableCellPropertyOOoElemActionTable[]
XMLTransformerActionInit const aGraphicPropertyOOoElemActionTable[]
XMLTransformerActionInit const aParagraphPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aSectionPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aParagraphPropertyOOoElemActionTable[]
XMLTransformerActionInit const aChartPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aGraphicPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aPageLayoutPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aTablePropertyOOoAttrActionTable[]
XMLTransformerActionInit const aTableRowPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aHeaderFooterPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aTextPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aTableCellPropertyOOoAttrActionTable[]
XMLTransformerActionInit const aChartPropertyOOoElemActionTable[]
XMLTransformerActionInit const aDrawingPagePropertyOOoAttrActionTable[]
XMLTransformerActionInit const aTableColumnPropertyOOoAttrActionTable[]
@ XML_ATACTION_COPY_DUPLICATE
@ XML_ATACTION_MOVE_PROTECT
@ XML_ATACTION_CAPTION_ESCAPE_OOO
@ XML_PTACTION_INTERVAL_MINOR
@ XML_ATACTION_SIZE_PROTECT
@ XML_PTACTION_TRANSPARENCY
@ XML_ATACTION_INCH2IN_DUPLICATE
@ XML_PTACTION_LINETHROUGH
@ XML_PTACTION_INTERVAL_MAJOR
@ XML_PTACTION_KEEP_WITH_NEXT
@ XML_PTACTION_BREAK_INSIDE
@ XML_PTACTION_SYMBOL_IMAGE_NAME
const XMLTokenEnum aPropTokens[XML_PROP_TYPE_END]
const sal_uInt16 aAttrActionMaps[XML_PROP_TYPE_END]
#define ENTRY4(a, b, c, d)
const sal_uInt16 MAX_PROP_TYPES
const sal_uInt16 aElemActionMaps[XML_PROP_TYPE_END]
const std::array< XMLPropType, MAX_PROP_TYPES > aPropTypes[XML_FAMILY_TYPE_END]
sal_uInt16 GetKeyByAttrName(const OUString &rAttrName, OUString *pPrefix, OUString *pLocalName, OUString *pNamespace) const
css::uno::Reference< css::xml::sax::XAttributeList > m_xAttrList
const OUString & GetExportQName() const
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList) override
virtual void Export() override
void AddAttribute(sal_uInt16 nAPrefix, ::xmloff::token::XMLTokenEnum eAToken, ::xmloff::token::XMLTokenEnum eVToken)
virtual void EndElement() override
void AddContent(rtl::Reference< XMLTransformerContext > const &pContent)
virtual rtl::Reference< XMLTransformerContext > CreateChildContext(sal_uInt16 nPrefix, const OUString &rLocalName, const OUString &rQName, const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList) override
XMLPersElemContentTContext(XMLTransformerBase &rTransformer, const OUString &rQName)
XMLStyleOOoTContext(XMLTransformerBase &rTransformer, const OUString &rQName, XMLFamilyType eType, bool bPersistent)
virtual bool IsPersistent() const 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) override
virtual void Characters(const OUString &rChars) override
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList) override
virtual void EndElement() override
virtual ~XMLStyleOOoTContext() override
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)
XMLTransformerBase & GetTransformer()
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList)
virtual void EndElement()
virtual bool IsPersistent() const
static void convertDouble(OUStringBuffer &rBuffer, double fNumber, bool bWriteUnits, sal_Int16 nSourceUnit, sal_Int16 nTargetUnit)
static bool convertPercent(sal_Int32 &rValue, std::u16string_view rString)
#define SAL_WARN(area, stream)
const sal_uInt16 XML_NAMESPACE_UNKNOWN_FLAG
const sal_uInt16 XML_NAMESPACE_NONE
Handling of tokens in XML:
XMLTokenEnum
The enumeration of all XML tokens.
@ XML_TEXT_LINE_THROUGH_TEXT
@ XML_TABLE_CELL_PROPERTIES
@ XML_TEXT_LINE_THROUGH_STYLE
@ XML_LIST_LEVEL_PROPERTIES
@ XML_DRAWING_PAGE_PROPERTIES
@ XML_GRADIENTSTYLE_SQUARE
@ XML_HEADER_FOOTER_PROPERTIES
@ XML_TEXT_LINE_THROUGH_MODE
@ XML_TEXT_UNDERLINE_MODE
@ XML_HORIZONTAL_ON_RIGHT_PAGES
@ XML_HORIZONTAL_ON_LEFT_PAGES
@ XML_TEXT_UNDERLINE_TYPE
@ XML_TEXT_UNDERLINE_STYLE
@ XML_TABLE_COLUMN_PROPERTIES
@ XML_PARAGRAPH_PROPERTIES
@ XML_TEXT_UNDERLINE_WIDTH
@ XML_INTERVAL_MINOR_DIVISOR
@ XML_TEXT_LINE_THROUGH_TYPE
@ XML_PAGE_LAYOUT_PROPERTIES
@ XML_TEXT_LINE_THROUGH_WIDTH
@ XML_TABLE_ROW_PROPERTIES
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
constexpr sal_uInt16 XML_NAMESPACE_DRAW
constexpr sal_uInt16 XML_NAMESPACE_XLINK
constexpr sal_uInt16 XML_NAMESPACE_CHART
constexpr sal_uInt16 XML_NAMESPACE_STYLE
constexpr sal_uInt16 XML_NAMESPACE_FO