1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #include <rtl/ustrbuf.hxx>
21 #include <comphelper/processfactory.hxx>
22 #include <comphelper/servicehelper.hxx>
23 #include <sax/tools/converter.hxx>
24 #include <xmloff/nmspmap.hxx>
25 #include "xmloff/xmlnmspe.hxx"
26 #include <xmloff/xmltoken.hxx>
27 #include "MutableAttrList.hxx"
28 #include "DeepTContext.hxx"
29 #include "StyleOOoTContext.hxx"
30 #include "FrameOOoTContext.hxx"
31 #include "EventOOoTContext.hxx"
32 #include "ControlOOoTContext.hxx"
33 #include "FormPropOOoTContext.hxx"
34 #include "ChartOOoTContext.hxx"
35 #include "ChartPlotAreaOOoTContext.hxx"
36 #include "ElemTransformerAction.hxx"
37 #include "AttrTransformerAction.hxx"
38 #include "PropertyActionsOOo.hxx"
39 #include "TransformerActions.hxx"
40 #include "OOo2Oasis.hxx"
42 using namespace ::xmloff::token
;
43 using namespace ::com::sun::star::uno
;
44 using namespace ::com::sun::star::lang
;
45 using namespace ::com::sun::star::xml::sax
;
46 using namespace ::com::sun::star::beans
;
48 OUString SAL_CALL
OOo2OasisTransformer_getImplementationName() throw();
50 enum XMLUserDefinedTransformerAction
52 XML_ETACTION_DOCUMENT
=XML_ETACTION_USER_DEFINED
,
55 XML_ETACTION_STYLE_RENAME
,
58 XML_ETACTION_TAB_STOP
,
59 XML_ETACTION_FORM_CONTROL
,
60 XML_ETACTION_FORM_PROPERTY
,
62 XML_ETACTION_TRACKED_CHANGES
,
63 XML_ETACTION_CHART_PLOT_AREA
,
64 XML_ETACTION_DOCUMENT_RENAME
,
68 #define ENTRY3( n, l, a, p1, p2, p3 ) \
69 { XML_NAMESPACE_##n, XML_##l, a, p1, p2, p3 }
70 #define ENTRY3QQN( n, l, a, n1, l1, n2, l2, p3 ) \
71 ENTRY3( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), \
72 XMLTransformerActionInit::QNameParam( n2, l2 ), p3 )
74 #define ENTRY2( n, l, a, p1, p2 ) \
75 ENTRY3( n, l, a, p1, p2, 0 )
76 #define ENTRY2QN( n, l, a, n1, l1, p2 ) \
77 ENTRY2( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), p2 )
79 #define ENTRY1( n, l, a, p1 ) \
80 ENTRY3( n, l, a, p1, 0, 0 )
81 #define ENTRY1Q( n, l, a, n1, l1 ) \
82 ENTRY1( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ) )
84 #define ENTRY0( n, l, a ) \
85 ENTRY3( n, l, a, 0, 0, 0 )
87 // BM: a macro to put two tokens into one sal_Int32 for the action
88 // XML_ATACTION_RENAME_ATTRIBUTE
89 #define RENAME_ENTRY( f, s ) \
90 (static_cast< sal_Int32 >(f) | (static_cast< sal_Int32 >(s) << 16))
92 static XMLTransformerActionInit aActionTable
[] =
94 // remove office:class from <office:document> and <office:document-content>
95 ENTRY0( OFFICE
, DOCUMENT
, XML_ETACTION_DOCUMENT
),
96 ENTRY0( OFFICE
, DOCUMENT_CONTENT
, XML_ETACTION_DOCUMENT
),
97 ENTRY0( OFFICE
, DOCUMENT_STYLES
, XML_ETACTION_DOCUMENT
),
98 ENTRY0( OFFICE
, DOCUMENT_SETTINGS
, XML_ETACTION_DOCUMENT
),
99 ENTRY1Q( OFFICE
, AUTO_TEXT_EVENTS
, XML_ETACTION_DOCUMENT_RENAME
,
100 XML_NAMESPACE_OOO
, XML_AUTO_TEXT_EVENTS
),
102 // remove <meta:keywords>
103 ENTRY0( META
, KEYWORDS
, XML_ETACTION_COPY_CONTENT
),
105 // rename <office:script> to <office:scripts>
106 ENTRY1Q( OFFICE
, SCRIPT
, XML_ETACTION_RENAME_ELEM
,
107 XML_NAMESPACE_OFFICE
, XML_SCRIPTS
),
109 // rename <office:script-data> to <office:script> and process attributes
110 ENTRY2QN( OFFICE
, SCRIPT_DATA
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
111 XML_NAMESPACE_OFFICE
, XML_SCRIPT
,
112 OOO_SCRIPT_ACTIONS
),
114 // rename <script:libraries> to <ooo:libraries>
115 ENTRY1Q( SCRIPT
, LIBRARIES
, XML_ETACTION_RENAME_ELEM
,
116 XML_NAMESPACE_OOO
, XML_LIBRARIES
),
118 // rename <script:library-linked> to <ooo:library-linked> and process attributes
119 ENTRY2QN( SCRIPT
, LIBRARY_LINKED
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
120 XML_NAMESPACE_OOO
, XML_LIBRARY_LINKED
,
121 OOO_SCRIPT_ACTIONS
),
123 // rename <script:library-embedded> to <ooo:library-embedded> and process attributes
124 ENTRY2QN( SCRIPT
, LIBRARY_EMBEDDED
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
125 XML_NAMESPACE_OOO
, XML_LIBRARY_EMBEDDED
,
126 OOO_SCRIPT_ACTIONS
),
128 // rename <script:module> to <ooo:module> and process attributes
129 ENTRY2QN( SCRIPT
, MODULE
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
130 XML_NAMESPACE_OOO
, XML_MODULE
,
131 OOO_SCRIPT_ACTIONS
),
133 // rename <script:source-code> to <ooo:source-code>
134 ENTRY1Q( SCRIPT
, SOURCE_CODE
, XML_ETACTION_RENAME_ELEM
,
135 XML_NAMESPACE_OOO
, XML_SOURCE_CODE
),
137 // rename <office:font-decls> to <office:font-face-decl>,
138 // rename <style:font-decl> to <style:font-face>, process attrs
139 ENTRY1Q( OFFICE
, FONT_DECLS
, XML_ETACTION_RENAME_ELEM
,
140 XML_NAMESPACE_OFFICE
, XML_FONT_FACE_DECLS
),
141 ENTRY2QN( STYLE
, FONT_DECL
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
142 XML_NAMESPACE_STYLE
, XML_FONT_FACE
,
143 OOO_FONT_DECL_ACTIONS
),
146 ENTRY0( OFFICE
, BODY
, XML_ETACTION_BODY
),
148 // rename <style:page-master> to <style:page-layout>
149 ENTRY2QN( STYLE
, PAGE_MASTER
, XML_ETACTION_STYLE_RENAME
,
150 XML_NAMESPACE_STYLE
, XML_PAGE_LAYOUT
,
151 XML_FAMILY_TYPE_PAGE_LAYOUT
),
152 ENTRY1( STYLE
, MASTER_PAGE
, XML_ETACTION_PROC_ATTRS
,
153 OOO_MASTER_PAGE_ACTIONS
),
155 // split <style:properties> into <style:*-properties> and do other
157 ENTRY1( STYLE
, STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_END
),
158 ENTRY1( STYLE
, DEFAULT_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_END
),
159 ENTRY1( NUMBER
, NUMBER_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
160 ENTRY1( NUMBER
, CURRENCY_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
161 ENTRY1( NUMBER
, PERCENTAGE_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
162 ENTRY1( NUMBER
, DATE_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
163 ENTRY1( NUMBER
, TIME_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
164 ENTRY1( NUMBER
, BOOLEAN_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
165 ENTRY1( NUMBER
, TEXT_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_DATA
),
166 ENTRY1( TEXT
, LIST_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_LIST
),
167 // ENTRY0( TEXT, OUTLINE_STYLE, STYLE ),
168 ENTRY1( STYLE
, HEADER_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_HEADER_FOOTER
),
169 ENTRY1( STYLE
, FOOTER_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_HEADER_FOOTER
),
170 ENTRY1( TEXT
, LIST_LEVEL_STYLE_NUMBER
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_LIST
),
171 ENTRY1( TEXT
, LIST_LEVEL_STYLE_BULLET
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_LIST
),
172 ENTRY1( TEXT
, LIST_LEVEL_STYLE_IMAGE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_LIST
),
173 ENTRY1( TEXT
, OUTLINE_LEVEL_STYLE
, XML_ETACTION_STYLE
, XML_FAMILY_TYPE_LIST
),
174 ENTRY1( DRAW
, GRADIENT
, XML_ETACTION_STYLE
,
175 XML_FAMILY_TYPE_GRADIENT
),
176 ENTRY1( DRAW
, FILL_IMAGE
, XML_ETACTION_STYLE
,
177 XML_FAMILY_TYPE_FILL_IMAGE
),
178 ENTRY2QN( DRAW
, TRANSPARENCY
, XML_ETACTION_STYLE_RENAME
,
179 XML_NAMESPACE_DRAW
, XML_OPACITY
,
180 XML_FAMILY_TYPE_GRADIENT
),
181 ENTRY1( DRAW
, MARKER
, XML_ETACTION_STYLE
,
182 XML_FAMILY_TYPE_MARKER
),
183 ENTRY1( DRAW
, HATCH
, XML_ETACTION_STYLE
,
184 XML_FAMILY_TYPE_HATCH
),
185 ENTRY1( DRAW
, STROKE_DASH
, XML_ETACTION_STYLE
,
186 XML_FAMILY_TYPE_STROKE_DASH
),
188 // rename <text:h>'s text:level to text:outline-level
189 // process <text:h/p>: process style-name attributes,
190 ENTRY1( TEXT
, H
, XML_ETACTION_PROC_ATTRS
, OOO_PARA_ACTIONS
),
191 ENTRY1( TEXT
, P
, XML_ETACTION_PROC_ATTRS
, OOO_PARA_ACTIONS
),
193 // rename <text:ordered-list> and <text:unordered-list> to <text:list>
194 ENTRY2QN( TEXT
, UNORDERED_LIST
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
195 XML_NAMESPACE_TEXT
, XML_LIST
,
196 OOO_STYLE_REF_ACTIONS
),
197 ENTRY2QN( TEXT
, ORDERED_LIST
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
198 XML_NAMESPACE_TEXT
, XML_LIST
,
199 OOO_STYLE_REF_ACTIONS
),
201 // rename <text:footnote*> to <text:note*>
202 ENTRY3QQN( TEXT
, FOOTNOTE
, XML_ETACTION_RENAME_ELEM_ADD_ATTR
,
203 XML_NAMESPACE_TEXT
, XML_NOTE
,
204 XML_NAMESPACE_TEXT
, XML_NOTE_CLASS
, XML_FOOTNOTE
),
205 ENTRY1Q( TEXT
, FOOTNOTE_BODY
, XML_ETACTION_RENAME_ELEM
,
206 XML_NAMESPACE_TEXT
, XML_NOTE_BODY
),
207 ENTRY1Q( TEXT
, FOOTNOTE_CITATION
, XML_ETACTION_RENAME_ELEM
,
208 XML_NAMESPACE_TEXT
, XML_NOTE_CITATION
),
209 ENTRY3QQN( TEXT
, FOOTNOTES_CONFIGURATION
,
210 XML_ETACTION_RENAME_ELEM_ADD_PROC_ATTR
,
211 XML_NAMESPACE_TEXT
, XML_NOTES_CONFIGURATION
,
212 XML_NAMESPACE_TEXT
, XML_NOTE_CLASS
,
213 XML_FOOTNOTE
| (OOO_STYLE_REF_ACTIONS
<< 16) ),
215 // rename <text:endnote*> to <text:endnote*>
216 ENTRY3QQN( TEXT
, ENDNOTE
, XML_ETACTION_RENAME_ELEM_ADD_ATTR
,
217 XML_NAMESPACE_TEXT
, XML_NOTE
,
218 XML_NAMESPACE_TEXT
, XML_NOTE_CLASS
, XML_ENDNOTE
),
219 ENTRY1Q( TEXT
, ENDNOTE_BODY
, XML_ETACTION_RENAME_ELEM
,
220 XML_NAMESPACE_TEXT
, XML_NOTE_BODY
),
221 ENTRY1Q( TEXT
, ENDNOTE_CITATION
, XML_ETACTION_RENAME_ELEM
,
222 XML_NAMESPACE_TEXT
, XML_NOTE_CITATION
),
223 ENTRY3QQN( TEXT
, ENDNOTES_CONFIGURATION
,
224 XML_ETACTION_RENAME_ELEM_ADD_PROC_ATTR
,
225 XML_NAMESPACE_TEXT
, XML_NOTES_CONFIGURATION
,
226 XML_NAMESPACE_TEXT
, XML_NOTE_CLASS
,
227 XML_ENDNOTE
| (OOO_STYLE_REF_ACTIONS
<< 16) ),
229 // rename <text:footnote> and <text:endnote> to <text:note>
230 ENTRY3QQN( TEXT
, ENDNOTE_REF
, XML_ETACTION_RENAME_ELEM_ADD_ATTR
,
231 XML_NAMESPACE_TEXT
, XML_NOTE_REF
,
232 XML_NAMESPACE_TEXT
, XML_NOTE_CLASS
, XML_ENDNOTE
),
233 ENTRY3QQN( TEXT
, FOOTNOTE_REF
, XML_ETACTION_RENAME_ELEM_ADD_ATTR
,
234 XML_NAMESPACE_TEXT
, XML_NOTE_REF
,
235 XML_NAMESPACE_TEXT
, XML_NOTE_CLASS
, XML_FOOTNOTE
),
237 // rename <text:tab-stop> to <text:tab>
238 ENTRY1Q( TEXT
, TAB_STOP
, XML_ETACTION_RENAME_ELEM
,
239 XML_NAMESPACE_TEXT
, XML_TAB
),
241 // replace <table:sub-table> with <table:table table:is-sub-table>
242 ENTRY3QQN( TABLE
, SUB_TABLE
, XML_ETACTION_RENAME_ELEM_ADD_ATTR
,
243 XML_NAMESPACE_TABLE
, XML_TABLE
,
244 XML_NAMESPACE_TABLE
, XML_IS_SUB_TABLE
, XML_TRUE
),
246 // process *:style-name attributes
247 ENTRY1( TEXT
, SECTION
, XML_ETACTION_PROC_ATTRS
,
248 OOO_STYLE_REF_ACTIONS
), /* generated entry */
249 ENTRY1( TEXT
, SPAN
, XML_ETACTION_PROC_ATTRS
,
250 OOO_STYLE_REF_ACTIONS
), /* generated entry */
251 ENTRY1( TEXT
, A
, XML_ETACTION_PROC_ATTRS
,
252 OOO_STYLE_REF_ACTIONS
), /* generated entry */
253 ENTRY1( TEXT
, RUBY
, XML_ETACTION_PROC_ATTRS
,
254 OOO_STYLE_REF_ACTIONS
), /* generated entry */
255 ENTRY1( TEXT
, RUBY_TEXT
, XML_ETACTION_PROC_ATTRS
,
256 OOO_STYLE_REF_ACTIONS
), /* generated entry */
257 ENTRY1( TEXT
, DATE
, XML_ETACTION_PROC_ATTRS
,
258 OOO_STYLE_REF_ACTIONS
), /* generated entry */
259 ENTRY1( TEXT
, TIME
, XML_ETACTION_PROC_ATTRS
,
260 OOO_STYLE_REF_ACTIONS
), /* generated entry */
261 ENTRY1( TEXT
, VARIABLE_GET
, XML_ETACTION_PROC_ATTRS
,
262 OOO_STYLE_REF_ACTIONS
), /* generated entry */
263 ENTRY1( TEXT
, USER_FIELD_GET
, XML_ETACTION_PROC_ATTRS
,
264 OOO_STYLE_REF_ACTIONS
), /* generated entry */
265 ENTRY1( TEXT
, USER_FIELD_INPUT
, XML_ETACTION_PROC_ATTRS
,
266 OOO_STYLE_REF_ACTIONS
), /* generated entry */
267 ENTRY1( TEXT
, CREATION_DATE
, XML_ETACTION_PROC_ATTRS
,
268 OOO_STYLE_REF_ACTIONS
), /* generated entry */
269 ENTRY1( TEXT
, CREATION_TIME
, XML_ETACTION_PROC_ATTRS
,
270 OOO_STYLE_REF_ACTIONS
), /* generated entry */
271 ENTRY1( TEXT
, PRINT_TIME
, XML_ETACTION_PROC_ATTRS
,
272 OOO_STYLE_REF_ACTIONS
), /* generated entry */
273 ENTRY1( TEXT
, PRINT_DATE
, XML_ETACTION_PROC_ATTRS
,
274 OOO_STYLE_REF_ACTIONS
), /* generated entry */
275 ENTRY1( TEXT
, EDITING_DURATION
, XML_ETACTION_PROC_ATTRS
,
276 OOO_STYLE_REF_ACTIONS
), /* generated entry */
277 ENTRY1( TEXT
, MODIFICATION_TIME
, XML_ETACTION_PROC_ATTRS
,
278 OOO_STYLE_REF_ACTIONS
), /* generated entry */
279 ENTRY1( TEXT
, MODIFICATION_DATE
, XML_ETACTION_PROC_ATTRS
,
280 OOO_STYLE_REF_ACTIONS
), /* generated entry */
281 ENTRY1( TEXT
, DATABASE_DISPLAY
, XML_ETACTION_PROC_ATTRS
,
282 OOO_STYLE_REF_ACTIONS
), /* generated entry */
283 ENTRY1( TEXT
, TABLE_FORMULA
, XML_ETACTION_PROC_ATTRS
,
284 OOO_STYLE_REF_ACTIONS
), /* generated entry */
285 ENTRY1( TEXT
, INDEX_TITLE
, XML_ETACTION_PROC_ATTRS
,
286 OOO_STYLE_REF_ACTIONS
), /* generated entry */
287 ENTRY1( TEXT
, TABLE_OF_CONTENT
, XML_ETACTION_PROC_ATTRS
,
288 OOO_STYLE_REF_ACTIONS
), /* generated entry */
289 ENTRY1( TEXT
, TABLE_OF_CONTENT_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
290 OOO_STYLE_REF_ACTIONS
), /* generated entry */
291 ENTRY1( TEXT
, ILLUSTRATION_INDEX
, XML_ETACTION_PROC_ATTRS
,
292 OOO_STYLE_REF_ACTIONS
), /* generated entry */
293 ENTRY1( TEXT
, ILLUSTRATION_INDEX_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
294 OOO_STYLE_REF_ACTIONS
), /* generated entry */
295 ENTRY1( TEXT
, TABLE_INDEX
, XML_ETACTION_PROC_ATTRS
,
296 OOO_STYLE_REF_ACTIONS
), /* generated entry */
297 ENTRY1( TEXT
, TABLE_INDEX_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
298 OOO_STYLE_REF_ACTIONS
), /* generated entry */
299 ENTRY1( TEXT
, OBJECT_INDEX
, XML_ETACTION_PROC_ATTRS
,
300 OOO_STYLE_REF_ACTIONS
), /* generated entry */
301 ENTRY1( TEXT
, OBJECT_INDEX_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
302 OOO_STYLE_REF_ACTIONS
), /* generated entry */
303 ENTRY1( TEXT
, USER_INDEX
, XML_ETACTION_PROC_ATTRS
,
304 OOO_STYLE_REF_ACTIONS
), /* generated entry */
305 ENTRY1( TEXT
, USER_INDEX_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
306 OOO_STYLE_REF_ACTIONS
), /* generated entry */
307 ENTRY1( TEXT
, ALPHABETICAL_INDEX
, XML_ETACTION_PROC_ATTRS
,
308 OOO_STYLE_REF_ACTIONS
), /* generated entry */
309 ENTRY1( TEXT
, ALPHABETICAL_INDEX_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
310 OOO_STYLE_REF_ACTIONS
), /* generated entry */
311 ENTRY1( TEXT
, BIBLIOGRAPHY
, XML_ETACTION_PROC_ATTRS
,
312 OOO_STYLE_REF_ACTIONS
), /* generated entry */
313 ENTRY1( TEXT
, BIBLIOGRAPHY_ENTRY_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
314 OOO_STYLE_REF_ACTIONS
), /* generated entry */
315 ENTRY1( TEXT
, INDEX_SOURCE_STYLE
, XML_ETACTION_PROC_ATTRS
,
316 OOO_STYLE_REF_ACTIONS
), /* generated entry */
317 ENTRY1( TEXT
, INDEX_TITLE_TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
318 OOO_STYLE_REF_ACTIONS
), /* generated entry */
319 ENTRY1( TEXT
, INDEX_ENTRY_CHAPTER
, XML_ETACTION_PROC_ATTRS
,
320 OOO_STYLE_REF_ACTIONS
), /* generated entry */
321 ENTRY2QN( TEXT
, INDEX_ENTRY_CHAPTER_NUMBER
,
322 XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
323 XML_NAMESPACE_TEXT
, XML_INDEX_ENTRY_CHAPTER
,
324 OOO_STYLE_REF_ACTIONS
), /* generated entry */
325 ENTRY1( TEXT
, INDEX_ENTRY_TEXT
, XML_ETACTION_PROC_ATTRS
,
326 OOO_STYLE_REF_ACTIONS
), /* generated entry */
327 ENTRY1( TEXT
, INDEX_ENTRY_PAGE_NUMBER
, XML_ETACTION_PROC_ATTRS
,
328 OOO_STYLE_REF_ACTIONS
), /* generated entry */
329 ENTRY1( TEXT
, INDEX_ENTRY_SPAN
, XML_ETACTION_PROC_ATTRS
,
330 OOO_STYLE_REF_ACTIONS
), /* generated entry */
331 ENTRY1( TEXT
, INDEX_ENTRY_BIBLIOGRAPHY
, XML_ETACTION_PROC_ATTRS
,
332 OOO_STYLE_REF_ACTIONS
), /* generated entry */
333 ENTRY1( TEXT
, INDEX_ENTRY_LINK_START
, XML_ETACTION_PROC_ATTRS
,
334 OOO_STYLE_REF_ACTIONS
), /* generated entry */
335 ENTRY1( TEXT
, INDEX_ENTRY_LINK_END
, XML_ETACTION_PROC_ATTRS
,
336 OOO_STYLE_REF_ACTIONS
), /* generated entry */
337 ENTRY1( STYLE
, HANDOUT_MASTER
, XML_ETACTION_PROC_ATTRS
,
338 OOO_STYLE_REF_ACTIONS
), /* generated entry */
339 ENTRY1( DRAW
, PAGE
, XML_ETACTION_PROC_ATTRS
,
340 OOO_STYLE_REF_ACTIONS
), /* generated entry */
341 ENTRY1( STYLE
, MAP
, XML_ETACTION_PROC_ATTRS
,
342 OOO_STYLE_REF_ACTIONS
), /* generated entry */
343 ENTRY1( PRESENTATION
, NOTES
, XML_ETACTION_PROC_ATTRS
,
344 OOO_STYLE_REF_ACTIONS
), /* generated entry */
345 ENTRY1( STYLE
, PRESENTATION_PAGE_LAYOUT
, XML_ETACTION_PROC_ATTRS
,
346 OOO_MASTER_PAGE_ACTIONS
),
347 /* Consider also attribute table:style-name for <table:table>,
348 <table:table-row> and <table:table-column>. (#i40011#, #i40015#)
350 ENTRY0( TABLE
, TABLE
, XML_ETACTION_TABLE
),
351 ENTRY1( TABLE
, TABLE_ROW
, XML_ETACTION_PROC_ATTRS
, OOO_STYLE_REF_ACTIONS
),
352 ENTRY1( TABLE
, TABLE_COLUMN
, XML_ETACTION_PROC_ATTRS
, OOO_STYLE_REF_ACTIONS
),
354 // split frame elements
355 ENTRY0( DRAW
, TEXT_BOX
, XML_ETACTION_FRAME
),
356 ENTRY0( DRAW
, IMAGE
, XML_ETACTION_FRAME
),
357 ENTRY0( DRAW
, OBJECT
, XML_ETACTION_FRAME
),
358 ENTRY0( DRAW
, OBJECT_OLE
, XML_ETACTION_FRAME
),
359 ENTRY0( DRAW
, APPLET
, XML_ETACTION_FRAME
),
360 ENTRY0( DRAW
, PLUGIN
, XML_ETACTION_FRAME
),
361 ENTRY0( DRAW
, FLOATING_FRAME
, XML_ETACTION_FRAME
),
362 ENTRY0( SVG
, DESC
, XML_ETACTION_COPY_TEXT
),
365 ENTRY1Q( OFFICE
, EVENTS
, XML_ETACTION_RENAME_ELEM
,
366 XML_NAMESPACE_OFFICE
, XML_EVENT_LISTENERS
),
367 ENTRY0( SCRIPT
, EVENT
, XML_ETACTION_EVENT
),
368 ENTRY0( PRESENTATION
, EVENT
, XML_ETACTION_EVENT
),
370 // process length attributes
371 ENTRY1( DRAW
, RECT
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
372 ENTRY1( DRAW
, LINE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
373 ENTRY1( DRAW
, POLYLINE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
374 ENTRY1( DRAW
, POLYGON
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
375 ENTRY1( DRAW
, PATH
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
376 ENTRY1( DRAW
, CIRCLE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
377 ENTRY1( DRAW
, ELLIPSE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
378 ENTRY1( DRAW
, CONNECTOR
, XML_ETACTION_PROC_ATTRS
, OOO_CONNECTOR_ACTIONS
),
379 ENTRY1( DRAW
, CAPTION
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
380 ENTRY1( DRAW
, CONTROL
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
381 ENTRY1( DRAW
, PAGE_THUMBNAIL
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
382 ENTRY1( DRAW
, MEASURE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
383 ENTRY1( DRAW
, G
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
384 // ENTRY1( DRAW, TEXT_BOX, XML_ETACTION_PROC_ATTRS, OOO_SHAPE_ACTIONS ),
385 ENTRY1( PRESENTATION
, PLACEHOLDER
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
386 ENTRY1( DRAW
, CONTOUR_POLYGON
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
387 ENTRY1( DRAW
, CONTOUR_PATH
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
388 ENTRY1( DRAW
, AREA_RECTANGLE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
389 ENTRY1( DRAW
, AREA_CIRCLE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
390 ENTRY1( DRAW
, AREA_POLYGON
, XML_ETACTION_PROC_ATTRS
, OOO_DRAW_AREA_POLYGON_ACTIONS
),
391 ENTRY1( DRAW
, GLUE_POINT
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
392 ENTRY1( DR3D
, SCENE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
393 ENTRY1( DR3D
, CUBE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
394 ENTRY1( DR3D
, SPHERE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
395 ENTRY1( DR3D
, EXTRUDE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
396 ENTRY1( DR3D
, ROTATE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
397 ENTRY1( CHART
, TITLE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
398 ENTRY1( CHART
, SUBTITLE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
399 ENTRY1( CHART
, FOOTER
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
400 ENTRY1( CHART
, LEGEND
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
401 ENTRY1( CHART
, WALL
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
402 ENTRY1( CHART
, FLOOR
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
403 ENTRY1( CHART
, AXIS
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
404 ENTRY1( CHART
, GRID
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
405 ENTRY1( CHART
, SERIES
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
406 ENTRY1( CHART
, DATA_POINT
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
407 ENTRY1( CHART
, MEAN_VALUE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
408 ENTRY1( CHART
, ERROR_INDICATOR
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
409 ENTRY1( CHART
, REGRESSION_CURVE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
410 ENTRY1( CHART
, STOCK_GAIN_MARKER
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
411 ENTRY1( CHART
, STOCK_LOSS_MARKER
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
412 ENTRY1( CHART
, STOCK_RANGE_LINE
, XML_ETACTION_PROC_ATTRS
, OOO_SHAPE_ACTIONS
),
414 ENTRY0( CHART
, CHART
, XML_ETACTION_CHART
),
415 ENTRY0( CHART
, PLOT_AREA
, XML_ETACTION_CHART_PLOT_AREA
),
417 ENTRY1Q( TEXT
, TRACKED_CHANGES
, XML_ETACTION_TRACKED_CHANGES
,
418 XML_NAMESPACE_TEXT
, XML_PROTECTION_KEY
),
419 ENTRY1Q( TABLE
, TRACKED_CHANGES
, XML_ETACTION_TRACKED_CHANGES
,
420 XML_NAMESPACE_TABLE
, XML_PROTECTION_KEY
),
422 ENTRY1( TEXT
, INDEX_ENTRY_TAB_STOP
, XML_ETACTION_PROC_ATTRS
,
423 OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
),
424 ENTRY0( STYLE
, TAB_STOP
, XML_ETACTION_TAB_STOP
),
425 ENTRY1( STYLE
, BACKGROUND_IMAGE
, XML_ETACTION_PROC_ATTRS
,
426 OOO_BACKGROUND_IMAGE_ACTIONS
),
427 ENTRY1( TEXT
, LINENUMBERING_CONFIGURATION
, XML_ETACTION_PROC_ATTRS
,
428 OOO_LINENUMBERING_ACTIONS
),
429 ENTRY1( STYLE
, FOOTNOTE_SEP
, XML_ETACTION_PROC_ATTRS
,
430 OOO_FOOTNOTE_SEP_ACTIONS
),
431 ENTRY1( STYLE
, DROP_CAP
, XML_ETACTION_PROC_ATTRS
, OOO_DROP_CAP_ACTIONS
),
432 ENTRY1( STYLE
, COLUMNS
, XML_ETACTION_PROC_ATTRS
, OOO_COLUMNS_ACTIONS
),
433 ENTRY1( STYLE
, COLUMN
, XML_ETACTION_PROC_ATTRS
, OOO_COLUMNS_ACTIONS
),
435 // rename office:value-* to *:value-*
436 ENTRY1( TEXT
, VARIABLE_DECL
, XML_ETACTION_PROC_ATTRS
,
437 OOO_TEXT_VALUE_TYPE_ACTIONS
), /* generated entry */
438 ENTRY1( TEXT
, VARIABLE_SET
, XML_ETACTION_PROC_ATTRS
,
439 OOO_TEXT_VALUE_TYPE_ACTIONS
), /* generated entry */
440 ENTRY1( TEXT
, VARIABLE_INPUT
, XML_ETACTION_PROC_ATTRS
,
441 OOO_TEXT_VALUE_TYPE_ACTIONS
), /* generated entry */
442 ENTRY1( TEXT
, USER_FIELD_DECL
, XML_ETACTION_PROC_ATTRS
,
443 OOO_TEXT_VALUE_TYPE_ACTIONS
), /* generated entry */
444 ENTRY1( TEXT
, EXPRESSION
, XML_ETACTION_PROC_ATTRS
,
445 OOO_TEXT_VALUE_TYPE_ACTIONS
), /* generated entry */
446 // ENTRY1( TEXT, USER_DEFINED, XML_ETACTION_PROC_ATTRS,
447 // OOO_TEXT_VALUE_TYPE_ACTIONS), /* text:user-defined has no attrs so far */
448 ENTRY1( TABLE
, TABLE_CELL
, XML_ETACTION_PROC_ATTRS
,
449 OOO_TABLE_VALUE_TYPE_ACTIONS
), /* generated entry */
450 ENTRY1( TABLE
, COVERED_TABLE_CELL
, XML_ETACTION_PROC_ATTRS
,
451 OOO_TABLE_VALUE_TYPE_ACTIONS
), /* generated entry */
452 ENTRY1( TABLE
, CHANGE_TRACK_TABLE_CELL
, XML_ETACTION_PROC_ATTRS
,
453 OOO_TABLE_VALUE_TYPE_ACTIONS
), /* generated entry */
454 // ENTRY1( FORM, PROPERTY, XML_ETACTION_PROC_ATTRS,
455 // OOO_VALUE_TYPE_ACTIONS), /* TODO: generated entry */
456 // ENTRY1( FORM, LIST_PROPERTY, XML_ETACTION_PROC_ATTRS,
457 // OOO_VALUE_TYPE_ACTIONS), /* generated entry */
459 ENTRY1( OFFICE
, ANNOTATION
, XML_ETACTION_MOVE_ATTRS_TO_ELEMS
,
460 OOO_ANNOTATION_ACTIONS
), /* generated entry */
461 ENTRY1( OFFICE
, CHANGE_INFO
, XML_ETACTION_MOVE_ATTRS_TO_ELEMS
,
462 OOO_CHANGE_INFO_ACTIONS
), /* generated entry */
464 ENTRY1( TEXT
, DDE_CONNECTION_DECL
, XML_ETACTION_PROC_ATTRS
,
465 OOO_DDE_CONNECTION_DECL_ACTIONS
),
467 ENTRY0( FORM
, CONTROL
, XML_ETACTION_FORM_CONTROL
),
468 ENTRY1( FORM
, COLUMN
, XML_ETACTION_PROC_ATTRS
,
469 OOO_FORM_COLUMN_ACTIONS
),
470 ENTRY0( FORM
, PROPERTY
, XML_ETACTION_FORM_PROPERTY
),
472 // process xlink:href
473 ENTRY1( META
, TEMPLATE
, XML_ETACTION_PROC_ATTRS
,
474 OOO_XLINK_ACTIONS
), /* generated entry */
475 ENTRY1( META
, AUTO_RELOAD
, XML_ETACTION_PROC_ATTRS
,
476 OOO_XLINK_ACTIONS
), /* generated entry */
477 ENTRY1( TEXT
, SECTION_SOURCE
, XML_ETACTION_PROC_ATTRS
,
478 OOO_XLINK_ACTIONS
), /* generated entry */
479 ENTRY1( TEXT
, SCRIPT
, XML_ETACTION_PROC_ATTRS
,
480 OOO_XLINK_ACTIONS
), /* generated entry */
481 ENTRY1( TEXT
, ALPHABETICAL_INDEX_AUTO_MARK_FILE
, XML_ETACTION_PROC_ATTRS
,
482 OOO_XLINK_ACTIONS
), /* generated entry */
483 ENTRY1( TABLE
, TABLE_SOURCE
, XML_ETACTION_PROC_ATTRS
,
484 OOO_XLINK_ACTIONS
), /* generated entry */
485 ENTRY1( TABLE
, CELL_RANGE_SOURCE
, XML_ETACTION_PROC_ATTRS
,
486 OOO_XLINK_ACTIONS
), /* generated entry */
487 ENTRY1( DRAW
, A
, XML_ETACTION_PROC_ATTRS
,
488 OOO_XLINK_ACTIONS
), /* generated entry */
489 ENTRY1( PRESENTATION
, SOUND
, XML_ETACTION_PROC_ATTRS
,
490 OOO_XLINK_ACTIONS
), /* generated entry */
491 ENTRY1( FORM
, FORM
, XML_ETACTION_PROC_ATTRS
,
492 OOO_FORM_CONTROL_ACTIONS
),
493 ENTRY2QN( STYLE
, SYMBOL_IMAGE
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
494 XML_NAMESPACE_CHART
, XML_SYMBOL_IMAGE
,
495 OOO_BACKGROUND_IMAGE_ACTIONS
),
497 ENTRY2QN( CONFIG
, CONFIG_ITEM_SET
, XML_ETACTION_PROC_ATTRS_COND
,
498 XML_NAMESPACE_OFFICE
, XML_SETTINGS
,
499 OOO_CONFIG_ITEM_SET_ACTIONS
),
501 // add namespace prefix
503 ENTRY1( TEXT
, SEQUENCE
, XML_ETACTION_PROC_ATTRS
,
504 OOO_FORMULA_ACTIONS
), /* generated entry */
506 ENTRY1( TEXT
, DATABASE_NEXT
, XML_ETACTION_PROC_ATTRS
,
507 OOO_FORMULA_ACTIONS
), /* generated entry */
509 ENTRY2QN( TEXT
, DATABASE_SELECT
, XML_ETACTION_RENAME_ELEM_PROC_ATTRS
,
510 XML_NAMESPACE_TEXT
, XML_DATABASE_ROW_SELECT
,
511 OOO_FORMULA_ACTIONS
),
513 ENTRY1( TEXT
, CONDITIONAL_TEXT
, XML_ETACTION_PROC_ATTRS
,
514 OOO_FORMULA_ACTIONS
), /* generated entry */
516 ENTRY1( TEXT
, HIDDEN_TEXT
, XML_ETACTION_PROC_ATTRS
,
517 OOO_FORMULA_ACTIONS
), /* generated entry */
519 ENTRY1( TEXT
, HIDDEN_PARAGRAPH
, XML_ETACTION_PROC_ATTRS
,
520 OOO_FORMULA_ACTIONS
), /* generated entry */
522 ENTRY1( TABLE
, CONTENT_VALIDATION
, XML_ETACTION_PROC_ATTRS
,
523 OOO_FORMULA_ACTIONS
), /* generated entry */
525 // rename <table:dependences> to <table:dependencies>
526 ENTRY1Q( TABLE
, DEPENDENCES
, XML_ETACTION_RENAME_ELEM
,
527 XML_NAMESPACE_TABLE
, XML_DEPENDENCIES
),
528 ENTRY1Q( TABLE
, DEPENDENCE
, XML_ETACTION_RENAME_ELEM
,
529 XML_NAMESPACE_TABLE
, XML_DEPENDENCY
),
531 // process table::error-macro
532 ENTRY1( TABLE
, ERROR_MACRO
, XML_ETACTION_PROC_ATTRS
,
533 OOO_ERROR_MACRO_ACTIONS
),
535 // process table::conversion-mode
536 ENTRY1( TABLE
, CONVERSION_MODE
, XML_ETACTION_PROC_ATTRS
,
537 OOO_DDE_CONV_MODE_ACTIONS
),
539 // fix <text:alphabatical-index-mark text:main-etry>
540 ENTRY1( TEXT
, ALPHABETICAL_INDEX_MARK
, XML_ETACTION_PROC_ATTRS
,
541 OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
),
542 ENTRY1( TEXT
, ALPHABETICAL_INDEX_MARK_START
, XML_ETACTION_PROC_ATTRS
,
543 OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
),
545 // process table::data-pilot-member
546 ENTRY1( TABLE
, DATA_PILOT_MEMBER
, XML_ETACTION_PROC_ATTRS
,
547 OOO_DATAPILOT_MEMBER_ACTIONS
),
549 // process table::data-pilot-level
550 ENTRY1( TABLE
, DATA_PILOT_LEVEL
, XML_ETACTION_PROC_ATTRS
,
551 OOO_DATAPILOT_LEVEL_ACTIONS
),
553 // process table::source-service
554 ENTRY1( TABLE
, SOURCE_SERVICE
, XML_ETACTION_PROC_ATTRS
,
555 OOO_SOURCE_SERVICE_ACTIONS
),
557 // fix id strings in old animation elements
558 ENTRY1( PRESENTATION
, DIM
, XML_ETACTION_PROC_ATTRS
, OOO_ANIMATION_ACTIONS
),
559 ENTRY1( PRESENTATION
, PLAY
, XML_ETACTION_PROC_ATTRS
, OOO_ANIMATION_ACTIONS
),
560 ENTRY1( PRESENTATION
, SHOW_TEXT
, XML_ETACTION_PROC_ATTRS
, OOO_ANIMATION_ACTIONS
),
561 ENTRY1( PRESENTATION
, SHOW_SHAPE
, XML_ETACTION_PROC_ATTRS
, OOO_ANIMATION_ACTIONS
),
562 ENTRY1( PRESENTATION
, HIDE_TEXT
, XML_ETACTION_PROC_ATTRS
, OOO_ANIMATION_ACTIONS
),
563 ENTRY1( PRESENTATION
, HIDE_SHAPE
, XML_ETACTION_PROC_ATTRS
, OOO_ANIMATION_ACTIONS
),
565 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ETACTION_EOT
)
568 // XML_ETACTION_STYLE
569 static XMLTransformerActionInit aStyleActionTable
[] =
571 ENTRY0( STYLE
, FAMILY
, XML_ATACTION_STYLE_FAMILY
),
572 ENTRY0( STYLE
, NAME
, XML_ATACTION_ENCODE_STYLE_NAME
),
573 ENTRY0( STYLE
, PARENT_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
574 ENTRY0( STYLE
, NEXT_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
575 ENTRY0( STYLE
, LIST_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
576 ENTRY0( STYLE
, MASTER_PAGE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
577 ENTRY0( STYLE
, DATA_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
578 ENTRY0( DRAW
, NAME
, XML_ATACTION_ENCODE_STYLE_NAME
),
579 ENTRY0( DRAW
, DISTANCE
, XML_ATACTION_INCH2IN
),
580 ENTRY0( DRAW
, DOTS1_LENGTH
, XML_ATACTION_INCH2IN
),
581 ENTRY0( DRAW
, DOTS2_LENGTH
, XML_ATACTION_INCH2IN
),
582 ENTRY0( SVG
, WIDTH
, XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
),
583 ENTRY0( SVG
, HEIGHT
, XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
),
584 ENTRY0( DRAW
, START
, XML_ATACTION_NEG_PERCENT
),
585 ENTRY0( DRAW
, END
, XML_ATACTION_NEG_PERCENT
),
586 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_True
),
587 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
590 // OOO_FRAME_ELEM_ACTIONS
591 static XMLTransformerActionInit aFrameElemActionTable
[] =
593 ENTRY1Q( OFFICE
, EVENTS
, XML_ETACTION_RENAME_ELEM
,
594 XML_NAMESPACE_OFFICE
, XML_EVENT_LISTENERS
),
595 ENTRY0( DRAW
, GLUE_POINT
, XML_ETACTION_COPY
),
596 ENTRY0( DRAW
, IMAGE_MAP
, XML_ETACTION_COPY
),
597 ENTRY0( SVG
, DESC
, XML_ETACTION_COPY_TEXT
),
598 ENTRY0( DRAW
, CONTOUR_POLYGON
, XML_ETACTION_COPY
),
599 ENTRY0( DRAW
, CONTOUR_PATH
, XML_ETACTION_COPY
),
600 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ETACTION_EOT
)
603 // OOO_FRAME_ATTR_ACTIONS
604 static XMLTransformerActionInit aFrameAttrActionTable
[] =
606 ENTRY0( DRAW
, ZINDEX
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
607 ENTRY0( DRAW
, ID
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
608 ENTRY0( DRAW
, LAYER
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
609 ENTRY0( DRAW
, STYLE_NAME
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
610 ENTRY0( PRESENTATION
, STYLE_NAME
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
611 ENTRY0( DRAW
, TRANSFORM
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
612 ENTRY0( DRAW
, NAME
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
613 ENTRY0( TABLE
, END_CELL_ADDRESS
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
614 ENTRY0( TABLE
, END_X
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
615 ENTRY0( TABLE
, END_Y
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
616 ENTRY0( TABLE
, TABLE_BACKGROUND
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
617 ENTRY0( TEXT
, ANCHOR_TYPE
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
618 ENTRY0( TEXT
, ANCHOR_PAGE_NUMBER
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
619 ENTRY0( DRAW
, TEXT_STYLE_NAME
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
620 ENTRY0( SVG
, X
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
621 ENTRY0( SVG
, Y
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
622 ENTRY0( SVG
, WIDTH
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
623 ENTRY0( SVG
, HEIGHT
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
624 ENTRY0( STYLE
, REL_WIDTH
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
625 ENTRY0( STYLE
, REL_HEIGHT
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
626 ENTRY0( PRESENTATION
, CLASS
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
627 ENTRY0( PRESENTATION
, PLACEHOLDER
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
628 ENTRY0( PRESENTATION
, USER_TRANSFORMED
, XML_ATACTION_MOVE_TO_ELEM
), /* generated entry */
629 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
632 // OOO_EVENT_ELEM_ACTIONS
633 static XMLTransformerActionInit aEventActionTable
[] =
635 ENTRY0( XLINK
, HREF
, XML_ATACTION_HREF
),
636 ENTRY1( SCRIPT
, LANGUAGE
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
638 ENTRY0( SCRIPT
, EVENT_NAME
, XML_ATACTION_EVENT_NAME
),
639 ENTRY0( SCRIPT
, MACRO_NAME
, XML_ATACTION_MACRO_NAME
),
640 ENTRY0( SCRIPT
, LOCATION
, XML_ATACTION_MACRO_LOCATION
),
641 ENTRY0( SCRIPT
, LIBRARY
, XML_ATACTION_MACRO_LOCATION
), // bug in draw
642 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
646 // action table for OOO_MASTER_PAGE_ACTIONS
647 static XMLTransformerActionInit aMasterPageActionTable
[] =
649 ENTRY0( STYLE
, NAME
, XML_ATACTION_ENCODE_STYLE_NAME
),
650 ENTRY0( STYLE
, NEXT_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
651 ENTRY1Q( STYLE
, PAGE_MASTER_NAME
, XML_ATACTION_RENAME_ENCODE_STYLE_NAME_REF
,
652 XML_NAMESPACE_STYLE
, XML_PAGE_LAYOUT_NAME
),
653 ENTRY0( DRAW
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
654 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
657 static XMLTransformerActionInit aFontDeclActionTable
[] =
659 ENTRY1Q( FO
, FONT_FAMILY
, XML_ATACTION_RENAME
,
660 XML_NAMESPACE_SVG
, XML_FONT_FAMILY
),
661 ENTRY1Q( STYLE
, FONT_STYLE_NAME
, XML_ATACTION_RENAME
,
662 XML_NAMESPACE_STYLE
, XML_FONT_ADORNMENTS
),
663 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
666 // action table for OOO_PARA_ACTIONS
667 static XMLTransformerActionInit aParaActionTable
[] =
669 ENTRY0( TEXT
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
670 ENTRY0( TEXT
, COND_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
671 // ENTRY0( TEXT, CLASS_NAMES, XML_ATACTION_REMOVE ),
672 ENTRY1Q( TEXT
, LEVEL
, XML_ATACTION_RENAME
,
673 XML_NAMESPACE_TEXT
, XML_OUTLINE_LEVEL
),
674 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
677 // action table for OOO_STYLE_REF_ACTIONS
678 static XMLTransformerActionInit aStyleRefActionTable
[] =
680 ENTRY0( TEXT
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
681 ENTRY0( TEXT
, VISITED_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
682 ENTRY0( TEXT
, MAIN_ENTRY_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
683 ENTRY0( TEXT
, CITATION_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
684 ENTRY0( TEXT
, CITATION_BODY_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
685 ENTRY0( TEXT
, DEFAULT_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
686 ENTRY0( TEXT
, MASTER_PAGE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
687 ENTRY0( STYLE
, DATA_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
688 ENTRY0( STYLE
, APPLY_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
689 ENTRY0( STYLE
, PAGE_LAYOUT_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
690 ENTRY0( TABLE
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
691 ENTRY0( TABLE
, DEFAULT_CELL_STYLE_NAME
,
692 XML_ATACTION_ENCODE_STYLE_NAME_REF
),
693 ENTRY0( DRAW
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
694 ENTRY0( DRAW
, MASTER_PAGE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
695 ENTRY0( PRESENTATION
, PRESENTATION_PAGE_LAYOUT_NAME
,
696 XML_ATACTION_ENCODE_STYLE_NAME_REF
),
697 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_False
),
698 ENTRY1( TEXT
, CONDITION
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
699 XML_NAMESPACE_OOOW
),
700 ENTRY1( TEXT
, FORMULA
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
701 XML_NAMESPACE_OOOW
),
702 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
706 // !!ATTENTION!! If you change something here, please also change
707 // aConnectorActionTable if apropriate
708 static XMLTransformerActionInit aShapeActionTable
[] =
710 ENTRY0( SVG
, X
, XML_ATACTION_INCH2IN
),
711 ENTRY0( SVG
, Y
, XML_ATACTION_INCH2IN
),
712 ENTRY0( SVG
, X1
, XML_ATACTION_INCH2IN
),
713 ENTRY0( SVG
, Y1
, XML_ATACTION_INCH2IN
),
714 ENTRY0( SVG
, X2
, XML_ATACTION_INCH2IN
),
715 ENTRY0( SVG
, Y2
, XML_ATACTION_INCH2IN
),
716 ENTRY0( SVG
, CX
, XML_ATACTION_INCH2IN
),
717 ENTRY0( SVG
, CY
, XML_ATACTION_INCH2IN
),
718 ENTRY0( SVG
, R
, XML_ATACTION_INCH2IN
),
719 ENTRY0( SVG
, RX
, XML_ATACTION_INCH2IN
),
720 ENTRY0( SVG
, RY
, XML_ATACTION_INCH2IN
),
721 ENTRY0( SVG
, WIDTH
, XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
),
722 ENTRY0( SVG
, HEIGHT
, XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
),
723 ENTRY0( FO
, MIN_WIDTH
, XML_ATACTION_INCH2IN
),
724 ENTRY0( FO
, MIN_HEIGHT
, XML_ATACTION_INCH2IN
),
725 ENTRY0( FO
, MAX_WIDTH
, XML_ATACTION_INCH2IN
),
726 ENTRY0( FO
, MAX_HEIGHT
, XML_ATACTION_INCH2IN
),
727 ENTRY0( DRAW
, CORNER_RADIUS
, XML_ATACTION_INCH2IN
),
728 ENTRY0( DRAW
, LINE_SKEW
, XML_ATACTION_INCHS2INS
),
729 ENTRY0( DRAW
, CAPTION_POINT_X
, XML_ATACTION_INCH2IN
),
730 ENTRY0( DRAW
, CAPTION_POINT_Y
, XML_ATACTION_INCH2IN
),
731 ENTRY0( DRAW
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
732 ENTRY0( DRAW
, TEXT_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
733 ENTRY0( DRAW
, END_X
, XML_ATACTION_INCH2IN
),
734 ENTRY0( DRAW
, END_Y
, XML_ATACTION_INCH2IN
),
735 ENTRY0( PRESENTATION
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
736 ENTRY0( DR3D
, DISTANCE
, XML_ATACTION_INCH2IN
),
737 ENTRY0( DR3D
, FOCAL_LENGTH
, XML_ATACTION_INCH2IN
),
738 ENTRY1Q( FORM
, ID
, XML_ATACTION_RENAME
,
739 XML_NAMESPACE_DRAW
, XML_CONTROL
),
740 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_True
),
742 // BM: needed by chart:legend. The legend needs also the draw actions. As
743 // there is no merge mechanism, all actions have to be in the same table
744 ENTRY2( CHART
, LEGEND_POSITION
, XML_ATACTION_RENAME_ATTRIBUTE
,
745 RENAME_ENTRY( XML_LEFT
, XML_START
),
746 RENAME_ENTRY( XML_RIGHT
, XML_END
)),
747 ENTRY0( DRAW
, ID
, XML_ATACTION_SHAPEID
),
748 ENTRY0( DRAW
, START_SHAPE
, XML_ATACTION_SHAPEID
),
749 ENTRY0( DRAW
, END_SHAPE
, XML_ATACTION_SHAPEID
),
750 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
753 static XMLTransformerActionInit aConnectorActionTable
[] =
755 ENTRY0( SVG
, X1
, XML_ATACTION_TWIPS2IN
),
756 ENTRY0( SVG
, Y1
, XML_ATACTION_TWIPS2IN
),
757 ENTRY0( SVG
, X2
, XML_ATACTION_TWIPS2IN
),
758 ENTRY0( SVG
, Y2
, XML_ATACTION_TWIPS2IN
),
759 ENTRY0( SVG
, WIDTH
, XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
),
760 ENTRY0( SVG
, HEIGHT
, XML_ATACTION_SVG_WIDTH_HEIGHT_OOO
),
761 ENTRY0( FO
, MIN_WIDTH
, XML_ATACTION_INCH2IN
),
762 ENTRY0( FO
, MIN_HEIGHT
, XML_ATACTION_INCH2IN
),
763 ENTRY0( FO
, MAX_WIDTH
, XML_ATACTION_INCH2IN
),
764 ENTRY0( FO
, MAX_HEIGHT
, XML_ATACTION_INCH2IN
),
765 ENTRY0( DRAW
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
766 ENTRY0( DRAW
, TEXT_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
767 ENTRY0( DRAW
, END_X
, XML_ATACTION_INCH2IN
),
768 ENTRY0( DRAW
, END_Y
, XML_ATACTION_INCH2IN
),
769 ENTRY0( PRESENTATION
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
770 ENTRY1Q( FORM
, ID
, XML_ATACTION_RENAME
,
771 XML_NAMESPACE_DRAW
, XML_CONTROL
),
772 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_True
),
773 ENTRY0( DRAW
, ID
, XML_ATACTION_SHAPEID
),
774 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
777 // OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
778 static XMLTransformerActionInit aIndexEntryTabStopActionTable
[] =
780 ENTRY0( STYLE
, POSITION
, XML_ATACTION_INCH2IN
),
781 ENTRY0( TEXT
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
782 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
785 // OOO_TAB_STOP_ACTIONS
786 static XMLTransformerActionInit aTabStopActionTable
[] =
788 ENTRY0( STYLE
, POSITION
, XML_ATACTION_INCH2IN
),
789 ENTRY1Q( STYLE
, LEADER_CHAR
, XML_ATACTION_RENAME
,
790 XML_NAMESPACE_STYLE
, XML_LEADER_TEXT
),
791 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
794 // OOO_LINENUMBERING_ACTIONS
795 static XMLTransformerActionInit aLineNumberingActionTable
[] =
797 ENTRY0( TEXT
, OFFSET
, XML_ATACTION_INCH2IN
),
798 ENTRY0( TEXT
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
799 ENTRY1Q( TEXT
, COUNT_IN_FLOATING_FRAMES
, XML_ATACTION_RENAME
,
800 XML_NAMESPACE_TEXT
, XML_COUNT_IN_TEXT_BOXES
),
801 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
804 static XMLTransformerActionInit aFootnoteSepActionTable
[] =
806 ENTRY0( STYLE
, WIDTH
, XML_ATACTION_INCH2IN
),
807 ENTRY0( STYLE
, DISTANCE_BEFORE_SEP
, XML_ATACTION_INCH2IN
),
808 ENTRY0( STYLE
, DISTANCE_AFTER_SEP
, XML_ATACTION_INCH2IN
),
809 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
812 // OOO_DROP_CAP_ACTIONS
813 static XMLTransformerActionInit aDropCapActionTable
[] =
815 ENTRY0( STYLE
, DISTANCE
, XML_ATACTION_INCH2IN
),
816 ENTRY0( STYLE
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
817 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
820 static XMLTransformerActionInit aColumnsActionTable
[] =
822 ENTRY0( STYLE
, COLUMN_GAP
, XML_ATACTION_INCH2IN
),
823 // ENTRY0( STYLE, SPACE_BEFORE, XML_ATACTION_INCH2IN ),
824 // ENTRY0( STYLE, SPACE_AFTER, XML_ATACTION_INCH2IN ),
825 ENTRY1Q( FO
, MARGIN_LEFT
, XML_ATACTION_RENAME_INCH2IN
,
826 XML_NAMESPACE_FO
, XML_START_INDENT
),
827 ENTRY1Q( FO
, MARGIN_RIGHT
, XML_ATACTION_RENAME_INCH2IN
,
828 XML_NAMESPACE_FO
, XML_END_INDENT
),
829 ENTRY0( STYLE
, WIDTH
, XML_ATACTION_INCH2IN
),
830 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
833 // OOO_TEXT_VALUE_TYPE_ACTIONS
834 static XMLTransformerActionInit aTextValueTypeActionTable
[] =
836 ENTRY1Q( TEXT
, VALUE_TYPE
, XML_ATACTION_RENAME
,
837 XML_NAMESPACE_OFFICE
, XML_VALUE_TYPE
),
838 ENTRY1Q( TEXT
, VALUE
, XML_ATACTION_RENAME
,
839 XML_NAMESPACE_OFFICE
, XML_VALUE
),
840 ENTRY1Q( TEXT
, CURRENCY
, XML_ATACTION_RENAME
,
841 XML_NAMESPACE_OFFICE
, XML_CURRENCY
),
842 ENTRY1Q( TEXT
, DATE_VALUE
, XML_ATACTION_RENAME
,
843 XML_NAMESPACE_OFFICE
, XML_DATE_VALUE
),
844 ENTRY1Q( TEXT
, TIME_VALUE
, XML_ATACTION_RENAME
,
845 XML_NAMESPACE_OFFICE
, XML_TIME_VALUE
),
846 ENTRY1Q( TEXT
, BOOLEAN_VALUE
, XML_ATACTION_RENAME
,
847 XML_NAMESPACE_OFFICE
, XML_BOOLEAN_VALUE
),
848 ENTRY1Q( TEXT
, STRING_VALUE
, XML_ATACTION_RENAME
,
849 XML_NAMESPACE_OFFICE
, XML_STRING_VALUE
),
850 ENTRY0( STYLE
, DATA_STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
851 ENTRY1( TEXT
, FORMULA
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
852 XML_NAMESPACE_OOOW
),
853 ENTRY0( TEXT
, TOKEN_INVALID
, XML_ATACTION_EOT
)
856 // OOO_TABLE_VALUE_TYPE_ACTIONS
857 static XMLTransformerActionInit aTableValueTypeActionTable
[] =
859 ENTRY1Q( TABLE
, VALUE_TYPE
, XML_ATACTION_RENAME
,
860 XML_NAMESPACE_OFFICE
, XML_VALUE_TYPE
),
861 ENTRY1Q( TABLE
, VALUE
, XML_ATACTION_RENAME
,
862 XML_NAMESPACE_OFFICE
, XML_VALUE
),
863 ENTRY1Q( TABLE
, CURRENCY
, XML_ATACTION_RENAME
,
864 XML_NAMESPACE_OFFICE
, XML_CURRENCY
),
865 ENTRY1Q( TABLE
, DATE_VALUE
, XML_ATACTION_RENAME
,
866 XML_NAMESPACE_OFFICE
, XML_DATE_VALUE
),
867 ENTRY1Q( TABLE
, TIME_VALUE
, XML_ATACTION_RENAME
,
868 XML_NAMESPACE_OFFICE
, XML_TIME_VALUE
),
869 ENTRY1Q( TABLE
, BOOLEAN_VALUE
, XML_ATACTION_RENAME
,
870 XML_NAMESPACE_OFFICE
, XML_BOOLEAN_VALUE
),
871 ENTRY1Q( TABLE
, STRING_VALUE
, XML_ATACTION_RENAME
,
872 XML_NAMESPACE_OFFICE
, XML_STRING_VALUE
),
873 ENTRY0( TABLE
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
874 ENTRY1( TABLE
, FORMULA
, XML_ATACTION_ADD_APP_NAMESPACE_PREFIX
,
875 XML_NAMESPACE_OOOW
),
876 ENTRY1Q( TABLE
, VALIDATION_NAME
, XML_ATACTION_RENAME
,
877 XML_NAMESPACE_TABLE
, XML_CONTENT_VALIDATION_NAME
),
878 ENTRY0( TABLE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
881 // action table for OOO_ANNOTATION_ACTIONS
882 static XMLTransformerActionInit aAnnotationActionTable
[] =
884 ENTRY1Q( OFFICE
, AUTHOR
, XML_ATACTION_MOVE_TO_ELEM
,
885 XML_NAMESPACE_DC
, XML_CREATOR
),
886 ENTRY1Q( OFFICE
, CREATE_DATE
, XML_ATACTION_MOVE_TO_ELEM
,
887 XML_NAMESPACE_DC
, XML_DATE
),
888 ENTRY1Q( OFFICE
, CREATE_DATE_STRING
, XML_ATACTION_MOVE_TO_ELEM
,
889 XML_NAMESPACE_META
, XML_DATE_STRING
),
890 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
893 // action table for OOO_CHANGE_INFO_ACTIONS
894 static XMLTransformerActionInit aChangeInfoActionTable
[] =
896 ENTRY1Q( OFFICE
, CHG_AUTHOR
, XML_ATACTION_MOVE_TO_ELEM
,
897 XML_NAMESPACE_DC
, XML_CREATOR
),
898 ENTRY1Q( OFFICE
, CHG_DATE_TIME
, XML_ATACTION_MOVE_TO_ELEM
,
899 XML_NAMESPACE_DC
, XML_DATE
),
900 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
903 // OOO_BACKGROUND_IMAGE_ACTIONS
904 static XMLTransformerActionInit aBackgroundImageActionTable
[] =
906 ENTRY1Q( DRAW
, TRANSPARENCY
, XML_ATACTION_RENAME_NEG_PERCENT
,
907 XML_NAMESPACE_DRAW
, XML_OPACITY
),
908 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_True
),
909 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
912 /* OOO_BACKGROUND_IMAGE_ACTIONS for OpenOffice.org text documents
913 OpenOffice.org text documents, written by OpenOffice.org, contain
914 wrong value for the transparency of the background graphic (#i50322#)
916 static XMLTransformerActionInit aWriterBackgroundImageActionTable
[] =
918 ENTRY1Q( DRAW
, TRANSPARENCY
, XML_ATACTION_WRITER_BACK_GRAPHIC_TRANSPARENCY
, XML_NAMESPACE_DRAW
, XML_OPACITY
),
919 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_True
),
920 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
923 // OOO_DDE_CONNECTION_DECL
924 static XMLTransformerActionInit aDDEConnectionDeclActionTable
[] =
926 ENTRY1Q( TEXT
, NAME
, XML_ATACTION_RENAME
,
927 XML_NAMESPACE_OFFICE
, XML_NAME
),
928 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
931 // OOO_FORM_CONTROL_ACTIONS
932 static XMLTransformerActionInit aFormControlActionTable
[] =
934 ENTRY2QN( FORM
, SERVICE_NAME
,
935 XML_ATACTION_RENAME_ADD_NAMESPACE_PREFIX
,
936 XML_NAMESPACE_FORM
, XML_CONTROL_IMPLEMENTATION
,
938 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_False
),
939 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
942 // OOO_FORM_COLUMN_ACTIONS
943 static XMLTransformerActionInit aFormColumnActionTable
[] =
945 ENTRY1Q( FORM
, COLUMN_STYLE_NAME
, XML_ATACTION_RENAME_ENCODE_STYLE_NAME_REF
,
946 XML_NAMESPACE_FORM
, XML_TEXT_STYLE_NAME
),
947 ENTRY2QN( FORM
, SERVICE_NAME
,
948 XML_ATACTION_RENAME_ADD_NAMESPACE_PREFIX
,
949 XML_NAMESPACE_FORM
, XML_CONTROL_IMPLEMENTATION
,
951 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
954 // OOO_FORM_PROP_ACTIONS
955 static XMLTransformerActionInit aFormPropActionTable
[] =
957 ENTRY1Q( FORM
, PROPERTY_TYPE
, XML_ATACTION_RENAME
,
958 XML_NAMESPACE_OFFICE
, XML_VALUE_TYPE
),
959 ENTRY0( FORM
, PROPERTY_IS_LIST
, XML_ATACTION_REMOVE
),
960 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
964 static XMLTransformerActionInit aXLinkActionTable
[] =
966 ENTRY1( XLINK
, HREF
, XML_ATACTION_URI_OOO
, sal_False
),
967 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
970 // OOO_CONFIG_ITEM_SET_ACTIONS
971 static XMLTransformerActionInit aConfigItemSetActionTable
[] =
973 ENTRY1( CONFIG
, NAME
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
975 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
978 // OASIS_FORMULA_ACTIONS
979 static XMLTransformerActionInit aFormulaActionTable
[] =
981 ENTRY1( TEXT
, CONDITION
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
982 XML_NAMESPACE_OOOW
),
983 ENTRY1( TEXT
, FORMULA
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
984 XML_NAMESPACE_OOOW
),
985 ENTRY1( TABLE
, CONDITION
, XML_ATACTION_ADD_APP_NAMESPACE_PREFIX
,
986 XML_NAMESPACE_OOOW
),
987 ENTRY1( TABLE
, FORMULA
, XML_ATACTION_ADD_APP_NAMESPACE_PREFIX
,
988 XML_NAMESPACE_OOOW
),
989 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
992 // OOO_ERROR_MACRO_ACTIONS
993 static XMLTransformerActionInit aErrorMacroActionTable
[] =
995 ENTRY0( TABLE
, NAME
, XML_ATACTION_REMOVE
),
996 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
999 // OOO_DDE_CONV_MODE_ACTIONS
1000 static XMLTransformerActionInit aDDEConvModeActionTable
[] =
1002 ENTRY1Q( TABLE
, LET_TEXT
, XML_ATACTION_RENAME
,
1003 XML_NAMESPACE_TABLE
, XML_KEEP_TEXT
),
1004 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1007 // OOO_DATAPILOT_MEMBER_ACTIONS
1008 static XMLTransformerActionInit aDataPilotMemberActionTable
[] =
1010 ENTRY1Q( TABLE
, DISPLAY_DETAILS
, XML_ATACTION_RENAME
,
1011 XML_NAMESPACE_TABLE
, XML_SHOW_DETAILS
),
1012 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1015 // OOO_DATAPILOT_LEVEL_ACTIONS
1016 static XMLTransformerActionInit aDataPilotLevelActionTable
[] =
1018 ENTRY1Q( TABLE
, DISPLAY_EMPTY
, XML_ATACTION_RENAME
,
1019 XML_NAMESPACE_TABLE
, XML_SHOW_EMPTY
),
1020 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1023 // OOO_SOURCE_SERVICE_ACTIONS
1024 static XMLTransformerActionInit aSourceServiceActionTable
[] =
1026 ENTRY1Q( TABLE
, USERNAME
, XML_ATACTION_RENAME
,
1027 XML_NAMESPACE_TABLE
, XML_USER_NAME
),
1028 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1031 // OOO_ANIMATION_ACTIONS
1032 static XMLTransformerActionInit aAnimationsActionTable
[] =
1034 ENTRY0( DRAW
, SHAPE_ID
, XML_ATACTION_SHAPEID
),
1035 ENTRY0( PRESENTATION
, PATH_ID
, XML_ATACTION_SHAPEID
),
1036 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1039 // OOO_DRAW_AREA_POLYGON_ACTIONS (to be added to OOO_SHAPE_ACTIONS)
1040 static XMLTransformerActionInit aDrawAreaPolygonActionTable
[] =
1042 ENTRY1Q( SVG
, POINTS
, XML_ATACTION_RENAME
,
1043 XML_NAMESPACE_DRAW
, XML_POINTS
),
1044 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1047 // OOO_CHART_ACTIONS
1048 static XMLTransformerActionInit aChartActionTable
[] =
1050 ENTRY1( CHART
, CLASS
, XML_ATACTION_ADD_NAMESPACE_PREFIX
,
1051 XML_NAMESPACE_CHART
),
1052 ENTRY0( CHART
, ADD_IN_NAME
, XML_ATACTION_REMOVE
),
1053 ENTRY0( SVG
, WIDTH
, XML_ATACTION_INCH2IN
),
1054 ENTRY0( SVG
, HEIGHT
, XML_ATACTION_INCH2IN
),
1055 ENTRY0( CHART
, STYLE_NAME
, XML_ATACTION_ENCODE_STYLE_NAME_REF
),
1056 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1059 // OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
1060 static XMLTransformerActionInit aAlphabeticalIndexMarkActionTable
[] =
1062 ENTRY1Q( TEXT
, MAIN_ETRY
, XML_ATACTION_RENAME
,
1063 XML_NAMESPACE_TEXT
, XML_MAIN_ENTRY
),
1064 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1067 // OOO_SCRIPT_ACTIONS
1068 static XMLTransformerActionInit aScriptActionTable
[] =
1070 ENTRY1( SCRIPT
, LANGUAGE
, XML_ATACTION_ADD_NAMESPACE_PREFIX
, XML_NAMESPACE_OOO
),
1071 ENTRY1Q( SCRIPT
, NAME
, XML_ATACTION_RENAME
, XML_NAMESPACE_OOO
, XML_NAME
),
1072 ENTRY1Q( SCRIPT
, READONLY
, XML_ATACTION_RENAME
, XML_NAMESPACE_OOO
, XML_READONLY
),
1073 ENTRY0( OFFICE
, TOKEN_INVALID
, XML_ATACTION_EOT
)
1076 static XMLTokenEnum aTokenMap
[] =
1078 XML_NONE
, XML_SINGLE
, XML_DOUBLE
, XML_BOLD
, XML_BOLD_DOTTED
,
1079 XML_BOLD_DASH
, XML_BOLD_LONG_DASH
, XML_BOLD_DOT_DASH
,
1080 XML_BOLD_DOT_DOT_DASH
, XML_BOLD_WAVE
, XML_DOUBLE_WAVE
,
1081 XML_SINGLE_LINE
, XML_DOUBLE_LINE
, XML_THICK_LINE
, XML_SLASH
, XML_uX
,
1085 //-----------------------------------------------------------------------------
1087 class XMLDocumentTransformerContext_Impl
: public XMLTransformerContext
1089 OUString m_aElemQName
;
1090 OUString m_aOldClass
;
1095 XMLDocumentTransformerContext_Impl( XMLTransformerBase
& rTransformer
,
1096 const OUString
& rQName
);
1097 XMLDocumentTransformerContext_Impl( XMLTransformerBase
& rTransformer
,
1098 const OUString
& rQName
,
1100 ::xmloff::token::XMLTokenEnum eToken
);
1102 virtual ~XMLDocumentTransformerContext_Impl();
1104 virtual void StartElement( const ::com::sun::star::uno::Reference
< ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
);
1105 virtual void EndElement();
1108 TYPEINIT1( XMLDocumentTransformerContext_Impl
, XMLTransformerContext
);
1110 XMLDocumentTransformerContext_Impl::XMLDocumentTransformerContext_Impl(
1111 XMLTransformerBase
& rImp
,
1112 const OUString
& rQName
) :
1113 XMLTransformerContext( rImp
, rQName
),
1114 m_aElemQName( rQName
)
1117 XMLDocumentTransformerContext_Impl::XMLDocumentTransformerContext_Impl(
1118 XMLTransformerBase
& rImp
,
1119 const OUString
& rQName
,
1121 ::xmloff::token::XMLTokenEnum eToken
) :
1122 XMLTransformerContext( rImp
, rQName
),
1123 m_aElemQName( rImp
.GetNamespaceMap().GetQNameByKey( nPrefix
,
1124 ::xmloff::token::GetXMLToken( eToken
) ) )
1128 XMLDocumentTransformerContext_Impl::~XMLDocumentTransformerContext_Impl()
1132 void XMLDocumentTransformerContext_Impl::StartElement(
1133 const Reference
< XAttributeList
>& rAttrList
)
1135 Reference
< XAttributeList
> xAttrList( rAttrList
);
1137 m_aOldClass
= GetTransformer().GetClass();
1139 XMLMutableAttributeList
*pMutableAttrList
= 0;
1140 sal_Bool bOOo
= sal_False
, bOOoW
= sal_False
, bOOoC
= sal_False
,
1141 bDOM
=sal_False
, bDC
= sal_False
, bSVG
= sal_False
;
1142 sal_Int16 nAttrCount
= xAttrList
.is() ? xAttrList
->getLength() : 0;
1143 for( sal_Int16 i
=0; i
< nAttrCount
; i
++ )
1145 const OUString
& rAttrName
= xAttrList
->getNameByIndex( i
);
1146 OUString aLocalName
;
1147 sal_uInt16 nPrefix
=
1148 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName
,
1150 if( XML_NAMESPACE_OFFICE
== nPrefix
&&
1151 IsXMLToken( aLocalName
, XML_CLASS
) )
1153 const OUString
& rValue
= xAttrList
->getValueByIndex( i
);
1154 GetTransformer().SetClass( rValue
);
1156 pMutableAttrList
= new XMLMutableAttributeList( xAttrList
);
1157 xAttrList
= pMutableAttrList
;
1158 OUString
sMime("application/vnd.oasis.opendocument.");
1160 pMutableAttrList
->SetValueByIndex( i
, sMime
);
1161 OUString
aNewAttrQName( GetTransformer().GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE
, ::xmloff::token::GetXMLToken( XML_MIMETYPE
) ) );
1162 pMutableAttrList
->RenameAttributeByIndex(i
, aNewAttrQName
);
1165 else if( XML_NAMESPACE_XMLNS
== nPrefix
)
1167 const OUString
& rAttrValue
= xAttrList
->getValueByIndex( i
);
1168 if( IsXMLToken( rAttrValue
, XML_N_OOO
) )
1170 else if( IsXMLToken( rAttrValue
, XML_N_OOOW
) )
1172 else if( IsXMLToken( rAttrValue
, XML_N_OOOC
) )
1174 else if( IsXMLToken( rAttrValue
, XML_N_DOM
) )
1176 else if( IsXMLToken( rAttrValue
, XML_N_DC
) )
1178 else if( IsXMLToken( rAttrValue
, XML_N_SVG
) )
1182 if( !(bOOo
&& bOOoW
&& bOOoC
&& bDOM
&& bDC
&& bSVG
) )
1184 if( !pMutableAttrList
)
1186 pMutableAttrList
= new XMLMutableAttributeList( xAttrList
);
1187 xAttrList
= pMutableAttrList
;
1190 pMutableAttrList
->AddAttribute(
1191 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1192 XML_NAMESPACE_OOO
),
1193 GetTransformer().GetNamespaceMap().GetNameByKey(
1194 XML_NAMESPACE_OOO
) );
1196 pMutableAttrList
->AddAttribute(
1197 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1198 XML_NAMESPACE_OOOW
),
1199 GetTransformer().GetNamespaceMap().GetNameByKey(
1200 XML_NAMESPACE_OOOW
) );
1202 pMutableAttrList
->AddAttribute(
1203 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1204 XML_NAMESPACE_OOOC
),
1205 GetTransformer().GetNamespaceMap().GetNameByKey(
1206 XML_NAMESPACE_OOOC
) );
1208 pMutableAttrList
->AddAttribute(
1209 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1210 XML_NAMESPACE_DOM
),
1211 GetTransformer().GetNamespaceMap().GetNameByKey(
1212 XML_NAMESPACE_DOM
) );
1214 pMutableAttrList
->AddAttribute(
1215 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1217 GetTransformer().GetNamespaceMap().GetNameByKey(
1218 XML_NAMESPACE_DC
) );
1220 pMutableAttrList
->AddAttribute(
1221 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1222 XML_NAMESPACE_SVG
),
1223 GetTransformer().GetNamespaceMap().GetNameByKey(
1224 XML_NAMESPACE_SVG
) );
1227 GetTransformer().GetDocHandler()->startElement( m_aElemQName
, xAttrList
);
1230 void XMLDocumentTransformerContext_Impl::EndElement()
1232 GetTransformer().GetDocHandler()->endElement( m_aElemQName
);
1234 GetTransformer().SetClass( m_aOldClass
);
1237 //-----------------------------------------------------------------------------
1239 class XMLBodyTransformerContext_Impl
: public XMLTransformerContext
1241 OUString m_aClassQName
;
1246 XMLBodyTransformerContext_Impl( XMLTransformerBase
& rTransformer
,
1247 const OUString
& rQName
);
1249 virtual ~XMLBodyTransformerContext_Impl();
1251 virtual void StartElement( const ::com::sun::star::uno::Reference
< ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
);
1252 virtual void EndElement();
1255 TYPEINIT1( XMLBodyTransformerContext_Impl
, XMLTransformerContext
);
1257 XMLBodyTransformerContext_Impl::XMLBodyTransformerContext_Impl(
1258 XMLTransformerBase
& rImp
,
1259 const OUString
& rQName
) :
1260 XMLTransformerContext( rImp
, rQName
)
1264 XMLBodyTransformerContext_Impl::~XMLBodyTransformerContext_Impl()
1268 void XMLBodyTransformerContext_Impl::StartElement(
1269 const Reference
< XAttributeList
>& rAttrList
)
1271 XMLTransformerContext::StartElement( rAttrList
);
1273 XMLMutableAttributeList
*pMutableAttrList
=
1274 new XMLMutableAttributeList( rAttrList
);
1275 Reference
< XAttributeList
> xAttrList
= pMutableAttrList
;
1276 OUString
aClass( GetTransformer().GetClass() );
1277 if( aClass
.isEmpty() )
1279 aClass
= GetXMLToken( XML_TEXT
);
1281 else if( IsXMLToken( aClass
, XML_TEXT_GLOBAL
) )
1283 OUString
aGlobalQName(
1284 GetTransformer().GetNamespaceMap().GetQNameByKey(
1285 XML_NAMESPACE_TEXT
, GetXMLToken(XML_GLOBAL
) ) );
1286 pMutableAttrList
->AddAttribute( aGlobalQName
, GetXMLToken(XML_TRUE
) );
1288 aClass
= GetXMLToken( XML_TEXT
);
1291 m_aClassQName
= GetTransformer().GetNamespaceMap().GetQNameByKey(
1292 XML_NAMESPACE_OFFICE
, aClass
);
1293 GetTransformer().GetDocHandler()->startElement( m_aClassQName
,
1297 void XMLBodyTransformerContext_Impl::EndElement()
1299 GetTransformer().GetDocHandler()->endElement( m_aClassQName
);
1300 XMLTransformerContext::EndElement();
1303 //-----------------------------------------------------------------------------
1305 class XMLTabStopOOoTContext_Impl
: public XMLPersElemContentTContext
1310 XMLTabStopOOoTContext_Impl( XMLTransformerBase
& rTransformer
,
1311 const OUString
& rQName
);
1313 virtual ~XMLTabStopOOoTContext_Impl();
1315 virtual void StartElement( const ::com::sun::star::uno::Reference
< ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
);
1318 TYPEINIT1( XMLTabStopOOoTContext_Impl
, XMLPersElemContentTContext
);
1320 XMLTabStopOOoTContext_Impl::XMLTabStopOOoTContext_Impl(
1321 XMLTransformerBase
& rImp
,
1322 const OUString
& rQName
) :
1323 XMLPersElemContentTContext( rImp
, rQName
)
1327 XMLTabStopOOoTContext_Impl::~XMLTabStopOOoTContext_Impl()
1331 void XMLTabStopOOoTContext_Impl::StartElement(
1332 const Reference
< XAttributeList
>& rAttrList
)
1334 XMLTransformerActions
*pActions
=
1335 GetTransformer().GetUserDefinedActions( OOO_TAB_STOP_ACTIONS
);
1336 OSL_ENSURE( pActions
, "go no actions" );
1338 Reference
< XAttributeList
> xAttrList( rAttrList
);
1339 XMLMutableAttributeList
*pMutableAttrList
= 0;
1340 sal_Int16 nAttrCount
= xAttrList
.is() ? xAttrList
->getLength() : 0;
1341 for( sal_Int16 i
=0; i
< nAttrCount
; i
++ )
1343 const OUString
& rAttrName
= xAttrList
->getNameByIndex( i
);
1344 OUString aLocalName
;
1345 sal_uInt16 nPrefix
=
1346 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName
,
1348 XMLTransformerActions::key_type
aKey( nPrefix
, aLocalName
);
1349 XMLTransformerActions::const_iterator aIter
=
1350 pActions
->find( aKey
);
1351 if( !(aIter
== pActions
->end() ) )
1353 if( !pMutableAttrList
)
1356 new XMLMutableAttributeList( xAttrList
);
1357 xAttrList
= pMutableAttrList
;
1359 const OUString
& rAttrValue
= xAttrList
->getValueByIndex( i
);
1360 switch( (*aIter
).second
.m_nActionType
)
1362 case XML_ATACTION_RENAME
:
1364 OUString
aNewAttrQName(
1365 GetTransformer().GetNamespaceMap().GetQNameByKey(
1366 (*aIter
).second
.GetQNamePrefixFromParam1(),
1367 ::xmloff::token::GetXMLToken(
1368 (*aIter
).second
.GetQNameTokenFromParam1()) ) );
1369 pMutableAttrList
->RenameAttributeByIndex( i
,
1372 if( IsXMLToken( aLocalName
, XML_LEADER_CHAR
) &&
1373 !rAttrValue
.isEmpty() &&
1374 rAttrValue
[0] != ' ' )
1376 OUString
aNewAttrQName(
1377 GetTransformer().GetNamespaceMap().GetQNameByKey(
1378 XML_NAMESPACE_STYLE
,
1379 ::xmloff::token::GetXMLToken(XML_LEADER_STYLE
) ) );
1380 pMutableAttrList
->AddAttribute( aNewAttrQName
,
1381 GetXMLToken( XML_SOLID
) );
1384 case XML_ATACTION_INCH2IN
:
1386 OUString
aAttrValue( rAttrValue
);
1387 if( XMLTransformerBase::ReplaceSingleInchWithIn(
1389 pMutableAttrList
->SetValueByIndex( i
, aAttrValue
);
1393 OSL_ENSURE( !this, "unknown action" );
1399 XMLPersElemContentTContext::StartElement( xAttrList
);
1402 // -----------------------------------------------------------------------------
1404 class XMLTrackedChangesOOoTContext_Impl
: public XMLTransformerContext
1406 sal_uInt16 m_nPrefix
;
1407 XMLTokenEnum m_eToken
;
1413 XMLTrackedChangesOOoTContext_Impl( XMLTransformerBase
& rTransformer
,
1414 const OUString
& rQName
,
1416 XMLTokenEnum eToken
);
1418 virtual ~XMLTrackedChangesOOoTContext_Impl();
1420 virtual void StartElement( const ::com::sun::star::uno::Reference
< ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
);
1423 TYPEINIT1( XMLTrackedChangesOOoTContext_Impl
, XMLTransformerContext
);
1425 XMLTrackedChangesOOoTContext_Impl::XMLTrackedChangesOOoTContext_Impl(
1426 XMLTransformerBase
& rImp
,
1427 const OUString
& rQName
,
1429 XMLTokenEnum eToken
) :
1430 XMLTransformerContext( rImp
, rQName
),
1431 m_nPrefix( nPrefix
),
1436 XMLTrackedChangesOOoTContext_Impl::~XMLTrackedChangesOOoTContext_Impl()
1440 void XMLTrackedChangesOOoTContext_Impl::StartElement(
1441 const Reference
< XAttributeList
>& rAttrList
)
1443 Reference
< XAttributeList
> xAttrList( rAttrList
);
1444 sal_Int16 nAttrCount
= xAttrList
.is() ? xAttrList
->getLength() : 0;
1445 for( sal_Int16 i
=0; i
< nAttrCount
; i
++ )
1447 const OUString
& rAttrName
= xAttrList
->getNameByIndex( i
);
1448 OUString aLocalName
;
1449 sal_uInt16 nPrefix
=
1450 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName
,
1452 if( m_nPrefix
== nPrefix
&& IsXMLToken( aLocalName
, m_eToken
) )
1454 const Reference
< XPropertySet
> rPropSet
=
1455 GetTransformer().GetPropertySet();
1456 OSL_ENSURE( rPropSet
.is(), "no info property set" );
1459 const sal_Char sRedlineProtectionKey
[] = "RedlineProtectionKey";
1460 OUString
aPropName(sRedlineProtectionKey
);
1461 Reference
< XPropertySetInfo
> xPropSetInfo(
1462 rPropSet
->getPropertySetInfo() );
1463 if( xPropSetInfo
.is() &&
1464 xPropSetInfo
->hasPropertyByName( aPropName
) )
1466 Sequence
< sal_Int8
> aKey
;
1467 ::sax::Converter::decodeBase64( aKey
,
1468 xAttrList
->getValueByIndex( i
) );
1469 rPropSet
->setPropertyValue( aPropName
, makeAny( aKey
) );
1473 OSL_ENSURE( !this, "RedineProtectionKey is missing" );
1479 XMLTransformerContext::StartElement( xAttrList
);
1482 // -----------------------------------------------------------------------------
1484 class XMLTableOOoTransformerContext_Impl
: public XMLTransformerContext
1486 OUString m_aElemQName
;
1491 XMLTableOOoTransformerContext_Impl( XMLTransformerBase
& rTransformer
,
1492 const OUString
& rQName
);
1494 virtual ~XMLTableOOoTransformerContext_Impl();
1496 virtual void StartElement( const ::com::sun::star::uno::Reference
< ::com::sun::star::xml::sax::XAttributeList
>& xAttrList
);
1497 virtual void EndElement();
1500 TYPEINIT1( XMLTableOOoTransformerContext_Impl
, XMLTransformerContext
);
1502 XMLTableOOoTransformerContext_Impl::XMLTableOOoTransformerContext_Impl(
1503 XMLTransformerBase
& rImp
,
1504 const OUString
& rQName
) :
1505 XMLTransformerContext( rImp
, rQName
),
1506 m_aElemQName( rQName
)
1510 XMLTableOOoTransformerContext_Impl::~XMLTableOOoTransformerContext_Impl()
1514 void XMLTableOOoTransformerContext_Impl::StartElement(
1515 const Reference
< XAttributeList
>& rAttrList
)
1517 // Perform OOO_STYLE_REF_ACTIONS for all applications (#i50521#)
1518 Reference
< XAttributeList
> xAttrList( rAttrList
);
1519 XMLMutableAttributeList
* pMutableAttrList
=
1520 GetTransformer().ProcessAttrList( xAttrList
, OOO_STYLE_REF_ACTIONS
, sal_False
);
1521 if( rAttrList
->getLength() && IsXMLToken( GetTransformer().GetClass(), XML_SPREADSHEET
) )
1523 sal_Bool
bPrintRanges(sal_False
);
1525 sal_Int16 nAttrCount
= xAttrList
.is() ? xAttrList
->getLength() : 0;
1526 for( sal_Int16 i
=0; i
< nAttrCount
; i
++ )
1528 const OUString
& rAttrName
= xAttrList
->getNameByIndex( i
);
1529 OUString aLocalName
;
1530 sal_uInt16 nPrefix
=
1531 GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName
,
1533 if( XML_NAMESPACE_TABLE
== nPrefix
&&
1534 IsXMLToken( aLocalName
, XML_PRINT_RANGES
) )
1536 bPrintRanges
= sal_True
;
1539 if (!bPrintRanges
&& pMutableAttrList
)
1541 xAttrList
= pMutableAttrList
;
1542 pMutableAttrList
->AddAttribute(GetTransformer().GetNamespaceMap().GetQNameByKey(
1543 XML_NAMESPACE_TABLE
,
1544 GetXMLToken( XML_PRINT
) ), GetXMLToken ( XML_FALSE
));
1548 GetTransformer().GetDocHandler()->startElement( m_aElemQName
, xAttrList
);
1551 void XMLTableOOoTransformerContext_Impl::EndElement()
1553 GetTransformer().GetDocHandler()->endElement( m_aElemQName
);
1557 //-----------------------------------------------------------------------------
1559 XMLTransformerContext
*OOo2OasisTransformer::CreateUserDefinedContext(
1560 const TransformerAction_Impl
& rAction
,
1561 const OUString
& rQName
,
1562 sal_Bool bPersistent
)
1564 switch( rAction
.m_nActionType
)
1566 case XML_ETACTION_DOCUMENT
:
1567 return new XMLDocumentTransformerContext_Impl( *this, rQName
);
1568 case XML_ETACTION_DOCUMENT_RENAME
:
1569 return new XMLDocumentTransformerContext_Impl( *this, rQName
,
1570 rAction
.GetQNamePrefixFromParam1(),
1571 rAction
.GetQNameTokenFromParam1() );
1572 case XML_ETACTION_BODY
:
1573 return new XMLBodyTransformerContext_Impl( *this, rQName
);
1574 case XML_ETACTION_STYLE
:
1575 return new XMLStyleOOoTContext( *this, rQName
,
1576 static_cast< XMLFamilyType
>( rAction
.m_nParam1
),
1578 case XML_ETACTION_STYLE_RENAME
:
1579 return new XMLStyleOOoTContext( *this, rQName
,
1580 static_cast< XMLFamilyType
>( rAction
.m_nParam2
),
1581 rAction
.GetQNamePrefixFromParam1(),
1582 rAction
.GetQNameTokenFromParam1(),
1584 case XML_ETACTION_FRAME
:
1585 return new XMLFrameOOoTransformerContext( *this, rQName
);
1586 case XML_ETACTION_EVENT
:
1587 return new XMLEventOOoTransformerContext( *this, rQName
, bPersistent
);
1588 case XML_ETACTION_TAB_STOP
:
1589 return new XMLTabStopOOoTContext_Impl( *this, rQName
);
1590 case XML_ETACTION_FORM_CONTROL
:
1591 return new XMLControlOOoTransformerContext( *this, rQName
);
1592 case XML_ETACTION_FORM_PROPERTY
:
1593 return new XMLFormPropOOoTransformerContext( *this, rQName
);
1594 case XML_ETACTION_CHART
:
1595 return new XMLChartOOoTransformerContext( *this, rQName
);
1596 case XML_ETACTION_TRACKED_CHANGES
:
1597 return new XMLTrackedChangesOOoTContext_Impl( *this, rQName
,
1598 rAction
.GetQNamePrefixFromParam1(),
1599 rAction
.GetQNameTokenFromParam1() );
1600 case XML_ETACTION_CHART_PLOT_AREA
:
1601 return new XMLChartPlotAreaOOoTContext( *this, rQName
);
1602 case XML_ETACTION_TABLE
:
1603 return new XMLTableOOoTransformerContext_Impl( *this, rQName
);
1605 OSL_ENSURE( !this, "no user defined context found!" );
1608 // default is copying
1609 return new XMLTransformerContext( *this, rQName
);
1612 XMLTransformerActions
*OOo2OasisTransformer::GetUserDefinedActions(
1615 XMLTransformerActions
*pActions
= 0;
1616 if( n
< MAX_OOO_ACTIONS
)
1618 if( !m_aActions
[n
] )
1620 if( n
<MAX_OOO_PROP_ACTIONS
)
1623 XMLStyleOOoTContext::CreateTransformerActions( n
);
1627 case OOO_STYLE_ACTIONS
:
1628 m_aActions
[OOO_STYLE_ACTIONS
] =
1629 new XMLTransformerActions( aStyleActionTable
);
1631 case OOO_FONT_DECL_ACTIONS
:
1632 m_aActions
[OOO_FONT_DECL_ACTIONS
] =
1633 new XMLTransformerActions( aFontDeclActionTable
);
1635 case OOO_SHAPE_ACTIONS
:
1636 m_aActions
[OOO_SHAPE_ACTIONS
] =
1637 new XMLTransformerActions( aShapeActionTable
);
1639 case OOO_CONNECTOR_ACTIONS
:
1640 m_aActions
[OOO_CONNECTOR_ACTIONS
] =
1641 new XMLTransformerActions( aConnectorActionTable
);
1643 case OOO_TAB_STOP_ACTIONS
:
1644 m_aActions
[OOO_TAB_STOP_ACTIONS
] =
1645 new XMLTransformerActions( aTabStopActionTable
);
1647 case OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
:
1648 m_aActions
[OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
] =
1649 new XMLTransformerActions( aIndexEntryTabStopActionTable
);
1651 case OOO_LINENUMBERING_ACTIONS
:
1652 m_aActions
[OOO_LINENUMBERING_ACTIONS
] =
1653 new XMLTransformerActions( aLineNumberingActionTable
);
1655 case OOO_FOOTNOTE_SEP_ACTIONS
:
1656 m_aActions
[OOO_FOOTNOTE_SEP_ACTIONS
] =
1657 new XMLTransformerActions( aFootnoteSepActionTable
);
1659 case OOO_DROP_CAP_ACTIONS
:
1660 m_aActions
[OOO_DROP_CAP_ACTIONS
] =
1661 new XMLTransformerActions( aDropCapActionTable
);
1663 case OOO_COLUMNS_ACTIONS
:
1664 m_aActions
[OOO_COLUMNS_ACTIONS
] =
1665 new XMLTransformerActions( aColumnsActionTable
);
1667 case OOO_TEXT_VALUE_TYPE_ACTIONS
:
1668 m_aActions
[OOO_TEXT_VALUE_TYPE_ACTIONS
] =
1669 new XMLTransformerActions( aTextValueTypeActionTable
);
1671 case OOO_TABLE_VALUE_TYPE_ACTIONS
:
1672 m_aActions
[OOO_TABLE_VALUE_TYPE_ACTIONS
] =
1673 new XMLTransformerActions( aTableValueTypeActionTable
);
1675 case OOO_PARA_ACTIONS
:
1676 m_aActions
[OOO_PARA_ACTIONS
] =
1677 new XMLTransformerActions( aParaActionTable
);
1679 case OOO_STYLE_REF_ACTIONS
:
1680 m_aActions
[OOO_STYLE_REF_ACTIONS
] =
1681 new XMLTransformerActions( aStyleRefActionTable
);
1683 case OOO_MASTER_PAGE_ACTIONS
:
1684 m_aActions
[OOO_MASTER_PAGE_ACTIONS
] =
1685 new XMLTransformerActions( aMasterPageActionTable
);
1687 case OOO_ANNOTATION_ACTIONS
:
1688 m_aActions
[OOO_ANNOTATION_ACTIONS
] =
1689 new XMLTransformerActions( aAnnotationActionTable
);
1691 case OOO_CHANGE_INFO_ACTIONS
:
1692 m_aActions
[OOO_CHANGE_INFO_ACTIONS
] =
1693 new XMLTransformerActions( aChangeInfoActionTable
);
1695 case OOO_FRAME_ELEM_ACTIONS
:
1696 m_aActions
[OOO_FRAME_ELEM_ACTIONS
] =
1697 new XMLTransformerActions( aFrameElemActionTable
);
1699 case OOO_FRAME_ATTR_ACTIONS
:
1700 m_aActions
[OOO_FRAME_ATTR_ACTIONS
] =
1701 new XMLTransformerActions( aFrameAttrActionTable
);
1703 case OOO_BACKGROUND_IMAGE_ACTIONS
:
1704 // Use special actions for Writer documents. (#i50322#)
1705 m_aActions
[OOO_BACKGROUND_IMAGE_ACTIONS
] =
1707 ? new XMLTransformerActions( aWriterBackgroundImageActionTable
)
1708 : new XMLTransformerActions( aBackgroundImageActionTable
);
1710 case OOO_DDE_CONNECTION_DECL_ACTIONS
:
1711 m_aActions
[OOO_DDE_CONNECTION_DECL_ACTIONS
] =
1712 new XMLTransformerActions( aDDEConnectionDeclActionTable
);
1714 case OOO_EVENT_ACTIONS
:
1715 m_aActions
[OOO_EVENT_ACTIONS
] =
1716 new XMLTransformerActions( aEventActionTable
);
1718 case OOO_FORM_CONTROL_ACTIONS
:
1719 m_aActions
[OOO_FORM_CONTROL_ACTIONS
] =
1720 new XMLTransformerActions( aFormControlActionTable
);
1722 case OOO_FORM_COLUMN_ACTIONS
:
1723 m_aActions
[OOO_FORM_COLUMN_ACTIONS
] =
1724 new XMLTransformerActions( aFormColumnActionTable
);
1726 case OOO_FORM_PROP_ACTIONS
:
1727 m_aActions
[OOO_FORM_PROP_ACTIONS
] =
1728 new XMLTransformerActions( aFormPropActionTable
);
1730 case OOO_XLINK_ACTIONS
:
1731 m_aActions
[OOO_XLINK_ACTIONS
] =
1732 new XMLTransformerActions( aXLinkActionTable
);
1734 case OOO_CONFIG_ITEM_SET_ACTIONS
:
1735 m_aActions
[OOO_CONFIG_ITEM_SET_ACTIONS
] =
1736 new XMLTransformerActions( aConfigItemSetActionTable
);
1738 case OOO_FORMULA_ACTIONS
:
1739 m_aActions
[OOO_FORMULA_ACTIONS
] =
1740 new XMLTransformerActions( aFormulaActionTable
);
1742 case OOO_CHART_ACTIONS
:
1743 m_aActions
[OOO_CHART_ACTIONS
] =
1744 new XMLTransformerActions( aChartActionTable
);
1746 case OOO_ERROR_MACRO_ACTIONS
:
1747 m_aActions
[OOO_ERROR_MACRO_ACTIONS
] =
1748 new XMLTransformerActions( aErrorMacroActionTable
);
1750 case OOO_DDE_CONV_MODE_ACTIONS
:
1751 m_aActions
[OOO_DDE_CONV_MODE_ACTIONS
] =
1752 new XMLTransformerActions( aDDEConvModeActionTable
);
1754 case OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
:
1755 m_aActions
[OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
] =
1756 new XMLTransformerActions( aAlphabeticalIndexMarkActionTable
);
1758 case OOO_DATAPILOT_MEMBER_ACTIONS
:
1759 m_aActions
[OOO_DATAPILOT_MEMBER_ACTIONS
] =
1760 new XMLTransformerActions( aDataPilotMemberActionTable
);
1761 case OOO_DATAPILOT_LEVEL_ACTIONS
:
1762 m_aActions
[OOO_DATAPILOT_LEVEL_ACTIONS
] =
1763 new XMLTransformerActions( aDataPilotLevelActionTable
);
1764 case OOO_SOURCE_SERVICE_ACTIONS
:
1765 m_aActions
[OOO_SOURCE_SERVICE_ACTIONS
] =
1766 new XMLTransformerActions( aSourceServiceActionTable
);
1768 case OOO_DRAW_AREA_POLYGON_ACTIONS
:
1769 m_aActions
[OOO_DRAW_AREA_POLYGON_ACTIONS
] =
1770 new XMLTransformerActions( aShapeActionTable
);
1771 m_aActions
[OOO_DRAW_AREA_POLYGON_ACTIONS
]
1772 ->Add( aDrawAreaPolygonActionTable
);
1774 case OOO_SCRIPT_ACTIONS
:
1775 m_aActions
[OOO_SCRIPT_ACTIONS
] =
1776 new XMLTransformerActions( aScriptActionTable
);
1778 case OOO_ANIMATION_ACTIONS
:
1779 m_aActions
[OOO_ANIMATION_ACTIONS
] =
1780 new XMLTransformerActions( aAnimationsActionTable
);
1784 pActions
= m_aActions
[n
];
1790 OUString
OOo2OasisTransformer::GetEventName( const OUString
& rName
, sal_Bool
)
1793 m_pEventMap
= XMLEventOOoTransformerContext::CreateEventMap();
1796 sal_uInt16 nPrefix
= XMLEventOOoTransformerContext::GetEventName( rName
,
1797 aNewName
, *m_pEventMap
);
1798 if( XML_NAMESPACE_UNKNOWN
!= nPrefix
)
1799 aNewName
= GetNamespaceMap().GetQNameByKey( nPrefix
, aNewName
);
1807 OOo2OasisTransformer::OOo2OasisTransformer( const sal_Char
*pImplName
,
1808 const sal_Char
*pSubServiceName
)
1810 XMLTransformerBase( aActionTable
, aTokenMap
),
1814 m_aImplName
= OUString::createFromAscii( pImplName
);
1816 m_aImplName
= OOo2OasisTransformer_getImplementationName();
1817 if( pSubServiceName
)
1818 m_aSubServiceName
= OUString::createFromAscii( pSubServiceName
);
1820 GetNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE
), GetXMLToken(XML_N_OFFICE_OOO
), XML_NAMESPACE_OFFICE
);
1821 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE
), GetXMLToken(XML_N_OFFICE
), XML_NAMESPACE_OFFICE
);
1823 GetNamespaceMap().Add( GetXMLToken(XML_NP_META
), GetXMLToken(XML_N_META_OOO
), XML_NAMESPACE_META
);
1824 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_META
), GetXMLToken(XML_N_META
), XML_NAMESPACE_META
);
1826 GetNamespaceMap().Add( GetXMLToken(XML_NP_STYLE
), GetXMLToken(XML_N_STYLE_OOO
), XML_NAMESPACE_STYLE
);
1827 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_STYLE
), GetXMLToken(XML_N_STYLE
), XML_NAMESPACE_STYLE
);
1829 GetNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER
), GetXMLToken(XML_N_NUMBER_OOO
), XML_NAMESPACE_NUMBER
);
1830 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER
), GetXMLToken(XML_N_NUMBER
), XML_NAMESPACE_NUMBER
);
1832 GetNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG
), GetXMLToken(XML_N_CONFIG_OOO
), XML_NAMESPACE_CONFIG
);
1833 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG
), GetXMLToken(XML_N_CONFIG
), XML_NAMESPACE_CONFIG
);
1835 GetNamespaceMap().Add( GetXMLToken(XML_NP_TEXT
), GetXMLToken(XML_N_TEXT_OOO
), XML_NAMESPACE_TEXT
);
1836 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TEXT
), GetXMLToken(XML_N_TEXT
), XML_NAMESPACE_TEXT
);
1838 GetNamespaceMap().Add( GetXMLToken(XML_NP_TABLE
), GetXMLToken(XML_N_TABLE_OOO
), XML_NAMESPACE_TABLE
);
1839 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TABLE
), GetXMLToken(XML_N_TABLE
), XML_NAMESPACE_TABLE
);
1841 GetNamespaceMap().Add( GetXMLToken(XML_NP_DRAW
), GetXMLToken(XML_N_DRAW_OOO
), XML_NAMESPACE_DRAW
);
1842 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DRAW
), GetXMLToken(XML_N_DRAW
), XML_NAMESPACE_DRAW
);
1844 GetNamespaceMap().Add( GetXMLToken(XML_NP_DR3D
), GetXMLToken(XML_N_DR3D_OOO
), XML_NAMESPACE_DR3D
);
1845 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DR3D
), GetXMLToken(XML_N_DR3D
), XML_NAMESPACE_DR3D
);
1847 GetNamespaceMap().Add( GetXMLToken(XML_NP_PRESENTATION
), GetXMLToken(XML_N_PRESENTATION_OOO
), XML_NAMESPACE_PRESENTATION
);
1848 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_PRESENTATION
), GetXMLToken(XML_N_PRESENTATION
), XML_NAMESPACE_PRESENTATION
);
1850 GetNamespaceMap().Add( GetXMLToken(XML_NP_CHART
), GetXMLToken(XML_N_CHART_OOO
), XML_NAMESPACE_CHART
);
1851 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CHART
), GetXMLToken(XML_N_CHART
), XML_NAMESPACE_CHART
);
1853 GetNamespaceMap().Add( GetXMLToken(XML_NP_FORM
), GetXMLToken(XML_N_FORM_OOO
), XML_NAMESPACE_FORM
);
1854 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FORM
), GetXMLToken(XML_N_FORM
), XML_NAMESPACE_FORM
);
1856 GetNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT
), GetXMLToken(XML_N_SCRIPT_OOO
), XML_NAMESPACE_SCRIPT
);
1857 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT
), GetXMLToken(XML_N_SCRIPT
), XML_NAMESPACE_SCRIPT
);
1859 GetNamespaceMap().Add( GetXMLToken(XML_NP_FO
), GetXMLToken(XML_N_FO
), XML_NAMESPACE_FO
);
1860 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FO
), GetXMLToken(XML_N_FO_COMPAT
), XML_NAMESPACE_FO
);
1862 GetNamespaceMap().Add( GetXMLToken(XML_NP_SVG
), GetXMLToken(XML_N_SVG
), XML_NAMESPACE_SVG
);
1863 GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SVG
), GetXMLToken(XML_N_SVG_COMPAT
), XML_NAMESPACE_SVG
);
1865 for( sal_uInt16 i
=0; i
<MAX_OOO_ACTIONS
; ++i
)
1869 OOo2OasisTransformer::~OOo2OasisTransformer() throw()
1871 for( sal_uInt16 i
=0; i
<MAX_OOO_ACTIONS
; ++i
)
1872 delete m_aActions
[i
];
1873 XMLEventOOoTransformerContext::FlushEventMap( m_pEventMap
);
1876 Any
OOo2OasisTransformer::queryInterface( const Type
& rType
)
1877 throw (RuntimeException
)
1880 if ( rType
== ::getCppuType((Reference
<XImporter
> *)0) )
1882 Reference
<XImporter
> xThis( this );
1885 else if ( rType
== ::getCppuType((Reference
<XFilter
> *)0) )
1887 Reference
<XFilter
> xThis( this );
1892 aRet
= XMLTransformerBase::queryInterface(rType
);
1899 void SAL_CALL
OOo2OasisTransformer::setTargetDocument(
1900 const Reference
< XComponent
>& xDoc
)
1901 throw( IllegalArgumentException
, RuntimeException
)
1903 if( !GetDocHandler().is() )
1905 // if initialize hasn't been called, then we have to call it now
1906 // to get the sub component initialized.
1907 Sequence
<Any
> aArgs( 0 );
1908 Initialize( aArgs
);
1911 mxModel
.set( xDoc
, UNO_QUERY
);
1913 Reference
< XImporter
> xImp( GetDocHandler(), UNO_QUERY
);
1914 OSL_ENSURE( xImp
.is(), "doc handler is not an importer" );
1916 xImp
->setTargetDocument( xDoc
);
1920 sal_Bool SAL_CALL
OOo2OasisTransformer::filter(
1921 const Sequence
< PropertyValue
>& aDescriptor
)
1922 throw ( RuntimeException
)
1924 Reference
< XFilter
> xFilter( GetDocHandler(), UNO_QUERY
);
1925 OSL_ENSURE( xFilter
.is(), "doc handler is not a filter" );
1927 return xFilter
->filter( aDescriptor
);
1932 void SAL_CALL
OOo2OasisTransformer::cancel( )
1933 throw ( RuntimeException
)
1935 Reference
< XFilter
> xFilter( GetDocHandler(), UNO_QUERY
);
1936 OSL_ENSURE( xFilter
.is(), "doc handler is not a filter" );
1942 void SAL_CALL
OOo2OasisTransformer::initialize(
1943 const Sequence
< Any
>& rArguments
)
1944 throw( Exception
, RuntimeException
)
1946 Initialize( rArguments
);
1949 void SAL_CALL
OOo2OasisTransformer::startDocument( void )
1950 throw( SAXException
, RuntimeException
)
1952 if( !GetDocHandler().is() )
1954 // if initialize hasn't been called, then we have to call it now
1955 // to get the sub component initialized.
1956 Sequence
<Any
> aArgs( 0 );
1957 Initialize( aArgs
);
1960 XMLTransformerBase::startDocument();
1964 void SAL_CALL
OOo2OasisTransformer::Initialize(
1965 const Sequence
< Any
>& rArguments
)
1966 throw( Exception
, RuntimeException
)
1968 OSL_ENSURE( !GetDocHandler().is(), "duplication initialization" );
1970 Reference
< XDocumentHandler
> xDocHandler
;
1971 if( !m_aSubServiceName
.isEmpty() )
1973 Reference
< XComponentContext
> xContext
=
1974 comphelper::getProcessComponentContext();
1977 // get filter component
1978 xDocHandler
= Reference
< XDocumentHandler
>(
1979 xContext
->getServiceManager()->createInstanceWithArgumentsAndContext(m_aSubServiceName
, rArguments
, xContext
),
1987 OSL_ENSURE( xDocHandler
.is(), "can't instantiate filter component" );
1988 if( xDocHandler
.is() )
1990 Sequence
<Any
> aArgs( 1 + rArguments
.getLength() );
1991 aArgs
[0] <<= xDocHandler
;
1992 for(sal_Int32 i
= 0; i
< rArguments
.getLength(); i
++)
1993 aArgs
[i
+1] = rArguments
[i
];
1994 XMLTransformerBase::initialize( aArgs
);
1996 OSL_ENSURE( GetDocHandler() == xDocHandler
,
1997 "duplicate doc handler" );
2001 XMLTransformerBase::initialize( rArguments
);
2007 class theOOo2OasisTransformerUnoTunnelId
: public rtl::Static
< UnoTunnelIdInit
, theOOo2OasisTransformerUnoTunnelId
> {};
2010 const Sequence
< sal_Int8
> & OOo2OasisTransformer::getUnoTunnelId() throw()
2012 return theOOo2OasisTransformerUnoTunnelId::get().getSeq();
2016 sal_Int64 SAL_CALL
OOo2OasisTransformer::getSomething( const Sequence
< sal_Int8
>& rId
)
2017 throw(RuntimeException
)
2019 if( rId
.getLength() == 16
2020 && 0 == memcmp( getUnoTunnelId().getConstArray(),
2021 rId
.getConstArray(), 16 ) )
2023 return reinterpret_cast< sal_Int64
>( this );
2027 return (sal_Int64
)0;
2032 OUString SAL_CALL
OOo2OasisTransformer::getImplementationName()
2033 throw(RuntimeException
)
2038 sal_Bool SAL_CALL
OOo2OasisTransformer::supportsService( const OUString
& )
2039 throw(RuntimeException
)
2044 Sequence
< OUString
> SAL_CALL
OOo2OasisTransformer::getSupportedServiceNames( )
2045 throw(RuntimeException
)
2047 Sequence
<OUString
> aSeq(0);
2052 Sequence
< ::com::sun::star::uno::Type
> SAL_CALL
2053 OOo2OasisTransformer::getTypes() throw(RuntimeException
)
2055 Sequence
< ::com::sun::star::uno::Type
> aTypes(
2056 XMLTransformerBase::getTypes() );
2058 sal_Int32 nIndex
= aTypes
.getLength();
2059 aTypes
.realloc( nIndex
+ 2 );
2061 ::com::sun::star::uno::Type
* pTypes
= aTypes
.getArray();
2062 pTypes
[nIndex
++] = ::getCppuType( static_cast< Reference
< XImporter
> * >( 0 ) );
2063 pTypes
[nIndex
++] = ::getCppuType( static_cast< Reference
< XFilter
> * >( 0 ) );
2068 // Service registration
2070 OUString SAL_CALL
OOo2OasisTransformer_getImplementationName() throw()
2072 return OUString( "com.sun.star.comp.OOo2OasisTransformer" );
2075 Sequence
< OUString
> SAL_CALL
OOo2OasisTransformer_getSupportedServiceNames() throw()
2077 const OUString
aServiceName( OOo2OasisTransformer_getImplementationName() );
2078 const Sequence
< OUString
> aSeq( &aServiceName
, 1 );
2082 Reference
< XInterface
> SAL_CALL
OOo2OasisTransformer_createInstance(
2083 const Reference
< XMultiServiceFactory
> & )
2086 return (cppu::OWeakObject
*)new OOo2OasisTransformer();
2089 #define OOO_IMPORTER( className, implName, subServiceName ) \
2090 OUString SAL_CALL className##_getImplementationName() throw() \
2092 return OUString( implName ); \
2095 Sequence< OUString > SAL_CALL className##_getSupportedServiceNames() throw()\
2097 const OUString aServiceName( className##_getImplementationName() ); \
2098 const Sequence< OUString > aSeq( &aServiceName, 1 ); \
2102 Reference< XInterface > SAL_CALL className##_createInstance( \
2103 const Reference< XMultiServiceFactory > & ) \
2104 throw( Exception ) \
2106 return (cppu::OWeakObject*)new OOo2OasisTransformer( implName, \
2110 OOO_IMPORTER( XMLWriterImportOOO
,
2111 "com.sun.star.comp.Writer.XMLImporter",
2112 "com.sun.star.comp.Writer.XMLOasisImporter" )
2113 OOO_IMPORTER( XMLWriterStylesImportOOO
,
2114 "com.sun.star.comp.Writer.XMLStylesImporter",
2115 "com.sun.star.comp.Writer.XMLOasisStylesImporter" )
2116 OOO_IMPORTER( XMLWriterContentImportOOO
,
2117 "com.sun.star.comp.Writer.XMLContentImporter",
2118 "com.sun.star.comp.Writer.XMLOasisContentImporter" )
2119 OOO_IMPORTER( XMLWriterMetaImportOOO
,
2120 "com.sun.star.comp.Writer.XMLMetaImporter",
2121 "com.sun.star.comp.Writer.XMLOasisMetaImporter" )
2122 OOO_IMPORTER( XMLWriterSettingsImportOOO
,
2123 "com.sun.star.comp.Writer.XMLSettingsImporter",
2124 "com.sun.star.comp.Writer.XMLOasisSettingsImporter" )
2126 OOO_IMPORTER( XMLImpressImportOOO
,
2127 "com.sun.star.comp.Impress.XMLImporter",
2128 "com.sun.star.comp.Impress.XMLOasisImporter" )
2129 OOO_IMPORTER( XMLImpressStylesImportOOO
,
2130 "com.sun.star.comp.Impress.XMLStylesImporter",
2131 "com.sun.star.comp.Impress.XMLOasisStylesImporter" )
2132 OOO_IMPORTER( XMLImpressContentImportOOO
,
2133 "com.sun.star.comp.Impress.XMLContentImporter",
2134 "com.sun.star.comp.Impress.XMLOasisContentImporter" )
2135 OOO_IMPORTER( XMLImpressMetaImportOOO
,
2136 "com.sun.star.comp.Impress.XMLMetaImporter",
2137 "com.sun.star.comp.Impress.XMLOasisMetaImporter" )
2138 OOO_IMPORTER( XMLImpressSettingsImportOOO
,
2139 "com.sun.star.comp.Impress.XMLSettingsImporter",
2140 "com.sun.star.comp.Impress.XMLOasisSettingsImporter" )
2142 OOO_IMPORTER( XMLDrawImportOOO
,
2143 "com.sun.star.comp.Draw.XMLImporter",
2144 "com.sun.star.comp.Draw.XMLOasisImporter" )
2145 OOO_IMPORTER( XMLDrawStylesImportOOO
,
2146 "com.sun.star.comp.Draw.XMLStylesImporter",
2147 "com.sun.star.comp.Draw.XMLOasisStylesImporter" )
2148 OOO_IMPORTER( XMLDrawContentImportOOO
,
2149 "com.sun.star.comp.Draw.XMLContentImporter",
2150 "com.sun.star.comp.Draw.XMLOasisContentImporter" )
2151 OOO_IMPORTER( XMLDrawMetaImportOOO
,
2152 "com.sun.star.comp.Draw.XMLMetaImporter",
2153 "com.sun.star.comp.Draw.XMLOasisMetaImporter" )
2154 OOO_IMPORTER( XMLDrawSettingsImportOOO
,
2155 "com.sun.star.comp.Draw.XMLSettingsImporter",
2156 "com.sun.star.comp.Draw.XMLOasisSettingsImporter" )
2158 OOO_IMPORTER( XMLCalcImportOOO
,
2159 "com.sun.star.comp.Calc.XMLImporter",
2160 "com.sun.star.comp.Calc.XMLOasisImporter" )
2161 OOO_IMPORTER( XMLCalcStylesImportOOO
,
2162 "com.sun.star.comp.Calc.XMLStylesImporter",
2163 "com.sun.star.comp.Calc.XMLOasisStylesImporter" )
2164 OOO_IMPORTER( XMLCalcContentImportOOO
,
2165 "com.sun.star.comp.Calc.XMLContentImporter",
2166 "com.sun.star.comp.Calc.XMLOasisContentImporter" )
2167 OOO_IMPORTER( XMLCalcMetaImportOOO
,
2168 "com.sun.star.comp.Calc.XMLMetaImporter",
2169 "com.sun.star.comp.Calc.XMLOasisMetaImporter" )
2170 OOO_IMPORTER( XMLCalcSettingsImportOOO
,
2171 "com.sun.star.comp.Calc.XMLSettingsImporter",
2172 "com.sun.star.comp.Calc.XMLOasisSettingsImporter" )
2174 OOO_IMPORTER( XMLChartImportOOO
,
2175 "com.sun.star.comp.Chart.XMLImporter",
2176 "com.sun.star.comp.Chart.XMLOasisImporter" )
2177 OOO_IMPORTER( XMLChartStylesImportOOO
,
2178 "com.sun.star.comp.Chart.XMLStylesImporter",
2179 "com.sun.star.comp.Chart.XMLOasisStylesImporter" )
2180 OOO_IMPORTER( XMLChartContentImportOOO
,
2181 "com.sun.star.comp.Chart.XMLContentImporter",
2182 "com.sun.star.comp.Chart.XMLOasisContentImporter" )
2184 OOO_IMPORTER( XMLMathMetaImportOOO
,
2185 "com.sun.star.comp.Math.XMLMetaImporter",
2186 "com.sun.star.comp.Math.XMLOasisMetaImporter" )
2187 OOO_IMPORTER( XMLMathSettingsImportOOO
,
2188 "com.sun.star.comp.Math.XMLSettingsImporter",
2189 "com.sun.star.comp.Math.XMLOasisSettingsImporter" )
2191 OOO_IMPORTER( XMLMetaImportOOO
,
2192 "com.sun.star.document.XMLMetaImporter",
2193 "com.sun.star.document.XMLOasisMetaImporter" )
2195 OOO_IMPORTER( XMLAutoTextEventImportOOO
,
2196 "com.sun.star.comp.Writer.XMLAutotextEventsImporter",
2197 "com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter" )
2199 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */