Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <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"
41 :
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;
47 :
48 : OUString SAL_CALL OOo2OasisTransformer_getImplementationName() throw();
49 :
50 : enum XMLUserDefinedTransformerAction
51 : {
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
66 : };
67 :
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 )
73 :
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 )
78 :
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 ) )
83 :
84 : #define ENTRY0( n, l, a ) \
85 : ENTRY3( n, l, a, 0, 0, 0 )
86 :
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))
91 :
92 : static XMLTransformerActionInit aActionTable[] =
93 : {
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 7 : ENTRY1Q( OFFICE, AUTO_TEXT_EVENTS, XML_ETACTION_DOCUMENT_RENAME,
100 : XML_NAMESPACE_OOO, XML_AUTO_TEXT_EVENTS),
101 :
102 : // remove <meta:keywords>
103 : ENTRY0( META, KEYWORDS, XML_ETACTION_COPY_CONTENT ),
104 :
105 : // rename <office:script> to <office:scripts>
106 7 : ENTRY1Q( OFFICE, SCRIPT, XML_ETACTION_RENAME_ELEM,
107 : XML_NAMESPACE_OFFICE, XML_SCRIPTS ),
108 :
109 : // rename <office:script-data> to <office:script> and process attributes
110 7 : ENTRY2QN( OFFICE, SCRIPT_DATA, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
111 : XML_NAMESPACE_OFFICE, XML_SCRIPT,
112 : OOO_SCRIPT_ACTIONS ),
113 :
114 : // rename <script:libraries> to <ooo:libraries>
115 7 : ENTRY1Q( SCRIPT, LIBRARIES, XML_ETACTION_RENAME_ELEM,
116 : XML_NAMESPACE_OOO, XML_LIBRARIES ),
117 :
118 : // rename <script:library-linked> to <ooo:library-linked> and process attributes
119 7 : ENTRY2QN( SCRIPT, LIBRARY_LINKED, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
120 : XML_NAMESPACE_OOO, XML_LIBRARY_LINKED,
121 : OOO_SCRIPT_ACTIONS ),
122 :
123 : // rename <script:library-embedded> to <ooo:library-embedded> and process attributes
124 7 : ENTRY2QN( SCRIPT, LIBRARY_EMBEDDED, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
125 : XML_NAMESPACE_OOO, XML_LIBRARY_EMBEDDED,
126 : OOO_SCRIPT_ACTIONS ),
127 :
128 : // rename <script:module> to <ooo:module> and process attributes
129 7 : ENTRY2QN( SCRIPT, MODULE, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
130 : XML_NAMESPACE_OOO, XML_MODULE,
131 : OOO_SCRIPT_ACTIONS ),
132 :
133 : // rename <script:source-code> to <ooo:source-code>
134 7 : ENTRY1Q( SCRIPT, SOURCE_CODE, XML_ETACTION_RENAME_ELEM,
135 : XML_NAMESPACE_OOO, XML_SOURCE_CODE ),
136 :
137 : // rename <office:font-decls> to <office:font-face-decl>,
138 : // rename <style:font-decl> to <style:font-face>, process attrs
139 7 : ENTRY1Q( OFFICE, FONT_DECLS, XML_ETACTION_RENAME_ELEM,
140 : XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS ),
141 7 : ENTRY2QN( STYLE, FONT_DECL, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
142 : XML_NAMESPACE_STYLE, XML_FONT_FACE,
143 : OOO_FONT_DECL_ACTIONS ),
144 :
145 : // add genre element
146 : ENTRY0( OFFICE, BODY, XML_ETACTION_BODY ),
147 :
148 : // rename <style:page-master> to <style:page-layout>
149 7 : 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 ),
154 :
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 7 : 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 ),
187 :
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 ),
192 :
193 : // rename <text:ordered-list> and <text:unordered-list> to <text:list>
194 7 : ENTRY2QN( TEXT, UNORDERED_LIST, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
195 : XML_NAMESPACE_TEXT, XML_LIST,
196 : OOO_STYLE_REF_ACTIONS ),
197 7 : ENTRY2QN( TEXT, ORDERED_LIST, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
198 : XML_NAMESPACE_TEXT, XML_LIST,
199 : OOO_STYLE_REF_ACTIONS ),
200 :
201 : // rename <text:footnote*> to <text:note*>
202 14 : 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 7 : ENTRY1Q( TEXT, FOOTNOTE_BODY, XML_ETACTION_RENAME_ELEM,
206 : XML_NAMESPACE_TEXT, XML_NOTE_BODY ),
207 7 : ENTRY1Q( TEXT, FOOTNOTE_CITATION, XML_ETACTION_RENAME_ELEM,
208 : XML_NAMESPACE_TEXT, XML_NOTE_CITATION ),
209 14 : 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) ),
214 :
215 : // rename <text:endnote*> to <text:endnote*>
216 14 : 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 7 : ENTRY1Q( TEXT, ENDNOTE_BODY, XML_ETACTION_RENAME_ELEM,
220 : XML_NAMESPACE_TEXT, XML_NOTE_BODY ),
221 7 : ENTRY1Q( TEXT, ENDNOTE_CITATION, XML_ETACTION_RENAME_ELEM,
222 : XML_NAMESPACE_TEXT, XML_NOTE_CITATION ),
223 14 : 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) ),
228 :
229 : // rename <text:footnote> and <text:endnote> to <text:note>
230 14 : 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 14 : 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 ),
236 :
237 : // rename <text:tab-stop> to <text:tab>
238 7 : ENTRY1Q( TEXT, TAB_STOP, XML_ETACTION_RENAME_ELEM,
239 : XML_NAMESPACE_TEXT, XML_TAB ),
240 :
241 : // replace <table:sub-table> with <table:table table:is-sub-table>
242 14 : 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 ),
245 :
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 7 : 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#)
349 : */
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 ),
353 :
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 ),
363 :
364 : // process events
365 7 : 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 ),
369 :
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 ),
413 :
414 : ENTRY0( CHART, CHART, XML_ETACTION_CHART ),
415 : ENTRY0( CHART, PLOT_AREA, XML_ETACTION_CHART_PLOT_AREA ),
416 :
417 7 : ENTRY1Q( TEXT, TRACKED_CHANGES, XML_ETACTION_TRACKED_CHANGES,
418 : XML_NAMESPACE_TEXT, XML_PROTECTION_KEY ),
419 7 : ENTRY1Q( TABLE, TRACKED_CHANGES, XML_ETACTION_TRACKED_CHANGES,
420 : XML_NAMESPACE_TABLE, XML_PROTECTION_KEY ),
421 :
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 ),
434 :
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 */
458 :
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 */
463 :
464 : ENTRY1( TEXT, DDE_CONNECTION_DECL, XML_ETACTION_PROC_ATTRS,
465 : OOO_DDE_CONNECTION_DECL_ACTIONS ),
466 :
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 ),
471 :
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 7 : ENTRY2QN( STYLE, SYMBOL_IMAGE, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
494 : XML_NAMESPACE_CHART, XML_SYMBOL_IMAGE,
495 : OOO_BACKGROUND_IMAGE_ACTIONS ),
496 :
497 7 : ENTRY2QN( CONFIG, CONFIG_ITEM_SET, XML_ETACTION_PROC_ATTRS_COND,
498 : XML_NAMESPACE_OFFICE, XML_SETTINGS,
499 : OOO_CONFIG_ITEM_SET_ACTIONS ),
500 :
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 7 : 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 */
524 :
525 : // rename <table:dependences> to <table:dependencies>
526 7 : ENTRY1Q( TABLE, DEPENDENCES, XML_ETACTION_RENAME_ELEM,
527 : XML_NAMESPACE_TABLE, XML_DEPENDENCIES ),
528 7 : ENTRY1Q( TABLE, DEPENDENCE, XML_ETACTION_RENAME_ELEM,
529 : XML_NAMESPACE_TABLE, XML_DEPENDENCY ),
530 :
531 : // process table::error-macro
532 : ENTRY1( TABLE, ERROR_MACRO, XML_ETACTION_PROC_ATTRS,
533 : OOO_ERROR_MACRO_ACTIONS ),
534 :
535 : // process table::conversion-mode
536 : ENTRY1( TABLE, CONVERSION_MODE, XML_ETACTION_PROC_ATTRS,
537 : OOO_DDE_CONV_MODE_ACTIONS ),
538 :
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 ),
544 :
545 : // process table::data-pilot-member
546 : ENTRY1( TABLE, DATA_PILOT_MEMBER, XML_ETACTION_PROC_ATTRS,
547 : OOO_DATAPILOT_MEMBER_ACTIONS ),
548 :
549 : // process table::data-pilot-level
550 : ENTRY1( TABLE, DATA_PILOT_LEVEL, XML_ETACTION_PROC_ATTRS,
551 : OOO_DATAPILOT_LEVEL_ACTIONS ),
552 :
553 : // process table::source-service
554 : ENTRY1( TABLE, SOURCE_SERVICE, XML_ETACTION_PROC_ATTRS,
555 : OOO_SOURCE_SERVICE_ACTIONS ),
556 :
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 ),
564 :
565 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ETACTION_EOT )
566 294 : };
567 :
568 : // XML_ETACTION_STYLE
569 : static XMLTransformerActionInit aStyleActionTable[] =
570 : {
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 )
588 : };
589 :
590 : // OOO_FRAME_ELEM_ACTIONS
591 : static XMLTransformerActionInit aFrameElemActionTable[] =
592 : {
593 7 : 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 )
601 7 : };
602 :
603 : // OOO_FRAME_ATTR_ACTIONS
604 : static XMLTransformerActionInit aFrameAttrActionTable[] =
605 : {
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 )
630 : };
631 :
632 : // OOO_EVENT_ELEM_ACTIONS
633 : static XMLTransformerActionInit aEventActionTable[] =
634 : {
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 )
643 : };
644 :
645 :
646 : // action table for OOO_MASTER_PAGE_ACTIONS
647 : static XMLTransformerActionInit aMasterPageActionTable[] =
648 : {
649 : ENTRY0( STYLE, NAME, XML_ATACTION_ENCODE_STYLE_NAME ),
650 : ENTRY0( STYLE, NEXT_STYLE_NAME, XML_ATACTION_ENCODE_STYLE_NAME_REF ),
651 7 : 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 )
655 7 : };
656 :
657 : static XMLTransformerActionInit aFontDeclActionTable[] =
658 : {
659 7 : ENTRY1Q( FO, FONT_FAMILY, XML_ATACTION_RENAME,
660 : XML_NAMESPACE_SVG, XML_FONT_FAMILY ),
661 7 : ENTRY1Q( STYLE, FONT_STYLE_NAME, XML_ATACTION_RENAME,
662 : XML_NAMESPACE_STYLE, XML_FONT_ADORNMENTS ),
663 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
664 14 : };
665 :
666 : // action table for OOO_PARA_ACTIONS
667 : static XMLTransformerActionInit aParaActionTable[] =
668 : {
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 7 : ENTRY1Q( TEXT, LEVEL, XML_ATACTION_RENAME,
673 : XML_NAMESPACE_TEXT, XML_OUTLINE_LEVEL ),
674 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
675 7 : };
676 :
677 : // action table for OOO_STYLE_REF_ACTIONS
678 : static XMLTransformerActionInit aStyleRefActionTable[] =
679 : {
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 )
703 : };
704 :
705 : // OOO_SHAPE_ACTIONS
706 : // !!ATTENTION!! If you change something here, please also change
707 : // aConnectorActionTable if apropriate
708 : static XMLTransformerActionInit aShapeActionTable[] =
709 : {
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 7 : ENTRY1Q( FORM, ID, XML_ATACTION_RENAME,
739 : XML_NAMESPACE_DRAW, XML_CONTROL ),
740 : ENTRY1( XLINK, HREF, XML_ATACTION_URI_OOO, sal_True ),
741 :
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 )
751 7 : };
752 :
753 : static XMLTransformerActionInit aConnectorActionTable[] =
754 : {
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 7 : 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 )
775 7 : };
776 :
777 : // OOO_INDEX_ENTRY_TAB_STOP_ACTIONS
778 : static XMLTransformerActionInit aIndexEntryTabStopActionTable[] =
779 : {
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 )
783 : };
784 :
785 : // OOO_TAB_STOP_ACTIONS
786 : static XMLTransformerActionInit aTabStopActionTable[] =
787 : {
788 : ENTRY0( STYLE, POSITION, XML_ATACTION_INCH2IN ),
789 7 : ENTRY1Q( STYLE, LEADER_CHAR, XML_ATACTION_RENAME,
790 : XML_NAMESPACE_STYLE, XML_LEADER_TEXT ),
791 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
792 7 : };
793 :
794 : // OOO_LINENUMBERING_ACTIONS
795 : static XMLTransformerActionInit aLineNumberingActionTable[] =
796 : {
797 : ENTRY0( TEXT, OFFSET, XML_ATACTION_INCH2IN ),
798 : ENTRY0( TEXT, STYLE_NAME, XML_ATACTION_ENCODE_STYLE_NAME_REF ),
799 7 : 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 )
802 7 : };
803 :
804 : static XMLTransformerActionInit aFootnoteSepActionTable[] =
805 : {
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 )
810 : };
811 :
812 : // OOO_DROP_CAP_ACTIONS
813 : static XMLTransformerActionInit aDropCapActionTable[] =
814 : {
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 )
818 : };
819 :
820 : static XMLTransformerActionInit aColumnsActionTable[] =
821 : {
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 7 : ENTRY1Q( FO, MARGIN_LEFT, XML_ATACTION_RENAME_INCH2IN,
826 : XML_NAMESPACE_FO, XML_START_INDENT ),
827 7 : 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 )
831 14 : };
832 :
833 : // OOO_TEXT_VALUE_TYPE_ACTIONS
834 : static XMLTransformerActionInit aTextValueTypeActionTable[] =
835 : {
836 7 : ENTRY1Q( TEXT, VALUE_TYPE, XML_ATACTION_RENAME,
837 : XML_NAMESPACE_OFFICE, XML_VALUE_TYPE ),
838 7 : ENTRY1Q( TEXT, VALUE, XML_ATACTION_RENAME,
839 : XML_NAMESPACE_OFFICE, XML_VALUE ),
840 7 : ENTRY1Q( TEXT, CURRENCY, XML_ATACTION_RENAME,
841 : XML_NAMESPACE_OFFICE, XML_CURRENCY ),
842 7 : ENTRY1Q( TEXT, DATE_VALUE, XML_ATACTION_RENAME,
843 : XML_NAMESPACE_OFFICE, XML_DATE_VALUE ),
844 7 : ENTRY1Q( TEXT, TIME_VALUE, XML_ATACTION_RENAME,
845 : XML_NAMESPACE_OFFICE, XML_TIME_VALUE ),
846 7 : ENTRY1Q( TEXT, BOOLEAN_VALUE, XML_ATACTION_RENAME,
847 : XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE ),
848 7 : 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 )
854 49 : };
855 :
856 : // OOO_TABLE_VALUE_TYPE_ACTIONS
857 : static XMLTransformerActionInit aTableValueTypeActionTable[] =
858 : {
859 7 : ENTRY1Q( TABLE, VALUE_TYPE, XML_ATACTION_RENAME,
860 : XML_NAMESPACE_OFFICE, XML_VALUE_TYPE ),
861 7 : ENTRY1Q( TABLE, VALUE, XML_ATACTION_RENAME,
862 : XML_NAMESPACE_OFFICE, XML_VALUE ),
863 7 : ENTRY1Q( TABLE, CURRENCY, XML_ATACTION_RENAME,
864 : XML_NAMESPACE_OFFICE, XML_CURRENCY ),
865 7 : ENTRY1Q( TABLE, DATE_VALUE, XML_ATACTION_RENAME,
866 : XML_NAMESPACE_OFFICE, XML_DATE_VALUE ),
867 7 : ENTRY1Q( TABLE, TIME_VALUE, XML_ATACTION_RENAME,
868 : XML_NAMESPACE_OFFICE, XML_TIME_VALUE ),
869 7 : ENTRY1Q( TABLE, BOOLEAN_VALUE, XML_ATACTION_RENAME,
870 : XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE ),
871 7 : 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 7 : ENTRY1Q( TABLE, VALIDATION_NAME, XML_ATACTION_RENAME,
877 : XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION_NAME ),
878 : ENTRY0( TABLE, TOKEN_INVALID, XML_ATACTION_EOT )
879 56 : };
880 :
881 : // action table for OOO_ANNOTATION_ACTIONS
882 : static XMLTransformerActionInit aAnnotationActionTable[] =
883 : {
884 7 : ENTRY1Q( OFFICE, AUTHOR, XML_ATACTION_MOVE_TO_ELEM,
885 : XML_NAMESPACE_DC, XML_CREATOR ),
886 7 : ENTRY1Q( OFFICE, CREATE_DATE, XML_ATACTION_MOVE_TO_ELEM,
887 : XML_NAMESPACE_DC, XML_DATE ),
888 7 : 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 )
891 21 : };
892 :
893 : // action table for OOO_CHANGE_INFO_ACTIONS
894 : static XMLTransformerActionInit aChangeInfoActionTable[] =
895 : {
896 7 : ENTRY1Q( OFFICE, CHG_AUTHOR, XML_ATACTION_MOVE_TO_ELEM,
897 : XML_NAMESPACE_DC, XML_CREATOR ),
898 7 : ENTRY1Q( OFFICE, CHG_DATE_TIME, XML_ATACTION_MOVE_TO_ELEM,
899 : XML_NAMESPACE_DC, XML_DATE ),
900 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
901 14 : };
902 :
903 : // OOO_BACKGROUND_IMAGE_ACTIONS
904 : static XMLTransformerActionInit aBackgroundImageActionTable[] =
905 : {
906 7 : 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 )
910 7 : };
911 :
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#)
915 : */
916 : static XMLTransformerActionInit aWriterBackgroundImageActionTable[] =
917 : {
918 7 : 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 )
921 7 : };
922 :
923 : // OOO_DDE_CONNECTION_DECL
924 : static XMLTransformerActionInit aDDEConnectionDeclActionTable[] =
925 : {
926 7 : ENTRY1Q( TEXT, NAME, XML_ATACTION_RENAME,
927 : XML_NAMESPACE_OFFICE, XML_NAME ),
928 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
929 7 : };
930 :
931 : // OOO_FORM_CONTROL_ACTIONS
932 : static XMLTransformerActionInit aFormControlActionTable[] =
933 : {
934 7 : 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 )
940 7 : };
941 :
942 : // OOO_FORM_COLUMN_ACTIONS
943 : static XMLTransformerActionInit aFormColumnActionTable[] =
944 : {
945 7 : ENTRY1Q( FORM, COLUMN_STYLE_NAME, XML_ATACTION_RENAME_ENCODE_STYLE_NAME_REF,
946 : XML_NAMESPACE_FORM, XML_TEXT_STYLE_NAME ),
947 7 : 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 )
952 14 : };
953 :
954 : // OOO_FORM_PROP_ACTIONS
955 : static XMLTransformerActionInit aFormPropActionTable[] =
956 : {
957 7 : 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 )
961 7 : };
962 :
963 : // OOO_XLINK_ACTIONS
964 : static XMLTransformerActionInit aXLinkActionTable[] =
965 : {
966 : ENTRY1( XLINK, HREF, XML_ATACTION_URI_OOO, sal_False ),
967 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
968 : };
969 :
970 : // OOO_CONFIG_ITEM_SET_ACTIONS
971 : static XMLTransformerActionInit aConfigItemSetActionTable[] =
972 : {
973 : ENTRY1( CONFIG, NAME, XML_ATACTION_ADD_NAMESPACE_PREFIX,
974 : XML_NAMESPACE_OOO ),
975 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
976 : };
977 :
978 : // OASIS_FORMULA_ACTIONS
979 : static XMLTransformerActionInit aFormulaActionTable[] =
980 : {
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 )
990 : };
991 :
992 : // OOO_ERROR_MACRO_ACTIONS
993 : static XMLTransformerActionInit aErrorMacroActionTable[] =
994 : {
995 : ENTRY0( TABLE, NAME, XML_ATACTION_REMOVE ),
996 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
997 : };
998 :
999 : // OOO_DDE_CONV_MODE_ACTIONS
1000 : static XMLTransformerActionInit aDDEConvModeActionTable[] =
1001 : {
1002 7 : ENTRY1Q( TABLE, LET_TEXT, XML_ATACTION_RENAME,
1003 : XML_NAMESPACE_TABLE, XML_KEEP_TEXT ),
1004 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1005 7 : };
1006 :
1007 : // OOO_DATAPILOT_MEMBER_ACTIONS
1008 : static XMLTransformerActionInit aDataPilotMemberActionTable[] =
1009 : {
1010 7 : ENTRY1Q( TABLE, DISPLAY_DETAILS, XML_ATACTION_RENAME,
1011 : XML_NAMESPACE_TABLE, XML_SHOW_DETAILS ),
1012 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1013 7 : };
1014 :
1015 : // OOO_DATAPILOT_LEVEL_ACTIONS
1016 : static XMLTransformerActionInit aDataPilotLevelActionTable[] =
1017 : {
1018 7 : ENTRY1Q( TABLE, DISPLAY_EMPTY, XML_ATACTION_RENAME,
1019 : XML_NAMESPACE_TABLE, XML_SHOW_EMPTY ),
1020 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1021 7 : };
1022 :
1023 : // OOO_SOURCE_SERVICE_ACTIONS
1024 : static XMLTransformerActionInit aSourceServiceActionTable[] =
1025 : {
1026 7 : ENTRY1Q( TABLE, USERNAME, XML_ATACTION_RENAME,
1027 : XML_NAMESPACE_TABLE, XML_USER_NAME ),
1028 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1029 7 : };
1030 :
1031 : // OOO_ANIMATION_ACTIONS
1032 : static XMLTransformerActionInit aAnimationsActionTable[] =
1033 : {
1034 : ENTRY0( DRAW, SHAPE_ID, XML_ATACTION_SHAPEID ),
1035 : ENTRY0( PRESENTATION, PATH_ID, XML_ATACTION_SHAPEID ),
1036 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1037 : };
1038 :
1039 : // OOO_DRAW_AREA_POLYGON_ACTIONS (to be added to OOO_SHAPE_ACTIONS)
1040 : static XMLTransformerActionInit aDrawAreaPolygonActionTable[] =
1041 : {
1042 7 : ENTRY1Q( SVG, POINTS, XML_ATACTION_RENAME,
1043 : XML_NAMESPACE_DRAW, XML_POINTS ),
1044 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1045 7 : };
1046 :
1047 : // OOO_CHART_ACTIONS
1048 : static XMLTransformerActionInit aChartActionTable[] =
1049 : {
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 )
1057 : };
1058 :
1059 : // OOO_ALPHABETICAL_INDEX_MARK_ACTIONS
1060 : static XMLTransformerActionInit aAlphabeticalIndexMarkActionTable[] =
1061 : {
1062 7 : ENTRY1Q( TEXT, MAIN_ETRY, XML_ATACTION_RENAME,
1063 : XML_NAMESPACE_TEXT, XML_MAIN_ENTRY ),
1064 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1065 7 : };
1066 :
1067 : // OOO_SCRIPT_ACTIONS
1068 : static XMLTransformerActionInit aScriptActionTable[] =
1069 : {
1070 : ENTRY1( SCRIPT, LANGUAGE, XML_ATACTION_ADD_NAMESPACE_PREFIX, XML_NAMESPACE_OOO ),
1071 7 : ENTRY1Q( SCRIPT, NAME, XML_ATACTION_RENAME, XML_NAMESPACE_OOO, XML_NAME ),
1072 7 : ENTRY1Q( SCRIPT, READONLY, XML_ATACTION_RENAME, XML_NAMESPACE_OOO, XML_READONLY ),
1073 : ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1074 14 : };
1075 :
1076 : static XMLTokenEnum aTokenMap[] =
1077 : {
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
1083 : };
1084 :
1085 : //-----------------------------------------------------------------------------
1086 :
1087 : class XMLDocumentTransformerContext_Impl : public XMLTransformerContext
1088 : {
1089 : OUString m_aElemQName;
1090 : OUString m_aOldClass;
1091 :
1092 : public:
1093 : TYPEINFO();
1094 :
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 );
1101 :
1102 : virtual ~XMLDocumentTransformerContext_Impl();
1103 :
1104 : virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1105 : virtual void EndElement();
1106 : };
1107 :
1108 0 : TYPEINIT1( XMLDocumentTransformerContext_Impl, XMLTransformerContext );
1109 :
1110 42 : XMLDocumentTransformerContext_Impl::XMLDocumentTransformerContext_Impl(
1111 : XMLTransformerBase& rImp,
1112 : const OUString& rQName ) :
1113 : XMLTransformerContext( rImp, rQName ),
1114 42 : m_aElemQName( rQName )
1115 : {
1116 42 : }
1117 0 : 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 0 : m_aElemQName( rImp.GetNamespaceMap().GetQNameByKey( nPrefix,
1124 0 : ::xmloff::token::GetXMLToken( eToken ) ) )
1125 : {
1126 0 : }
1127 :
1128 84 : XMLDocumentTransformerContext_Impl::~XMLDocumentTransformerContext_Impl()
1129 : {
1130 84 : }
1131 :
1132 42 : void XMLDocumentTransformerContext_Impl::StartElement(
1133 : const Reference< XAttributeList >& rAttrList )
1134 : {
1135 42 : Reference< XAttributeList > xAttrList( rAttrList );
1136 :
1137 42 : m_aOldClass = GetTransformer().GetClass();
1138 :
1139 42 : XMLMutableAttributeList *pMutableAttrList = 0;
1140 42 : sal_Bool bOOo = sal_False, bOOoW = sal_False, bOOoC = sal_False,
1141 42 : bDOM=sal_False, bDC = sal_False, bSVG = sal_False;
1142 42 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1143 741 : for( sal_Int16 i=0; i < nAttrCount; i++ )
1144 : {
1145 714 : const OUString& rAttrName = xAttrList->getNameByIndex( i );
1146 1413 : OUString aLocalName;
1147 : sal_uInt16 nPrefix =
1148 714 : GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1149 714 : &aLocalName );
1150 761 : if( XML_NAMESPACE_OFFICE == nPrefix &&
1151 47 : IsXMLToken( aLocalName, XML_CLASS ) )
1152 : {
1153 15 : const OUString& rValue = xAttrList->getValueByIndex( i );
1154 15 : GetTransformer().SetClass( rValue );
1155 :
1156 15 : pMutableAttrList = new XMLMutableAttributeList( xAttrList );
1157 15 : xAttrList = pMutableAttrList;
1158 30 : OUString sMime("application/vnd.oasis.opendocument.");
1159 15 : sMime += rValue;
1160 15 : pMutableAttrList->SetValueByIndex( i, sMime );
1161 30 : OUString aNewAttrQName( GetTransformer().GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, ::xmloff::token::GetXMLToken( XML_MIMETYPE ) ) );
1162 15 : pMutableAttrList->RenameAttributeByIndex(i, aNewAttrQName );
1163 30 : break;
1164 : }
1165 699 : else if( XML_NAMESPACE_XMLNS == nPrefix )
1166 : {
1167 665 : const OUString& rAttrValue = xAttrList->getValueByIndex( i );
1168 665 : if( IsXMLToken( rAttrValue, XML_N_OOO ) )
1169 18 : bOOo = sal_True;
1170 647 : else if( IsXMLToken( rAttrValue, XML_N_OOOW ) )
1171 12 : bOOoW = sal_True;
1172 635 : else if( IsXMLToken( rAttrValue, XML_N_OOOC ) )
1173 12 : bOOoC = sal_True;
1174 623 : else if( IsXMLToken( rAttrValue, XML_N_DOM ) )
1175 12 : bDOM = sal_True;
1176 611 : else if( IsXMLToken( rAttrValue, XML_N_DC ) )
1177 12 : bDC = sal_True;
1178 599 : else if( IsXMLToken( rAttrValue, XML_N_SVG ) )
1179 0 : bSVG = sal_True;
1180 : }
1181 699 : }
1182 42 : if( !(bOOo && bOOoW && bOOoC && bDOM && bDC && bSVG) )
1183 : {
1184 42 : if( !pMutableAttrList )
1185 : {
1186 27 : pMutableAttrList = new XMLMutableAttributeList( xAttrList );
1187 27 : xAttrList = pMutableAttrList;
1188 : }
1189 42 : if( !bOOo )
1190 : pMutableAttrList->AddAttribute(
1191 24 : GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1192 : XML_NAMESPACE_OOO ),
1193 24 : GetTransformer().GetNamespaceMap().GetNameByKey(
1194 48 : XML_NAMESPACE_OOO ) );
1195 42 : if( !bOOoW )
1196 : pMutableAttrList->AddAttribute(
1197 30 : GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1198 : XML_NAMESPACE_OOOW ),
1199 30 : GetTransformer().GetNamespaceMap().GetNameByKey(
1200 60 : XML_NAMESPACE_OOOW ) );
1201 42 : if( !bOOoC )
1202 : pMutableAttrList->AddAttribute(
1203 30 : GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1204 : XML_NAMESPACE_OOOC ),
1205 30 : GetTransformer().GetNamespaceMap().GetNameByKey(
1206 60 : XML_NAMESPACE_OOOC ) );
1207 42 : if( !bDOM )
1208 : pMutableAttrList->AddAttribute(
1209 30 : GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1210 : XML_NAMESPACE_DOM ),
1211 30 : GetTransformer().GetNamespaceMap().GetNameByKey(
1212 60 : XML_NAMESPACE_DOM ) );
1213 42 : if( !bDC )
1214 : pMutableAttrList->AddAttribute(
1215 30 : GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1216 : XML_NAMESPACE_DC ),
1217 30 : GetTransformer().GetNamespaceMap().GetNameByKey(
1218 60 : XML_NAMESPACE_DC ) );
1219 42 : if( !bSVG )
1220 : pMutableAttrList->AddAttribute(
1221 42 : GetTransformer().GetNamespaceMap().GetAttrNameByKey(
1222 : XML_NAMESPACE_SVG ),
1223 42 : GetTransformer().GetNamespaceMap().GetNameByKey(
1224 84 : XML_NAMESPACE_SVG ) );
1225 : }
1226 :
1227 42 : GetTransformer().GetDocHandler()->startElement( m_aElemQName, xAttrList );
1228 42 : }
1229 :
1230 42 : void XMLDocumentTransformerContext_Impl::EndElement()
1231 : {
1232 42 : GetTransformer().GetDocHandler()->endElement( m_aElemQName );
1233 :
1234 42 : GetTransformer().SetClass( m_aOldClass );
1235 42 : }
1236 :
1237 : //-----------------------------------------------------------------------------
1238 :
1239 : class XMLBodyTransformerContext_Impl : public XMLTransformerContext
1240 : {
1241 : OUString m_aClassQName;
1242 :
1243 : public:
1244 : TYPEINFO();
1245 :
1246 : XMLBodyTransformerContext_Impl( XMLTransformerBase& rTransformer,
1247 : const OUString& rQName );
1248 :
1249 : virtual ~XMLBodyTransformerContext_Impl();
1250 :
1251 : virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1252 : virtual void EndElement();
1253 : };
1254 :
1255 0 : TYPEINIT1( XMLBodyTransformerContext_Impl, XMLTransformerContext );
1256 :
1257 15 : XMLBodyTransformerContext_Impl::XMLBodyTransformerContext_Impl(
1258 : XMLTransformerBase& rImp,
1259 : const OUString& rQName ) :
1260 15 : XMLTransformerContext( rImp, rQName )
1261 : {
1262 15 : }
1263 :
1264 30 : XMLBodyTransformerContext_Impl::~XMLBodyTransformerContext_Impl()
1265 : {
1266 30 : }
1267 :
1268 15 : void XMLBodyTransformerContext_Impl::StartElement(
1269 : const Reference< XAttributeList >& rAttrList )
1270 : {
1271 15 : XMLTransformerContext::StartElement( rAttrList );
1272 :
1273 : XMLMutableAttributeList *pMutableAttrList =
1274 15 : new XMLMutableAttributeList( rAttrList );
1275 15 : Reference< XAttributeList > xAttrList = pMutableAttrList;
1276 30 : OUString aClass( GetTransformer().GetClass() );
1277 15 : if( aClass.isEmpty() )
1278 : {
1279 0 : aClass = GetXMLToken( XML_TEXT );
1280 : }
1281 15 : else if( IsXMLToken( aClass, XML_TEXT_GLOBAL ) )
1282 : {
1283 : OUString aGlobalQName(
1284 0 : GetTransformer().GetNamespaceMap().GetQNameByKey(
1285 0 : XML_NAMESPACE_TEXT, GetXMLToken(XML_GLOBAL ) ) );
1286 0 : pMutableAttrList->AddAttribute( aGlobalQName, GetXMLToken(XML_TRUE) );
1287 :
1288 0 : aClass = GetXMLToken( XML_TEXT );
1289 : }
1290 :
1291 30 : m_aClassQName = GetTransformer().GetNamespaceMap().GetQNameByKey(
1292 15 : XML_NAMESPACE_OFFICE, aClass );
1293 15 : GetTransformer().GetDocHandler()->startElement( m_aClassQName,
1294 30 : xAttrList );
1295 15 : }
1296 :
1297 15 : void XMLBodyTransformerContext_Impl::EndElement()
1298 : {
1299 15 : GetTransformer().GetDocHandler()->endElement( m_aClassQName );
1300 15 : XMLTransformerContext::EndElement();
1301 15 : }
1302 :
1303 : //-----------------------------------------------------------------------------
1304 :
1305 : class XMLTabStopOOoTContext_Impl : public XMLPersElemContentTContext
1306 : {
1307 : public:
1308 : TYPEINFO();
1309 :
1310 : XMLTabStopOOoTContext_Impl( XMLTransformerBase& rTransformer,
1311 : const OUString& rQName );
1312 :
1313 : virtual ~XMLTabStopOOoTContext_Impl();
1314 :
1315 : virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1316 : };
1317 :
1318 0 : TYPEINIT1( XMLTabStopOOoTContext_Impl, XMLPersElemContentTContext );
1319 :
1320 4 : XMLTabStopOOoTContext_Impl::XMLTabStopOOoTContext_Impl(
1321 : XMLTransformerBase& rImp,
1322 : const OUString& rQName ) :
1323 4 : XMLPersElemContentTContext( rImp, rQName )
1324 : {
1325 4 : }
1326 :
1327 8 : XMLTabStopOOoTContext_Impl::~XMLTabStopOOoTContext_Impl()
1328 : {
1329 8 : }
1330 :
1331 4 : void XMLTabStopOOoTContext_Impl::StartElement(
1332 : const Reference< XAttributeList >& rAttrList )
1333 : {
1334 : XMLTransformerActions *pActions =
1335 4 : GetTransformer().GetUserDefinedActions( OOO_TAB_STOP_ACTIONS );
1336 : OSL_ENSURE( pActions, "go no actions" );
1337 :
1338 4 : Reference< XAttributeList > xAttrList( rAttrList );
1339 4 : XMLMutableAttributeList *pMutableAttrList = 0;
1340 4 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1341 12 : for( sal_Int16 i=0; i < nAttrCount; i++ )
1342 : {
1343 8 : const OUString& rAttrName = xAttrList->getNameByIndex( i );
1344 16 : OUString aLocalName;
1345 : sal_uInt16 nPrefix =
1346 8 : GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1347 8 : &aLocalName );
1348 16 : XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
1349 : XMLTransformerActions::const_iterator aIter =
1350 8 : pActions->find( aKey );
1351 8 : if( !(aIter == pActions->end() ) )
1352 : {
1353 4 : if( !pMutableAttrList )
1354 : {
1355 : pMutableAttrList =
1356 4 : new XMLMutableAttributeList( xAttrList );
1357 4 : xAttrList = pMutableAttrList;
1358 : }
1359 4 : const OUString& rAttrValue = xAttrList->getValueByIndex( i );
1360 4 : switch( (*aIter).second.m_nActionType )
1361 : {
1362 : case XML_ATACTION_RENAME:
1363 : {
1364 : OUString aNewAttrQName(
1365 0 : GetTransformer().GetNamespaceMap().GetQNameByKey(
1366 0 : (*aIter).second.GetQNamePrefixFromParam1(),
1367 : ::xmloff::token::GetXMLToken(
1368 0 : (*aIter).second.GetQNameTokenFromParam1()) ) );
1369 : pMutableAttrList->RenameAttributeByIndex( i,
1370 0 : aNewAttrQName );
1371 : }
1372 0 : if( IsXMLToken( aLocalName, XML_LEADER_CHAR ) &&
1373 0 : !rAttrValue.isEmpty() &&
1374 0 : rAttrValue[0] != ' ' )
1375 : {
1376 : OUString aNewAttrQName(
1377 0 : GetTransformer().GetNamespaceMap().GetQNameByKey(
1378 : XML_NAMESPACE_STYLE,
1379 0 : ::xmloff::token::GetXMLToken(XML_LEADER_STYLE) ) );
1380 : pMutableAttrList->AddAttribute( aNewAttrQName,
1381 0 : GetXMLToken( XML_SOLID ) );
1382 : }
1383 0 : break;
1384 : case XML_ATACTION_INCH2IN:
1385 : {
1386 4 : OUString aAttrValue( rAttrValue );
1387 4 : if( XMLTransformerBase::ReplaceSingleInchWithIn(
1388 4 : aAttrValue ) )
1389 0 : pMutableAttrList->SetValueByIndex( i, aAttrValue );
1390 : }
1391 4 : break;
1392 : default:
1393 : OSL_ENSURE( !this, "unknown action" );
1394 0 : break;
1395 4 : }
1396 : }
1397 8 : }
1398 :
1399 4 : XMLPersElemContentTContext::StartElement( xAttrList );
1400 4 : }
1401 :
1402 : // -----------------------------------------------------------------------------
1403 :
1404 : class XMLTrackedChangesOOoTContext_Impl : public XMLTransformerContext
1405 : {
1406 : sal_uInt16 m_nPrefix;
1407 : XMLTokenEnum m_eToken;
1408 :
1409 : public:
1410 :
1411 : TYPEINFO();
1412 :
1413 : XMLTrackedChangesOOoTContext_Impl( XMLTransformerBase& rTransformer,
1414 : const OUString& rQName,
1415 : sal_uInt16 nPrefix,
1416 : XMLTokenEnum eToken );
1417 :
1418 : virtual ~XMLTrackedChangesOOoTContext_Impl();
1419 :
1420 : virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1421 : };
1422 :
1423 0 : TYPEINIT1( XMLTrackedChangesOOoTContext_Impl, XMLTransformerContext );
1424 :
1425 0 : 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 0 : m_eToken( eToken )
1433 : {
1434 0 : }
1435 :
1436 0 : XMLTrackedChangesOOoTContext_Impl::~XMLTrackedChangesOOoTContext_Impl()
1437 : {
1438 0 : }
1439 :
1440 0 : void XMLTrackedChangesOOoTContext_Impl::StartElement(
1441 : const Reference< XAttributeList >& rAttrList )
1442 : {
1443 0 : Reference< XAttributeList > xAttrList( rAttrList );
1444 0 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1445 0 : for( sal_Int16 i=0; i < nAttrCount; i++ )
1446 : {
1447 0 : const OUString& rAttrName = xAttrList->getNameByIndex( i );
1448 0 : OUString aLocalName;
1449 : sal_uInt16 nPrefix =
1450 0 : GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1451 0 : &aLocalName );
1452 0 : if( m_nPrefix == nPrefix && IsXMLToken( aLocalName, m_eToken ) )
1453 : {
1454 : const Reference< XPropertySet > rPropSet =
1455 0 : GetTransformer().GetPropertySet();
1456 : OSL_ENSURE( rPropSet.is(), "no info property set" );
1457 0 : if( rPropSet.is() )
1458 : {
1459 0 : const sal_Char sRedlineProtectionKey[] = "RedlineProtectionKey";
1460 0 : OUString aPropName(sRedlineProtectionKey);
1461 : Reference< XPropertySetInfo > xPropSetInfo(
1462 0 : rPropSet->getPropertySetInfo() );
1463 0 : if( xPropSetInfo.is() &&
1464 0 : xPropSetInfo->hasPropertyByName( aPropName ) )
1465 : {
1466 0 : Sequence < sal_Int8 > aKey;
1467 : ::sax::Converter::decodeBase64( aKey,
1468 0 : xAttrList->getValueByIndex( i ) );
1469 0 : rPropSet->setPropertyValue( aPropName, makeAny( aKey ) );
1470 : }
1471 : else
1472 : {
1473 : OSL_ENSURE( !this, "RedineProtectionKey is missing" );
1474 0 : }
1475 : }
1476 0 : break;
1477 : }
1478 0 : }
1479 0 : XMLTransformerContext::StartElement( xAttrList );
1480 0 : }
1481 :
1482 : // -----------------------------------------------------------------------------
1483 :
1484 : class XMLTableOOoTransformerContext_Impl : public XMLTransformerContext
1485 : {
1486 : OUString m_aElemQName;
1487 :
1488 : public:
1489 : TYPEINFO();
1490 :
1491 : XMLTableOOoTransformerContext_Impl( XMLTransformerBase& rTransformer,
1492 : const OUString& rQName );
1493 :
1494 : virtual ~XMLTableOOoTransformerContext_Impl();
1495 :
1496 : virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1497 : virtual void EndElement();
1498 : };
1499 :
1500 0 : TYPEINIT1( XMLTableOOoTransformerContext_Impl, XMLTransformerContext );
1501 :
1502 19 : XMLTableOOoTransformerContext_Impl::XMLTableOOoTransformerContext_Impl(
1503 : XMLTransformerBase& rImp,
1504 : const OUString& rQName ) :
1505 : XMLTransformerContext( rImp, rQName ),
1506 19 : m_aElemQName( rQName )
1507 : {
1508 19 : }
1509 :
1510 38 : XMLTableOOoTransformerContext_Impl::~XMLTableOOoTransformerContext_Impl()
1511 : {
1512 38 : }
1513 :
1514 19 : void XMLTableOOoTransformerContext_Impl::StartElement(
1515 : const Reference< XAttributeList >& rAttrList )
1516 : {
1517 : // Perform OOO_STYLE_REF_ACTIONS for all applications (#i50521#)
1518 19 : Reference< XAttributeList > xAttrList( rAttrList );
1519 : XMLMutableAttributeList* pMutableAttrList =
1520 19 : GetTransformer().ProcessAttrList( xAttrList, OOO_STYLE_REF_ACTIONS, sal_False );
1521 19 : if( rAttrList->getLength() && IsXMLToken( GetTransformer().GetClass(), XML_SPREADSHEET ) )
1522 : {
1523 16 : sal_Bool bPrintRanges(sal_False);
1524 :
1525 16 : sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1526 48 : for( sal_Int16 i=0; i < nAttrCount; i++ )
1527 : {
1528 32 : const OUString& rAttrName = xAttrList->getNameByIndex( i );
1529 64 : OUString aLocalName;
1530 : sal_uInt16 nPrefix =
1531 32 : GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1532 32 : &aLocalName );
1533 64 : if( XML_NAMESPACE_TABLE == nPrefix &&
1534 32 : IsXMLToken( aLocalName, XML_PRINT_RANGES ) )
1535 : {
1536 0 : bPrintRanges = sal_True;
1537 : }
1538 32 : }
1539 16 : if (!bPrintRanges && pMutableAttrList)
1540 : {
1541 16 : xAttrList = pMutableAttrList;
1542 16 : pMutableAttrList->AddAttribute(GetTransformer().GetNamespaceMap().GetQNameByKey(
1543 : XML_NAMESPACE_TABLE,
1544 32 : GetXMLToken( XML_PRINT ) ), GetXMLToken ( XML_FALSE ));
1545 : }
1546 : }
1547 :
1548 19 : GetTransformer().GetDocHandler()->startElement( m_aElemQName, xAttrList );
1549 19 : }
1550 :
1551 19 : void XMLTableOOoTransformerContext_Impl::EndElement()
1552 : {
1553 19 : GetTransformer().GetDocHandler()->endElement( m_aElemQName );
1554 19 : }
1555 :
1556 :
1557 : //-----------------------------------------------------------------------------
1558 :
1559 640 : XMLTransformerContext *OOo2OasisTransformer::CreateUserDefinedContext(
1560 : const TransformerAction_Impl& rAction,
1561 : const OUString& rQName,
1562 : sal_Bool bPersistent )
1563 : {
1564 640 : switch( rAction.m_nActionType )
1565 : {
1566 : case XML_ETACTION_DOCUMENT:
1567 42 : return new XMLDocumentTransformerContext_Impl( *this, rQName );
1568 : case XML_ETACTION_DOCUMENT_RENAME:
1569 : return new XMLDocumentTransformerContext_Impl( *this, rQName,
1570 0 : rAction.GetQNamePrefixFromParam1(),
1571 0 : rAction.GetQNameTokenFromParam1() );
1572 : case XML_ETACTION_BODY:
1573 15 : 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 437 : bPersistent );
1578 : case XML_ETACTION_STYLE_RENAME:
1579 : return new XMLStyleOOoTContext( *this, rQName,
1580 : static_cast< XMLFamilyType >( rAction.m_nParam2 ),
1581 27 : rAction.GetQNamePrefixFromParam1(),
1582 : rAction.GetQNameTokenFromParam1(),
1583 27 : bPersistent );
1584 : case XML_ETACTION_FRAME:
1585 11 : return new XMLFrameOOoTransformerContext( *this, rQName );
1586 : case XML_ETACTION_EVENT:
1587 3 : return new XMLEventOOoTransformerContext( *this, rQName, bPersistent );
1588 : case XML_ETACTION_TAB_STOP:
1589 4 : return new XMLTabStopOOoTContext_Impl( *this, rQName );
1590 : case XML_ETACTION_FORM_CONTROL:
1591 23 : return new XMLControlOOoTransformerContext( *this, rQName );
1592 : case XML_ETACTION_FORM_PROPERTY:
1593 53 : return new XMLFormPropOOoTransformerContext( *this, rQName );
1594 : case XML_ETACTION_CHART:
1595 3 : return new XMLChartOOoTransformerContext( *this, rQName );
1596 : case XML_ETACTION_TRACKED_CHANGES:
1597 : return new XMLTrackedChangesOOoTContext_Impl( *this, rQName,
1598 0 : rAction.GetQNamePrefixFromParam1(),
1599 0 : rAction.GetQNameTokenFromParam1() );
1600 : case XML_ETACTION_CHART_PLOT_AREA:
1601 3 : return new XMLChartPlotAreaOOoTContext( *this, rQName );
1602 : case XML_ETACTION_TABLE:
1603 19 : return new XMLTableOOoTransformerContext_Impl( *this, rQName );
1604 : default:
1605 : OSL_ENSURE( !this, "no user defined context found!" );
1606 : }
1607 :
1608 : // default is copying
1609 0 : return new XMLTransformerContext( *this, rQName );
1610 : }
1611 :
1612 5657 : XMLTransformerActions *OOo2OasisTransformer::GetUserDefinedActions(
1613 : sal_uInt16 n )
1614 : {
1615 5657 : XMLTransformerActions *pActions = 0;
1616 5657 : if( n < MAX_OOO_ACTIONS )
1617 : {
1618 5657 : if( !m_aActions[n] )
1619 : {
1620 322 : if( n<MAX_OOO_PROP_ACTIONS )
1621 : {
1622 142 : m_aActions[n] =
1623 142 : XMLStyleOOoTContext::CreateTransformerActions( n );
1624 : }
1625 180 : else switch( n )
1626 : {
1627 : case OOO_STYLE_ACTIONS:
1628 : m_aActions[OOO_STYLE_ACTIONS] =
1629 29 : new XMLTransformerActions( aStyleActionTable );
1630 29 : break;
1631 : case OOO_FONT_DECL_ACTIONS:
1632 : m_aActions[OOO_FONT_DECL_ACTIONS] =
1633 23 : new XMLTransformerActions( aFontDeclActionTable );
1634 23 : break;
1635 : case OOO_SHAPE_ACTIONS:
1636 : m_aActions[OOO_SHAPE_ACTIONS] =
1637 11 : new XMLTransformerActions( aShapeActionTable );
1638 11 : break;
1639 : case OOO_CONNECTOR_ACTIONS:
1640 : m_aActions[OOO_CONNECTOR_ACTIONS] =
1641 0 : new XMLTransformerActions( aConnectorActionTable );
1642 0 : break;
1643 : case OOO_TAB_STOP_ACTIONS:
1644 : m_aActions[OOO_TAB_STOP_ACTIONS] =
1645 1 : new XMLTransformerActions( aTabStopActionTable );
1646 1 : break;
1647 : case OOO_INDEX_ENTRY_TAB_STOP_ACTIONS:
1648 : m_aActions[OOO_INDEX_ENTRY_TAB_STOP_ACTIONS] =
1649 0 : new XMLTransformerActions( aIndexEntryTabStopActionTable );
1650 0 : break;
1651 : case OOO_LINENUMBERING_ACTIONS:
1652 : m_aActions[OOO_LINENUMBERING_ACTIONS] =
1653 4 : new XMLTransformerActions( aLineNumberingActionTable );
1654 4 : break;
1655 : case OOO_FOOTNOTE_SEP_ACTIONS:
1656 : m_aActions[OOO_FOOTNOTE_SEP_ACTIONS] =
1657 4 : new XMLTransformerActions( aFootnoteSepActionTable );
1658 4 : break;
1659 : case OOO_DROP_CAP_ACTIONS:
1660 : m_aActions[OOO_DROP_CAP_ACTIONS] =
1661 0 : new XMLTransformerActions( aDropCapActionTable );
1662 0 : break;
1663 : case OOO_COLUMNS_ACTIONS:
1664 : m_aActions[OOO_COLUMNS_ACTIONS] =
1665 0 : new XMLTransformerActions( aColumnsActionTable );
1666 0 : break;
1667 : case OOO_TEXT_VALUE_TYPE_ACTIONS:
1668 : m_aActions[OOO_TEXT_VALUE_TYPE_ACTIONS] =
1669 1 : new XMLTransformerActions( aTextValueTypeActionTable );
1670 1 : break;
1671 : case OOO_TABLE_VALUE_TYPE_ACTIONS:
1672 : m_aActions[OOO_TABLE_VALUE_TYPE_ACTIONS] =
1673 9 : new XMLTransformerActions( aTableValueTypeActionTable );
1674 9 : break;
1675 : case OOO_PARA_ACTIONS:
1676 : m_aActions[OOO_PARA_ACTIONS] =
1677 18 : new XMLTransformerActions( aParaActionTable );
1678 18 : break;
1679 : case OOO_STYLE_REF_ACTIONS:
1680 : m_aActions[OOO_STYLE_REF_ACTIONS] =
1681 22 : new XMLTransformerActions( aStyleRefActionTable );
1682 22 : break;
1683 : case OOO_MASTER_PAGE_ACTIONS:
1684 : m_aActions[OOO_MASTER_PAGE_ACTIONS] =
1685 12 : new XMLTransformerActions( aMasterPageActionTable );
1686 12 : break;
1687 : case OOO_ANNOTATION_ACTIONS:
1688 : m_aActions[OOO_ANNOTATION_ACTIONS] =
1689 5 : new XMLTransformerActions( aAnnotationActionTable );
1690 5 : break;
1691 : case OOO_CHANGE_INFO_ACTIONS:
1692 : m_aActions[OOO_CHANGE_INFO_ACTIONS] =
1693 0 : new XMLTransformerActions( aChangeInfoActionTable );
1694 0 : break;
1695 : case OOO_FRAME_ELEM_ACTIONS:
1696 : m_aActions[OOO_FRAME_ELEM_ACTIONS] =
1697 0 : new XMLTransformerActions( aFrameElemActionTable );
1698 0 : break;
1699 : case OOO_FRAME_ATTR_ACTIONS:
1700 : m_aActions[OOO_FRAME_ATTR_ACTIONS] =
1701 7 : new XMLTransformerActions( aFrameAttrActionTable );
1702 7 : break;
1703 : case OOO_BACKGROUND_IMAGE_ACTIONS:
1704 : // Use special actions for Writer documents. (#i50322#)
1705 : m_aActions[OOO_BACKGROUND_IMAGE_ACTIONS] =
1706 7 : isWriter()
1707 1 : ? new XMLTransformerActions( aWriterBackgroundImageActionTable )
1708 8 : : new XMLTransformerActions( aBackgroundImageActionTable );
1709 7 : break;
1710 : case OOO_DDE_CONNECTION_DECL_ACTIONS:
1711 : m_aActions[OOO_DDE_CONNECTION_DECL_ACTIONS] =
1712 0 : new XMLTransformerActions( aDDEConnectionDeclActionTable );
1713 0 : break;
1714 : case OOO_EVENT_ACTIONS:
1715 : m_aActions[OOO_EVENT_ACTIONS] =
1716 1 : new XMLTransformerActions( aEventActionTable );
1717 1 : break;
1718 : case OOO_FORM_CONTROL_ACTIONS:
1719 : m_aActions[OOO_FORM_CONTROL_ACTIONS] =
1720 6 : new XMLTransformerActions( aFormControlActionTable );
1721 6 : break;
1722 : case OOO_FORM_COLUMN_ACTIONS:
1723 : m_aActions[OOO_FORM_COLUMN_ACTIONS] =
1724 0 : new XMLTransformerActions( aFormColumnActionTable );
1725 0 : break;
1726 : case OOO_FORM_PROP_ACTIONS:
1727 : m_aActions[OOO_FORM_PROP_ACTIONS] =
1728 6 : new XMLTransformerActions( aFormPropActionTable );
1729 6 : break;
1730 : case OOO_XLINK_ACTIONS:
1731 : m_aActions[OOO_XLINK_ACTIONS] =
1732 0 : new XMLTransformerActions( aXLinkActionTable );
1733 0 : break;
1734 : case OOO_CONFIG_ITEM_SET_ACTIONS:
1735 : m_aActions[OOO_CONFIG_ITEM_SET_ACTIONS] =
1736 11 : new XMLTransformerActions( aConfigItemSetActionTable );
1737 11 : break;
1738 : case OOO_FORMULA_ACTIONS:
1739 : m_aActions[OOO_FORMULA_ACTIONS] =
1740 0 : new XMLTransformerActions( aFormulaActionTable );
1741 0 : break;
1742 : case OOO_CHART_ACTIONS:
1743 : m_aActions[OOO_CHART_ACTIONS] =
1744 3 : new XMLTransformerActions( aChartActionTable );
1745 3 : break;
1746 : case OOO_ERROR_MACRO_ACTIONS:
1747 : m_aActions[OOO_ERROR_MACRO_ACTIONS] =
1748 0 : new XMLTransformerActions( aErrorMacroActionTable );
1749 0 : break;
1750 : case OOO_DDE_CONV_MODE_ACTIONS:
1751 : m_aActions[OOO_DDE_CONV_MODE_ACTIONS] =
1752 0 : new XMLTransformerActions( aDDEConvModeActionTable );
1753 0 : break;
1754 : case OOO_ALPHABETICAL_INDEX_MARK_ACTIONS:
1755 : m_aActions[OOO_ALPHABETICAL_INDEX_MARK_ACTIONS] =
1756 0 : new XMLTransformerActions( aAlphabeticalIndexMarkActionTable );
1757 0 : break;
1758 : case OOO_DATAPILOT_MEMBER_ACTIONS:
1759 : m_aActions[OOO_DATAPILOT_MEMBER_ACTIONS] =
1760 0 : new XMLTransformerActions( aDataPilotMemberActionTable );
1761 : case OOO_DATAPILOT_LEVEL_ACTIONS:
1762 : m_aActions[OOO_DATAPILOT_LEVEL_ACTIONS] =
1763 0 : new XMLTransformerActions( aDataPilotLevelActionTable );
1764 : case OOO_SOURCE_SERVICE_ACTIONS:
1765 : m_aActions[OOO_SOURCE_SERVICE_ACTIONS] =
1766 0 : new XMLTransformerActions( aSourceServiceActionTable );
1767 0 : break;
1768 : case OOO_DRAW_AREA_POLYGON_ACTIONS:
1769 : m_aActions[OOO_DRAW_AREA_POLYGON_ACTIONS] =
1770 0 : new XMLTransformerActions( aShapeActionTable );
1771 0 : m_aActions[OOO_DRAW_AREA_POLYGON_ACTIONS]
1772 0 : ->Add( aDrawAreaPolygonActionTable );
1773 0 : break;
1774 : case OOO_SCRIPT_ACTIONS:
1775 : m_aActions[OOO_SCRIPT_ACTIONS] =
1776 0 : new XMLTransformerActions( aScriptActionTable );
1777 0 : break;
1778 : case OOO_ANIMATION_ACTIONS:
1779 : m_aActions[OOO_ANIMATION_ACTIONS] =
1780 0 : new XMLTransformerActions( aAnimationsActionTable );
1781 0 : break;
1782 : }
1783 : }
1784 5657 : pActions = m_aActions[n];
1785 : }
1786 :
1787 5657 : return pActions;
1788 : }
1789 :
1790 3 : OUString OOo2OasisTransformer::GetEventName( const OUString& rName, sal_Bool )
1791 : {
1792 3 : if( !m_pEventMap )
1793 1 : m_pEventMap = XMLEventOOoTransformerContext::CreateEventMap();
1794 :
1795 3 : OUString aNewName;
1796 : sal_uInt16 nPrefix = XMLEventOOoTransformerContext::GetEventName( rName,
1797 3 : aNewName, *m_pEventMap );
1798 3 : if( XML_NAMESPACE_UNKNOWN != nPrefix )
1799 3 : aNewName = GetNamespaceMap().GetQNameByKey( nPrefix, aNewName );
1800 : else
1801 0 : aNewName = rName;
1802 :
1803 3 : return aNewName;
1804 : }
1805 :
1806 :
1807 76 : OOo2OasisTransformer::OOo2OasisTransformer( const sal_Char *pImplName,
1808 : const sal_Char *pSubServiceName )
1809 : throw() :
1810 : XMLTransformerBase( aActionTable, aTokenMap ),
1811 76 : m_pEventMap( 0 )
1812 : {
1813 76 : if( pImplName )
1814 76 : m_aImplName = OUString::createFromAscii( pImplName );
1815 : else
1816 0 : m_aImplName = OOo2OasisTransformer_getImplementationName();
1817 76 : if( pSubServiceName )
1818 76 : m_aSubServiceName = OUString::createFromAscii( pSubServiceName );
1819 :
1820 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), GetXMLToken(XML_N_OFFICE_OOO), XML_NAMESPACE_OFFICE );
1821 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), GetXMLToken(XML_N_OFFICE), XML_NAMESPACE_OFFICE );
1822 :
1823 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_META), GetXMLToken(XML_N_META_OOO), XML_NAMESPACE_META );
1824 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_META), GetXMLToken(XML_N_META), XML_NAMESPACE_META );
1825 :
1826 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_STYLE), GetXMLToken(XML_N_STYLE_OOO), XML_NAMESPACE_STYLE );
1827 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_STYLE), GetXMLToken(XML_N_STYLE), XML_NAMESPACE_STYLE );
1828 :
1829 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER), GetXMLToken(XML_N_NUMBER_OOO), XML_NAMESPACE_NUMBER );
1830 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER), GetXMLToken(XML_N_NUMBER), XML_NAMESPACE_NUMBER );
1831 :
1832 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG), GetXMLToken(XML_N_CONFIG_OOO), XML_NAMESPACE_CONFIG );
1833 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG), GetXMLToken(XML_N_CONFIG), XML_NAMESPACE_CONFIG );
1834 :
1835 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_TEXT), GetXMLToken(XML_N_TEXT_OOO), XML_NAMESPACE_TEXT );
1836 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TEXT), GetXMLToken(XML_N_TEXT), XML_NAMESPACE_TEXT );
1837 :
1838 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_TABLE), GetXMLToken(XML_N_TABLE_OOO), XML_NAMESPACE_TABLE );
1839 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TABLE), GetXMLToken(XML_N_TABLE), XML_NAMESPACE_TABLE );
1840 :
1841 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_DRAW), GetXMLToken(XML_N_DRAW_OOO), XML_NAMESPACE_DRAW );
1842 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DRAW), GetXMLToken(XML_N_DRAW), XML_NAMESPACE_DRAW );
1843 :
1844 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_DR3D), GetXMLToken(XML_N_DR3D_OOO), XML_NAMESPACE_DR3D );
1845 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DR3D), GetXMLToken(XML_N_DR3D), XML_NAMESPACE_DR3D );
1846 :
1847 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_PRESENTATION), GetXMLToken(XML_N_PRESENTATION_OOO), XML_NAMESPACE_PRESENTATION );
1848 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_PRESENTATION), GetXMLToken(XML_N_PRESENTATION), XML_NAMESPACE_PRESENTATION );
1849 :
1850 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_CHART), GetXMLToken(XML_N_CHART_OOO), XML_NAMESPACE_CHART );
1851 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CHART), GetXMLToken(XML_N_CHART), XML_NAMESPACE_CHART );
1852 :
1853 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_FORM), GetXMLToken(XML_N_FORM_OOO), XML_NAMESPACE_FORM );
1854 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FORM), GetXMLToken(XML_N_FORM), XML_NAMESPACE_FORM );
1855 :
1856 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT), GetXMLToken(XML_N_SCRIPT_OOO), XML_NAMESPACE_SCRIPT );
1857 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT), GetXMLToken(XML_N_SCRIPT), XML_NAMESPACE_SCRIPT );
1858 :
1859 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_FO), GetXMLToken(XML_N_FO), XML_NAMESPACE_FO );
1860 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FO), GetXMLToken(XML_N_FO_COMPAT), XML_NAMESPACE_FO );
1861 :
1862 76 : GetNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG), XML_NAMESPACE_SVG );
1863 76 : GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG_COMPAT), XML_NAMESPACE_SVG );
1864 :
1865 4332 : for( sal_uInt16 i=0; i<MAX_OOO_ACTIONS; ++i )
1866 4256 : m_aActions[i] = 0;
1867 76 : }
1868 :
1869 228 : OOo2OasisTransformer::~OOo2OasisTransformer() throw()
1870 : {
1871 4332 : for( sal_uInt16 i=0; i<MAX_OOO_ACTIONS; ++i )
1872 4256 : delete m_aActions[i];
1873 76 : XMLEventOOoTransformerContext::FlushEventMap( m_pEventMap );
1874 152 : }
1875 :
1876 337 : Any OOo2OasisTransformer::queryInterface( const Type& rType )
1877 : throw (RuntimeException)
1878 : {
1879 337 : Any aRet;
1880 337 : if ( rType == ::getCppuType((Reference<XImporter> *)0) )
1881 : {
1882 68 : Reference<XImporter> xThis( this );
1883 68 : aRet <<= xThis;
1884 : }
1885 269 : else if ( rType == ::getCppuType((Reference<XFilter> *)0) )
1886 : {
1887 12 : Reference<XFilter> xThis( this );
1888 12 : aRet <<= xThis;
1889 : }
1890 : else
1891 : {
1892 257 : aRet = XMLTransformerBase::queryInterface(rType);
1893 : }
1894 :
1895 337 : return aRet;
1896 : }
1897 :
1898 : // XImporter
1899 71 : void SAL_CALL OOo2OasisTransformer::setTargetDocument(
1900 : const Reference< XComponent >& xDoc )
1901 : throw( IllegalArgumentException, RuntimeException)
1902 : {
1903 71 : if( !GetDocHandler().is() )
1904 : {
1905 : // if initialize hasn't been called, then we have to call it now
1906 : // to get the sub component initialized.
1907 16 : Sequence<Any> aArgs( 0 );
1908 16 : Initialize( aArgs );
1909 : }
1910 :
1911 71 : mxModel.set( xDoc, UNO_QUERY );
1912 :
1913 71 : Reference< XImporter > xImp( GetDocHandler(), UNO_QUERY );
1914 : OSL_ENSURE( xImp.is(), "doc handler is not an importer" );
1915 71 : if( xImp.is() )
1916 71 : xImp->setTargetDocument( xDoc );
1917 71 : }
1918 :
1919 : // XFilter
1920 0 : sal_Bool SAL_CALL OOo2OasisTransformer::filter(
1921 : const Sequence< PropertyValue >& aDescriptor )
1922 : throw ( RuntimeException)
1923 : {
1924 0 : Reference< XFilter> xFilter( GetDocHandler(), UNO_QUERY );
1925 : OSL_ENSURE( xFilter.is(), "doc handler is not a filter" );
1926 0 : if( xFilter.is() )
1927 0 : return xFilter->filter( aDescriptor );
1928 :
1929 0 : return sal_False;
1930 : }
1931 :
1932 0 : void SAL_CALL OOo2OasisTransformer::cancel( )
1933 : throw ( RuntimeException)
1934 : {
1935 0 : Reference< XFilter> xFilter( GetDocHandler(), UNO_QUERY );
1936 : OSL_ENSURE( xFilter.is(), "doc handler is not a filter" );
1937 0 : if( xFilter.is() )
1938 0 : xFilter->cancel();
1939 0 : }
1940 :
1941 : // XInitialize
1942 63 : void SAL_CALL OOo2OasisTransformer::initialize(
1943 : const Sequence< Any >& rArguments )
1944 : throw( Exception, RuntimeException )
1945 : {
1946 63 : Initialize( rArguments );
1947 63 : }
1948 :
1949 54 : void SAL_CALL OOo2OasisTransformer::startDocument( void )
1950 : throw( SAXException, RuntimeException )
1951 : {
1952 54 : if( !GetDocHandler().is() )
1953 : {
1954 : // if initialize hasn't been called, then we have to call it now
1955 : // to get the sub component initialized.
1956 0 : Sequence<Any> aArgs( 0 );
1957 0 : Initialize( aArgs );
1958 : }
1959 :
1960 54 : XMLTransformerBase::startDocument();
1961 54 : }
1962 :
1963 :
1964 79 : void SAL_CALL OOo2OasisTransformer::Initialize(
1965 : const Sequence< Any >& rArguments )
1966 : throw( Exception, RuntimeException )
1967 : {
1968 : OSL_ENSURE( !GetDocHandler().is(), "duplication initialization" );
1969 :
1970 79 : Reference< XDocumentHandler > xDocHandler;
1971 79 : if( !m_aSubServiceName.isEmpty() )
1972 : {
1973 : Reference< XComponentContext > xContext =
1974 79 : comphelper::getProcessComponentContext();
1975 : try
1976 : {
1977 : // get filter component
1978 158 : xDocHandler = Reference< XDocumentHandler >(
1979 158 : xContext->getServiceManager()->createInstanceWithArgumentsAndContext(m_aSubServiceName, rArguments, xContext),
1980 79 : UNO_QUERY);
1981 : }
1982 0 : catch( Exception& )
1983 : {
1984 79 : }
1985 : }
1986 :
1987 : OSL_ENSURE( xDocHandler.is(), "can't instantiate filter component" );
1988 79 : if( xDocHandler.is() )
1989 : {
1990 79 : Sequence<Any> aArgs( 1 + rArguments.getLength() );
1991 79 : aArgs[0] <<= xDocHandler;
1992 241 : for(sal_Int32 i = 0; i < rArguments.getLength(); i++)
1993 162 : aArgs[i+1] = rArguments[i];
1994 79 : XMLTransformerBase::initialize( aArgs );
1995 :
1996 : OSL_ENSURE( GetDocHandler() == xDocHandler,
1997 79 : "duplicate doc handler" );
1998 : }
1999 : else
2000 : {
2001 0 : XMLTransformerBase::initialize( rArguments );
2002 79 : }
2003 79 : }
2004 :
2005 : namespace
2006 : {
2007 : class theOOo2OasisTransformerUnoTunnelId : public rtl::Static< UnoTunnelIdInit, theOOo2OasisTransformerUnoTunnelId> {};
2008 : }
2009 :
2010 0 : const Sequence< sal_Int8 > & OOo2OasisTransformer::getUnoTunnelId() throw()
2011 : {
2012 0 : return theOOo2OasisTransformerUnoTunnelId::get().getSeq();
2013 : }
2014 :
2015 : // XUnoTunnel
2016 0 : sal_Int64 SAL_CALL OOo2OasisTransformer::getSomething( const Sequence< sal_Int8 >& rId )
2017 : throw(RuntimeException)
2018 : {
2019 0 : if( rId.getLength() == 16
2020 0 : && 0 == memcmp( getUnoTunnelId().getConstArray(),
2021 0 : rId.getConstArray(), 16 ) )
2022 : {
2023 0 : return reinterpret_cast< sal_Int64 >( this );
2024 : }
2025 : else
2026 : {
2027 0 : return (sal_Int64)0;
2028 : }
2029 : }
2030 :
2031 : // XServiceInfo
2032 2 : OUString SAL_CALL OOo2OasisTransformer::getImplementationName()
2033 : throw(RuntimeException)
2034 : {
2035 2 : return m_aImplName;
2036 : }
2037 :
2038 0 : sal_Bool SAL_CALL OOo2OasisTransformer::supportsService( const OUString& )
2039 : throw(RuntimeException)
2040 : {
2041 0 : return sal_False;
2042 : }
2043 :
2044 0 : Sequence< OUString > SAL_CALL OOo2OasisTransformer::getSupportedServiceNames( )
2045 : throw(RuntimeException)
2046 : {
2047 0 : Sequence<OUString> aSeq(0);
2048 0 : return aSeq;
2049 : }
2050 :
2051 : // XTypeProvider
2052 : Sequence< ::com::sun::star::uno::Type > SAL_CALL
2053 0 : OOo2OasisTransformer::getTypes() throw(RuntimeException)
2054 : {
2055 : Sequence< ::com::sun::star::uno::Type > aTypes(
2056 0 : XMLTransformerBase::getTypes() );
2057 :
2058 0 : sal_Int32 nIndex = aTypes.getLength();
2059 0 : aTypes.realloc( nIndex + 2 );
2060 :
2061 0 : ::com::sun::star::uno::Type* pTypes = aTypes.getArray();
2062 0 : pTypes[nIndex++] = ::getCppuType( static_cast< Reference< XImporter > * >( 0 ) );
2063 0 : pTypes[nIndex++] = ::getCppuType( static_cast< Reference< XFilter > * >( 0 ) );
2064 :
2065 0 : return aTypes;
2066 : }
2067 :
2068 : // Service registration
2069 :
2070 40 : OUString SAL_CALL OOo2OasisTransformer_getImplementationName() throw()
2071 : {
2072 40 : return OUString( "com.sun.star.comp.OOo2OasisTransformer" );
2073 : }
2074 :
2075 0 : Sequence< OUString > SAL_CALL OOo2OasisTransformer_getSupportedServiceNames() throw()
2076 : {
2077 0 : const OUString aServiceName( OOo2OasisTransformer_getImplementationName() );
2078 0 : const Sequence< OUString > aSeq( &aServiceName, 1 );
2079 0 : return aSeq;
2080 : }
2081 :
2082 0 : Reference< XInterface > SAL_CALL OOo2OasisTransformer_createInstance(
2083 : const Reference< XMultiServiceFactory > & )
2084 : throw( Exception )
2085 : {
2086 0 : return (cppu::OWeakObject*)new OOo2OasisTransformer();
2087 : }
2088 :
2089 : #define OOO_IMPORTER( className, implName, subServiceName ) \
2090 : OUString SAL_CALL className##_getImplementationName() throw() \
2091 : { \
2092 : return OUString( implName ); \
2093 : } \
2094 : \
2095 : Sequence< OUString > SAL_CALL className##_getSupportedServiceNames() throw()\
2096 : { \
2097 : const OUString aServiceName( className##_getImplementationName() ); \
2098 : const Sequence< OUString > aSeq( &aServiceName, 1 ); \
2099 : return aSeq; \
2100 : } \
2101 : \
2102 : Reference< XInterface > SAL_CALL className##_createInstance( \
2103 : const Reference< XMultiServiceFactory > & ) \
2104 : throw( Exception ) \
2105 : { \
2106 : return (cppu::OWeakObject*)new OOo2OasisTransformer( implName, \
2107 : subServiceName ); \
2108 : }
2109 :
2110 22 : OOO_IMPORTER( XMLWriterImportOOO,
2111 : "com.sun.star.comp.Writer.XMLImporter",
2112 : "com.sun.star.comp.Writer.XMLOasisImporter" )
2113 29 : OOO_IMPORTER( XMLWriterStylesImportOOO,
2114 : "com.sun.star.comp.Writer.XMLStylesImporter",
2115 : "com.sun.star.comp.Writer.XMLOasisStylesImporter" )
2116 30 : OOO_IMPORTER( XMLWriterContentImportOOO,
2117 : "com.sun.star.comp.Writer.XMLContentImporter",
2118 : "com.sun.star.comp.Writer.XMLOasisContentImporter" )
2119 39 : OOO_IMPORTER( XMLWriterMetaImportOOO,
2120 : "com.sun.star.comp.Writer.XMLMetaImporter",
2121 : "com.sun.star.comp.Writer.XMLOasisMetaImporter" )
2122 41 : OOO_IMPORTER( XMLWriterSettingsImportOOO,
2123 : "com.sun.star.comp.Writer.XMLSettingsImporter",
2124 : "com.sun.star.comp.Writer.XMLOasisSettingsImporter" )
2125 :
2126 0 : OOO_IMPORTER( XMLImpressImportOOO,
2127 : "com.sun.star.comp.Impress.XMLImporter",
2128 : "com.sun.star.comp.Impress.XMLOasisImporter" )
2129 10 : OOO_IMPORTER( XMLImpressStylesImportOOO,
2130 : "com.sun.star.comp.Impress.XMLStylesImporter",
2131 : "com.sun.star.comp.Impress.XMLOasisStylesImporter" )
2132 13 : OOO_IMPORTER( XMLImpressContentImportOOO,
2133 : "com.sun.star.comp.Impress.XMLContentImporter",
2134 : "com.sun.star.comp.Impress.XMLOasisContentImporter" )
2135 15 : OOO_IMPORTER( XMLImpressMetaImportOOO,
2136 : "com.sun.star.comp.Impress.XMLMetaImporter",
2137 : "com.sun.star.comp.Impress.XMLOasisMetaImporter" )
2138 11 : OOO_IMPORTER( XMLImpressSettingsImportOOO,
2139 : "com.sun.star.comp.Impress.XMLSettingsImporter",
2140 : "com.sun.star.comp.Impress.XMLOasisSettingsImporter" )
2141 :
2142 13 : OOO_IMPORTER( XMLDrawImportOOO,
2143 : "com.sun.star.comp.Draw.XMLImporter",
2144 : "com.sun.star.comp.Draw.XMLOasisImporter" )
2145 18 : OOO_IMPORTER( XMLDrawStylesImportOOO,
2146 : "com.sun.star.comp.Draw.XMLStylesImporter",
2147 : "com.sun.star.comp.Draw.XMLOasisStylesImporter" )
2148 21 : OOO_IMPORTER( XMLDrawContentImportOOO,
2149 : "com.sun.star.comp.Draw.XMLContentImporter",
2150 : "com.sun.star.comp.Draw.XMLOasisContentImporter" )
2151 17 : OOO_IMPORTER( XMLDrawMetaImportOOO,
2152 : "com.sun.star.comp.Draw.XMLMetaImporter",
2153 : "com.sun.star.comp.Draw.XMLOasisMetaImporter" )
2154 18 : OOO_IMPORTER( XMLDrawSettingsImportOOO,
2155 : "com.sun.star.comp.Draw.XMLSettingsImporter",
2156 : "com.sun.star.comp.Draw.XMLOasisSettingsImporter" )
2157 :
2158 27 : OOO_IMPORTER( XMLCalcImportOOO,
2159 : "com.sun.star.comp.Calc.XMLImporter",
2160 : "com.sun.star.comp.Calc.XMLOasisImporter" )
2161 43 : OOO_IMPORTER( XMLCalcStylesImportOOO,
2162 : "com.sun.star.comp.Calc.XMLStylesImporter",
2163 : "com.sun.star.comp.Calc.XMLOasisStylesImporter" )
2164 43 : OOO_IMPORTER( XMLCalcContentImportOOO,
2165 : "com.sun.star.comp.Calc.XMLContentImporter",
2166 : "com.sun.star.comp.Calc.XMLOasisContentImporter" )
2167 45 : OOO_IMPORTER( XMLCalcMetaImportOOO,
2168 : "com.sun.star.comp.Calc.XMLMetaImporter",
2169 : "com.sun.star.comp.Calc.XMLOasisMetaImporter" )
2170 49 : OOO_IMPORTER( XMLCalcSettingsImportOOO,
2171 : "com.sun.star.comp.Calc.XMLSettingsImporter",
2172 : "com.sun.star.comp.Calc.XMLOasisSettingsImporter" )
2173 :
2174 14 : OOO_IMPORTER( XMLChartImportOOO,
2175 : "com.sun.star.comp.Chart.XMLImporter",
2176 : "com.sun.star.comp.Chart.XMLOasisImporter" )
2177 21 : OOO_IMPORTER( XMLChartStylesImportOOO,
2178 : "com.sun.star.comp.Chart.XMLStylesImporter",
2179 : "com.sun.star.comp.Chart.XMLOasisStylesImporter" )
2180 22 : OOO_IMPORTER( XMLChartContentImportOOO,
2181 : "com.sun.star.comp.Chart.XMLContentImporter",
2182 : "com.sun.star.comp.Chart.XMLOasisContentImporter" )
2183 :
2184 41 : OOO_IMPORTER( XMLMathMetaImportOOO,
2185 : "com.sun.star.comp.Math.XMLMetaImporter",
2186 : "com.sun.star.comp.Math.XMLOasisMetaImporter" )
2187 42 : OOO_IMPORTER( XMLMathSettingsImportOOO,
2188 : "com.sun.star.comp.Math.XMLSettingsImporter",
2189 : "com.sun.star.comp.Math.XMLOasisSettingsImporter" )
2190 :
2191 37 : OOO_IMPORTER( XMLMetaImportOOO,
2192 : "com.sun.star.document.XMLMetaImporter",
2193 : "com.sun.star.document.XMLOasisMetaImporter" )
2194 :
2195 58 : OOO_IMPORTER( XMLAutoTextEventImportOOO,
2196 : "com.sun.star.comp.Writer.XMLAutotextEventsImporter",
2197 : "com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter" )
2198 :
2199 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|