LibreOffice Module xmloff (master) 1
OOo2Oasis.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <config_wasm_strip.h>
21
22#include <osl/diagnose.h>
23#include <com/sun/star/lang/XMultiServiceFactory.hpp>
24#include <com/sun/star/uno/XComponentContext.hpp>
25#include <comphelper/base64.hxx>
28#include <utility>
31#include <xmloff/xmltoken.hxx>
32#include "MutableAttrList.hxx"
33#include "DeepTContext.hxx"
34#include "StyleOOoTContext.hxx"
35#include "FrameOOoTContext.hxx"
36#include "EventOOoTContext.hxx"
39#include "ChartOOoTContext.hxx"
45#include "OOo2Oasis.hxx"
49
50using namespace ::xmloff::token;
51using namespace ::com::sun::star::uno;
52using namespace ::com::sun::star::lang;
53using namespace ::com::sun::star::xml::sax;
54using namespace ::com::sun::star::beans;
55
56namespace {
57
58enum XMLUserDefinedTransformerAction
59{
60 XML_ETACTION_DOCUMENT=XML_ETACTION_USER_DEFINED,
61 XML_ETACTION_BODY,
62 XML_ETACTION_STYLE,
63 XML_ETACTION_STYLE_RENAME,
64 XML_ETACTION_FRAME,
65 XML_ETACTION_EVENT,
66 XML_ETACTION_TAB_STOP,
67 XML_ETACTION_FORM_CONTROL,
68 XML_ETACTION_FORM_PROPERTY,
69 XML_ETACTION_CHART,
70 XML_ETACTION_TRACKED_CHANGES,
71 XML_ETACTION_CHART_PLOT_AREA,
72 XML_ETACTION_DOCUMENT_RENAME,
73 XML_ETACTION_TABLE
74};
75
76}
77
78#define ENTRY3( n, l, a, p1, p2, p3 ) \
79 { n, l, a, p1, p2, p3 }
80#define ENTRY3QQN( n, l, a, n1, l1, n2, l2, p3 ) \
81 ENTRY3( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), \
82 XMLTransformerActionInit::QNameParam( n2, l2 ), p3 )
83
84#define ENTRY2( n, l, a, p1, p2 ) \
85 ENTRY3( n, l, a, p1, p2, 0 )
86#define ENTRY2QN( n, l, a, n1, l1, p2 ) \
87 ENTRY2( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), p2 )
88
89#define ENTRY1( n, l, a, p1 ) \
90 ENTRY3( n, l, a, p1, 0, 0 )
91#define ENTRY1Q( n, l, a, n1, l1 ) \
92 ENTRY1( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ) )
93
94#define ENTRY0( n, l, a ) \
95 ENTRY3( n, l, a, 0, 0, 0 )
96
97// BM: a macro to put two tokens into one sal_Int32 for the action
98// XML_ATACTION_RENAME_ATTRIBUTE
99static constexpr sal_Int32 RENAME_ENTRY( XMLTokenEnum f, XMLTokenEnum s )
100{
101 return static_cast< sal_Int32 >(f) | (static_cast< sal_Int32 >(s) << 16);
102}
103
105{
106 // remove office:class from <office:document> and <office:document-content>
107 ENTRY0( XML_NAMESPACE_OFFICE, XML_DOCUMENT, XML_ETACTION_DOCUMENT ),
108 ENTRY0( XML_NAMESPACE_OFFICE, XML_DOCUMENT_CONTENT, XML_ETACTION_DOCUMENT ),
109 ENTRY0( XML_NAMESPACE_OFFICE, XML_DOCUMENT_STYLES, XML_ETACTION_DOCUMENT ),
110 ENTRY0( XML_NAMESPACE_OFFICE, XML_DOCUMENT_SETTINGS, XML_ETACTION_DOCUMENT ),
112
113 // remove <meta:keywords>
115
116 // rename <office:script> to <office:scripts>
118
119 // rename <office:script-data> to <office:script> and process attributes
121
122 // rename <script:libraries> to <ooo:libraries>
124
125 // rename <script:library-linked> to <ooo:library-linked> and process attributes
127
128 // rename <script:library-embedded> to <ooo:library-embedded> and process attributes
130
131 // rename <script:module> to <ooo:module> and process attributes
133
134 // rename <script:source-code> to <ooo:source-code>
136
137 // rename <office:font-decls> to <office:font-face-decl>,
138 // rename <style:font-decl> to <style:font-face>, process attrs
141
142 // add genre element
143 ENTRY0( XML_NAMESPACE_OFFICE, XML_BODY, XML_ETACTION_BODY ),
144
145 // rename <style:page-master> to <style:page-layout>
148
149 // split <style:properties> into <style:*-properties> and do other
150 // styles processing
161// ENTRY0( XML_NAMESPACE_TEXT, XML_OUTLINE_STYLE, STYLE ),
174
175 // rename <text:h>'s text:level to text:outline-level
176 // process <text:h/p>: process style-name attributes,
179
180 // rename <text:ordered-list> and <text:unordered-list> to <text:list>
183
184 // rename <text:footnote*> to <text:note*>
189
190 // rename <text:endnote*> to <text:endnote*>
195
196 // rename <text:footnote> and <text:endnote> to <text:note>
199
200 // rename <text:tab-stop> to <text:tab>
202
203 // replace <table:sub-table> with <table:table table:is-sub-table>
205
206 // process *:style-name attributes
256 /* Consider also attribute table:style-name for <table:table>,
257 <table:table-row> and <table:table-column>. (#i40011#, #i40015#)
258 */
259 ENTRY0( XML_NAMESPACE_TABLE, XML_TABLE, XML_ETACTION_TABLE ),
262
263 // split frame elements
264 ENTRY0( XML_NAMESPACE_DRAW, XML_TEXT_BOX, XML_ETACTION_FRAME ),
265 ENTRY0( XML_NAMESPACE_DRAW, XML_IMAGE, XML_ETACTION_FRAME ),
266 ENTRY0( XML_NAMESPACE_DRAW, XML_OBJECT, XML_ETACTION_FRAME ),
267 ENTRY0( XML_NAMESPACE_DRAW, XML_OBJECT_OLE, XML_ETACTION_FRAME ),
268 ENTRY0( XML_NAMESPACE_DRAW, XML_APPLET, XML_ETACTION_FRAME ),
269 ENTRY0( XML_NAMESPACE_DRAW, XML_PLUGIN, XML_ETACTION_FRAME ),
270 ENTRY0( XML_NAMESPACE_DRAW, XML_FLOATING_FRAME, XML_ETACTION_FRAME ),
272
273 // process events
275 ENTRY0( XML_NAMESPACE_SCRIPT, XML_EVENT, XML_ETACTION_EVENT ),
276 ENTRY0( XML_NAMESPACE_PRESENTATION, XML_EVENT, XML_ETACTION_EVENT ),
277
278 // process length attributes
292// ENTRY1( XML_NAMESPACE_DRAW, XML_TEXT_BOX, XML_ETACTION_PROC_ATTRS, OOO_SHAPE_ACTIONS ),
321
322 ENTRY0( XML_NAMESPACE_CHART, XML_CHART, XML_ETACTION_CHART ),
323 ENTRY0( XML_NAMESPACE_CHART, XML_PLOT_AREA, XML_ETACTION_CHART_PLOT_AREA ),
324
327
329 ENTRY0( XML_NAMESPACE_STYLE, XML_TAB_STOP, XML_ETACTION_TAB_STOP ),
336
337 // rename office:value-* to *:value-*
343// ENTRY1( XML_NAMESPACE_TEXT, XML_USER_DEFINED, XML_ETACTION_PROC_ATTRS, OOO_TEXT_VALUE_TYPE_ACTIONS), /* text:user-defined has no attrs so far */
347// ENTRY1( XML_NAMESPACE_FORM, XML_PROPERTY, XML_ETACTION_PROC_ATTRS, OOO_VALUE_TYPE_ACTIONS), /* TODO: generated entry */
348// ENTRY1( XML_NAMESPACE_FORM, XML_LIST_PROPERTY, XML_ETACTION_PROC_ATTRS, OOO_VALUE_TYPE_ACTIONS), /* generated entry */
349
352
354
355 ENTRY0( XML_NAMESPACE_FORM, XML_CONTROL, XML_ETACTION_FORM_CONTROL ),
357 ENTRY0( XML_NAMESPACE_FORM, XML_PROPERTY, XML_ETACTION_FORM_PROPERTY ),
358
359 // process xlink:href
371
373
374 // add namespace prefix
375 // text:formula
377 // text:condition
379 // text:condition
381 // text:condition
383 // text:condition
385 // text:condition
387 // table:condition
389
390 // rename <table:dependences> to <table:dependencies>
393
394 // process table::error-macro
396
397 // process table::conversion-mode
399
400 // fix <text:alphabatical-index-mark text:main-etry>
403
404 // process table::data-pilot-member
406
407 // process table::data-pilot-level
409
410 // process table::source-service
412
413 // fix id strings in old animation elements
420
422};
423
424// XML_ETACTION_STYLE
426{
444};
445
446// OOO_FRAME_ELEM_ACTIONS
448{
456};
457
458// OOO_FRAME_ATTR_ACTIONS
460{
475 ENTRY0( XML_NAMESPACE_SVG, XML_X, XML_ATACTION_MOVE_TO_ELEM ), /* generated entry */
476 ENTRY0( XML_NAMESPACE_SVG, XML_Y, XML_ATACTION_MOVE_TO_ELEM ), /* generated entry */
485};
486
487// OOO_EVENT_ELEM_ACTIONS
489{
497};
498
499// action table for OOO_MASTER_PAGE_ACTIONS
501{
507};
508
510{
514};
515
516// action table for OOO_PARA_ACTIONS
518{
521// ENTRY0( XML_NAMESPACE_TEXT, XML_CLASS_NAMES, XML_ATACTION_REMOVE ),
524};
525
526// action table for OOO_STYLE_REF_ACTIONS
528{
548};
549
550// OOO_SHAPE_ACTIONS
551// !!ATTENTION!! If you change something here, please also change
552// aConnectorActionTable if appropriate
554{
585
586 // BM: needed by chart:legend. The legend needs also the draw actions. As
587 // there is no merge mechanism, all actions have to be in the same table
593};
594
596{
616};
617
618// OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
620{
624};
625
626// OOO_TAB_STOP_ACTIONS
628{
632};
633
634// OOO_LINENUMBERING_ACTIONS
636{
641};
642
644{
649};
650
651// OOO_DROP_CAP_ACTIONS
653{
657};
658
660{
662// ENTRY0( XML_NAMESPACE_STYLE, XML_SPACE_BEFORE, XML_ATACTION_INCH2IN ),
663// ENTRY0( XML_NAMESPACE_STYLE, XML_SPACE_AFTER, XML_ATACTION_INCH2IN ),
668};
669
670// OOO_TEXT_VALUE_TYPE_ACTIONS
672{
683};
684
685// OOO_TABLE_VALUE_TYPE_ACTIONS
687{
699};
700
701// action table for OOO_ANNOTATION_ACTIONS
703{
708};
709
710// action table for OOO_CHANGE_INFO_ACTIONS
712{
716};
717
718// OOO_BACKGROUND_IMAGE_ACTIONS
720{
724};
725
726/* OOO_BACKGROUND_IMAGE_ACTIONS for OpenOffice.org text documents
727 OpenOffice.org text documents, written by OpenOffice.org, contain
728 wrong value for the transparency of the background graphic (#i50322#)
729*/
731{
735};
736
737// OOO_DDE_CONNECTION_DECL
739{
742};
743
744// OOO_FORM_CONTROL_ACTIONS
746{
750};
751
752// OOO_FORM_COLUMN_ACTIONS
754{
758};
759
760// OOO_FORM_PROP_ACTIONS
762{
766};
767
768// OOO_XLINK_ACTIONS
770{
773};
774
775// OOO_CONFIG_ITEM_SET_ACTIONS
777{
780};
781
782// OASIS_FORMULA_ACTIONS
784{
790};
791
792// OOO_ERROR_MACRO_ACTIONS
794{
797};
798
799// OOO_DDE_CONV_MODE_ACTIONS
801{
804};
805
806// OOO_DATAPILOT_MEMBER_ACTIONS
808{
811};
812
813// OOO_DATAPILOT_LEVEL_ACTIONS
815{
818};
819
820// OOO_SOURCE_SERVICE_ACTIONS
822{
825};
826
827// OOO_ANIMATION_ACTIONS
829{
833};
834
835// OOO_DRAW_AREA_POLYGON_ACTIONS (to be added to OOO_SHAPE_ACTIONS)
837{
840};
841
842// OOO_CHART_ACTIONS
844{
851};
852
853// OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
855{
858};
859
860// OOO_SCRIPT_ACTIONS
862{
867};
868
870{
876};
877
878namespace {
879
880class XMLDocumentTransformerContext_Impl : public XMLTransformerContext
881{
882 OUString const m_aElemQName;
883 OUString m_aOldClass;
884
885public:
886 XMLDocumentTransformerContext_Impl( XMLTransformerBase& rTransformer,
887 const OUString& rQName );
888 XMLDocumentTransformerContext_Impl( XMLTransformerBase& rTransformer,
889 const OUString& rQName,
890 sal_uInt16 nPrefix,
892
893 virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
894 virtual void EndElement() override;
895};
896
897}
898
899XMLDocumentTransformerContext_Impl::XMLDocumentTransformerContext_Impl(
900 XMLTransformerBase& rImp,
901 const OUString& rQName ) :
902 XMLTransformerContext( rImp, rQName ),
903 m_aElemQName( rQName )
904{
905}
906XMLDocumentTransformerContext_Impl::XMLDocumentTransformerContext_Impl(
907 XMLTransformerBase& rImp,
908 const OUString& rQName ,
909 sal_uInt16 nPrefix,
911 XMLTransformerContext( rImp, rQName ),
912 m_aElemQName( rImp.GetNamespaceMap().GetQNameByKey( nPrefix,
913 ::xmloff::token::GetXMLToken( eToken ) ) )
914{
915}
916
917void XMLDocumentTransformerContext_Impl::StartElement(
918 const Reference< XAttributeList >& rAttrList )
919{
920 Reference< XAttributeList > xAttrList( rAttrList );
921
922 m_aOldClass = GetTransformer().GetClass();
923
925 bool bOOo = false, bOOoW = false, bOOoC = false,
926 bDOM=false, bDC = false, bSVG = false;
927 sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
928 for( sal_Int16 i=0; i < nAttrCount; i++ )
929 {
930 const OUString& rAttrName = xAttrList->getNameByIndex( i );
931 OUString aLocalName;
932 sal_uInt16 nPrefix =
933 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
934 &aLocalName );
935 if( XML_NAMESPACE_OFFICE == nPrefix &&
936 IsXMLToken( aLocalName, XML_CLASS ) )
937 {
938 const OUString& rValue = xAttrList->getValueByIndex( i );
939 GetTransformer().SetClass( rValue );
940
941 pMutableAttrList = new XMLMutableAttributeList( xAttrList );
942 xAttrList = pMutableAttrList;
943 OUString sMime = "application/vnd.oasis.opendocument." + rValue;
944 pMutableAttrList->SetValueByIndex( i, sMime );
945 OUString aNewAttrQName( GetTransformer().GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, ::xmloff::token::GetXMLToken( XML_MIMETYPE ) ) );
946 pMutableAttrList->RenameAttributeByIndex(i, aNewAttrQName );
947 break;
948 }
949 else if( XML_NAMESPACE_XMLNS == nPrefix )
950 {
951 const OUString& rAttrValue = xAttrList->getValueByIndex( i );
952 if( IsXMLToken( rAttrValue, XML_N_OOO ) )
953 bOOo = true;
954 else if( IsXMLToken( rAttrValue, XML_N_OOOW ) )
955 bOOoW = true;
956 else if( IsXMLToken( rAttrValue, XML_N_OOOC ) )
957 bOOoC = true;
958 else if( IsXMLToken( rAttrValue, XML_N_DOM ) )
959 bDOM = true;
960 else if( IsXMLToken( rAttrValue, XML_N_DC ) )
961 bDC = true;
962 else if( IsXMLToken( rAttrValue, XML_N_SVG ) )
963 bSVG = true;
964 }
965 }
966 if( !(bOOo && bOOoW && bOOoC && bDOM && bDC && bSVG) )
967 {
968 if( !pMutableAttrList )
969 {
970 pMutableAttrList = new XMLMutableAttributeList( xAttrList );
971 xAttrList = pMutableAttrList;
972 }
973 if( !bOOo )
974 pMutableAttrList->AddAttribute(
975 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
977 GetTransformer().GetNamespaceMap().GetNameByKey(
979 if( !bOOoW )
980 pMutableAttrList->AddAttribute(
981 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
983 GetTransformer().GetNamespaceMap().GetNameByKey(
985 if( !bOOoC )
986 pMutableAttrList->AddAttribute(
987 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
989 GetTransformer().GetNamespaceMap().GetNameByKey(
991 if( !bDOM )
992 pMutableAttrList->AddAttribute(
993 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
995 GetTransformer().GetNamespaceMap().GetNameByKey(
997 if( !bDC )
998 pMutableAttrList->AddAttribute(
999 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1001 GetTransformer().GetNamespaceMap().GetNameByKey(
1002 XML_NAMESPACE_DC ) );
1003 if( !bSVG )
1004 pMutableAttrList->AddAttribute(
1005 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1007 GetTransformer().GetNamespaceMap().GetNameByKey(
1009 }
1010
1011 GetTransformer().GetDocHandler()->startElement( m_aElemQName, xAttrList );
1012}
1013
1014void XMLDocumentTransformerContext_Impl::EndElement()
1015{
1016 GetTransformer().GetDocHandler()->endElement( m_aElemQName );
1017
1018 GetTransformer().SetClass( m_aOldClass );
1019}
1020
1021namespace {
1022
1023class XMLBodyTransformerContext_Impl : public XMLTransformerContext
1024{
1025 OUString m_aClassQName;
1026
1027public:
1028 XMLBodyTransformerContext_Impl( XMLTransformerBase& rTransformer,
1029 const OUString& rQName );
1030
1031 virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
1032 virtual void EndElement() override;
1033};
1034
1035}
1036
1037XMLBodyTransformerContext_Impl::XMLBodyTransformerContext_Impl(
1038 XMLTransformerBase& rImp,
1039 const OUString& rQName ) :
1040 XMLTransformerContext( rImp, rQName )
1041{
1042}
1043
1044void XMLBodyTransformerContext_Impl::StartElement(
1045 const Reference< XAttributeList >& rAttrList )
1046{
1048
1050 new XMLMutableAttributeList( rAttrList );
1051 Reference< XAttributeList > xAttrList = pMutableAttrList;
1052 OUString aClass( GetTransformer().GetClass() );
1053 if( aClass.isEmpty() )
1054 {
1055 aClass = GetXMLToken( XML_TEXT );
1056 }
1057 else if( IsXMLToken( aClass, XML_TEXT_GLOBAL ) )
1058 {
1059 OUString aGlobalQName(
1060 GetTransformer().GetNamespaceMap().GetQNameByKey(
1062 pMutableAttrList->AddAttribute( aGlobalQName, GetXMLToken(XML_TRUE) );
1063
1064 aClass = GetXMLToken( XML_TEXT );
1065 }
1066
1067 m_aClassQName = GetTransformer().GetNamespaceMap().GetQNameByKey(
1068 XML_NAMESPACE_OFFICE, aClass );
1069 GetTransformer().GetDocHandler()->startElement( m_aClassQName,
1070 xAttrList );
1071}
1072
1073void XMLBodyTransformerContext_Impl::EndElement()
1074{
1075 GetTransformer().GetDocHandler()->endElement( m_aClassQName );
1077}
1078
1079namespace {
1080
1081class XMLTabStopOOoTContext_Impl : public XMLPersElemContentTContext
1082{
1083public:
1084 XMLTabStopOOoTContext_Impl( XMLTransformerBase& rTransformer,
1085 const OUString& rQName );
1086
1087 virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
1088};
1089
1090}
1091
1092XMLTabStopOOoTContext_Impl::XMLTabStopOOoTContext_Impl(
1093 XMLTransformerBase& rImp,
1094 const OUString& rQName ) :
1095 XMLPersElemContentTContext( rImp, rQName )
1096{
1097}
1098
1099void XMLTabStopOOoTContext_Impl::StartElement(
1100 const Reference< XAttributeList >& rAttrList )
1101{
1102 XMLTransformerActions *pActions =
1103 GetTransformer().GetUserDefinedActions( OOO_TAB_STOP_ACTIONS );
1104 OSL_ENSURE( pActions, "go no actions" );
1105
1106 Reference< XAttributeList > xAttrList( rAttrList );
1108 sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1109 for( sal_Int16 i=0; i < nAttrCount; i++ )
1110 {
1111 const OUString& rAttrName = xAttrList->getNameByIndex( i );
1112 OUString aLocalName;
1113 sal_uInt16 nPrefix =
1114 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1115 &aLocalName );
1116 XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
1117 XMLTransformerActions::const_iterator aIter =
1118 pActions->find( aKey );
1119 if( aIter != pActions->end() )
1120 {
1121 if( !pMutableAttrList )
1122 {
1123 pMutableAttrList =
1124 new XMLMutableAttributeList( xAttrList );
1125 xAttrList = pMutableAttrList;
1126 }
1127 const OUString& rAttrValue = xAttrList->getValueByIndex( i );
1128 switch( (*aIter).second.m_nActionType )
1129 {
1131 {
1132 OUString aNewAttrQName(
1133 GetTransformer().GetNamespaceMap().GetQNameByKey(
1134 (*aIter).second.GetQNamePrefixFromParam1(),
1136 (*aIter).second.GetQNameTokenFromParam1()) ) );
1137 pMutableAttrList->RenameAttributeByIndex( i,
1138 aNewAttrQName );
1139 }
1140 if( IsXMLToken( aLocalName, XML_LEADER_CHAR ) &&
1141 !rAttrValue.isEmpty() &&
1142 rAttrValue[0] != ' ' )
1143 {
1144 OUString aNewAttrQName(
1145 GetTransformer().GetNamespaceMap().GetQNameByKey(
1148 pMutableAttrList->AddAttribute( aNewAttrQName,
1150 }
1151 break;
1153 {
1154 OUString aAttrValue( rAttrValue );
1156 aAttrValue ) )
1157 pMutableAttrList->SetValueByIndex( i, aAttrValue );
1158 }
1159 break;
1160 default:
1161 OSL_ENSURE( false, "unknown action" );
1162 break;
1163 }
1164 }
1165 }
1166
1168}
1169
1170namespace {
1171
1172class XMLTrackedChangesOOoTContext_Impl : public XMLTransformerContext
1173{
1174 sal_uInt16 const m_nPrefix;
1175 XMLTokenEnum const m_eToken;
1176
1177public:
1178 XMLTrackedChangesOOoTContext_Impl( XMLTransformerBase& rTransformer,
1179 const OUString& rQName,
1180 sal_uInt16 nPrefix,
1182
1183 virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
1184};
1185
1186}
1187
1188XMLTrackedChangesOOoTContext_Impl::XMLTrackedChangesOOoTContext_Impl(
1189 XMLTransformerBase& rImp,
1190 const OUString& rQName,
1191 sal_uInt16 nPrefix,
1193 XMLTransformerContext( rImp, rQName ),
1194 m_nPrefix( nPrefix ),
1195 m_eToken( eToken )
1196{
1197}
1198
1199void XMLTrackedChangesOOoTContext_Impl::StartElement(
1200 const Reference< XAttributeList >& rAttrList )
1201{
1202 sal_Int16 nAttrCount = rAttrList.is() ? rAttrList->getLength() : 0;
1203 for( sal_Int16 i=0; i < nAttrCount; i++ )
1204 {
1205 const OUString& rAttrName = rAttrList->getNameByIndex( i );
1206 OUString aLocalName;
1207 sal_uInt16 nPrefix =
1208 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1209 &aLocalName );
1210 if( m_nPrefix == nPrefix && IsXMLToken( aLocalName, m_eToken ) )
1211 {
1212 const Reference< XPropertySet > rPropSet =
1213 GetTransformer().GetPropertySet();
1214 OSL_ENSURE( rPropSet.is(), "no info property set" );
1215 if( rPropSet.is() )
1216 {
1217 OUString aPropName("RedlineProtectionKey");
1218 Reference< XPropertySetInfo > xPropSetInfo(
1219 rPropSet->getPropertySetInfo() );
1220 if( xPropSetInfo.is() &&
1221 xPropSetInfo->hasPropertyByName( aPropName ) )
1222 {
1223 Sequence < sal_Int8 > aKey;
1225 rAttrList->getValueByIndex( i ) );
1226 rPropSet->setPropertyValue( aPropName, Any( aKey ) );
1227 }
1228 else
1229 {
1230 OSL_ENSURE( false, "RedineProtectionKey is missing" );
1231 }
1232 }
1233 break;
1234 }
1235 }
1237}
1238
1239namespace {
1240
1241class XMLTableOOoTransformerContext_Impl : public XMLTransformerContext
1242{
1243 OUString const m_aElemQName;
1244
1245public:
1246 XMLTableOOoTransformerContext_Impl( XMLTransformerBase& rTransformer,
1247 const OUString& rQName );
1248
1249 virtual void StartElement( const css::uno::Reference< css::xml::sax::XAttributeList >& xAttrList ) override;
1250 virtual void EndElement() override;
1251};
1252
1253}
1254
1255XMLTableOOoTransformerContext_Impl::XMLTableOOoTransformerContext_Impl(
1256 XMLTransformerBase& rImp,
1257 const OUString& rQName ) :
1258 XMLTransformerContext( rImp, rQName ),
1259 m_aElemQName( rQName )
1260{
1261}
1262
1263void XMLTableOOoTransformerContext_Impl::StartElement(
1264 const Reference< XAttributeList >& rAttrList )
1265{
1266 // Perform OOO_STYLE_REF_ACTIONS for all applications (#i50521#)
1267 Reference< XAttributeList > xAttrList( rAttrList );
1268 XMLMutableAttributeList* pMutableAttrList =
1269 GetTransformer().ProcessAttrList( xAttrList, OOO_STYLE_REF_ACTIONS, false );
1270 if( rAttrList->getLength() && IsXMLToken( GetTransformer().GetClass(), XML_SPREADSHEET ) )
1271 {
1272 bool bPrintRanges(false);
1273
1274 sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1275 for( sal_Int16 i=0; i < nAttrCount; i++ )
1276 {
1277 const OUString& rAttrName = xAttrList->getNameByIndex( i );
1278 OUString aLocalName;
1279 sal_uInt16 nPrefix =
1280 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1281 &aLocalName );
1282 if( XML_NAMESPACE_TABLE == nPrefix &&
1283 IsXMLToken( aLocalName, XML_PRINT_RANGES ) )
1284 {
1285 bPrintRanges = true;
1286 }
1287 }
1288 if (!bPrintRanges && pMutableAttrList)
1289 {
1290 xAttrList = pMutableAttrList;
1291 pMutableAttrList->AddAttribute(GetTransformer().GetNamespaceMap().GetQNameByKey(
1294 }
1295 }
1296
1297 GetTransformer().GetDocHandler()->startElement( m_aElemQName, xAttrList );
1298}
1299
1300void XMLTableOOoTransformerContext_Impl::EndElement()
1301{
1302 GetTransformer().GetDocHandler()->endElement( m_aElemQName );
1303}
1304
1306 const TransformerAction_Impl& rAction,
1307 const OUString& rQName,
1308 bool bPersistent )
1309{
1310 switch( rAction.m_nActionType )
1311 {
1312 case XML_ETACTION_DOCUMENT:
1313 return new XMLDocumentTransformerContext_Impl( *this, rQName );
1314 case XML_ETACTION_DOCUMENT_RENAME:
1315 return new XMLDocumentTransformerContext_Impl( *this, rQName,
1316 rAction.GetQNamePrefixFromParam1(),
1317 rAction.GetQNameTokenFromParam1() );
1318 case XML_ETACTION_BODY:
1319 return new XMLBodyTransformerContext_Impl( *this, rQName );
1320 case XML_ETACTION_STYLE:
1321 return new XMLStyleOOoTContext( *this, rQName,
1322 static_cast< XMLFamilyType >( rAction.m_nParam1 ),
1323 bPersistent );
1324 case XML_ETACTION_STYLE_RENAME:
1325 return new XMLStyleOOoTContext( *this, rQName,
1326 static_cast< XMLFamilyType >( rAction.m_nParam2 ),
1327 rAction.GetQNamePrefixFromParam1(),
1328 rAction.GetQNameTokenFromParam1(),
1329 bPersistent );
1330 case XML_ETACTION_FRAME:
1331 return new XMLFrameOOoTransformerContext( *this, rQName );
1332 case XML_ETACTION_EVENT:
1333 return new XMLEventOOoTransformerContext( *this, rQName, bPersistent );
1334 case XML_ETACTION_TAB_STOP:
1335 return new XMLTabStopOOoTContext_Impl( *this, rQName );
1336 case XML_ETACTION_FORM_CONTROL:
1337 return new XMLControlOOoTransformerContext( *this, rQName );
1338 case XML_ETACTION_FORM_PROPERTY:
1339 return new XMLFormPropOOoTransformerContext( *this, rQName );
1340#if !ENABLE_WASM_STRIP_CHART
1341 case XML_ETACTION_CHART:
1342 return new XMLChartOOoTransformerContext( *this, rQName );
1343 case XML_ETACTION_CHART_PLOT_AREA:
1344 return new XMLChartPlotAreaOOoTContext( *this, rQName );
1345#endif
1346 case XML_ETACTION_TRACKED_CHANGES:
1347 return new XMLTrackedChangesOOoTContext_Impl( *this, rQName,
1348 rAction.GetQNamePrefixFromParam1(),
1349 rAction.GetQNameTokenFromParam1() );
1350 case XML_ETACTION_TABLE:
1351 return new XMLTableOOoTransformerContext_Impl( *this, rQName );
1352 default:
1353 OSL_ENSURE( false, "no user defined context found!" );
1354 }
1355
1356 // default is copying
1357 return new XMLTransformerContext( *this, rQName );
1358}
1359
1361 sal_uInt16 n )
1362{
1363 XMLTransformerActions *pActions = nullptr;
1364 if( n < MAX_OOO_ACTIONS )
1365 {
1366 if( !m_aActions[n] )
1367 {
1369 {
1370 m_aActions[n].reset(
1372 }
1373 else switch( n )
1374 {
1375 case OOO_STYLE_ACTIONS:
1378 break;
1382 break;
1383 case OOO_SHAPE_ACTIONS:
1386 break;
1390 break;
1394 break;
1398 break;
1402 break;
1406 break;
1410 break;
1414 break;
1418 break;
1422 break;
1423 case OOO_PARA_ACTIONS:
1426 break;
1430 break;
1434 break;
1438 break;
1442 break;
1446 break;
1450 break;
1452 // Use special actions for Writer documents. (#i50322#)
1454 isWriter()
1457 break;
1461 break;
1462 case OOO_EVENT_ACTIONS:
1465 break;
1469 break;
1473 break;
1477 break;
1478 case OOO_XLINK_ACTIONS:
1481 break;
1485 break;
1489 break;
1490 case OOO_CHART_ACTIONS:
1493 break;
1497 break;
1501 break;
1505 break;
1509 break;
1513 break;
1517 break;
1523 break;
1524 case OOO_SCRIPT_ACTIONS:
1527 break;
1531 break;
1532 }
1533 }
1534 pActions = m_aActions[n].get();
1535 }
1536
1537 return pActions;
1538}
1539
1540OUString OOo2OasisTransformer::GetEventName( const OUString& rName, bool )
1541{
1542 if( !m_pEventMap )
1544
1545 OUString aNewName;
1546 sal_uInt16 nPrefix = XMLEventOOoTransformerContext::GetEventName( rName,
1547 aNewName, *m_pEventMap );
1548 if( XML_NAMESPACE_UNKNOWN != nPrefix )
1549 aNewName = GetNamespaceMap().GetQNameByKey( nPrefix, aNewName );
1550 else
1551 aNewName = rName;
1552
1553 return aNewName;
1554}
1555
1557 OUString aSubServiceName )
1558 noexcept :
1560 m_aImplName(std::move(aImplName)),
1561 m_aSubServiceName(std::move(aSubServiceName)),
1562 m_pEventMap( nullptr )
1563{
1565 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), GetXMLToken(XML_N_OFFICE), XML_NAMESPACE_OFFICE );
1566
1568 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_META), GetXMLToken(XML_N_META), XML_NAMESPACE_META );
1569
1571 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_STYLE), GetXMLToken(XML_N_STYLE), XML_NAMESPACE_STYLE );
1572
1574 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER), GetXMLToken(XML_N_NUMBER), XML_NAMESPACE_NUMBER );
1575
1577 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG), GetXMLToken(XML_N_CONFIG), XML_NAMESPACE_CONFIG );
1578
1580 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TEXT), GetXMLToken(XML_N_TEXT), XML_NAMESPACE_TEXT );
1581
1583 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TABLE), GetXMLToken(XML_N_TABLE), XML_NAMESPACE_TABLE );
1584
1586 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DRAW), GetXMLToken(XML_N_DRAW), XML_NAMESPACE_DRAW );
1587
1589 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DR3D), GetXMLToken(XML_N_DR3D), XML_NAMESPACE_DR3D );
1590
1593
1595 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CHART), GetXMLToken(XML_N_CHART), XML_NAMESPACE_CHART );
1596
1598 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FORM), GetXMLToken(XML_N_FORM), XML_NAMESPACE_FORM );
1599
1601 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT), GetXMLToken(XML_N_SCRIPT), XML_NAMESPACE_SCRIPT );
1602
1603 GetNamespaceMap().Add( GetXMLToken(XML_NP_FO), GetXMLToken(XML_N_FO), XML_NAMESPACE_FO );
1604 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FO), GetXMLToken(XML_N_FO_COMPAT), XML_NAMESPACE_FO );
1605
1606 GetNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG), XML_NAMESPACE_SVG );
1607 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG_COMPAT), XML_NAMESPACE_SVG );
1608
1609 for(auto & rp : m_aActions)
1610 rp.reset();
1611}
1612
1614{
1615 for(auto & rp : m_aActions)
1616 rp.reset();
1618}
1619
1621{
1622 Any aRet;
1623 if ( rType == cppu::UnoType<XImporter>::get())
1624 {
1625 Reference<XImporter> xThis( this );
1626 aRet <<= xThis;
1627 }
1628 else if ( rType == cppu::UnoType<XFilter>::get())
1629 {
1630 Reference<XFilter> xThis( this );
1631 aRet <<= xThis;
1632 }
1633 else
1634 {
1635 aRet = XMLTransformerBase::queryInterface(rType);
1636 }
1637
1638 return aRet;
1639}
1640
1641// XImporter
1643 const Reference< XComponent >& xDoc )
1644{
1645 if( !GetDocHandler().is() )
1646 {
1647 // if initialize hasn't been called, then we have to call it now
1648 // to get the sub component initialized.
1649 Sequence<Any> aArgs( 0 );
1650 Initialize( aArgs );
1651 }
1652
1653 mxModel.set( xDoc, UNO_QUERY );
1654
1655 Reference< XImporter > xImp( GetDocHandler(), UNO_QUERY );
1656 OSL_ENSURE( xImp.is(), "doc handler is not an importer" );
1657 if( xImp.is() )
1658 xImp->setTargetDocument( xDoc );
1659}
1660
1661// XFilter
1663 const Sequence< PropertyValue >& aDescriptor )
1664{
1665 Reference< XFilter> xFilter( GetDocHandler(), UNO_QUERY );
1666 OSL_ENSURE( xFilter.is(), "doc handler is not a filter" );
1667 if( xFilter.is() )
1668 return xFilter->filter( aDescriptor );
1669
1670 return false;
1671}
1672
1674{
1675 Reference< XFilter> xFilter( GetDocHandler(), UNO_QUERY );
1676 OSL_ENSURE( xFilter.is(), "doc handler is not a filter" );
1677 if( xFilter.is() )
1678 xFilter->cancel();
1679}
1680
1681// XInitialize
1683 const Sequence< Any >& rArguments )
1684{
1685 Initialize( rArguments );
1686}
1687
1689{
1690 if( !GetDocHandler().is() )
1691 {
1692 // if initialize hasn't been called, then we have to call it now
1693 // to get the sub component initialized.
1694 Sequence<Any> aArgs( 0 );
1695 Initialize( aArgs );
1696 }
1697
1699}
1700
1702 const Sequence< Any >& rArguments )
1703{
1704 OSL_ENSURE( !GetDocHandler().is(), "duplication initialization" );
1705
1706 Reference< XInterface > xFilter;
1707 if( !m_aSubServiceName.isEmpty() )
1708 {
1709 Reference< XComponentContext > xContext = comphelper::getProcessComponentContext();
1710 // get filter component
1711 xFilter =
1712 xContext->getServiceManager()->createInstanceWithArgumentsAndContext(m_aSubServiceName, rArguments, xContext);
1713 SAL_WARN_IF(!xFilter, "xmloff", "could not instantiate " << m_aSubServiceName);
1714 }
1715 else
1716 SAL_WARN("xmloff", "no subservice name");
1717
1718 if (xFilter.is())
1719 {
1720 Sequence<Any> aArgs( 1 + rArguments.getLength() );
1721 auto pArgs = aArgs.getArray();
1722 pArgs[0] <<= xFilter;
1723 std::copy(rArguments.begin(), rArguments.end(), std::next(pArgs));
1725
1726 OSL_ENSURE( GetDocHandler() == xFilter,
1727 "duplicate doc handler" );
1728 }
1729 else
1730 {
1731 XMLTransformerBase::initialize( rArguments );
1732 }
1733}
1734
1735// XServiceInfo
1737{
1738 return m_aImplName;
1739}
1740
1741sal_Bool SAL_CALL OOo2OasisTransformer::supportsService( const OUString& ServiceName )
1742{
1743 return cppu::supportsService(this, ServiceName);
1744}
1745
1747{
1748 return { };
1749}
1750
1751// XTypeProvider
1752Sequence< css::uno::Type > SAL_CALL OOo2OasisTransformer::getTypes()
1753{
1754 return cppu::OTypeCollection(
1757 XMLTransformerBase::getTypes()
1758 ).getTypes();
1759}
1760
1761// Service registration
1762
1763extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
1765 css::uno::XComponentContext* , css::uno::Sequence<css::uno::Any> const&)
1766{
1767 return cppu::acquire(new OOo2OasisTransformer("com.sun.star.comp.OOo2OasisTransformer", OUString()));
1768}
1769
1770#define OOO_IMPORTER( xml_className_get_impl, implName, subServiceName ) \
1771extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* \
1772xml_className_get_impl( \
1773 css::uno::XComponentContext* , css::uno::Sequence<css::uno::Any> const&) \
1774{ \
1775 return cppu::acquire(new OOo2OasisTransformer( \
1776 implName, \
1777 subServiceName )); \
1778}
1779
1780OOO_IMPORTER( xmloff_XMLWriterImportOOO_get_implementation,
1781 "com.sun.star.comp.Writer.XMLImporter",
1782 "com.sun.star.comp.Writer.XMLOasisImporter" )
1783OOO_IMPORTER( xmloff_XMLWriterStylesImportOOO_get_implementation,
1785 "com.sun.star.comp.Writer.XMLOasisStylesImporter" )
1786OOO_IMPORTER( xmloff_XMLWriterContentImportOOO_get_implementation,
1787 "com.sun.star.comp.Writer.XMLContentImporter",
1788 "com.sun.star.comp.Writer.XMLOasisContentImporter" )
1789OOO_IMPORTER( xmloff_XMLWriterMetaImportOOO_get_implementation,
1790 "com.sun.star.comp.Writer.XMLMetaImporter",
1791 "com.sun.star.comp.Writer.XMLOasisMetaImporter" )
1792OOO_IMPORTER( xmloff_XMLWriterSettingsImportOOO_get_implementation,
1793 "com.sun.star.comp.Writer.XMLSettingsImporter",
1794 "com.sun.star.comp.Writer.XMLOasisSettingsImporter" )
1795
1796OOO_IMPORTER( xmloff_XMLImpressImportOOO_get_implementation,
1797 "com.sun.star.comp.Impress.XMLImporter",
1798 "com.sun.star.comp.Impress.XMLOasisImporter" )
1799OOO_IMPORTER( xmloff_XMLImpressStylesImportOOO_get_implementation,
1800 "com.sun.star.comp.Impress.XMLStylesImporter",
1801 "com.sun.star.comp.Impress.XMLOasisStylesImporter" )
1802OOO_IMPORTER( xmloff_XMLImpressContentImportOOO_get_implementation,
1803 "com.sun.star.comp.Impress.XMLContentImporter",
1804 "com.sun.star.comp.Impress.XMLOasisContentImporter" )
1805OOO_IMPORTER( xmloff_XMLImpressMetaImportOOO_get_implementation,
1806 "com.sun.star.comp.Impress.XMLMetaImporter",
1807 "com.sun.star.comp.Impress.XMLOasisMetaImporter" )
1808OOO_IMPORTER( xmloff_XMLImpressSettingsImportOOO_get_implementation,
1809 "com.sun.star.comp.Impress.XMLSettingsImporter",
1810 "com.sun.star.comp.Impress.XMLOasisSettingsImporter" )
1811
1812OOO_IMPORTER( xmloff_XMLDrawImportOOO_get_implementation,
1813 "com.sun.star.comp.Draw.XMLImporter",
1814 "com.sun.star.comp.Draw.XMLOasisImporter" )
1815OOO_IMPORTER( xmloff_XMLDrawStylesImportOOO_get_implementation,
1816 "com.sun.star.comp.Draw.XMLStylesImporter",
1817 "com.sun.star.comp.Draw.XMLOasisStylesImporter" )
1818OOO_IMPORTER( xmloff_XMLDrawContentImportOOO_get_implementation,
1819 "com.sun.star.comp.Draw.XMLContentImporter",
1820 "com.sun.star.comp.Draw.XMLOasisContentImporter" )
1821OOO_IMPORTER( xmloff_XMLDrawMetaImportOOO_get_implementation,
1822 "com.sun.star.comp.Draw.XMLMetaImporter",
1823 "com.sun.star.comp.Draw.XMLOasisMetaImporter" )
1824OOO_IMPORTER( xmloff_XMLDrawSettingsImportOOO_get_implementation,
1825 "com.sun.star.comp.Draw.XMLSettingsImporter",
1826 "com.sun.star.comp.Draw.XMLOasisSettingsImporter" )
1827
1828OOO_IMPORTER( xmloff_XMLCalcImportOOO_get_implementation,
1829 "com.sun.star.comp.Calc.XMLImporter",
1830 "com.sun.star.comp.Calc.XMLOasisImporter" )
1831OOO_IMPORTER( xmloff_XMLCalcStylesImportOOO_get_implementation,
1832 "com.sun.star.comp.Calc.XMLStylesImporter",
1833 "com.sun.star.comp.Calc.XMLOasisStylesImporter" )
1834OOO_IMPORTER( xmloff_XMLCalcContentImportOOO_get_implementation,
1835 "com.sun.star.comp.Calc.XMLContentImporter",
1836 "com.sun.star.comp.Calc.XMLOasisContentImporter" )
1837OOO_IMPORTER( xmloff_XMLCalcMetaImportOOO_get_implementation,
1838 "com.sun.star.comp.Calc.XMLMetaImporter",
1839 "com.sun.star.comp.Calc.XMLOasisMetaImporter" )
1840OOO_IMPORTER( xmloff_XMLCalcSettingsImportOOO_get_implementation,
1841 "com.sun.star.comp.Calc.XMLSettingsImporter",
1842 "com.sun.star.comp.Calc.XMLOasisSettingsImporter" )
1843
1844OOO_IMPORTER( xmloff_XMLChartImportOOO_get_implementation,
1845 "com.sun.star.comp.Chart.XMLImporter",
1846 "com.sun.star.comp.Chart.XMLOasisImporter" )
1847OOO_IMPORTER( xmloff_XMLChartStylesImportOOO_get_implementation,
1848 "com.sun.star.comp.Chart.XMLStylesImporter",
1849 "com.sun.star.comp.Chart.XMLOasisStylesImporter" )
1850OOO_IMPORTER( xmloff_XMLChartContentImportOOO_get_implementation,
1851 "com.sun.star.comp.Chart.XMLContentImporter",
1852 "com.sun.star.comp.Chart.XMLOasisContentImporter" )
1853
1854OOO_IMPORTER( xmloff_XMLMathMetaImportOOO_get_implementation,
1855 "com.sun.star.comp.Math.XMLMetaImporter",
1856 "com.sun.star.comp.Math.XMLOasisMetaImporter" )
1857OOO_IMPORTER( xmloff_XMLMathSettingsImportOOO_get_implementation,
1858 "com.sun.star.comp.Math.XMLSettingsImporter",
1859 "com.sun.star.comp.Math.XMLOasisSettingsImporter" )
1860
1861OOO_IMPORTER( xmloff_XMLMetaImportOOO_get_implementation,
1862 "com.sun.star.document.XMLMetaImporter",
1863 "com.sun.star.document.XMLOasisMetaImporter" )
1864
1865OOO_IMPORTER( xmloff_XMLAutoTextEventImportOOO_get_implementation,
1866 "com.sun.star.comp.Writer.XMLAutotextEventsImporter",
1867 "com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter" )
1868
1869/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
@ OOO_TAB_STOP_ACTIONS
@ OOO_FRAME_ATTR_ACTIONS
@ OOO_CONFIG_ITEM_SET_ACTIONS
@ OOO_COLUMNS_ACTIONS
@ OOO_TABLE_VALUE_TYPE_ACTIONS
@ OOO_FRAME_ELEM_ACTIONS
@ OOO_FORM_PROP_ACTIONS
@ MAX_OOO_PROP_ACTIONS
@ OOO_FORM_COLUMN_ACTIONS
@ OOO_TEXT_VALUE_TYPE_ACTIONS
@ OOO_CHANGE_INFO_ACTIONS
@ OOO_MASTER_PAGE_ACTIONS
@ OOO_DDE_CONV_MODE_ACTIONS
@ OOO_XLINK_ACTIONS
@ OOO_DATAPILOT_LEVEL_ACTIONS
@ OOO_ANIMATION_ACTIONS
@ OOO_DDE_CONNECTION_DECL_ACTIONS
@ OOO_FORMULA_ACTIONS
@ OOO_SHAPE_ACTIONS
@ OOO_DRAW_AREA_POLYGON_ACTIONS
@ OOO_SCRIPT_ACTIONS
@ MAX_OOO_ACTIONS
@ OOO_DATAPILOT_MEMBER_ACTIONS
@ OOO_EVENT_ACTIONS
@ OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
@ OOO_CONNECTOR_ACTIONS
@ OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
@ OOO_ANNOTATION_ACTIONS
@ OOO_STYLE_ACTIONS
@ OOO_FOOTNOTE_SEP_ACTIONS
@ OOO_SOURCE_SERVICE_ACTIONS
@ OOO_FORM_CONTROL_ACTIONS
@ OOO_STYLE_REF_ACTIONS
@ OOO_DROP_CAP_ACTIONS
@ OOO_PARA_ACTIONS
@ OOO_LINENUMBERING_ACTIONS
@ OOO_BACKGROUND_IMAGE_ACTIONS
@ OOO_ERROR_MACRO_ACTIONS
@ OOO_FONT_DECL_ACTIONS
@ OOO_CHART_ACTIONS
@ XML_ATACTION_EVENT_NAME
@ XML_ATACTION_RENAME_ATTRIBUTE
@ XML_ATACTION_MOVE_TO_ELEM
@ XML_ATACTION_RENAME_INCH2IN
@ XML_ATACTION_REMOVE
@ XML_ATACTION_EOT
@ XML_ATACTION_RENAME_ENCODE_STYLE_NAME_REF
@ XML_ATACTION_TWIPS2IN
@ XML_ATACTION_URI_OOO
@ XML_ATACTION_RENAME_ADD_NAMESPACE_PREFIX
@ XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
@ XML_ATACTION_ENCODE_STYLE_NAME
@ XML_ATACTION_RENAME_NEG_PERCENT
@ XML_ATACTION_ENCODE_STYLE_NAME_REF
@ XML_ATACTION_INCH2IN
@ XML_ATACTION_MACRO_LOCATION
@ XML_ATACTION_SHAPEID
@ XML_ATACTION_HREF
@ XML_ATACTION_INCHS2INS
@ XML_ATACTION_RENAME
@ XML_ATACTION_ADD_APP_NAMESPACE_PREFIX
@ XML_ATACTION_ADD_NAMESPACE_PREFIX
@ XML_ATACTION_STYLE_FAMILY
@ XML_ATACTION_NEG_PERCENT
@ XML_ATACTION_MACRO_NAME
@ XML_ETACTION_RENAME_ELEM_ADD_PROC_ATTR
@ XML_ETACTION_EOT
@ XML_ETACTION_RENAME_ELEM
@ XML_ETACTION_PROC_ATTRS_COND
@ XML_ETACTION_RENAME_ELEM_PROC_ATTRS
@ XML_ETACTION_RENAME_ELEM_ADD_ATTR
@ XML_ETACTION_COPY_TEXT
@ XML_ETACTION_USER_DEFINED
@ XML_ETACTION_COPY
@ XML_ETACTION_MOVE_ATTRS_TO_ELEMS
@ XML_ETACTION_COPY_CONTENT
@ XML_ETACTION_PROC_ATTRS
XMLFamilyType
Definition: FamilyType.hxx:23
@ XML_FAMILY_TYPE_PAGE_LAYOUT
Definition: FamilyType.hxx:28
@ XML_FAMILY_TYPE_FILL_IMAGE
Definition: FamilyType.hxx:43
@ XML_FAMILY_TYPE_GRADIENT
Definition: FamilyType.hxx:41
@ XML_FAMILY_TYPE_HATCH
Definition: FamilyType.hxx:42
@ XML_FAMILY_TYPE_END
Definition: FamilyType.hxx:46
@ XML_FAMILY_TYPE_MARKER
Definition: FamilyType.hxx:45
@ XML_FAMILY_TYPE_STROKE_DASH
Definition: FamilyType.hxx:44
@ XML_FAMILY_TYPE_DATA
Definition: FamilyType.hxx:40
@ XML_FAMILY_TYPE_LIST
Definition: FamilyType.hxx:38
@ XML_FAMILY_TYPE_HEADER_FOOTER
Definition: FamilyType.hxx:29
XMLTransformerActionInit const aErrorMacroActionTable[]
Definition: OOo2Oasis.cxx:793
#define ENTRY2(n, l, a, p1, p2)
Definition: OOo2Oasis.cxx:84
XMLTransformerActionInit const aConnectorActionTable[]
Definition: OOo2Oasis.cxx:595
#define ENTRY1Q(n, l, a, n1, l1)
Definition: OOo2Oasis.cxx:91
com sun star comp Writer com sun star comp Writer XMLOasisStylesImporter com sun star comp Writer com sun star comp Writer XMLOasisMetaImporter com sun star comp Impress com sun star comp Impress XMLOasisImporter com sun star comp Impress XMLContentImporter
Definition: OOo2Oasis.cxx:1803
XMLTransformerActionInit const aScriptActionTable[]
Definition: OOo2Oasis.cxx:861
XMLTransformerActionInit const aTextValueTypeActionTable[]
Definition: OOo2Oasis.cxx:671
XMLTransformerActionInit const aFormControlActionTable[]
Definition: OOo2Oasis.cxx:745
XMLTransformerActionInit const aConfigItemSetActionTable[]
Definition: OOo2Oasis.cxx:776
XMLTransformerActionInit const aDDEConnectionDeclActionTable[]
Definition: OOo2Oasis.cxx:738
XMLTransformerActionInit const aBackgroundImageActionTable[]
Definition: OOo2Oasis.cxx:719
XMLTransformerActionInit const aFrameAttrActionTable[]
Definition: OOo2Oasis.cxx:459
XMLTransformerActionInit const aFormulaActionTable[]
Definition: OOo2Oasis.cxx:783
XMLTransformerActionInit const aAnnotationActionTable[]
Definition: OOo2Oasis.cxx:702
XMLTransformerActionInit const aDataPilotLevelActionTable[]
Definition: OOo2Oasis.cxx:814
XMLTransformerActionInit const aFrameElemActionTable[]
Definition: OOo2Oasis.cxx:447
#define ENTRY1(n, l, a, p1)
Definition: OOo2Oasis.cxx:89
XMLTransformerActionInit const aFontDeclActionTable[]
Definition: OOo2Oasis.cxx:509
XMLTransformerActionInit const aDDEConvModeActionTable[]
Definition: OOo2Oasis.cxx:800
XMLTransformerActionInit const aStyleActionTable[]
Definition: OOo2Oasis.cxx:425
XMLTransformerActionInit const aDrawAreaPolygonActionTable[]
Definition: OOo2Oasis.cxx:836
XMLTransformerActionInit const aXLinkActionTable[]
Definition: OOo2Oasis.cxx:769
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * xmloff_OOo2OasisTransformer_get_implementation(css::uno::XComponentContext *, css::uno::Sequence< css::uno::Any > const &)
Definition: OOo2Oasis.cxx:1764
#define ENTRY3QQN(n, l, a, n1, l1, n2, l2, p3)
Definition: OOo2Oasis.cxx:80
XMLTransformerActionInit const aParaActionTable[]
Definition: OOo2Oasis.cxx:517
XMLTokenEnum const aTokenMap[]
Definition: OOo2Oasis.cxx:869
#define OOO_IMPORTER(xml_className_get_impl, implName, subServiceName)
Definition: OOo2Oasis.cxx:1770
XMLTransformerActionInit const aMasterPageActionTable[]
Definition: OOo2Oasis.cxx:500
com sun star comp Writer com sun star comp Writer XMLOasisStylesImporter com sun star comp Writer com sun star comp Writer XMLOasisMetaImporter com sun star comp Impress com sun star comp Impress XMLOasisImporter com sun star comp Impress com sun star comp Impress XMLOasisContentImporter com sun star comp Impress XMLSettingsImporter
Definition: OOo2Oasis.cxx:1809
XMLTransformerActionInit const aSourceServiceActionTable[]
Definition: OOo2Oasis.cxx:821
XMLTransformerActionInit const aAlphabeticalIndexMarkActionTable[]
Definition: OOo2Oasis.cxx:854
XMLTransformerActionInit const aDropCapActionTable[]
Definition: OOo2Oasis.cxx:652
XMLTransformerActionInit const aFootnoteSepActionTable[]
Definition: OOo2Oasis.cxx:643
XMLTransformerActionInit const aTabStopActionTable[]
Definition: OOo2Oasis.cxx:627
XMLTransformerActionInit const aDataPilotMemberActionTable[]
Definition: OOo2Oasis.cxx:807
XMLTransformerActionInit const aChartActionTable[]
Definition: OOo2Oasis.cxx:843
XMLTransformerActionInit const aEventActionTable[]
Definition: OOo2Oasis.cxx:488
XMLTransformerActionInit const aStyleRefActionTable[]
Definition: OOo2Oasis.cxx:527
com sun star comp Writer com sun star comp Writer XMLOasisStylesImporter com sun star comp Writer XMLMetaImporter
Definition: OOo2Oasis.cxx:1790
XMLTransformerActionInit const aLineNumberingActionTable[]
Definition: OOo2Oasis.cxx:635
#define ENTRY0(n, l, a)
Definition: OOo2Oasis.cxx:94
XMLTransformerActionInit const aActionTable[]
Definition: OOo2Oasis.cxx:104
XMLTransformerActionInit const aAnimationsActionTable[]
Definition: OOo2Oasis.cxx:828
XMLTransformerActionInit const aIndexEntryTabStopActionTable[]
Definition: OOo2Oasis.cxx:619
XMLTransformerActionInit const aFormPropActionTable[]
Definition: OOo2Oasis.cxx:761
XMLTransformerActionInit const aChangeInfoActionTable[]
Definition: OOo2Oasis.cxx:711
XMLTransformerActionInit const aShapeActionTable[]
Definition: OOo2Oasis.cxx:553
com sun star comp Writer com sun star comp Writer XMLOasisStylesImporter com sun star comp Writer com sun star comp Writer XMLOasisMetaImporter com sun star comp Impress XMLImporter
Definition: OOo2Oasis.cxx:1797
XMLTransformerActionInit const aColumnsActionTable[]
Definition: OOo2Oasis.cxx:659
com sun star comp Writer XMLStylesImporter
Definition: OOo2Oasis.cxx:1784
XMLTransformerActionInit const aTableValueTypeActionTable[]
Definition: OOo2Oasis.cxx:686
XMLTransformerActionInit const aFormColumnActionTable[]
Definition: OOo2Oasis.cxx:753
static constexpr sal_Int32 RENAME_ENTRY(XMLTokenEnum f, XMLTokenEnum s)
Definition: OOo2Oasis.cxx:99
XMLTransformerActionInit const aWriterBackgroundImageActionTable[]
Definition: OOo2Oasis.cxx:730
#define ENTRY2QN(n, l, a, n1, l1, p2)
Definition: OOo2Oasis.cxx:86
@ XML_ATACTION_WRITER_BACK_GRAPHIC_TRANSPARENCY
OOo2OasisTransformer(OUString aImplName, OUString aSubServiceName) noexcept
Definition: OOo2Oasis.cxx:1556
virtual sal_Bool SAL_CALL filter(const css::uno::Sequence< css::beans::PropertyValue > &aDescriptor) override
Definition: OOo2Oasis.cxx:1662
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: OOo2Oasis.cxx:1746
virtual void SAL_CALL cancel() override
Definition: OOo2Oasis.cxx:1673
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: OOo2Oasis.cxx:1741
virtual XMLTransformerContext * CreateUserDefinedContext(const TransformerAction_Impl &rAction, const OUString &rQName, bool bPersistent=false) override
Definition: OOo2Oasis.cxx:1305
virtual ~OOo2OasisTransformer() noexcept override
Definition: OOo2Oasis.cxx:1613
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &aType) override
Definition: OOo2Oasis.cxx:1620
void Initialize(const css::uno::Sequence< css::uno::Any > &aArguments)
Definition: OOo2Oasis.cxx:1701
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
Definition: OOo2Oasis.cxx:1682
std::unique_ptr< XMLTransformerActions > m_aActions[MAX_OOO_ACTIONS]
Definition: OOo2Oasis.hxx:37
virtual void SAL_CALL setTargetDocument(const css::uno::Reference< css::lang::XComponent > &xDoc) override
Definition: OOo2Oasis.cxx:1642
OUString const m_aImplName
Definition: OOo2Oasis.hxx:34
OUString const m_aSubServiceName
Definition: OOo2Oasis.hxx:35
XMLTransformerOOoEventMap_Impl * m_pEventMap
Definition: OOo2Oasis.hxx:38
virtual OUString SAL_CALL getImplementationName() override
Definition: OOo2Oasis.cxx:1736
virtual void SAL_CALL startDocument() override
Definition: OOo2Oasis.cxx:1688
virtual XMLTransformerActions * GetUserDefinedActions(sal_uInt16 n) override
Definition: OOo2Oasis.cxx:1360
virtual OUString GetEventName(const OUString &rName, bool bForm=false) override
Definition: OOo2Oasis.cxx:1540
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
Definition: OOo2Oasis.cxx:1752
OUString GetQNameByKey(sal_uInt16 nKey, const OUString &rLocalName, bool bCache=true) const
static sal_uInt16 GetEventName(const OUString &rName, OUString &rNewName, XMLTransformerOOoEventMap_Impl &rMap)
static XMLTransformerOOoEventMap_Impl * CreateEventMap()
static void FlushEventMap(XMLTransformerOOoEventMap_Impl *p)
void AddAttribute(const OUString &sName, const OUString &sValue)
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList) override
static XMLTransformerActions * CreateTransformerActions(sal_uInt16 nType)
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
SvXMLNamespaceMap & GetNamespaceMap()
static bool ReplaceSingleInchWithIn(OUString &rValue)
virtual void SAL_CALL startDocument() override
const css::uno::Reference< css::xml::sax::XDocumentHandler > & GetDocHandler() const
friend class XMLTransformerContext
css::uno::Reference< css::frame::XModel > mxModel
virtual void StartElement(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList)
static void decode(css::uno::Sequence< sal_Int8 > &aPass, std::u16string_view sBuffer)
css::uno::Sequence< css::uno::Type > SAL_CALL getTypes()
sal_Int64 n
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
Reference< XComponentContext > getProcessComponentContext()
Type
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
int i
OUString aPropName
const sal_uInt16 XML_NAMESPACE_UNKNOWN
const sal_uInt16 XML_NAMESPACE_XMLNS
Handling of tokens in XML:
XMLTokenEnum
The enumeration of all XML tokens.
Definition: xmltoken.hxx:50
@ XML_ALPHABETICAL_INDEX_MARK
Definition: xmltoken.hxx:239
@ XML_PRESENTATION_PAGE_LAYOUT
Definition: xmltoken.hxx:1553
@ XML_ILLUSTRATION_INDEX
Definition: xmltoken.hxx:1073
@ XML_MAIN_ENTRY_STYLE_NAME
Definition: xmltoken.hxx:1242
@ XML_AUTO_TEXT_EVENTS
Definition: xmltoken.hxx:295
@ XML_INDEX_ENTRY_TAB_STOP
Definition: xmltoken.hxx:1094
@ XML_LIST_LEVEL_STYLE_IMAGE
Definition: xmltoken.hxx:1221
@ XML_COVERED_TABLE_CELL
Definition: xmltoken.hxx:541
@ XML_LIST_LEVEL_STYLE_NUMBER
Definition: xmltoken.hxx:1222
@ XML_DOCUMENT_SETTINGS
Definition: xmltoken.hxx:704
@ XML_NP_PRESENTATION
Definition: xmltoken.hxx:88
@ XML_CONTENT_VALIDATION_NAME
Definition: xmltoken.hxx:509
@ XML_ALPHABETICAL_INDEX_AUTO_MARK_FILE
Definition: xmltoken.hxx:237
@ XML_INDEX_ENTRY_BIBLIOGRAPHY
Definition: xmltoken.hxx:1087
@ XML_ALPHABETICAL_INDEX_MARK_START
Definition: xmltoken.hxx:241
@ XML_INDEX_ENTRY_LINK_START
Definition: xmltoken.hxx:1091
@ XML_ALPHABETICAL_INDEX_ENTRY_TEMPLATE
Definition: xmltoken.hxx:238
@ XML_BIBLIOGRAPHY_ENTRY_TEMPLATE
Definition: xmltoken.hxx:330
@ XML_ENDNOTE_CITATION
Definition: xmltoken.hxx:766
@ XML_DDE_CONNECTION_DECL
Definition: xmltoken.hxx:637
@ XML_DEFAULT_STYLE_NAME
Definition: xmltoken.hxx:654
@ XML_ILLUSTRATION_INDEX_ENTRY_TEMPLATE
Definition: xmltoken.hxx:1074
@ XML_ENDNOTES_CONFIGURATION
Definition: xmltoken.hxx:768
@ XML_INDEX_TITLE_TEMPLATE
Definition: xmltoken.hxx:1102
@ XML_CONDITIONAL_TEXT
Definition: xmltoken.hxx:487
@ XML_DATABASE_ROW_SELECT
Definition: xmltoken.hxx:2747
@ XML_DEFAULT_CELL_STYLE_NAME
Definition: xmltoken.hxx:652
@ XML_TABLE_OF_CONTENT_ENTRY_TEMPLATE
Definition: xmltoken.hxx:1927
@ XML_DATA_PILOT_MEMBER
Definition: xmltoken.hxx:599
@ XML_INDEX_SOURCE_STYLE
Definition: xmltoken.hxx:1099
@ XML_PRESENTATION_PAGE_LAYOUT_NAME
Definition: xmltoken.hxx:1554
@ XML_INDEX_ENTRY_PAGE_NUMBER
Definition: xmltoken.hxx:1092
@ XML_OBJECT_INDEX_ENTRY_TEMPLATE
Definition: xmltoken.hxx:1426
@ XML_COUNT_IN_FLOATING_FRAMES
Definition: xmltoken.hxx:534
@ XML_APPLY_STYLE_NAME
Definition: xmltoken.hxx:269
@ XML_BACKGROUND_IMAGE
Definition: xmltoken.hxx:315
@ XML_LINENUMBERING_CONFIGURATION
Definition: xmltoken.hxx:1207
@ XML_COUNT_IN_TEXT_BOXES
Definition: xmltoken.hxx:2706
@ XML_CITATION_BODY_STYLE_NAME
Definition: xmltoken.hxx:440
@ XML_NOTES_CONFIGURATION
Definition: xmltoken.hxx:2624
@ XML_INDEX_ENTRY_CHAPTER_NUMBER
Definition: xmltoken.hxx:1089
@ XML_CONTENT_VALIDATION
Definition: xmltoken.hxx:508
@ XML_DISTANCE_AFTER_SEP
Definition: xmltoken.hxx:695
@ XML_INDEX_ENTRY_CHAPTER
Definition: xmltoken.hxx:1088
@ XML_END_CELL_ADDRESS
Definition: xmltoken.hxx:749
@ XML_LIST_LEVEL_STYLE_BULLET
Definition: xmltoken.hxx:1220
@ XML_EDITING_DURATION
Definition: xmltoken.hxx:731
@ XML_FOOTNOTE_CITATION
Definition: xmltoken.hxx:918
@ XML_ALPHABETICAL_INDEX
Definition: xmltoken.hxx:236
@ XML_CREATE_DATE_STRING
Definition: xmltoken.hxx:543
@ XML_CELL_RANGE_SOURCE
Definition: xmltoken.hxx:414
@ XML_VISITED_STYLE_NAME
Definition: xmltoken.hxx:2139
@ XML_DATA_PILOT_LEVEL
Definition: xmltoken.hxx:598
@ XML_DISTANCE_BEFORE_SEP
Definition: xmltoken.hxx:696
@ XML_OUTLINE_LEVEL_STYLE
Definition: xmltoken.hxx:1458
@ XML_N_PRESENTATION
Definition: xmltoken.hxx:89
@ XML_INDEX_ENTRY_LINK_END
Definition: xmltoken.hxx:1090
@ XML_DATABASE_DISPLAY
Definition: xmltoken.hxx:612
@ XML_CONTROL_IMPLEMENTATION
Definition: xmltoken.hxx:2748
@ XML_FOOTNOTES_CONFIGURATION
Definition: xmltoken.hxx:924
@ XML_DOCUMENT_CONTENT
Definition: xmltoken.hxx:702
@ XML_N_PRESENTATION_OOO
Definition: xmltoken.hxx:2613
@ XML_USER_INDEX_ENTRY_TEMPLATE
Definition: xmltoken.hxx:2093
@ XML_CHANGE_TRACK_TABLE_CELL
Definition: xmltoken.hxx:424
@ XML_TABLE_INDEX_ENTRY_TEMPLATE
Definition: xmltoken.hxx:1923
@ XML_ANCHOR_PAGE_NUMBER
Definition: xmltoken.hxx:247
@ XML_CITATION_STYLE_NAME
Definition: xmltoken.hxx:441
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
compare eToken to the string
Definition: xmltoken.cxx:3597
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
return the OUString representation for eToken
Definition: xmltoken.cxx:3541
sal_uInt16 GetQNamePrefixFromParam1() const
::xmloff::token::XMLTokenEnum GetQNameTokenFromParam1() const
unsigned char sal_Bool
constexpr sal_uInt16 XML_NAMESPACE_DRAW
constexpr sal_uInt16 XML_NAMESPACE_META
constexpr sal_uInt16 XML_NAMESPACE_DC
constexpr sal_uInt16 XML_NAMESPACE_XLINK
constexpr sal_uInt16 XML_NAMESPACE_OOOC
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_DOM
constexpr sal_uInt16 XML_NAMESPACE_TABLE
constexpr sal_uInt16 XML_NAMESPACE_OOOW
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
XMLTokenEnum eToken
Definition: xmltoken.cxx:40