bump product version to 4.1.6.2
[LibreOffice.git] / xmloff / source / transform / OOo2Oasis.cxx
blobb219f6376f5a0da8c176d57fa6666bb5c244880c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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,
53 XML_ETACTION_BODY,
54 XML_ETACTION_STYLE,
55 XML_ETACTION_STYLE_RENAME,
56 XML_ETACTION_FRAME,
57 XML_ETACTION_EVENT,
58 XML_ETACTION_TAB_STOP,
59 XML_ETACTION_FORM_CONTROL,
60 XML_ETACTION_FORM_PROPERTY,
61 XML_ETACTION_CHART,
62 XML_ETACTION_TRACKED_CHANGES,
63 XML_ETACTION_CHART_PLOT_AREA,
64 XML_ETACTION_DOCUMENT_RENAME,
65 XML_ETACTION_TABLE
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 ),
145 // add genre element
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
156 // styles processing
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 ),
364 // process events
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
502 // text:formula
503 ENTRY1( TEXT, SEQUENCE, XML_ETACTION_PROC_ATTRS,
504 OOO_FORMULA_ACTIONS ), /* generated entry */
505 // text:condition
506 ENTRY1( TEXT, DATABASE_NEXT, XML_ETACTION_PROC_ATTRS,
507 OOO_FORMULA_ACTIONS ), /* generated entry */
508 // text:condition
509 ENTRY2QN( TEXT, DATABASE_SELECT, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
510 XML_NAMESPACE_TEXT, XML_DATABASE_ROW_SELECT,
511 OOO_FORMULA_ACTIONS ),
512 // text:condition
513 ENTRY1( TEXT, CONDITIONAL_TEXT, XML_ETACTION_PROC_ATTRS,
514 OOO_FORMULA_ACTIONS ), /* generated entry */
515 // text:condition
516 ENTRY1( TEXT, HIDDEN_TEXT, XML_ETACTION_PROC_ATTRS,
517 OOO_FORMULA_ACTIONS ), /* generated entry */
518 // text:condition
519 ENTRY1( TEXT, HIDDEN_PARAGRAPH, XML_ETACTION_PROC_ATTRS,
520 OOO_FORMULA_ACTIONS ), /* generated entry */
521 // table:condition
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,
637 XML_NAMESPACE_OOO ),
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 )
705 // OOO_SHAPE_ACTIONS
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,
937 XML_NAMESPACE_OOO ),
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,
950 XML_NAMESPACE_OOO ),
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 )
963 // OOO_XLINK_ACTIONS
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,
974 XML_NAMESPACE_OOO ),
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,
1082 XML_TOKEN_END
1085 //-----------------------------------------------------------------------------
1087 class XMLDocumentTransformerContext_Impl : public XMLTransformerContext
1089 OUString m_aElemQName;
1090 OUString m_aOldClass;
1092 public:
1093 TYPEINFO();
1095 XMLDocumentTransformerContext_Impl( XMLTransformerBase& rTransformer,
1096 const OUString& rQName );
1097 XMLDocumentTransformerContext_Impl( XMLTransformerBase& rTransformer,
1098 const OUString& rQName,
1099 sal_uInt16 nPrefix,
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 ,
1120 sal_uInt16 nPrefix,
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,
1149 &aLocalName );
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.");
1159 sMime += rValue;
1160 pMutableAttrList->SetValueByIndex( i, sMime );
1161 OUString aNewAttrQName( GetTransformer().GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, ::xmloff::token::GetXMLToken( XML_MIMETYPE ) ) );
1162 pMutableAttrList->RenameAttributeByIndex(i, aNewAttrQName );
1163 break;
1165 else if( XML_NAMESPACE_XMLNS == nPrefix )
1167 const OUString& rAttrValue = xAttrList->getValueByIndex( i );
1168 if( IsXMLToken( rAttrValue, XML_N_OOO ) )
1169 bOOo = sal_True;
1170 else if( IsXMLToken( rAttrValue, XML_N_OOOW ) )
1171 bOOoW = sal_True;
1172 else if( IsXMLToken( rAttrValue, XML_N_OOOC ) )
1173 bOOoC = sal_True;
1174 else if( IsXMLToken( rAttrValue, XML_N_DOM ) )
1175 bDOM = sal_True;
1176 else if( IsXMLToken( rAttrValue, XML_N_DC ) )
1177 bDC = sal_True;
1178 else if( IsXMLToken( rAttrValue, XML_N_SVG ) )
1179 bSVG = sal_True;
1182 if( !(bOOo && bOOoW && bOOoC && bDOM && bDC && bSVG) )
1184 if( !pMutableAttrList )
1186 pMutableAttrList = new XMLMutableAttributeList( xAttrList );
1187 xAttrList = pMutableAttrList;
1189 if( !bOOo )
1190 pMutableAttrList->AddAttribute(
1191 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1192 XML_NAMESPACE_OOO ),
1193 GetTransformer().GetNamespaceMap().GetNameByKey(
1194 XML_NAMESPACE_OOO ) );
1195 if( !bOOoW )
1196 pMutableAttrList->AddAttribute(
1197 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1198 XML_NAMESPACE_OOOW ),
1199 GetTransformer().GetNamespaceMap().GetNameByKey(
1200 XML_NAMESPACE_OOOW ) );
1201 if( !bOOoC )
1202 pMutableAttrList->AddAttribute(
1203 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1204 XML_NAMESPACE_OOOC ),
1205 GetTransformer().GetNamespaceMap().GetNameByKey(
1206 XML_NAMESPACE_OOOC ) );
1207 if( !bDOM )
1208 pMutableAttrList->AddAttribute(
1209 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1210 XML_NAMESPACE_DOM ),
1211 GetTransformer().GetNamespaceMap().GetNameByKey(
1212 XML_NAMESPACE_DOM ) );
1213 if( !bDC )
1214 pMutableAttrList->AddAttribute(
1215 GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1216 XML_NAMESPACE_DC ),
1217 GetTransformer().GetNamespaceMap().GetNameByKey(
1218 XML_NAMESPACE_DC ) );
1219 if( !bSVG )
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;
1243 public:
1244 TYPEINFO();
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,
1294 xAttrList );
1297 void XMLBodyTransformerContext_Impl::EndElement()
1299 GetTransformer().GetDocHandler()->endElement( m_aClassQName );
1300 XMLTransformerContext::EndElement();
1303 //-----------------------------------------------------------------------------
1305 class XMLTabStopOOoTContext_Impl : public XMLPersElemContentTContext
1307 public:
1308 TYPEINFO();
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,
1347 &aLocalName );
1348 XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
1349 XMLTransformerActions::const_iterator aIter =
1350 pActions->find( aKey );
1351 if( !(aIter == pActions->end() ) )
1353 if( !pMutableAttrList )
1355 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,
1370 aNewAttrQName );
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 ) );
1383 break;
1384 case XML_ATACTION_INCH2IN:
1386 OUString aAttrValue( rAttrValue );
1387 if( XMLTransformerBase::ReplaceSingleInchWithIn(
1388 aAttrValue ) )
1389 pMutableAttrList->SetValueByIndex( i, aAttrValue );
1391 break;
1392 default:
1393 OSL_ENSURE( !this, "unknown action" );
1394 break;
1399 XMLPersElemContentTContext::StartElement( xAttrList );
1402 // -----------------------------------------------------------------------------
1404 class XMLTrackedChangesOOoTContext_Impl : public XMLTransformerContext
1406 sal_uInt16 m_nPrefix;
1407 XMLTokenEnum m_eToken;
1409 public:
1411 TYPEINFO();
1413 XMLTrackedChangesOOoTContext_Impl( XMLTransformerBase& rTransformer,
1414 const OUString& rQName,
1415 sal_uInt16 nPrefix,
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,
1428 sal_uInt16 nPrefix,
1429 XMLTokenEnum eToken ) :
1430 XMLTransformerContext( rImp, rQName ),
1431 m_nPrefix( nPrefix ),
1432 m_eToken( eToken )
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,
1451 &aLocalName );
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" );
1457 if( rPropSet.is() )
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 ) );
1471 else
1473 OSL_ENSURE( !this, "RedineProtectionKey is missing" );
1476 break;
1479 XMLTransformerContext::StartElement( xAttrList );
1482 // -----------------------------------------------------------------------------
1484 class XMLTableOOoTransformerContext_Impl : public XMLTransformerContext
1486 OUString m_aElemQName;
1488 public:
1489 TYPEINFO();
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,
1532 &aLocalName );
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 ),
1577 bPersistent );
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(),
1583 bPersistent );
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 );
1604 default:
1605 OSL_ENSURE( !this, "no user defined context found!" );
1608 // default is copying
1609 return new XMLTransformerContext( *this, rQName );
1612 XMLTransformerActions *OOo2OasisTransformer::GetUserDefinedActions(
1613 sal_uInt16 n )
1615 XMLTransformerActions *pActions = 0;
1616 if( n < MAX_OOO_ACTIONS )
1618 if( !m_aActions[n] )
1620 if( n<MAX_OOO_PROP_ACTIONS )
1622 m_aActions[n] =
1623 XMLStyleOOoTContext::CreateTransformerActions( n );
1625 else switch( n )
1627 case OOO_STYLE_ACTIONS:
1628 m_aActions[OOO_STYLE_ACTIONS] =
1629 new XMLTransformerActions( aStyleActionTable );
1630 break;
1631 case OOO_FONT_DECL_ACTIONS:
1632 m_aActions[OOO_FONT_DECL_ACTIONS] =
1633 new XMLTransformerActions( aFontDeclActionTable );
1634 break;
1635 case OOO_SHAPE_ACTIONS:
1636 m_aActions[OOO_SHAPE_ACTIONS] =
1637 new XMLTransformerActions( aShapeActionTable );
1638 break;
1639 case OOO_CONNECTOR_ACTIONS:
1640 m_aActions[OOO_CONNECTOR_ACTIONS] =
1641 new XMLTransformerActions( aConnectorActionTable );
1642 break;
1643 case OOO_TAB_STOP_ACTIONS:
1644 m_aActions[OOO_TAB_STOP_ACTIONS] =
1645 new XMLTransformerActions( aTabStopActionTable );
1646 break;
1647 case OOO_INDEX_ENTRY_TAB_STOP_ACTIONS:
1648 m_aActions[OOO_INDEX_ENTRY_TAB_STOP_ACTIONS] =
1649 new XMLTransformerActions( aIndexEntryTabStopActionTable );
1650 break;
1651 case OOO_LINENUMBERING_ACTIONS:
1652 m_aActions[OOO_LINENUMBERING_ACTIONS] =
1653 new XMLTransformerActions( aLineNumberingActionTable );
1654 break;
1655 case OOO_FOOTNOTE_SEP_ACTIONS:
1656 m_aActions[OOO_FOOTNOTE_SEP_ACTIONS] =
1657 new XMLTransformerActions( aFootnoteSepActionTable );
1658 break;
1659 case OOO_DROP_CAP_ACTIONS:
1660 m_aActions[OOO_DROP_CAP_ACTIONS] =
1661 new XMLTransformerActions( aDropCapActionTable );
1662 break;
1663 case OOO_COLUMNS_ACTIONS:
1664 m_aActions[OOO_COLUMNS_ACTIONS] =
1665 new XMLTransformerActions( aColumnsActionTable );
1666 break;
1667 case OOO_TEXT_VALUE_TYPE_ACTIONS:
1668 m_aActions[OOO_TEXT_VALUE_TYPE_ACTIONS] =
1669 new XMLTransformerActions( aTextValueTypeActionTable );
1670 break;
1671 case OOO_TABLE_VALUE_TYPE_ACTIONS:
1672 m_aActions[OOO_TABLE_VALUE_TYPE_ACTIONS] =
1673 new XMLTransformerActions( aTableValueTypeActionTable );
1674 break;
1675 case OOO_PARA_ACTIONS:
1676 m_aActions[OOO_PARA_ACTIONS] =
1677 new XMLTransformerActions( aParaActionTable );
1678 break;
1679 case OOO_STYLE_REF_ACTIONS:
1680 m_aActions[OOO_STYLE_REF_ACTIONS] =
1681 new XMLTransformerActions( aStyleRefActionTable );
1682 break;
1683 case OOO_MASTER_PAGE_ACTIONS:
1684 m_aActions[OOO_MASTER_PAGE_ACTIONS] =
1685 new XMLTransformerActions( aMasterPageActionTable );
1686 break;
1687 case OOO_ANNOTATION_ACTIONS:
1688 m_aActions[OOO_ANNOTATION_ACTIONS] =
1689 new XMLTransformerActions( aAnnotationActionTable );
1690 break;
1691 case OOO_CHANGE_INFO_ACTIONS:
1692 m_aActions[OOO_CHANGE_INFO_ACTIONS] =
1693 new XMLTransformerActions( aChangeInfoActionTable );
1694 break;
1695 case OOO_FRAME_ELEM_ACTIONS:
1696 m_aActions[OOO_FRAME_ELEM_ACTIONS] =
1697 new XMLTransformerActions( aFrameElemActionTable );
1698 break;
1699 case OOO_FRAME_ATTR_ACTIONS:
1700 m_aActions[OOO_FRAME_ATTR_ACTIONS] =
1701 new XMLTransformerActions( aFrameAttrActionTable );
1702 break;
1703 case OOO_BACKGROUND_IMAGE_ACTIONS:
1704 // Use special actions for Writer documents. (#i50322#)
1705 m_aActions[OOO_BACKGROUND_IMAGE_ACTIONS] =
1706 isWriter()
1707 ? new XMLTransformerActions( aWriterBackgroundImageActionTable )
1708 : new XMLTransformerActions( aBackgroundImageActionTable );
1709 break;
1710 case OOO_DDE_CONNECTION_DECL_ACTIONS:
1711 m_aActions[OOO_DDE_CONNECTION_DECL_ACTIONS] =
1712 new XMLTransformerActions( aDDEConnectionDeclActionTable );
1713 break;
1714 case OOO_EVENT_ACTIONS:
1715 m_aActions[OOO_EVENT_ACTIONS] =
1716 new XMLTransformerActions( aEventActionTable );
1717 break;
1718 case OOO_FORM_CONTROL_ACTIONS:
1719 m_aActions[OOO_FORM_CONTROL_ACTIONS] =
1720 new XMLTransformerActions( aFormControlActionTable );
1721 break;
1722 case OOO_FORM_COLUMN_ACTIONS:
1723 m_aActions[OOO_FORM_COLUMN_ACTIONS] =
1724 new XMLTransformerActions( aFormColumnActionTable );
1725 break;
1726 case OOO_FORM_PROP_ACTIONS:
1727 m_aActions[OOO_FORM_PROP_ACTIONS] =
1728 new XMLTransformerActions( aFormPropActionTable );
1729 break;
1730 case OOO_XLINK_ACTIONS:
1731 m_aActions[OOO_XLINK_ACTIONS] =
1732 new XMLTransformerActions( aXLinkActionTable );
1733 break;
1734 case OOO_CONFIG_ITEM_SET_ACTIONS:
1735 m_aActions[OOO_CONFIG_ITEM_SET_ACTIONS] =
1736 new XMLTransformerActions( aConfigItemSetActionTable );
1737 break;
1738 case OOO_FORMULA_ACTIONS:
1739 m_aActions[OOO_FORMULA_ACTIONS] =
1740 new XMLTransformerActions( aFormulaActionTable );
1741 break;
1742 case OOO_CHART_ACTIONS:
1743 m_aActions[OOO_CHART_ACTIONS] =
1744 new XMLTransformerActions( aChartActionTable );
1745 break;
1746 case OOO_ERROR_MACRO_ACTIONS:
1747 m_aActions[OOO_ERROR_MACRO_ACTIONS] =
1748 new XMLTransformerActions( aErrorMacroActionTable );
1749 break;
1750 case OOO_DDE_CONV_MODE_ACTIONS:
1751 m_aActions[OOO_DDE_CONV_MODE_ACTIONS] =
1752 new XMLTransformerActions( aDDEConvModeActionTable );
1753 break;
1754 case OOO_ALPHABETICAL_INDEX_MARK_ACTIONS:
1755 m_aActions[OOO_ALPHABETICAL_INDEX_MARK_ACTIONS] =
1756 new XMLTransformerActions( aAlphabeticalIndexMarkActionTable );
1757 break;
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 );
1767 break;
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 );
1773 break;
1774 case OOO_SCRIPT_ACTIONS:
1775 m_aActions[OOO_SCRIPT_ACTIONS] =
1776 new XMLTransformerActions( aScriptActionTable );
1777 break;
1778 case OOO_ANIMATION_ACTIONS:
1779 m_aActions[OOO_ANIMATION_ACTIONS] =
1780 new XMLTransformerActions( aAnimationsActionTable );
1781 break;
1784 pActions = m_aActions[n];
1787 return pActions;
1790 OUString OOo2OasisTransformer::GetEventName( const OUString& rName, sal_Bool )
1792 if( !m_pEventMap )
1793 m_pEventMap = XMLEventOOoTransformerContext::CreateEventMap();
1795 OUString aNewName;
1796 sal_uInt16 nPrefix = XMLEventOOoTransformerContext::GetEventName( rName,
1797 aNewName, *m_pEventMap );
1798 if( XML_NAMESPACE_UNKNOWN != nPrefix )
1799 aNewName = GetNamespaceMap().GetQNameByKey( nPrefix, aNewName );
1800 else
1801 aNewName = rName;
1803 return aNewName;
1807 OOo2OasisTransformer::OOo2OasisTransformer( const sal_Char *pImplName,
1808 const sal_Char *pSubServiceName )
1809 throw() :
1810 XMLTransformerBase( aActionTable, aTokenMap ),
1811 m_pEventMap( 0 )
1813 if( pImplName )
1814 m_aImplName = OUString::createFromAscii( pImplName );
1815 else
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 )
1866 m_aActions[i] = 0;
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)
1879 Any aRet;
1880 if ( rType == ::getCppuType((Reference<XImporter> *)0) )
1882 Reference<XImporter> xThis( this );
1883 aRet <<= xThis;
1885 else if ( rType == ::getCppuType((Reference<XFilter> *)0) )
1887 Reference<XFilter> xThis( this );
1888 aRet <<= xThis;
1890 else
1892 aRet = XMLTransformerBase::queryInterface(rType);
1895 return aRet;
1898 // XImporter
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" );
1915 if( xImp.is() )
1916 xImp->setTargetDocument( xDoc );
1919 // XFilter
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" );
1926 if( xFilter.is() )
1927 return xFilter->filter( aDescriptor );
1929 return sal_False;
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" );
1937 if( xFilter.is() )
1938 xFilter->cancel();
1941 // XInitialize
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),
1980 UNO_QUERY);
1982 catch( Exception& )
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" );
1999 else
2001 XMLTransformerBase::initialize( rArguments );
2005 namespace
2007 class theOOo2OasisTransformerUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theOOo2OasisTransformerUnoTunnelId> {};
2010 const Sequence< sal_Int8 > & OOo2OasisTransformer::getUnoTunnelId() throw()
2012 return theOOo2OasisTransformerUnoTunnelId::get().getSeq();
2015 // XUnoTunnel
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 );
2025 else
2027 return (sal_Int64)0;
2031 // XServiceInfo
2032 OUString SAL_CALL OOo2OasisTransformer::getImplementationName()
2033 throw(RuntimeException)
2035 return m_aImplName;
2038 sal_Bool SAL_CALL OOo2OasisTransformer::supportsService( const OUString& )
2039 throw(RuntimeException)
2041 return sal_False;
2044 Sequence< OUString > SAL_CALL OOo2OasisTransformer::getSupportedServiceNames( )
2045 throw(RuntimeException)
2047 Sequence<OUString> aSeq(0);
2048 return aSeq;
2051 // XTypeProvider
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 ) );
2065 return aTypes;
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 );
2079 return aSeq;
2082 Reference< XInterface > SAL_CALL OOo2OasisTransformer_createInstance(
2083 const Reference< XMultiServiceFactory > & )
2084 throw( Exception )
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 ); \
2099 return aSeq; \
2102 Reference< XInterface > SAL_CALL className##_createInstance( \
2103 const Reference< XMultiServiceFactory > & ) \
2104 throw( Exception ) \
2106 return (cppu::OWeakObject*)new OOo2OasisTransformer( implName, \
2107 subServiceName ); \
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: */