1*63bba73cSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*63bba73cSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*63bba73cSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*63bba73cSAndrew Rist  * distributed with this work for additional information
6*63bba73cSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*63bba73cSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*63bba73cSAndrew Rist  * "License"); you may not use this file except in compliance
9*63bba73cSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*63bba73cSAndrew Rist  *
11*63bba73cSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*63bba73cSAndrew Rist  *
13*63bba73cSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*63bba73cSAndrew Rist  * software distributed under the License is distributed on an
15*63bba73cSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*63bba73cSAndrew Rist  * KIND, either express or implied.  See the License for the
17*63bba73cSAndrew Rist  * specific language governing permissions and limitations
18*63bba73cSAndrew Rist  * under the License.
19*63bba73cSAndrew Rist  *
20*63bba73cSAndrew Rist  *************************************************************/
21*63bba73cSAndrew Rist 
22*63bba73cSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_xmloff.hxx"
26cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySetInfo.hpp>
27cdf0e10cSrcweir #include <rtl/uuid.h>
28cdf0e10cSrcweir #include <rtl/ustrbuf.hxx>
29cdf0e10cSrcweir #include <xmloff/nmspmap.hxx>
30cdf0e10cSrcweir #include "xmloff/xmlnmspe.hxx"
31cdf0e10cSrcweir #include <xmloff/xmltoken.hxx>
32cdf0e10cSrcweir #include "DeepTContext.hxx"
33cdf0e10cSrcweir #include "MetaTContext.hxx"
34cdf0e10cSrcweir #include "DocumentTContext.hxx"
35cdf0e10cSrcweir #ifndef _XMLOFF_NOTESCONTEXT_HXX
36cdf0e10cSrcweir #include "NotesTContext.hxx"
37cdf0e10cSrcweir #endif
38cdf0e10cSrcweir #include "StyleOASISTContext.hxx"
39cdf0e10cSrcweir #include "FrameOASISTContext.hxx"
40cdf0e10cSrcweir #include "EventOASISTContext.hxx"
41cdf0e10cSrcweir #include "DlgOASISTContext.hxx"
42cdf0e10cSrcweir #ifndef _XMLOFF_CONTROLOASISTCONTEXT_HXX
43cdf0e10cSrcweir #include "ControlOASISTContext.hxx"
44cdf0e10cSrcweir #endif
45cdf0e10cSrcweir #include "FormPropOASISTContext.hxx"
46cdf0e10cSrcweir #include "ChartOASISTContext.hxx"
47cdf0e10cSrcweir #include "ChartPlotAreaOASISTContext.hxx"
48cdf0e10cSrcweir #include "MutableAttrList.hxx"
49cdf0e10cSrcweir #include "ElemTransformerAction.hxx"
50cdf0e10cSrcweir #include "AttrTransformerAction.hxx"
51cdf0e10cSrcweir #include "TransformerActions.hxx"
52cdf0e10cSrcweir #include "FamilyType.hxx"
53cdf0e10cSrcweir #include <xmloff/xmluconv.hxx>
54cdf0e10cSrcweir #include "Oasis2OOo.hxx"
55cdf0e10cSrcweir 
56cdf0e10cSrcweir using ::rtl::OUString;
57cdf0e10cSrcweir using ::rtl::OUStringBuffer;
58cdf0e10cSrcweir using namespace ::osl;
59cdf0e10cSrcweir using namespace ::xmloff::token;
60cdf0e10cSrcweir using namespace ::com::sun::star::uno;
61cdf0e10cSrcweir using namespace ::com::sun::star::lang;
62cdf0e10cSrcweir using namespace ::com::sun::star::xml::sax;
63cdf0e10cSrcweir using namespace ::com::sun::star::beans;
64cdf0e10cSrcweir 
65cdf0e10cSrcweir OUString SAL_CALL Oasis2OOoTransformer_getImplementationName() throw();
66cdf0e10cSrcweir 
67cdf0e10cSrcweir enum XMLUserDefinedTransformerAction
68cdf0e10cSrcweir {
69cdf0e10cSrcweir 	XML_ETACTION_META=XML_ETACTION_USER_DEFINED,
70cdf0e10cSrcweir 	XML_ETACTION_DOCUMENT,
71cdf0e10cSrcweir     XML_ETACTION_BODY,
72cdf0e10cSrcweir 	XML_ETACTION_NOTES,
73cdf0e10cSrcweir 	XML_ETACTION_TABLE,
74cdf0e10cSrcweir 	XML_ETACTION_STYLE,
75cdf0e10cSrcweir 	XML_ETACTION_STYLE_RENAME,
76cdf0e10cSrcweir 	XML_ETACTION_FRAME,
77cdf0e10cSrcweir 	XML_ETACTION_EVENT,
78cdf0e10cSrcweir 	XML_ETACTION_DLG,
79cdf0e10cSrcweir 	XML_ETACTION_TAB_STOP,
80cdf0e10cSrcweir 	XML_ETACTION_FORM_CONTROL,
81cdf0e10cSrcweir 	XML_ETACTION_FORM_PROPERTY,
82cdf0e10cSrcweir 	XML_ETACTION_CONFIG_ITEM,
83cdf0e10cSrcweir 	XML_ETACTION_TRACKED_CHANGES,
84cdf0e10cSrcweir 	XML_ETACTION_CHART,
85cdf0e10cSrcweir 	XML_ETACTION_CHART_PLOT_AREA
86cdf0e10cSrcweir };
87cdf0e10cSrcweir 
88cdf0e10cSrcweir #define ENTRY3( n, l, a, p1, p2, p3 ) \
89cdf0e10cSrcweir 	{ XML_NAMESPACE_##n, XML_##l, a, p1, p2, p3 }
90cdf0e10cSrcweir #define ENTRY3QNQ( n, l, a, n1, l1, p2, n3, l3 ) \
91cdf0e10cSrcweir 	ENTRY3( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), \
92cdf0e10cSrcweir 			p2, XMLTransformerActionInit::QNameParam( n3, l3 ) )
93cdf0e10cSrcweir 
94cdf0e10cSrcweir #define ENTRY2( n, l, a, p1, p2 ) \
95cdf0e10cSrcweir 	ENTRY3( n, l, a, p1, p2, 0 )
96cdf0e10cSrcweir #define ENTRY2QQ( n, l, a, n1, l1, n2, l2 ) \
97cdf0e10cSrcweir 	ENTRY2( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), \
98cdf0e10cSrcweir 			XMLTransformerActionInit::QNameParam( n2, l2 ) )
99cdf0e10cSrcweir #define ENTRY2QN( n, l, a, n1, l1, p2 ) \
100cdf0e10cSrcweir 	ENTRY2( n, l, a, XMLTransformerActionInit::QNameParam( n1, l1 ), p2 )
101cdf0e10cSrcweir 
102cdf0e10cSrcweir #define ENTRY1( n, l, a, p1 ) \
103cdf0e10cSrcweir 	ENTRY3( n, l, a, p1, 0, 0 )
104cdf0e10cSrcweir #define ENTRY1Q( n, l, a, p1, t1 ) \
105cdf0e10cSrcweir 	ENTRY1( n, l, a, XMLTransformerActionInit::QNameParam( p1, t1 ) )
106cdf0e10cSrcweir 
107cdf0e10cSrcweir #define ENTRY0( n, l, a ) \
108cdf0e10cSrcweir 	ENTRY3( n, l, a, 0, 0, 0 )
109cdf0e10cSrcweir 
110cdf0e10cSrcweir // BM: a macro to put two tokens into one sal_Int32 for the action
111cdf0e10cSrcweir // XML_ATACTION_RENAME_ATTRIBUTE
112cdf0e10cSrcweir #define RENAME_ENTRY( f, s ) \
113cdf0e10cSrcweir     (static_cast< sal_Int32 >(f) | (static_cast< sal_Int32 >(s) << 16))
114cdf0e10cSrcweir 
115cdf0e10cSrcweir static XMLTransformerActionInit aActionTable[] =
116cdf0e10cSrcweir {
117cdf0e10cSrcweir 	// add office:class from <office:document> and <office:document-content>
118cdf0e10cSrcweir 	ENTRY0( OFFICE, DOCUMENT, XML_ETACTION_DOCUMENT ),
119cdf0e10cSrcweir 	ENTRY0( OFFICE, DOCUMENT_CONTENT, XML_ETACTION_DOCUMENT ),
120cdf0e10cSrcweir 	ENTRY1Q( OOO, AUTO_TEXT_EVENTS, XML_ETACTION_RENAME_ELEM,
121cdf0e10cSrcweir 						  XML_NAMESPACE_OFFICE, XML_AUTO_TEXT_EVENTS),
122cdf0e10cSrcweir 
123cdf0e10cSrcweir 	// add <meta:keywords>
124cdf0e10cSrcweir 	ENTRY0( OFFICE, META, XML_ETACTION_META ),
125cdf0e10cSrcweir 
126cdf0e10cSrcweir     // rename <office:scripts> to <office:script>
127cdf0e10cSrcweir     ENTRY1Q( OFFICE, SCRIPTS, XML_ETACTION_RENAME_ELEM,
128cdf0e10cSrcweir                         XML_NAMESPACE_OFFICE, XML_SCRIPT ),
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 	// rename <office:script> to <office:script-data> and process attributes
131cdf0e10cSrcweir     ENTRY2QN( OFFICE, SCRIPT, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
132cdf0e10cSrcweir                         XML_NAMESPACE_OFFICE, XML_SCRIPT_DATA,
133cdf0e10cSrcweir                         OASIS_SCRIPT_ACTIONS ),
134cdf0e10cSrcweir 
135cdf0e10cSrcweir     // rename <ooo:libraries> to <script:libraries>
136cdf0e10cSrcweir     ENTRY1Q( OOO, LIBRARIES, XML_ETACTION_RENAME_ELEM,
137cdf0e10cSrcweir                         XML_NAMESPACE_SCRIPT, XML_LIBRARIES ),
138cdf0e10cSrcweir 
139cdf0e10cSrcweir     // rename <ooo:library-linked> to <script:library-linked> and process attributes
140cdf0e10cSrcweir     ENTRY2QN( OOO, LIBRARY_LINKED, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
141cdf0e10cSrcweir                         XML_NAMESPACE_SCRIPT, XML_LIBRARY_LINKED,
142cdf0e10cSrcweir                         OASIS_SCRIPT_ACTIONS ),
143cdf0e10cSrcweir 
144cdf0e10cSrcweir     // rename <ooo:library-embedded> to <script:library-embedded> and process attributes
145cdf0e10cSrcweir     ENTRY2QN( OOO, LIBRARY_EMBEDDED, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
146cdf0e10cSrcweir                         XML_NAMESPACE_SCRIPT, XML_LIBRARY_EMBEDDED,
147cdf0e10cSrcweir                         OASIS_SCRIPT_ACTIONS ),
148cdf0e10cSrcweir 
149cdf0e10cSrcweir     // rename <ooo:module> to <script:module> and process attributes
150cdf0e10cSrcweir     ENTRY2QN( OOO, MODULE, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
151cdf0e10cSrcweir                         XML_NAMESPACE_SCRIPT, XML_MODULE,
152cdf0e10cSrcweir                         OASIS_SCRIPT_ACTIONS ),
153cdf0e10cSrcweir 
154cdf0e10cSrcweir     // rename <ooo:source-code> to <script:source-code>
155cdf0e10cSrcweir     ENTRY1Q( OOO, SOURCE_CODE, XML_ETACTION_RENAME_ELEM,
156cdf0e10cSrcweir                         XML_NAMESPACE_SCRIPT, XML_SOURCE_CODE ),
157cdf0e10cSrcweir 
158cdf0e10cSrcweir 	ENTRY0( OFFICE, BODY, XML_ETACTION_BODY ),
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 	// rename <office:font-face-decls> to <office:font-decl>,
161cdf0e10cSrcweir 	// rename <style:font-face> to <style:font-decl>, process attrs
162cdf0e10cSrcweir 	ENTRY1Q( OFFICE, FONT_FACE_DECLS, XML_ETACTION_RENAME_ELEM,
163cdf0e10cSrcweir 						XML_NAMESPACE_OFFICE, XML_FONT_DECLS ),
164cdf0e10cSrcweir 	ENTRY2QN( STYLE, FONT_FACE, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
165cdf0e10cSrcweir 						XML_NAMESPACE_STYLE, XML_FONT_DECL,
166cdf0e10cSrcweir 		   				OASIS_FONT_FACE_ACTIONS ),
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 	// remove genre element
169cdf0e10cSrcweir 	ENTRY0( OFFICE, TEXT, XML_ETACTION_COPY_CONTENT ),
170cdf0e10cSrcweir 	ENTRY0( OFFICE, DRAWING, XML_ETACTION_COPY_CONTENT ),
171cdf0e10cSrcweir 	ENTRY0( OFFICE, PRESENTATION, XML_ETACTION_COPY_CONTENT ),
172cdf0e10cSrcweir 	ENTRY0( OFFICE, SPREADSHEET, XML_ETACTION_COPY_CONTENT ),
173cdf0e10cSrcweir 	ENTRY0( OFFICE, CHART, XML_ETACTION_COPY_CONTENT ),
174cdf0e10cSrcweir 	ENTRY0( OFFICE, IMAGE, XML_ETACTION_COPY_CONTENT ),
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 	// rename <style:page-layout> to <style:page-master>
177cdf0e10cSrcweir 	// ENTRY1Q( STYLE, PAGE_LAYOUT, RENAME_ELEM,
178cdf0e10cSrcweir 	//						XML_NAMESPACE_STYLE, XML_PAGE_MASTER ),
179cdf0e10cSrcweir 	ENTRY1( STYLE, MASTER_PAGE, XML_ETACTION_PROC_ATTRS,
180cdf0e10cSrcweir 						OASIS_MASTER_PAGE_ACTIONS ),
181cdf0e10cSrcweir 
182cdf0e10cSrcweir 	// merge <style:*-properties> into <style:properties> and do other
183cdf0e10cSrcweir 	// styles processing
184cdf0e10cSrcweir 	ENTRY1( STYLE, STYLE, XML_ETACTION_STYLE,
185cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
186cdf0e10cSrcweir 	ENTRY1( STYLE, DEFAULT_STYLE, XML_ETACTION_STYLE,
187cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
188cdf0e10cSrcweir 	ENTRY2QN( STYLE, PAGE_LAYOUT, XML_ETACTION_STYLE_RENAME,
189cdf0e10cSrcweir 						XML_NAMESPACE_STYLE, XML_PAGE_MASTER,
190cdf0e10cSrcweir 		  				XML_FAMILY_TYPE_PAGE_LAYOUT ),
191cdf0e10cSrcweir 	ENTRY1( NUMBER, NUMBER_STYLE, XML_ETACTION_STYLE,
192cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
193cdf0e10cSrcweir 	ENTRY1( NUMBER, CURRENCY_STYLE, XML_ETACTION_STYLE,
194cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
195cdf0e10cSrcweir 	ENTRY1( NUMBER, PERCENTAGE_STYLE, XML_ETACTION_STYLE,
196cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
197cdf0e10cSrcweir 	ENTRY1( NUMBER, DATE_STYLE, XML_ETACTION_STYLE,
198cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
199cdf0e10cSrcweir 	ENTRY1( NUMBER, TIME_STYLE, XML_ETACTION_STYLE,
200cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
201cdf0e10cSrcweir 	ENTRY1( NUMBER, BOOLEAN_STYLE, XML_ETACTION_STYLE,
202cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
203cdf0e10cSrcweir 	ENTRY1( NUMBER, TEXT_STYLE, XML_ETACTION_STYLE,
204cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_DATA ),
205cdf0e10cSrcweir 	ENTRY1( TEXT, LIST_STYLE, XML_ETACTION_STYLE,
206cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_LIST ),
207cdf0e10cSrcweir //	ENTRY0( TEXT, OUTLINE_STYLE, STYLE ),
208cdf0e10cSrcweir 
209cdf0e10cSrcweir 	ENTRY1( STYLE, HEADER_STYLE, XML_ETACTION_STYLE,
210cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_HEADER_FOOTER ),
211cdf0e10cSrcweir 	ENTRY1( STYLE, FOOTER_STYLE, XML_ETACTION_STYLE,
212cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_HEADER_FOOTER ),
213cdf0e10cSrcweir 	ENTRY1( TEXT, LIST_LEVEL_STYLE_NUMBER, XML_ETACTION_STYLE,
214cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_LIST ),
215cdf0e10cSrcweir 	ENTRY1( TEXT, LIST_LEVEL_STYLE_BULLET, XML_ETACTION_STYLE,
216cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_LIST ),
217cdf0e10cSrcweir 	ENTRY1( TEXT, LIST_LEVEL_STYLE_IMAGE, XML_ETACTION_STYLE,
218cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_LIST ),
219cdf0e10cSrcweir 	ENTRY1( TEXT, OUTLINE_LEVEL_STYLE, XML_ETACTION_STYLE,
220cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_LIST ),
221cdf0e10cSrcweir 	ENTRY1( DRAW, GRADIENT, XML_ETACTION_STYLE,
222cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_GRADIENT ),
223cdf0e10cSrcweir 	ENTRY1( DRAW, FILL_IMAGE, XML_ETACTION_STYLE,
224cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_FILL_IMAGE ),
225cdf0e10cSrcweir 	ENTRY2QN( DRAW, OPACITY, XML_ETACTION_STYLE_RENAME,
226cdf0e10cSrcweir 				XML_NAMESPACE_DRAW, XML_TRANSPARENCY,
227cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_GRADIENT ),
228cdf0e10cSrcweir 	ENTRY1( DRAW, MARKER, XML_ETACTION_STYLE,
229cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_MARKER ),
230cdf0e10cSrcweir 	ENTRY1( DRAW, HATCH, XML_ETACTION_STYLE,
231cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_HATCH ),
232cdf0e10cSrcweir 	ENTRY1( DRAW, STROKE_DASH, XML_ETACTION_STYLE,
233cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_STROKE_DASH ),
234cdf0e10cSrcweir 
235cdf0e10cSrcweir 	// process <text:h/p>: process style-name attributes,
236cdf0e10cSrcweir 	// rename <text:h>'s text:outline-level to text:level,
237cdf0e10cSrcweir 	ENTRY1( TEXT, H, XML_ETACTION_PROC_ATTRS, OASIS_PARA_ACTIONS ),
238cdf0e10cSrcweir 	ENTRY1( TEXT, P, XML_ETACTION_PROC_ATTRS, OASIS_PARA_ACTIONS ),
239cdf0e10cSrcweir 
240cdf0e10cSrcweir 	// process <test:list>'s text:style-name attributes
241cdf0e10cSrcweir 	// rename <text:list> to <text:ordered-list> or <text:unordered-list>
242cdf0e10cSrcweir 	// TODO: All list currenty are renamed to <text:ordered-list>
243cdf0e10cSrcweir 	ENTRY2QN( TEXT, LIST, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
244cdf0e10cSrcweir 			XML_NAMESPACE_TEXT, XML_ORDERED_LIST,
245cdf0e10cSrcweir 		    OASIS_LIST_STYLE_REF_ACTIONS ),
246cdf0e10cSrcweir 
247cdf0e10cSrcweir 	// rename <text:note*> to <text:footnote*> or <text:endnote*>
248cdf0e10cSrcweir 	ENTRY1( TEXT, NOTES_CONFIGURATION, XML_ETACTION_NOTES,
249cdf0e10cSrcweir 													XML_NOTES_CONFIGURATION),
250cdf0e10cSrcweir 	ENTRY1( TEXT, NOTE, XML_ETACTION_NOTES, XML_NOTE ),
251cdf0e10cSrcweir 
252cdf0e10cSrcweir 	// rename <text:footnote> and <text:endnote> to <text:note>
253cdf0e10cSrcweir 	ENTRY1( TEXT, NOTE_REF, XML_ETACTION_NOTES, XML_NOTE_REF ),
254cdf0e10cSrcweir 
255cdf0e10cSrcweir 	// rename <text:tab> to <text:tab-stop>
256cdf0e10cSrcweir 	ENTRY1Q( TEXT, TAB, XML_ETACTION_RENAME_ELEM,
257cdf0e10cSrcweir 						XML_NAMESPACE_TEXT, XML_TAB_STOP ),
258cdf0e10cSrcweir 
259cdf0e10cSrcweir 
260cdf0e10cSrcweir 	// replace <table:table tabke:is-sub-table> with <table:sub-table>
261cdf0e10cSrcweir 	ENTRY0( TABLE, TABLE, XML_ETACTION_TABLE ),
262cdf0e10cSrcweir 
263cdf0e10cSrcweir 	// merge frame element
264cdf0e10cSrcweir 	ENTRY0( DRAW, FRAME, XML_ETACTION_FRAME ),
265cdf0e10cSrcweir 
266cdf0e10cSrcweir 	// process events
267cdf0e10cSrcweir 	ENTRY1Q( OFFICE, EVENT_LISTENERS, XML_ETACTION_RENAME_ELEM,
268cdf0e10cSrcweir 		  			XML_NAMESPACE_OFFICE, XML_EVENTS ),
269cdf0e10cSrcweir 	ENTRY0( SCRIPT, EVENT_LISTENER, XML_ETACTION_EVENT ),
270cdf0e10cSrcweir 	ENTRY0( SCRIPT, EVENT, XML_ETACTION_EVENT ),
271cdf0e10cSrcweir 	ENTRY0( PRESENTATION, EVENT_LISTENER, XML_ETACTION_EVENT ),
272cdf0e10cSrcweir 
273cdf0e10cSrcweir 	// process Basic dialogs
274cdf0e10cSrcweir 	ENTRY0( DLG, STYLE, XML_ETACTION_DLG ),
275cdf0e10cSrcweir 
276cdf0e10cSrcweir 	// process length attributes
277cdf0e10cSrcweir 	ENTRY1( DRAW, RECT, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
278cdf0e10cSrcweir 	ENTRY1( DRAW, LINE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
279cdf0e10cSrcweir 	ENTRY1( DRAW, POLYLINE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
280cdf0e10cSrcweir 	ENTRY1( DRAW, POLYGON, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
281cdf0e10cSrcweir 	ENTRY1( DRAW, PATH, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
282cdf0e10cSrcweir 	ENTRY1( DRAW, CIRCLE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
283cdf0e10cSrcweir 	ENTRY1( DRAW, ELLIPSE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
284cdf0e10cSrcweir 	ENTRY1( DRAW, CONNECTOR, XML_ETACTION_PROC_ATTRS, OASIS_CONNECTOR_ACTIONS ),
285cdf0e10cSrcweir 	ENTRY1( DRAW, CAPTION, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
286cdf0e10cSrcweir 	ENTRY1( DRAW, MEASURE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
287cdf0e10cSrcweir 	ENTRY1( DRAW, CONTROL, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
288cdf0e10cSrcweir 	ENTRY1( DRAW, PAGE_THUMBNAIL, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
289cdf0e10cSrcweir 	ENTRY1( DRAW, G, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
290cdf0e10cSrcweir //	ENTRY1( DRAW, FRAME, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
291cdf0e10cSrcweir 	ENTRY1( DRAW, TEXT_BOX, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
292cdf0e10cSrcweir 	ENTRY1( PRESENTATION, PLACEHOLDER, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
293cdf0e10cSrcweir 	ENTRY1( DRAW, CONTOUR_POLYGON, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
294cdf0e10cSrcweir 	ENTRY1( DRAW, CONTOUR_PATH, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
295cdf0e10cSrcweir 	ENTRY1( DRAW, AREA_RECTANGLE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
296cdf0e10cSrcweir 	ENTRY1( DRAW, AREA_CIRCLE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
297cdf0e10cSrcweir 	ENTRY1( DRAW, AREA_POLYGON, XML_ETACTION_PROC_ATTRS, OASIS_DRAW_AREA_POLYGON_ACTIONS ),
298cdf0e10cSrcweir 	ENTRY1( DRAW, GLUE_POINT, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
299cdf0e10cSrcweir 	ENTRY1( DR3D, SCENE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
300cdf0e10cSrcweir 	ENTRY1( DR3D, CUBE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
301cdf0e10cSrcweir 	ENTRY1( DR3D, SPHERE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
302cdf0e10cSrcweir 	ENTRY1( DR3D, EXTRUDE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
303cdf0e10cSrcweir 	ENTRY1( DR3D, ROTATE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
304cdf0e10cSrcweir 	ENTRY1( CHART, TITLE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
305cdf0e10cSrcweir 	ENTRY1( CHART, SUBTITLE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
306cdf0e10cSrcweir 	ENTRY1( CHART, FOOTER, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
307cdf0e10cSrcweir 	ENTRY1( CHART, LEGEND, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
308cdf0e10cSrcweir 	ENTRY1( CHART, WALL, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
309cdf0e10cSrcweir 	ENTRY1( CHART, FLOOR, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
310cdf0e10cSrcweir 	ENTRY1( CHART, AXIS, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
311cdf0e10cSrcweir 	ENTRY1( CHART, GRID, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
312cdf0e10cSrcweir 	ENTRY1( CHART, SERIES, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
313cdf0e10cSrcweir 	ENTRY1( CHART, DATA_POINT, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
314cdf0e10cSrcweir 	ENTRY1( CHART, MEAN_VALUE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
315cdf0e10cSrcweir 	ENTRY1( CHART, ERROR_INDICATOR, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
316cdf0e10cSrcweir 	ENTRY1( CHART, REGRESSION_CURVE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
317cdf0e10cSrcweir 	ENTRY1( CHART, STOCK_GAIN_MARKER, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
318cdf0e10cSrcweir 	ENTRY1( CHART, STOCK_LOSS_MARKER, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
319cdf0e10cSrcweir 	ENTRY1( CHART, STOCK_RANGE_LINE, XML_ETACTION_PROC_ATTRS, OASIS_SHAPE_ACTIONS ),
320cdf0e10cSrcweir 
321cdf0e10cSrcweir 	ENTRY0( CHART, CHART, XML_ETACTION_CHART ),
322cdf0e10cSrcweir     ENTRY0( CHART, PLOT_AREA, XML_ETACTION_CHART_PLOT_AREA ),
323cdf0e10cSrcweir 
324cdf0e10cSrcweir 	ENTRY0( CONFIG, CONFIG_ITEM, XML_ETACTION_CONFIG_ITEM ),
325cdf0e10cSrcweir 	ENTRY1Q( TEXT, TRACKED_CHANGES, XML_ETACTION_TRACKED_CHANGES,
326cdf0e10cSrcweir 						XML_NAMESPACE_TEXT, XML_PROTECTION_KEY ),
327cdf0e10cSrcweir 	ENTRY1Q( TABLE, TRACKED_CHANGES, XML_ETACTION_TRACKED_CHANGES,
328cdf0e10cSrcweir 						XML_NAMESPACE_TABLE, XML_PROTECTION_KEY ),
329cdf0e10cSrcweir 
330cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_TAB_STOP, XML_ETACTION_PROC_ATTRS,
331cdf0e10cSrcweir 				  OASIS_INDEX_ENTRY_TAB_STOP_ACTIONS ),
332cdf0e10cSrcweir 	ENTRY0( STYLE, TAB_STOP, XML_ETACTION_TAB_STOP ),
333cdf0e10cSrcweir 	ENTRY1( STYLE, BACKGROUND_IMAGE, XML_ETACTION_PROC_ATTRS,
334cdf0e10cSrcweir 		 			OASIS_BACKGROUND_IMAGE_ACTIONS  ),
335cdf0e10cSrcweir 	ENTRY1( TEXT, LINENUMBERING_CONFIGURATION, XML_ETACTION_PROC_ATTRS,
336cdf0e10cSrcweir 				  OASIS_LINENUMBERING_ACTIONS ),
337cdf0e10cSrcweir 	ENTRY1( STYLE, FOOTNOTE_SEP, XML_ETACTION_PROC_ATTRS,
338cdf0e10cSrcweir 				   OASIS_FOOTNOTE_SEP_ACTIONS ),
339cdf0e10cSrcweir 	ENTRY1( STYLE, DROP_CAP, XML_ETACTION_PROC_ATTRS, OASIS_DROP_CAP_ACTIONS ),
340cdf0e10cSrcweir 	ENTRY1( STYLE, COLUMNS, XML_ETACTION_PROC_ATTRS, OASIS_COLUMNS_ACTIONS ),
341cdf0e10cSrcweir 	ENTRY1( STYLE, COLUMN, XML_ETACTION_PROC_ATTRS, OASIS_COLUMNS_ACTIONS ),
342cdf0e10cSrcweir 
343cdf0e10cSrcweir 	// process *:style-name attributes
344cdf0e10cSrcweir 	ENTRY1( STYLE, MAP, XML_ETACTION_PROC_ATTRS, OASIS_MAP_STYLE_REF_ACTIONS ),
345cdf0e10cSrcweir 	ENTRY1( TEXT, SPAN, XML_ETACTION_PROC_ATTRS, OASIS_TEXT_STYLE_REF_ACTIONS ),
346cdf0e10cSrcweir 	ENTRY1( TEXT, A, XML_ETACTION_PROC_ATTRS, OASIS_TEXT_STYLE_REF_ACTIONS ),
347cdf0e10cSrcweir 	ENTRY1( TEXT, RUBY_TEXT, XML_ETACTION_PROC_ATTRS,
348cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ),
349cdf0e10cSrcweir 	ENTRY1( TEXT, TABLE_OF_CONTENT_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
350cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
351cdf0e10cSrcweir 	ENTRY1( TEXT, ILLUSTRATION_INDEX_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
352cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
353cdf0e10cSrcweir 	ENTRY1( TEXT, TABLE_INDEX_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
354cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
355cdf0e10cSrcweir 	ENTRY1( TEXT, OBJECT_INDEX_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
356cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
357cdf0e10cSrcweir 	ENTRY1( TEXT, USER_INDEX_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
358cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
359cdf0e10cSrcweir 	ENTRY1( TEXT, ALPHABETICAL_INDEX_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
360cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
361cdf0e10cSrcweir 	ENTRY1( TEXT, BIBLIOGRAPHY_ENTRY_TEMPLATE, XML_ETACTION_PROC_ATTRS,
362cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
363cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_SOURCE_STYLE, XML_ETACTION_PROC_ATTRS,
364cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
365cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_TITLE_TEMPLATE, XML_ETACTION_PROC_ATTRS,
366cdf0e10cSrcweir 				OASIS_PARA_STYLE_REF_ACTIONS ), /* generated entry */
367cdf0e10cSrcweir 	ENTRY3QNQ( TEXT, INDEX_ENTRY_CHAPTER,
368cdf0e10cSrcweir 			XML_ETACTION_RENAME_ELEM_PROC_ATTRS_COND,
369cdf0e10cSrcweir 			XML_NAMESPACE_TEXT, XML_INDEX_ENTRY_CHAPTER_NUMBER,
370cdf0e10cSrcweir 			OASIS_TEXT_STYLE_REF_ACTIONS ,
371cdf0e10cSrcweir 		   	XML_NAMESPACE_TEXT, XML_TABLE_OF_CONTENT_ENTRY_TEMPLATE),
372cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_TEXT, XML_ETACTION_PROC_ATTRS,
373cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ), /* generated entry */
374cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_PAGE_NUMBER, XML_ETACTION_PROC_ATTRS,
375cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ), /* generated entry */
376cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_SPAN, XML_ETACTION_PROC_ATTRS,
377cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ), /* generated entry */
378cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_BIBLIOGRAPHY, XML_ETACTION_PROC_ATTRS,
379cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ), /* generated entry */
380cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_LINK_START, XML_ETACTION_PROC_ATTRS,
381cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ), /* generated entry */
382cdf0e10cSrcweir 	ENTRY1( TEXT, INDEX_ENTRY_LINK_END, XML_ETACTION_PROC_ATTRS,
383cdf0e10cSrcweir 				OASIS_TEXT_STYLE_REF_ACTIONS ), /* generated entry */
384cdf0e10cSrcweir 	ENTRY1( DRAW, PAGE, XML_ETACTION_PROC_ATTRS,
385cdf0e10cSrcweir 				OASIS_MASTER_PAGE_REF_ACTIONS ), /* generated entry */
386cdf0e10cSrcweir     // --> OD 2005-01-10 #i40011#, #i40015#
387cdf0e10cSrcweir     // - conversion of attribute <table:style-name> for <table:table-row> and
388cdf0e10cSrcweir     //   <table:table-column>
389cdf0e10cSrcweir     ENTRY1( TABLE, TABLE_ROW, XML_ETACTION_PROC_ATTRS,
390cdf0e10cSrcweir                 OASIS_TABLE_STYLE_REF_ACTIONS ),
391cdf0e10cSrcweir     ENTRY1( TABLE, TABLE_COLUMN, XML_ETACTION_PROC_ATTRS,
392cdf0e10cSrcweir                 OASIS_TABLE_STYLE_REF_ACTIONS ),
393cdf0e10cSrcweir     // <--
394cdf0e10cSrcweir 
395cdf0e10cSrcweir 	// rename office:value-* to *:value-*
396cdf0e10cSrcweir 	ENTRY1( TEXT, VARIABLE_DECL, XML_ETACTION_PROC_ATTRS,
397cdf0e10cSrcweir 			OASIS_TEXT_VALUE_TYPE_ACTIONS ), /* generated entry */
398cdf0e10cSrcweir 	ENTRY1( TEXT, VARIABLE_SET, XML_ETACTION_PROC_ATTRS,
399cdf0e10cSrcweir 			OASIS_TEXT_VALUE_TYPE_ACTIONS), /* generated entry */
400cdf0e10cSrcweir 	ENTRY1( TEXT, VARIABLE_INPUT, XML_ETACTION_PROC_ATTRS,
401cdf0e10cSrcweir 			OASIS_TEXT_VALUE_TYPE_ACTIONS), /* generated entry */
402cdf0e10cSrcweir 	ENTRY1( TEXT, USER_FIELD_DECL, XML_ETACTION_PROC_ATTRS,
403cdf0e10cSrcweir 			OASIS_TEXT_VALUE_TYPE_ACTIONS), /* generated entry */
404cdf0e10cSrcweir 	ENTRY1( TEXT, EXPRESSION, XML_ETACTION_PROC_ATTRS,
405cdf0e10cSrcweir 			OASIS_TEXT_VALUE_TYPE_ACTIONS), /* generated entry */
406cdf0e10cSrcweir     ENTRY1( TEXT, USER_DEFINED, XML_ETACTION_PROC_ATTRS,
407cdf0e10cSrcweir 			OASIS_DATETIME_ACTIONS ), // Add OASIS_TEXT_VALUE_TYPE_ACTIONS if attrs are added to text:user-defined
408cdf0e10cSrcweir 	ENTRY1( TABLE, TABLE_CELL, XML_ETACTION_PROC_ATTRS,
409cdf0e10cSrcweir 			OASIS_TABLE_VALUE_TYPE_ACTIONS), /* generated entry */
410cdf0e10cSrcweir 	ENTRY1( TABLE, COVERED_TABLE_CELL, XML_ETACTION_PROC_ATTRS,
411cdf0e10cSrcweir 			OASIS_TABLE_VALUE_TYPE_ACTIONS), /* generated entry */
412cdf0e10cSrcweir 	ENTRY1( TABLE, CHANGE_TRACK_TABLE_CELL, XML_ETACTION_PROC_ATTRS,
413cdf0e10cSrcweir 			OASIS_TABLE_VALUE_TYPE_ACTIONS), /* generated entry */
414cdf0e10cSrcweir //	ENTRY1( FORM, PROPERTY, XML_ETACTION_PROC_ATTRS,
415cdf0e10cSrcweir //			OASIS_VALUE_TYPE_ACTIONS), /* TODO: generated entry */
416cdf0e10cSrcweir //	ENTRY1( FORM, LIST_PROPERTY, XML_ETACTION_PROC_ATTRS,
417cdf0e10cSrcweir //			OASIS_VALUE_TYPE_ACTIONS), /* generated entry */
418cdf0e10cSrcweir 
419cdf0e10cSrcweir 	ENTRY1( OFFICE, ANNOTATION, XML_ETACTION_MOVE_ELEMS_TO_ATTRS,
420cdf0e10cSrcweir 			OASIS_ANNOTATION_ACTIONS ), /* generated entry */
421cdf0e10cSrcweir 	ENTRY1( OFFICE, CHANGE_INFO, XML_ETACTION_MOVE_ELEMS_TO_ATTRS,
422cdf0e10cSrcweir 			OASIS_CHANGE_INFO_ACTIONS ), /* generated entry */
423cdf0e10cSrcweir 
424cdf0e10cSrcweir 	ENTRY1( TEXT, DDE_CONNECTION_DECL, XML_ETACTION_PROC_ATTRS,
425cdf0e10cSrcweir 		 			OASIS_DDE_CONNECTION_DECL_ACTIONS  ),
426cdf0e10cSrcweir 
427cdf0e10cSrcweir 	ENTRY0( FORM, TEXT, XML_ETACTION_FORM_CONTROL ),
428cdf0e10cSrcweir 	ENTRY0( FORM, TEXTAREA, XML_ETACTION_FORM_CONTROL ),
429cdf0e10cSrcweir 	ENTRY0( FORM, FIXED_TEXT, XML_ETACTION_FORM_CONTROL ),
430cdf0e10cSrcweir 	ENTRY0( FORM, FILE, XML_ETACTION_FORM_CONTROL ),
431cdf0e10cSrcweir 	ENTRY0( FORM, PASSWORD, XML_ETACTION_FORM_CONTROL ),
432cdf0e10cSrcweir 	ENTRY0( FORM, FORMATTED_TEXT, XML_ETACTION_FORM_CONTROL ),
433cdf0e10cSrcweir 	ENTRY0( FORM, BUTTON, XML_ETACTION_FORM_CONTROL ),
434cdf0e10cSrcweir 	ENTRY0( FORM, IMAGE, XML_ETACTION_FORM_CONTROL ),
435cdf0e10cSrcweir 	ENTRY0( FORM, CHECKBOX, XML_ETACTION_FORM_CONTROL ),
436cdf0e10cSrcweir 	ENTRY0( FORM, RADIO, XML_ETACTION_FORM_CONTROL ),
437cdf0e10cSrcweir 	ENTRY0( FORM, LISTBOX, XML_ETACTION_FORM_CONTROL ),
438cdf0e10cSrcweir 	ENTRY0( FORM, COMBOBOX, XML_ETACTION_FORM_CONTROL ),
439cdf0e10cSrcweir 	ENTRY0( FORM, FRAME, XML_ETACTION_FORM_CONTROL ),
440cdf0e10cSrcweir 	ENTRY0( FORM, HIDDEN, XML_ETACTION_FORM_CONTROL ),
441cdf0e10cSrcweir 	ENTRY0( FORM, IMAGE_FRAME, XML_ETACTION_FORM_CONTROL ),
442cdf0e10cSrcweir 	ENTRY0( FORM, GRID, XML_ETACTION_FORM_CONTROL ),
443cdf0e10cSrcweir 	ENTRY0( FORM, VALUE_RANGE, XML_ETACTION_FORM_CONTROL ),
444cdf0e10cSrcweir 	ENTRY0( FORM, GENERIC_CONTROL, XML_ETACTION_FORM_CONTROL ),
445cdf0e10cSrcweir 	ENTRY1( FORM, COLUMN, XML_ETACTION_PROC_ATTRS,
446cdf0e10cSrcweir 		 			OASIS_FORM_COLUMN_ACTIONS  ),
447cdf0e10cSrcweir 	ENTRY1( FORM, PROPERTY, XML_ETACTION_FORM_PROPERTY, XML_PROPERTY ),
448cdf0e10cSrcweir 	ENTRY1( FORM, LIST_PROPERTY, XML_ETACTION_FORM_PROPERTY,
449cdf0e10cSrcweir 					XML_LIST_PROPERTY ),
450cdf0e10cSrcweir 	ENTRY1( FORM, LIST_VALUE, XML_ETACTION_FORM_PROPERTY, XML_LIST_VALUE ),
451cdf0e10cSrcweir 
452cdf0e10cSrcweir 	// process xlink:href
453cdf0e10cSrcweir 	ENTRY1( META, TEMPLATE, XML_ETACTION_PROC_ATTRS,
454cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
455cdf0e10cSrcweir 	ENTRY1( META, AUTO_RELOAD, XML_ETACTION_PROC_ATTRS,
456cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
457cdf0e10cSrcweir 	ENTRY1( TEXT, SECTION_SOURCE, XML_ETACTION_PROC_ATTRS,
458cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
459cdf0e10cSrcweir 	ENTRY1( TEXT, SCRIPT, XML_ETACTION_PROC_ATTRS,
460cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
461cdf0e10cSrcweir 	ENTRY1( TEXT, ALPHABETICAL_INDEX_AUTO_MARK_FILE, XML_ETACTION_PROC_ATTRS,
462cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
463cdf0e10cSrcweir 	ENTRY1( TABLE, TABLE_SOURCE, XML_ETACTION_PROC_ATTRS,
464cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
465cdf0e10cSrcweir 	ENTRY1( TABLE, CELL_RANGE_SOURCE, XML_ETACTION_PROC_ATTRS,
466cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
467cdf0e10cSrcweir 	ENTRY1( DRAW, A, XML_ETACTION_PROC_ATTRS,
468cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
469cdf0e10cSrcweir 	ENTRY1( PRESENTATION, SOUND, XML_ETACTION_PROC_ATTRS,
470cdf0e10cSrcweir 		OASIS_XLINK_ACTIONS ), /* generated entry */
471cdf0e10cSrcweir 	ENTRY1( FORM, FORM, XML_ETACTION_PROC_ATTRS,
472cdf0e10cSrcweir 		OASIS_FORM_ACTIONS ), /* generated entry */
473cdf0e10cSrcweir //	ENTRY1( SVG, FONT_FACE_URI, XML_ETACTION_PROC_ATTRS,
474cdf0e10cSrcweir //		OASIS_XLINK_ACTIONS ), /* generated entry */
475cdf0e10cSrcweir //	ENTRY1( SVG, DEFINITION_SRC, XML_ETACTION_PROC_ATTRS,
476cdf0e10cSrcweir //		OASIS_XLINK_ACTIONS ), /* generated entry */
477cdf0e10cSrcweir 	ENTRY2QN( CHART, SYMBOL_IMAGE, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
478cdf0e10cSrcweir               XML_NAMESPACE_STYLE, XML_SYMBOL_IMAGE,
479cdf0e10cSrcweir               OASIS_BACKGROUND_IMAGE_ACTIONS ),
480cdf0e10cSrcweir //		OASIS_XLINK_ACTIONS ), /* generated entry */
481cdf0e10cSrcweir //  events don't have real URIs
482cdf0e10cSrcweir //	ENTRY1( PRESENTATION, EVENT_LISTENER, XML_ETACTION_PROC_ATTRS,
483cdf0e10cSrcweir //		OASIS_XLINK_ACTIONS ), /* generated entry */
484cdf0e10cSrcweir //	ENTRY1( SCRIPT, EVENT_LISTENER, XML_ETACTION_PROC_ATTRS,
485cdf0e10cSrcweir //		OASIS_XLINK_ACTIONS ), /* generated entry */
486cdf0e10cSrcweir 
487cdf0e10cSrcweir 	// add namespace prefix to name
488cdf0e10cSrcweir 	ENTRY1( CONFIG, CONFIG_ITEM_SET, XML_ETACTION_PROC_ATTRS,
489cdf0e10cSrcweir 		OASIS_CONFIG_ITEM_SET_ACTIONS ),
490cdf0e10cSrcweir 
491cdf0e10cSrcweir 	// add namespace prefix to formula and condition
492cdf0e10cSrcweir 	//  text:condition
493cdf0e10cSrcweir 	ENTRY1( TEXT, SECTION, XML_ETACTION_PROC_ATTRS,
494cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
495cdf0e10cSrcweir 	//  text:formula
496cdf0e10cSrcweir 	ENTRY1( TEXT, SEQUENCE, XML_ETACTION_PROC_ATTRS,
497cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
498cdf0e10cSrcweir 	//  text:condition
499cdf0e10cSrcweir 	ENTRY1( TEXT, DATABASE_NEXT, XML_ETACTION_PROC_ATTRS,
500cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
501cdf0e10cSrcweir 	//  text:condition
502cdf0e10cSrcweir 	ENTRY2QN( TEXT, DATABASE_ROW_SELECT, XML_ETACTION_RENAME_ELEM_PROC_ATTRS,
503cdf0e10cSrcweir 		XML_NAMESPACE_TEXT, XML_DATABASE_SELECT,
504cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
505cdf0e10cSrcweir 	//  text:condition
506cdf0e10cSrcweir 	ENTRY1( TEXT, CONDITIONAL_TEXT, XML_ETACTION_PROC_ATTRS,
507cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
508cdf0e10cSrcweir 	//  text:condition
509cdf0e10cSrcweir 	ENTRY1( TEXT, HIDDEN_TEXT, XML_ETACTION_PROC_ATTRS,
510cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
511cdf0e10cSrcweir 	//  text:condition
512cdf0e10cSrcweir 	ENTRY1( TEXT, HIDDEN_PARAGRAPH, XML_ETACTION_PROC_ATTRS,
513cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
514cdf0e10cSrcweir 	//  text:formula
515cdf0e10cSrcweir 	ENTRY1( TEXT, TABLE_FORMULA, XML_ETACTION_PROC_ATTRS,
516cdf0e10cSrcweir 		OASIS_FORMULA_ACTIONS ), /* generated entry */
517cdf0e10cSrcweir 
518cdf0e10cSrcweir     //  process table::content-validation
519cdf0e10cSrcweir 	ENTRY1( TABLE, CONTENT_VALIDATION, XML_ETACTION_PROC_ATTRS,
520cdf0e10cSrcweir 		OASIS_CONTENT_VALIDATION_ACTIONS ),
521cdf0e10cSrcweir 
522cdf0e10cSrcweir 	// rename <table:dependencies> to <table:dependences>
523cdf0e10cSrcweir 	ENTRY1Q( TABLE, DEPENDENCIES, XML_ETACTION_RENAME_ELEM,
524cdf0e10cSrcweir 						XML_NAMESPACE_TABLE, XML_DEPENDENCES ),
525cdf0e10cSrcweir     ENTRY1Q( TABLE, DEPENDENCY, XML_ETACTION_RENAME_ELEM,
526cdf0e10cSrcweir                         XML_NAMESPACE_TABLE, XML_DEPENDENCE ),
527cdf0e10cSrcweir 
528cdf0e10cSrcweir     // process table::conversion-mode
529cdf0e10cSrcweir 	ENTRY1( TABLE, CONVERSION_MODE, XML_ETACTION_PROC_ATTRS,
530cdf0e10cSrcweir 			OASIS_DDE_CONV_MODE_ACTIONS ),
531cdf0e10cSrcweir 
532cdf0e10cSrcweir     // process table::data-pilot-member
533cdf0e10cSrcweir 	ENTRY1( TABLE, DATA_PILOT_MEMBER, XML_ETACTION_PROC_ATTRS,
534cdf0e10cSrcweir 			OASIS_DATAPILOT_MEMBER_ACTIONS ),
535cdf0e10cSrcweir 
536cdf0e10cSrcweir     // process table::data-pilot-level
537cdf0e10cSrcweir 	ENTRY1( TABLE, DATA_PILOT_LEVEL, XML_ETACTION_PROC_ATTRS,
538cdf0e10cSrcweir 			OASIS_DATAPILOT_LEVEL_ACTIONS ),
539cdf0e10cSrcweir 
540cdf0e10cSrcweir     // process table::source-service
541cdf0e10cSrcweir 	ENTRY1( TABLE, SOURCE_SERVICE, XML_ETACTION_PROC_ATTRS,
542cdf0e10cSrcweir 			OASIS_SOURCE_SERVICE_ACTIONS ),
543cdf0e10cSrcweir 
544cdf0e10cSrcweir     // entries for date time change (#i36576#)
545cdf0e10cSrcweir     ENTRY1( TEXT, DATE, XML_ETACTION_PROC_ATTRS, OASIS_DATETIME_ACTIONS ),
546cdf0e10cSrcweir     ENTRY1( TEXT, CREATION_DATE, XML_ETACTION_PROC_ATTRS,
547cdf0e10cSrcweir 					OASIS_DATETIME_ACTIONS ),
548cdf0e10cSrcweir     ENTRY1( TEXT, TIME, XML_ETACTION_PROC_ATTRS, OASIS_DATETIME_ACTIONS ),
549cdf0e10cSrcweir     ENTRY1( TEXT, CREATION_TIME, XML_ETACTION_PROC_ATTRS,
550cdf0e10cSrcweir 					OASIS_DATETIME_ACTIONS ),
551cdf0e10cSrcweir     ENTRY1( TEXT, PRINT_TIME, XML_ETACTION_PROC_ATTRS, OASIS_DATETIME_ACTIONS ),
552cdf0e10cSrcweir     ENTRY1( TEXT, MODIFICATION_TIME, XML_ETACTION_PROC_ATTRS,
553cdf0e10cSrcweir 					OASIS_DATETIME_ACTIONS ),
554cdf0e10cSrcweir     ENTRY1( TEXT, EDITING_DURATION, XML_ETACTION_PROC_ATTRS,
555cdf0e10cSrcweir 					OASIS_DATETIME_ACTIONS ),
556cdf0e10cSrcweir     ENTRY1( FORM, TIME, XML_ETACTION_PROC_ATTRS, OASIS_DATETIME_ACTIONS ),
557cdf0e10cSrcweir     ENTRY1( PRESENTATION, SETTINGS, XML_ETACTION_PROC_ATTRS,
558cdf0e10cSrcweir 					OASIS_DATETIME_ACTIONS ),
559cdf0e10cSrcweir 
560cdf0e10cSrcweir     // fix <text:alphabatical-index-mark text:main-etry>
561cdf0e10cSrcweir 	ENTRY1( TEXT, ALPHABETICAL_INDEX_MARK, XML_ETACTION_PROC_ATTRS,
562cdf0e10cSrcweir             OASIS_ALPHABETICAL_INDEX_MARK_ACTIONS ),
563cdf0e10cSrcweir 	ENTRY1( TEXT, ALPHABETICAL_INDEX_MARK_START, XML_ETACTION_PROC_ATTRS,
564cdf0e10cSrcweir             OASIS_ALPHABETICAL_INDEX_MARK_ACTIONS ),
565cdf0e10cSrcweir 
566cdf0e10cSrcweir 	// fix id strings in old animation elements
567cdf0e10cSrcweir 	ENTRY1( PRESENTATION, DIM, XML_ETACTION_PROC_ATTRS, OASIS_ANIMATION_ACTIONS ),
568cdf0e10cSrcweir 	ENTRY1( PRESENTATION, PLAY, XML_ETACTION_PROC_ATTRS, OASIS_ANIMATION_ACTIONS ),
569cdf0e10cSrcweir 	ENTRY1( PRESENTATION, SHOW_TEXT, XML_ETACTION_PROC_ATTRS, OASIS_ANIMATION_ACTIONS ),
570cdf0e10cSrcweir 	ENTRY1( PRESENTATION, SHOW_SHAPE, XML_ETACTION_PROC_ATTRS, OASIS_ANIMATION_ACTIONS ),
571cdf0e10cSrcweir 	ENTRY1( PRESENTATION, HIDE_TEXT, XML_ETACTION_PROC_ATTRS, OASIS_ANIMATION_ACTIONS ),
572cdf0e10cSrcweir 	ENTRY1( PRESENTATION, HIDE_SHAPE, XML_ETACTION_PROC_ATTRS, OASIS_ANIMATION_ACTIONS ),
573cdf0e10cSrcweir 
574cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ETACTION_EOT )
575cdf0e10cSrcweir };
576cdf0e10cSrcweir 
577cdf0e10cSrcweir // XML_ETACTION_STYLE
578cdf0e10cSrcweir static XMLTransformerActionInit aStyleActionTable[] =
579cdf0e10cSrcweir {
580cdf0e10cSrcweir 	ENTRY0( STYLE, FAMILY, XML_ATACTION_STYLE_FAMILY ),
581cdf0e10cSrcweir 	ENTRY1( STYLE, NAME, XML_ATACTION_DECODE_STYLE_NAME,
582cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
583cdf0e10cSrcweir 	ENTRY1( STYLE, DISPLAY_NAME, XML_ATACTION_STYLE_DISPLAY_NAME,
584cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
585cdf0e10cSrcweir 	ENTRY1( STYLE, PARENT_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
586cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
587cdf0e10cSrcweir 	ENTRY1( STYLE, NEXT_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
588cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
589cdf0e10cSrcweir 	ENTRY1( STYLE, LIST_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
590cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_LIST ),
591cdf0e10cSrcweir 	ENTRY1( STYLE, MASTER_PAGE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
592cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_MASTER_PAGE ),
593cdf0e10cSrcweir 	ENTRY0( STYLE, DEFAULT_OUTLINE_LEVEL, XML_ATACTION_REMOVE ),
594cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
595cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_TEXT ),	// list level styles
596cdf0e10cSrcweir 	ENTRY1( DRAW, NAME, XML_ATACTION_DECODE_STYLE_NAME,
597cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
598cdf0e10cSrcweir 	ENTRY1( DRAW, DISPLAY_NAME, XML_ATACTION_STYLE_DISPLAY_NAME,
599cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_END ),
600cdf0e10cSrcweir 	ENTRY0( DRAW, DISTANCE, XML_ATACTION_IN2INCH ),
601cdf0e10cSrcweir 	ENTRY0( DRAW, DOTS1_LENGTH, XML_ATACTION_IN2INCH ),
602cdf0e10cSrcweir 	ENTRY0( DRAW, DOTS2_LENGTH, XML_ATACTION_IN2INCH ),
603cdf0e10cSrcweir 	ENTRY0( SVG, WIDTH, XML_ATACTION_IN2INCH ),
604cdf0e10cSrcweir 	ENTRY0( SVG, HEIGHT, XML_ATACTION_IN2INCH ),
605cdf0e10cSrcweir 	ENTRY0( DRAW, START, XML_ATACTION_NEG_PERCENT ),
606cdf0e10cSrcweir 	ENTRY0( DRAW, END, XML_ATACTION_NEG_PERCENT ),
607cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_True ),
608cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
609cdf0e10cSrcweir };
610cdf0e10cSrcweir 
611cdf0e10cSrcweir // OASIS_FRAME_ELEM_ACTIONS
612cdf0e10cSrcweir static XMLTransformerActionInit aFrameActionTable[] =
613cdf0e10cSrcweir {
614cdf0e10cSrcweir 	ENTRY0( DRAW, TEXT_BOX, XML_ETACTION_COPY ),
615cdf0e10cSrcweir 	ENTRY0( DRAW, IMAGE, XML_ETACTION_COPY ),
616cdf0e10cSrcweir 	ENTRY0( DRAW, OBJECT, XML_ETACTION_COPY ),
617cdf0e10cSrcweir 	ENTRY0( DRAW, OBJECT_OLE, XML_ETACTION_COPY ),
618cdf0e10cSrcweir 	ENTRY0( DRAW, APPLET, XML_ETACTION_COPY ),
619cdf0e10cSrcweir 	ENTRY0( DRAW, PLUGIN, XML_ETACTION_COPY ),
620cdf0e10cSrcweir 	ENTRY0( DRAW, FLOATING_FRAME, XML_ETACTION_COPY ),
621cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
622cdf0e10cSrcweir };
623cdf0e10cSrcweir 
624cdf0e10cSrcweir // OASIS_EVENT_ELEM_ACTIONS
625cdf0e10cSrcweir static XMLTransformerActionInit aEventActionTable[] =
626cdf0e10cSrcweir {
627cdf0e10cSrcweir 	ENTRY0( XLINK, HREF, XML_ATACTION_HREF ),
628cdf0e10cSrcweir 	ENTRY1( SCRIPT, LANGUAGE, XML_ATACTION_REMOVE_NAMESPACE_PREFIX,
629cdf0e10cSrcweir 					XML_NAMESPACE_OOO ),
630cdf0e10cSrcweir 	ENTRY0( SCRIPT, EVENT_NAME, XML_ATACTION_EVENT_NAME ),
631cdf0e10cSrcweir 	ENTRY0( SCRIPT, MACRO_NAME, XML_ATACTION_MACRO_NAME ),
632cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
633cdf0e10cSrcweir };
634cdf0e10cSrcweir 
635cdf0e10cSrcweir // OASIS_EVENT_ELEM_ACTIONS
636cdf0e10cSrcweir static XMLTransformerActionInit aDlgActionTable[] =
637cdf0e10cSrcweir {
638cdf0e10cSrcweir 	ENTRY0( DLG, BORDER, XML_ATACTION_DLG_BORDER )
639cdf0e10cSrcweir };
640cdf0e10cSrcweir 
641cdf0e10cSrcweir // action table for OASIS_MASTER_PAGE_ACTIONS
642cdf0e10cSrcweir static XMLTransformerActionInit aMasterPageActionTable[] =
643cdf0e10cSrcweir {
644cdf0e10cSrcweir 	ENTRY1( STYLE, NAME, XML_ATACTION_DECODE_STYLE_NAME,
645cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_MASTER_PAGE ),
646cdf0e10cSrcweir 	ENTRY1( STYLE, DISPLAY_NAME, XML_ATACTION_STYLE_DISPLAY_NAME,
647cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_MASTER_PAGE ),
648cdf0e10cSrcweir 	ENTRY1( STYLE, NEXT_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
649cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_MASTER_PAGE ),
650cdf0e10cSrcweir 	ENTRY1Q( STYLE, PAGE_LAYOUT_NAME, XML_ATACTION_RENAME,
651cdf0e10cSrcweir 						XML_NAMESPACE_STYLE, XML_PAGE_MASTER_NAME ),
652cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
653cdf0e10cSrcweir };
654cdf0e10cSrcweir 
655cdf0e10cSrcweir // action table for OASIS_TEXT_STYLE_REF_ACTIONS
656cdf0e10cSrcweir static XMLTransformerActionInit aTextStyleRefActionTable[] =
657cdf0e10cSrcweir {
658cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
659cdf0e10cSrcweir 				XML_FAMILY_TYPE_TEXT ),
660cdf0e10cSrcweir 	ENTRY1( TEXT, VISITED_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
661cdf0e10cSrcweir 		  		XML_FAMILY_TYPE_TEXT ),
662cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_False ),
663cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
664cdf0e10cSrcweir };
665cdf0e10cSrcweir 
666cdf0e10cSrcweir // action table for OASIS_PARA_STYLE_REF_ACTIONS
667cdf0e10cSrcweir static XMLTransformerActionInit aParaStyleRefActionTable[] =
668cdf0e10cSrcweir {
669cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
670cdf0e10cSrcweir 				XML_FAMILY_TYPE_PARAGRAPH ),
671cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
672cdf0e10cSrcweir };
673cdf0e10cSrcweir 
674cdf0e10cSrcweir 
675cdf0e10cSrcweir // action table for OASIS_LIST_STYLE_REF_ACTIONS
676cdf0e10cSrcweir static XMLTransformerActionInit aListStyleRefActionTable[] =
677cdf0e10cSrcweir {
678cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
679cdf0e10cSrcweir 				XML_FAMILY_TYPE_LIST ),
680cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
681cdf0e10cSrcweir };
682cdf0e10cSrcweir 
683cdf0e10cSrcweir // action table for OASIS_MASTER_PAGE_REF_ACTIONS
684cdf0e10cSrcweir static XMLTransformerActionInit aMasterPageRefActionTable[] =
685cdf0e10cSrcweir {
686cdf0e10cSrcweir 	ENTRY1( DRAW, MASTER_PAGE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
687cdf0e10cSrcweir 				XML_FAMILY_TYPE_MASTER_PAGE ),
688cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
689cdf0e10cSrcweir };
690cdf0e10cSrcweir 
691cdf0e10cSrcweir // action table for OASIS_MAP_STYLE_REF_ACTIONS
692cdf0e10cSrcweir static XMLTransformerActionInit aMapStyleRefActionTable[] =
693cdf0e10cSrcweir {
694cdf0e10cSrcweir 	ENTRY1( STYLE, APPLY_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
695cdf0e10cSrcweir 				XML_FAMILY_TYPE_END ),
696cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
697cdf0e10cSrcweir };
698cdf0e10cSrcweir 
699cdf0e10cSrcweir // --> OD 2005-01-10 #i40011#, #i40015#
700cdf0e10cSrcweir // action table for OASIS_TABLE_STYLE_REF_ACTIONS
701cdf0e10cSrcweir static XMLTransformerActionInit aTableStyleRefActionTable[] =
702cdf0e10cSrcweir {
703cdf0e10cSrcweir     ENTRY1( TABLE, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
704cdf0e10cSrcweir                 XML_FAMILY_TYPE_END ),
705cdf0e10cSrcweir     ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
706cdf0e10cSrcweir };
707cdf0e10cSrcweir // <--
708cdf0e10cSrcweir 
709cdf0e10cSrcweir 
710cdf0e10cSrcweir static XMLTransformerActionInit aFontFaceActionTable[] =
711cdf0e10cSrcweir {
712cdf0e10cSrcweir 	ENTRY1Q( SVG, FONT_FAMILY, XML_ATACTION_RENAME,
713cdf0e10cSrcweir 						XML_NAMESPACE_FO, XML_FONT_FAMILY ),
714cdf0e10cSrcweir 	ENTRY1Q( STYLE, FONT_ADORNMENTS, XML_ATACTION_RENAME,
715cdf0e10cSrcweir 						XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME ),
716cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
717cdf0e10cSrcweir };
718cdf0e10cSrcweir 
719cdf0e10cSrcweir // action table for OASIS_PARA_ACTIONS
720cdf0e10cSrcweir static XMLTransformerActionInit aParaActionTable[] =
721cdf0e10cSrcweir {
722cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
723cdf0e10cSrcweir 				XML_FAMILY_TYPE_PARAGRAPH ),
724cdf0e10cSrcweir 	ENTRY1( TEXT, COND_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
725cdf0e10cSrcweir 				XML_FAMILY_TYPE_PARAGRAPH ),
726cdf0e10cSrcweir 	ENTRY1Q( TEXT, OUTLINE_LEVEL, XML_ATACTION_RENAME,
727cdf0e10cSrcweir 						XML_NAMESPACE_TEXT, XML_LEVEL ),
728cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
729cdf0e10cSrcweir };
730cdf0e10cSrcweir 
731cdf0e10cSrcweir // !!ATTENTION!! If you change something here, please also change
732cdf0e10cSrcweir // aConnectorActionTable if apropriate
733cdf0e10cSrcweir static XMLTransformerActionInit aShapeActionTable[] =
734cdf0e10cSrcweir {
735cdf0e10cSrcweir 	ENTRY1( DRAW, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
736cdf0e10cSrcweir 				XML_FAMILY_TYPE_GRAPHIC ),
737cdf0e10cSrcweir 	ENTRY1( DRAW, TEXT_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
738cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_PARAGRAPH ),
739cdf0e10cSrcweir 	ENTRY1( PRESENTATION, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
740cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_PRESENTATION ),
741cdf0e10cSrcweir 	ENTRY0( SVG, X, XML_ATACTION_IN2INCH ),
742cdf0e10cSrcweir 	ENTRY0( SVG, Y, XML_ATACTION_IN2INCH ),
743cdf0e10cSrcweir 	ENTRY0( SVG, X1, XML_ATACTION_IN2INCH ),
744cdf0e10cSrcweir 	ENTRY0( SVG, Y1, XML_ATACTION_IN2INCH ),
745cdf0e10cSrcweir 	ENTRY0( SVG, X2, XML_ATACTION_IN2INCH ),
746cdf0e10cSrcweir 	ENTRY0( SVG, Y2, XML_ATACTION_IN2INCH ),
747cdf0e10cSrcweir 	ENTRY0( SVG, CX, XML_ATACTION_IN2INCH ),
748cdf0e10cSrcweir 	ENTRY0( SVG, CY, XML_ATACTION_IN2INCH ),
749cdf0e10cSrcweir 	ENTRY0( DRAW, END_X, XML_ATACTION_IN2INCH ),
750cdf0e10cSrcweir 	ENTRY0( DRAW, END_Y, XML_ATACTION_IN2INCH ),
751cdf0e10cSrcweir 	ENTRY0( SVG, R, XML_ATACTION_IN2INCH ),
752cdf0e10cSrcweir 	ENTRY0( SVG, RX, XML_ATACTION_IN2INCH ),
753cdf0e10cSrcweir 	ENTRY0( SVG, RY, XML_ATACTION_IN2INCH ),
754cdf0e10cSrcweir 	ENTRY0( SVG, WIDTH, XML_ATACTION_SVG_WIDTH_HEIGHT_OASIS ),
755cdf0e10cSrcweir 	ENTRY0( SVG, HEIGHT, XML_ATACTION_SVG_WIDTH_HEIGHT_OASIS ),
756cdf0e10cSrcweir 	ENTRY0( FO, MIN_WIDTH, XML_ATACTION_IN2INCH ),
757cdf0e10cSrcweir 	ENTRY0( FO, MIN_HEIGHT, XML_ATACTION_IN2INCH ),
758cdf0e10cSrcweir 	ENTRY0( FO, MAX_WIDTH, XML_ATACTION_IN2INCH ),
759cdf0e10cSrcweir 	ENTRY0( FO, MAX_HEIGHT, XML_ATACTION_IN2INCH ),
760cdf0e10cSrcweir 	ENTRY0( DRAW, CORNER_RADIUS, XML_ATACTION_IN2INCH ),
761cdf0e10cSrcweir 	ENTRY0( DRAW, LINE_SKEW, XML_ATACTION_INS2INCHS ),
762cdf0e10cSrcweir 	ENTRY0( DRAW, CAPTION_POINT_X, XML_ATACTION_IN2INCH ),
763cdf0e10cSrcweir 	ENTRY0( DRAW, CAPTION_POINT_Y, XML_ATACTION_IN2INCH ),
764cdf0e10cSrcweir 	ENTRY0( DR3D, DISTANCE, XML_ATACTION_IN2INCH ),
765cdf0e10cSrcweir 	ENTRY0( DR3D, FOCAL_LENGTH, XML_ATACTION_IN2INCH ),
766cdf0e10cSrcweir 	ENTRY1Q( DRAW, CONTROL, XML_ATACTION_RENAME,
767cdf0e10cSrcweir 					XML_NAMESPACE_FORM, XML_ID ),
768cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_True ),
769cdf0e10cSrcweir 
770cdf0e10cSrcweir     // BM: needed by chart:legend.  The legend needs also the draw actions.  As
771cdf0e10cSrcweir     // there is no merge mechanism, all actions have to be in the same table
772cdf0e10cSrcweir     ENTRY2( CHART, LEGEND_POSITION, XML_ATACTION_RENAME_ATTRIBUTE,
773cdf0e10cSrcweir             RENAME_ENTRY( XML_START, XML_LEFT ),
774cdf0e10cSrcweir             RENAME_ENTRY( XML_END, XML_RIGHT )),
775cdf0e10cSrcweir 
776cdf0e10cSrcweir 	ENTRY0( DRAW, ID, XML_ATACTION_DECODE_ID ),
777cdf0e10cSrcweir 
778cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
779cdf0e10cSrcweir };
780cdf0e10cSrcweir 
781cdf0e10cSrcweir // OASIS_ANIMATION_ACTIONS
782cdf0e10cSrcweir static XMLTransformerActionInit aAnimationActionTable[] =
783cdf0e10cSrcweir {
784cdf0e10cSrcweir 	ENTRY0( DRAW, SHAPE_ID, XML_ATACTION_DECODE_ID ),
785cdf0e10cSrcweir     ENTRY0( PRESENTATION, DELAY,       XML_ATACTION_RNG2ISO_DATETIME ),
786cdf0e10cSrcweir     ENTRY0( PRESENTATION, PAUSE,       XML_ATACTION_RNG2ISO_DATETIME ),
787cdf0e10cSrcweir 
788cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
789cdf0e10cSrcweir };
790cdf0e10cSrcweir 
791cdf0e10cSrcweir // OOO_CONNECTOR_ACTIONS
792cdf0e10cSrcweir static XMLTransformerActionInit aConnectorActionTable[] =
793cdf0e10cSrcweir {
794cdf0e10cSrcweir 	ENTRY1( DRAW, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
795cdf0e10cSrcweir 				XML_FAMILY_TYPE_GRAPHIC ),
796cdf0e10cSrcweir 	ENTRY1( DRAW, TEXT_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
797cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_PARAGRAPH ),
798cdf0e10cSrcweir 	ENTRY1( PRESENTATION, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
799cdf0e10cSrcweir 		 		XML_FAMILY_TYPE_PRESENTATION ),
800cdf0e10cSrcweir 	ENTRY0( SVG, X1, XML_ATACTION_IN2TWIPS ),
801cdf0e10cSrcweir 	ENTRY0( SVG, Y1, XML_ATACTION_IN2TWIPS ),
802cdf0e10cSrcweir 	ENTRY0( SVG, X2, XML_ATACTION_IN2TWIPS ),
803cdf0e10cSrcweir 	ENTRY0( SVG, Y2, XML_ATACTION_IN2TWIPS ),
804cdf0e10cSrcweir 	ENTRY0( DRAW, END_X, XML_ATACTION_IN2INCH ),
805cdf0e10cSrcweir 	ENTRY0( DRAW, END_Y, XML_ATACTION_IN2INCH ),
806cdf0e10cSrcweir 	ENTRY0( SVG, WIDTH, XML_ATACTION_SVG_WIDTH_HEIGHT_OASIS ),
807cdf0e10cSrcweir 	ENTRY0( SVG, HEIGHT, XML_ATACTION_SVG_WIDTH_HEIGHT_OASIS ),
808cdf0e10cSrcweir 	ENTRY0( FO, MIN_WIDTH, XML_ATACTION_IN2INCH ),
809cdf0e10cSrcweir 	ENTRY0( FO, MIN_HEIGHT, XML_ATACTION_IN2INCH ),
810cdf0e10cSrcweir 	ENTRY0( FO, MAX_WIDTH, XML_ATACTION_IN2INCH ),
811cdf0e10cSrcweir 	ENTRY0( FO, MAX_HEIGHT, XML_ATACTION_IN2INCH ),
812cdf0e10cSrcweir 	ENTRY0( DRAW, LINE_SKEW, XML_ATACTION_INS2INCHS ),
813cdf0e10cSrcweir 	ENTRY1Q( DRAW, CONTROL, XML_ATACTION_RENAME,
814cdf0e10cSrcweir 					XML_NAMESPACE_FORM, XML_ID ),
815cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_True ),
816cdf0e10cSrcweir 	ENTRY0( DRAW, START_SHAPE, XML_ATACTION_DECODE_ID ),
817cdf0e10cSrcweir 	ENTRY0( DRAW, END_SHAPE, XML_ATACTION_DECODE_ID ),
818cdf0e10cSrcweir 
819cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
820cdf0e10cSrcweir };
821cdf0e10cSrcweir 
822cdf0e10cSrcweir // OASIS_INDEX_ENTRY_TAB_STOP_ACTIONS
823cdf0e10cSrcweir static XMLTransformerActionInit aIndexEntryTabStopActionTable[] =
824cdf0e10cSrcweir {
825cdf0e10cSrcweir 	ENTRY0( STYLE, POSITION, XML_ATACTION_IN2INCH ),
826cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
827cdf0e10cSrcweir 		  		XML_FAMILY_TYPE_TEXT ),
828cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
829cdf0e10cSrcweir };
830cdf0e10cSrcweir 
831cdf0e10cSrcweir // OASIS_TAB_STOP_ACTIONS
832cdf0e10cSrcweir static XMLTransformerActionInit aTabStopActionTable[] =
833cdf0e10cSrcweir {
834cdf0e10cSrcweir 	ENTRY0( STYLE, POSITION, XML_ATACTION_IN2INCH ),
835cdf0e10cSrcweir 	ENTRY1Q( STYLE, LEADER_TEXT, XML_ATACTION_RENAME,
836cdf0e10cSrcweir 		  		XML_NAMESPACE_STYLE, XML_LEADER_CHAR ),
837cdf0e10cSrcweir 	ENTRY0( STYLE, LEADER_STYLE, XML_ATACTION_REMOVE ),
838cdf0e10cSrcweir 	ENTRY0( STYLE, LEADER_TYPE, XML_ATACTION_REMOVE ),
839cdf0e10cSrcweir 	ENTRY0( STYLE, LEADER_WIDTH, XML_ATACTION_REMOVE ),
840cdf0e10cSrcweir 	ENTRY0( STYLE, LEADER_COLOR, XML_ATACTION_REMOVE ),
841cdf0e10cSrcweir 	ENTRY0( STYLE, LEADER_TEXT_STYLE, XML_ATACTION_REMOVE ),
842cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
843cdf0e10cSrcweir };
844cdf0e10cSrcweir 
845cdf0e10cSrcweir // OASIS_LINENUMBERING_ACTIONS
846cdf0e10cSrcweir static XMLTransformerActionInit aLineNumberingActionTable[] =
847cdf0e10cSrcweir {
848cdf0e10cSrcweir 	ENTRY0( TEXT, OFFSET, XML_ATACTION_IN2INCH ),
849cdf0e10cSrcweir 	ENTRY1( TEXT, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
850cdf0e10cSrcweir 				XML_FAMILY_TYPE_TEXT ),
851cdf0e10cSrcweir 	ENTRY1Q( TEXT, COUNT_IN_TEXT_BOXES , XML_ATACTION_RENAME,
852cdf0e10cSrcweir 					XML_NAMESPACE_TEXT, XML_COUNT_IN_FLOATING_FRAMES),
853cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
854cdf0e10cSrcweir };
855cdf0e10cSrcweir 
856cdf0e10cSrcweir static XMLTransformerActionInit aFootnoteSepActionTable[] =
857cdf0e10cSrcweir {
858cdf0e10cSrcweir 	ENTRY0( STYLE, WIDTH, XML_ATACTION_IN2INCH ),
859cdf0e10cSrcweir 	ENTRY0( STYLE, DISTANCE_BEFORE_SEP, XML_ATACTION_IN2INCH ),
860cdf0e10cSrcweir 	ENTRY0( STYLE, DISTANCE_AFTER_SEP, XML_ATACTION_IN2INCH ),
861cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
862cdf0e10cSrcweir };
863cdf0e10cSrcweir 
864cdf0e10cSrcweir // OASIS_NOTES_ACTIONS (processed by special context)
865cdf0e10cSrcweir static XMLTransformerActionInit aNotesActionTable[] =
866cdf0e10cSrcweir {
867cdf0e10cSrcweir 	ENTRY0( TEXT, NOTE_CLASS, XML_ATACTION_STYLE_FAMILY ),
868cdf0e10cSrcweir 	ENTRY1( TEXT, CITATION_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
869cdf0e10cSrcweir 				XML_FAMILY_TYPE_TEXT ),
870cdf0e10cSrcweir 	ENTRY1( TEXT, CITATION_BODY_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
871cdf0e10cSrcweir 				XML_FAMILY_TYPE_TEXT ),
872cdf0e10cSrcweir 	ENTRY1( TEXT, DEFAULT_STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
873cdf0e10cSrcweir 				XML_FAMILY_TYPE_PARAGRAPH ),
874cdf0e10cSrcweir 	ENTRY1( TEXT, MASTER_PAGE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
875cdf0e10cSrcweir 				XML_FAMILY_TYPE_MASTER_PAGE ),
876cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
877cdf0e10cSrcweir };
878cdf0e10cSrcweir 
879cdf0e10cSrcweir // OASIS_DROP_CAP_ACTIONS
880cdf0e10cSrcweir static XMLTransformerActionInit aDropCapActionTable[] =
881cdf0e10cSrcweir {
882cdf0e10cSrcweir 	ENTRY0( STYLE, DISTANCE, XML_ATACTION_IN2INCH ),
883cdf0e10cSrcweir 	ENTRY1( STYLE, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
884cdf0e10cSrcweir 				XML_FAMILY_TYPE_TEXT ),
885cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
886cdf0e10cSrcweir };
887cdf0e10cSrcweir 
888cdf0e10cSrcweir static XMLTransformerActionInit aColumnsActionTable[] =
889cdf0e10cSrcweir {
890cdf0e10cSrcweir 	ENTRY0( STYLE, COLUMN_GAP, XML_ATACTION_IN2INCH ),
891cdf0e10cSrcweir 	ENTRY0( STYLE, SPACE_BEFORE, XML_ATACTION_REMOVE ),
892cdf0e10cSrcweir 	ENTRY0( STYLE, SPACE_AFTER, XML_ATACTION_REMOVE ),
893cdf0e10cSrcweir 	ENTRY1Q( FO, START_INDENT, XML_ATACTION_RENAME_IN2INCH,
894cdf0e10cSrcweir 		   XML_NAMESPACE_FO, XML_MARGIN_LEFT ),
895cdf0e10cSrcweir 	ENTRY1Q( FO, END_INDENT, XML_ATACTION_RENAME_IN2INCH,
896cdf0e10cSrcweir 		   XML_NAMESPACE_FO, XML_MARGIN_RIGHT ),
897cdf0e10cSrcweir 	ENTRY0( STYLE, WIDTH, XML_ATACTION_IN2INCH ),
898cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
899cdf0e10cSrcweir };
900cdf0e10cSrcweir 
901cdf0e10cSrcweir // OASIS_TEXT_VALUE_TYPE_ACTIONS
902cdf0e10cSrcweir static XMLTransformerActionInit aTextValueTypeActionTable[] =
903cdf0e10cSrcweir {
904cdf0e10cSrcweir 	ENTRY1Q( OFFICE, VALUE_TYPE, XML_ATACTION_RENAME,
905cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_VALUE_TYPE ),
906cdf0e10cSrcweir 	ENTRY1Q( OFFICE, VALUE, XML_ATACTION_RENAME,
907cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_VALUE ),
908cdf0e10cSrcweir 	ENTRY1Q( OFFICE, CURRENCY, XML_ATACTION_RENAME,
909cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_CURRENCY ),
910cdf0e10cSrcweir 	ENTRY1Q( OFFICE, DATE_VALUE, XML_ATACTION_RENAME_RNG2ISO_DATETIME,
911cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_DATE_VALUE ),
912cdf0e10cSrcweir 	ENTRY1Q( OFFICE, TIME_VALUE, XML_ATACTION_RENAME_RNG2ISO_DATETIME,
913cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_TIME_VALUE ),
914cdf0e10cSrcweir 	ENTRY1Q( OFFICE, BOOLEAN_VALUE, XML_ATACTION_RENAME,
915cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_BOOLEAN_VALUE ),
916cdf0e10cSrcweir 	ENTRY1Q( OFFICE, STRING_VALUE, XML_ATACTION_RENAME,
917cdf0e10cSrcweir 		   XML_NAMESPACE_TEXT, XML_STRING_VALUE ),
918cdf0e10cSrcweir 	ENTRY0( TEXT, FORMULA, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
919cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
920cdf0e10cSrcweir };
921cdf0e10cSrcweir 
922cdf0e10cSrcweir // OASIS_TABLE_VALUE_TYPE_ACTIONS
923cdf0e10cSrcweir static XMLTransformerActionInit aTableValueTypeActionTable[] =
924cdf0e10cSrcweir {
925cdf0e10cSrcweir 	ENTRY1Q( OFFICE, VALUE_TYPE, XML_ATACTION_RENAME,
926cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_VALUE_TYPE ),
927cdf0e10cSrcweir 	ENTRY1Q( OFFICE, VALUE, XML_ATACTION_RENAME,
928cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_VALUE ),
929cdf0e10cSrcweir 	ENTRY1Q( OFFICE, CURRENCY, XML_ATACTION_RENAME,
930cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_CURRENCY ),
931cdf0e10cSrcweir 	ENTRY1Q( OFFICE, DATE_VALUE, XML_ATACTION_RENAME_RNG2ISO_DATETIME,
932cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_DATE_VALUE ),
933cdf0e10cSrcweir 	ENTRY1Q( OFFICE, TIME_VALUE, XML_ATACTION_RENAME_RNG2ISO_DATETIME,
934cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_TIME_VALUE ),
935cdf0e10cSrcweir 	ENTRY1Q( OFFICE, BOOLEAN_VALUE, XML_ATACTION_RENAME,
936cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_BOOLEAN_VALUE ),
937cdf0e10cSrcweir 	ENTRY1Q( OFFICE, STRING_VALUE, XML_ATACTION_RENAME,
938cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_STRING_VALUE ),
939cdf0e10cSrcweir 	ENTRY1( TABLE, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
940cdf0e10cSrcweir 				XML_FAMILY_TYPE_TABLE_CELL ),
941cdf0e10cSrcweir 	ENTRY0( TABLE, FORMULA, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
942cdf0e10cSrcweir 	ENTRY1Q( TABLE, CONTENT_VALIDATION_NAME, XML_ATACTION_RENAME,
943cdf0e10cSrcweir 		   XML_NAMESPACE_TABLE, XML_VALIDATION_NAME ),
944cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
945cdf0e10cSrcweir };
946cdf0e10cSrcweir 
947cdf0e10cSrcweir // action table for OASIS_ANNOTATION_ACTIONS
948cdf0e10cSrcweir static XMLTransformerActionInit aAnnotationActionTable[] =
949cdf0e10cSrcweir {
950cdf0e10cSrcweir 	ENTRY1Q( DC, CREATOR, XML_ATACTION_MOVE_FROM_ELEM,
951cdf0e10cSrcweir 				XML_NAMESPACE_OFFICE, XML_AUTHOR ),
952cdf0e10cSrcweir 	ENTRY1Q( DC, DATE, XML_ATACTION_MOVE_FROM_ELEM_RNG2ISO_DATETIME,
953cdf0e10cSrcweir 				XML_NAMESPACE_OFFICE, XML_CREATE_DATE ),
954cdf0e10cSrcweir 	ENTRY1Q( META, DATE_STRING, XML_ATACTION_MOVE_FROM_ELEM,
955cdf0e10cSrcweir 				XML_NAMESPACE_OFFICE, XML_CREATE_DATE_STRING ),
956cdf0e10cSrcweir     ENTRY0( TEXT, P, XML_ETACTION_EXTRACT_CHARACTERS ),
957cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
958cdf0e10cSrcweir };
959cdf0e10cSrcweir 
960cdf0e10cSrcweir // action table for OASIS_CHANGE_INFO_ACTIONS
961cdf0e10cSrcweir static XMLTransformerActionInit aChangeInfoActionTable[] =
962cdf0e10cSrcweir {
963cdf0e10cSrcweir 	ENTRY1Q( DC, CREATOR, XML_ATACTION_MOVE_FROM_ELEM,
964cdf0e10cSrcweir 				XML_NAMESPACE_OFFICE, XML_CHG_AUTHOR ),
965cdf0e10cSrcweir 	ENTRY1Q( DC, DATE, XML_ATACTION_MOVE_FROM_ELEM_RNG2ISO_DATETIME,
966cdf0e10cSrcweir 				XML_NAMESPACE_OFFICE, XML_CHG_DATE_TIME ),
967cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
968cdf0e10cSrcweir };
969cdf0e10cSrcweir 
970cdf0e10cSrcweir // OASIS_BACKGROUND_IMAGE_ACTIONS
971cdf0e10cSrcweir static XMLTransformerActionInit aBackgroundImageActionTable[] =
972cdf0e10cSrcweir {
973cdf0e10cSrcweir 	ENTRY1Q( DRAW, OPACITY, XML_ATACTION_RENAME_NEG_PERCENT,
974cdf0e10cSrcweir 		 			XML_NAMESPACE_DRAW, XML_TRANSPARENCY ),
975cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_True ),
976cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
977cdf0e10cSrcweir };
978cdf0e10cSrcweir 
979cdf0e10cSrcweir // OASIS_DDE_CONNECTION_DECL
980cdf0e10cSrcweir static XMLTransformerActionInit aDDEConnectionDeclActionTable[] =
981cdf0e10cSrcweir {
982cdf0e10cSrcweir 	ENTRY1Q( OFFICE, NAME, XML_ATACTION_RENAME,
983cdf0e10cSrcweir 		 			XML_NAMESPACE_TEXT, XML_NAME ),
984cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
985cdf0e10cSrcweir };
986cdf0e10cSrcweir 
987cdf0e10cSrcweir 
988cdf0e10cSrcweir // OASIS_FORM_CONTROL_ACTIONS
989cdf0e10cSrcweir static XMLTransformerActionInit aFormControlActionTable[] =
990cdf0e10cSrcweir {
991cdf0e10cSrcweir 	ENTRY0( FORM, NAME, XML_ATACTION_MOVE_TO_ELEM ),
992cdf0e10cSrcweir 	ENTRY2QN( FORM, CONTROL_IMPLEMENTATION,
993cdf0e10cSrcweir 					XML_ATACTION_RENAME_REMOVE_NAMESPACE_PREFIX,
994cdf0e10cSrcweir 		   			XML_NAMESPACE_FORM, XML_SERVICE_NAME,
995cdf0e10cSrcweir 					XML_NAMESPACE_OOO ),
996cdf0e10cSrcweir 	ENTRY0( FORM, ID, XML_ATACTION_MOVE_TO_ELEM ),
997cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_False ),
998cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
999cdf0e10cSrcweir };
1000cdf0e10cSrcweir 
1001cdf0e10cSrcweir // OASIS_FORM_COLUMN_ACTIONS
1002cdf0e10cSrcweir static XMLTransformerActionInit aFormColumnActionTable[] =
1003cdf0e10cSrcweir {
1004cdf0e10cSrcweir 	ENTRY1Q( FORM, TEXT_STYLE_NAME, XML_ATACTION_RENAME_DECODE_STYLE_NAME_REF,
1005cdf0e10cSrcweir 						XML_NAMESPACE_FORM, XML_COLUMN_STYLE_NAME ),
1006cdf0e10cSrcweir 	ENTRY2QN( FORM, CONTROL_IMPLEMENTATION,
1007cdf0e10cSrcweir 					XML_ATACTION_RENAME_REMOVE_NAMESPACE_PREFIX,
1008cdf0e10cSrcweir 		   			XML_NAMESPACE_FORM, XML_SERVICE_NAME,
1009cdf0e10cSrcweir 					XML_NAMESPACE_OOO ),
1010cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1011cdf0e10cSrcweir };
1012cdf0e10cSrcweir 
1013cdf0e10cSrcweir // OASIS_FORM_PROP_ACTIONS
1014cdf0e10cSrcweir static XMLTransformerActionInit aFormPropActionTable[] =
1015cdf0e10cSrcweir {
1016cdf0e10cSrcweir 	ENTRY1Q( OFFICE, VALUE_TYPE, XML_ATACTION_RENAME,
1017cdf0e10cSrcweir 		  				XML_NAMESPACE_FORM, XML_PROPERTY_TYPE ),
1018cdf0e10cSrcweir 	ENTRY0( OFFICE, VALUE, XML_ATACTION_REMOVE ),
1019cdf0e10cSrcweir 	ENTRY0( OFFICE, STRING_VALUE, XML_ATACTION_REMOVE ),
1020cdf0e10cSrcweir 	ENTRY0( OFFICE, BOOLEAN_VALUE, XML_ATACTION_REMOVE ),
1021cdf0e10cSrcweir 	ENTRY0( OFFICE, DATE_VALUE, XML_ATACTION_REMOVE ),
1022cdf0e10cSrcweir 	ENTRY0( OFFICE, TIME_VALUE, XML_ATACTION_REMOVE ),
1023cdf0e10cSrcweir 	ENTRY0( OFFICE, CURRENCY, XML_ATACTION_REMOVE ),
1024cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1025cdf0e10cSrcweir };
1026cdf0e10cSrcweir 
1027cdf0e10cSrcweir // OASIS_XLINK_ACTIONS
1028cdf0e10cSrcweir static XMLTransformerActionInit aXLinkActionTable[] =
1029cdf0e10cSrcweir {
1030cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_False ),
1031cdf0e10cSrcweir     ENTRY0( TABLE, REFRESH_DELAY, XML_ATACTION_RNG2ISO_DATETIME ),
1032cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1033cdf0e10cSrcweir };
1034cdf0e10cSrcweir 
1035cdf0e10cSrcweir // OASIS_CONFIG_ITEM_SET_ACTIONS
1036cdf0e10cSrcweir static XMLTransformerActionInit aConfigItemSetActionTable[] =
1037cdf0e10cSrcweir {
1038cdf0e10cSrcweir 	ENTRY1( CONFIG, NAME, XML_ATACTION_REMOVE_NAMESPACE_PREFIX,
1039cdf0e10cSrcweir 					XML_NAMESPACE_OOO ),
1040cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1041cdf0e10cSrcweir };
1042cdf0e10cSrcweir 
1043cdf0e10cSrcweir // OASIS_FORMULA_ACTIONS
1044cdf0e10cSrcweir static XMLTransformerActionInit aFormulaActionTable[] =
1045cdf0e10cSrcweir {
1046cdf0e10cSrcweir 	ENTRY0( TEXT, CONDITION, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
1047cdf0e10cSrcweir 	ENTRY0( TEXT, FORMULA, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
1048cdf0e10cSrcweir 	ENTRY0( TABLE, CONDITION, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
1049cdf0e10cSrcweir 	ENTRY0( TABLE, FORMULA, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
1050cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1051cdf0e10cSrcweir };
1052cdf0e10cSrcweir 
1053cdf0e10cSrcweir // OASIS_CONTENT_VALIDATION_ACTIONS
1054cdf0e10cSrcweir static XMLTransformerActionInit aContentValidationActionTable[] =
1055cdf0e10cSrcweir {
1056cdf0e10cSrcweir 	ENTRY0( TABLE, CONDITION, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
1057cdf0e10cSrcweir     ENTRY0( TABLE, DISPLAY_LIST, XML_ATACTION_REMOVE ),
1058cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1059cdf0e10cSrcweir };
1060cdf0e10cSrcweir 
1061cdf0e10cSrcweir // OASIS_DDE_CONV_MODE_ACTIONS
1062cdf0e10cSrcweir static XMLTransformerActionInit aDDEConvModeActionTable[] =
1063cdf0e10cSrcweir {
1064cdf0e10cSrcweir 	ENTRY1Q( TABLE, KEEP_TEXT, XML_ATACTION_RENAME,
1065cdf0e10cSrcweir 						XML_NAMESPACE_TABLE, XML_LET_TEXT ),
1066cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1067cdf0e10cSrcweir };
1068cdf0e10cSrcweir 
1069cdf0e10cSrcweir // OASIS_DATAPILOT_MEMBER_ACTIONS
1070cdf0e10cSrcweir static XMLTransformerActionInit aDataPilotMemberActionTable[] =
1071cdf0e10cSrcweir {
1072cdf0e10cSrcweir 	ENTRY1Q( TABLE, SHOW_DETAILS, XML_ATACTION_RENAME,
1073cdf0e10cSrcweir 						XML_NAMESPACE_TABLE, XML_DISPLAY_DETAILS ),
1074cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1075cdf0e10cSrcweir };
1076cdf0e10cSrcweir 
1077cdf0e10cSrcweir // OASIS_DATAPILOT_LEVEL_ACTIONS
1078cdf0e10cSrcweir static XMLTransformerActionInit aDataPilotLevelActionTable[] =
1079cdf0e10cSrcweir {
1080cdf0e10cSrcweir 	ENTRY1Q( TABLE, SHOW_EMPTY, XML_ATACTION_RENAME,
1081cdf0e10cSrcweir 						XML_NAMESPACE_TABLE, XML_DISPLAY_EMPTY ),
1082cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1083cdf0e10cSrcweir };
1084cdf0e10cSrcweir 
1085cdf0e10cSrcweir // OASIS_SOURCE_SERVICE_ACTIONS
1086cdf0e10cSrcweir static XMLTransformerActionInit aSourceServiceActionTable[] =
1087cdf0e10cSrcweir {
1088cdf0e10cSrcweir 	ENTRY1Q( TABLE, USER_NAME, XML_ATACTION_RENAME,
1089cdf0e10cSrcweir 						XML_NAMESPACE_TABLE, XML_USERNAME ),
1090cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1091cdf0e10cSrcweir };
1092cdf0e10cSrcweir 
1093cdf0e10cSrcweir // OASIS_CHART_ACTIONS
1094cdf0e10cSrcweir static XMLTransformerActionInit aChartActionTable[] =
1095cdf0e10cSrcweir {
1096cdf0e10cSrcweir 	ENTRY0( CHART, CLASS, XML_ATACTION_REMOVE_ANY_NAMESPACE_PREFIX ),
1097cdf0e10cSrcweir 	ENTRY1( DRAW, STYLE_NAME, XML_ATACTION_DECODE_STYLE_NAME_REF,
1098cdf0e10cSrcweir 				XML_FAMILY_TYPE_GRAPHIC ),
1099cdf0e10cSrcweir 	ENTRY0( SVG, WIDTH, XML_ATACTION_IN2INCH ),
1100cdf0e10cSrcweir 	ENTRY0( SVG, HEIGHT, XML_ATACTION_IN2INCH ),
1101cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1102cdf0e10cSrcweir };
1103cdf0e10cSrcweir 
1104cdf0e10cSrcweir // OASIS_FORM_ACTIONS
1105cdf0e10cSrcweir static XMLTransformerActionInit aFormActionTable[] =
1106cdf0e10cSrcweir {
1107cdf0e10cSrcweir 	ENTRY2QN( FORM, CONTROL_IMPLEMENTATION,
1108cdf0e10cSrcweir 					XML_ATACTION_RENAME_REMOVE_NAMESPACE_PREFIX,
1109cdf0e10cSrcweir 		   			XML_NAMESPACE_FORM, XML_SERVICE_NAME,
1110cdf0e10cSrcweir 					XML_NAMESPACE_OOO ),
1111cdf0e10cSrcweir 	ENTRY1( XLINK, HREF, XML_ATACTION_URI_OASIS, sal_False ),
1112cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1113cdf0e10cSrcweir };
1114cdf0e10cSrcweir 
1115cdf0e10cSrcweir // OASIS_ALPHABETICAL_INDEX_MARK_ACTIONS
1116cdf0e10cSrcweir static XMLTransformerActionInit aAlphabeticalIndexMarkActionTable[] =
1117cdf0e10cSrcweir {
1118cdf0e10cSrcweir 	ENTRY1Q( TEXT, MAIN_ENTRY, XML_ATACTION_RENAME,
1119cdf0e10cSrcweir 						XML_NAMESPACE_TEXT, XML_MAIN_ETRY ),
1120cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1121cdf0e10cSrcweir };
1122cdf0e10cSrcweir 
1123cdf0e10cSrcweir // OASIS_DRAW_AREA_POLYGON_ACTIONS (to be added to OASIS_SHAPE_ACTIONS)
1124cdf0e10cSrcweir static XMLTransformerActionInit aDrawAreaPolygonActionTable[] =
1125cdf0e10cSrcweir {
1126cdf0e10cSrcweir 	ENTRY1Q( DRAW, POINTS, XML_ATACTION_RENAME,
1127cdf0e10cSrcweir              XML_NAMESPACE_SVG, XML_POINTS ),
1128cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1129cdf0e10cSrcweir };
1130cdf0e10cSrcweir 
1131cdf0e10cSrcweir // OASIS_SCRIPT_ACTIONS
1132cdf0e10cSrcweir static XMLTransformerActionInit aScriptActionTable[] =
1133cdf0e10cSrcweir {
1134cdf0e10cSrcweir     ENTRY1( SCRIPT, LANGUAGE, XML_ATACTION_REMOVE_NAMESPACE_PREFIX, XML_NAMESPACE_OOO ),
1135cdf0e10cSrcweir     ENTRY1Q( OOO, NAME, XML_ATACTION_RENAME, XML_NAMESPACE_SCRIPT, XML_NAME ),
1136cdf0e10cSrcweir     ENTRY1Q( OOO, READONLY, XML_ATACTION_RENAME, XML_NAMESPACE_SCRIPT, XML_READONLY ),
1137cdf0e10cSrcweir     ENTRY0( OFFICE, TOKEN_INVALID, XML_ATACTION_EOT )
1138cdf0e10cSrcweir };
1139cdf0e10cSrcweir 
1140cdf0e10cSrcweir // OASIS_DATETIME_ACTIONS
1141cdf0e10cSrcweir static XMLTransformerActionInit aDateTimeActionTable[] =
1142cdf0e10cSrcweir {
1143cdf0e10cSrcweir 	ENTRY0( TEXT,   DATE_VALUE,        XML_ATACTION_RNG2ISO_DATETIME ),
1144cdf0e10cSrcweir     ENTRY0( TEXT,   TIME_VALUE,        XML_ATACTION_RNG2ISO_DATETIME ),
1145cdf0e10cSrcweir 	ENTRY0( TEXT,   DATE_ADJUST,       XML_ATACTION_RNG2ISO_DATETIME ),
1146cdf0e10cSrcweir 	ENTRY0( TEXT,   TIME_ADJUST,       XML_ATACTION_RNG2ISO_DATETIME ),
1147cdf0e10cSrcweir 	ENTRY0( TEXT,   DURATION,          XML_ATACTION_RNG2ISO_DATETIME ),
1148cdf0e10cSrcweir 	ENTRY0( OFFICE, DATE_VALUE,        XML_ATACTION_RNG2ISO_DATETIME ),
1149cdf0e10cSrcweir 	ENTRY0( OFFICE, TIME_VALUE,        XML_ATACTION_RNG2ISO_DATETIME ),
1150cdf0e10cSrcweir     ENTRY0( FORM,   VALUE,             XML_ATACTION_RNG2ISO_DATETIME ),
1151cdf0e10cSrcweir     ENTRY0( FORM,   CURRENT_VALUE,     XML_ATACTION_RNG2ISO_DATETIME ),
1152cdf0e10cSrcweir     ENTRY0( TABLE,  DATE_START,        XML_ATACTION_RNG2ISO_DATETIME ),
1153cdf0e10cSrcweir     ENTRY0( TABLE,  DATE_END,          XML_ATACTION_RNG2ISO_DATETIME ),
1154cdf0e10cSrcweir     ENTRY0( TABLE,  REFRESH_DELAY,     XML_ATACTION_RNG2ISO_DATETIME ),
1155cdf0e10cSrcweir     ENTRY0( PRESENTATION, DELAY,       XML_ATACTION_RNG2ISO_DATETIME ),
1156cdf0e10cSrcweir     ENTRY0( PRESENTATION, PAUSE,       XML_ATACTION_RNG2ISO_DATETIME ),
1157cdf0e10cSrcweir 	ENTRY0( OFFICE, TOKEN_INVALID,     XML_ATACTION_EOT )
1158cdf0e10cSrcweir };
1159cdf0e10cSrcweir 
1160cdf0e10cSrcweir static XMLTokenEnum aTokenMap[] =
1161cdf0e10cSrcweir {
1162cdf0e10cSrcweir 	XML_NONE, XML_SOLID, XML_DOTTED, XML_DASH, XML_LONG_DASH, XML_DOT_DASH,
1163cdf0e10cSrcweir 	XML_DOT_DOT_DASH, XML_WAVE, XML_SMALL_WAVE, XML_TOKEN_END
1164cdf0e10cSrcweir };
1165cdf0e10cSrcweir 
1166cdf0e10cSrcweir // -----------------------------------------------------------------------------
1167cdf0e10cSrcweir 
1168cdf0e10cSrcweir class XMLTableTransformerContext_Impl : public XMLTransformerContext
1169cdf0e10cSrcweir {
1170cdf0e10cSrcweir 	::rtl::OUString m_aElemQName;
1171cdf0e10cSrcweir 
1172cdf0e10cSrcweir public:
1173cdf0e10cSrcweir 	TYPEINFO();
1174cdf0e10cSrcweir 
1175cdf0e10cSrcweir 	XMLTableTransformerContext_Impl( XMLTransformerBase& rTransformer,
1176cdf0e10cSrcweir 						   const ::rtl::OUString& rQName );
1177cdf0e10cSrcweir 
1178cdf0e10cSrcweir 	virtual ~XMLTableTransformerContext_Impl();
1179cdf0e10cSrcweir 
1180cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1181cdf0e10cSrcweir 	virtual void EndElement();
1182cdf0e10cSrcweir };
1183cdf0e10cSrcweir 
1184cdf0e10cSrcweir TYPEINIT1( XMLTableTransformerContext_Impl, XMLTransformerContext );
1185cdf0e10cSrcweir 
XMLTableTransformerContext_Impl(XMLTransformerBase & rImp,const OUString & rQName)1186cdf0e10cSrcweir XMLTableTransformerContext_Impl::XMLTableTransformerContext_Impl(
1187cdf0e10cSrcweir 		XMLTransformerBase& rImp,
1188cdf0e10cSrcweir 	    const OUString& rQName ) :
1189cdf0e10cSrcweir 	XMLTransformerContext( rImp, rQName ),
1190cdf0e10cSrcweir 	m_aElemQName( rQName )
1191cdf0e10cSrcweir {
1192cdf0e10cSrcweir }
1193cdf0e10cSrcweir 
~XMLTableTransformerContext_Impl()1194cdf0e10cSrcweir XMLTableTransformerContext_Impl::~XMLTableTransformerContext_Impl()
1195cdf0e10cSrcweir {
1196cdf0e10cSrcweir }
1197cdf0e10cSrcweir 
StartElement(const Reference<XAttributeList> & rAttrList)1198cdf0e10cSrcweir void XMLTableTransformerContext_Impl::StartElement(
1199cdf0e10cSrcweir 		const Reference< XAttributeList >& rAttrList )
1200cdf0e10cSrcweir {
1201cdf0e10cSrcweir 	Reference< XAttributeList > xAttrList( rAttrList );
1202cdf0e10cSrcweir 
1203cdf0e10cSrcweir     XMLMutableAttributeList *pMutableAttrList = 0;
1204cdf0e10cSrcweir     // <--
1205cdf0e10cSrcweir 
1206cdf0e10cSrcweir     sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1207cdf0e10cSrcweir 	for( sal_Int16 i=0; i < nAttrCount; i++ )
1208cdf0e10cSrcweir 	{
1209cdf0e10cSrcweir 		const OUString& rAttrName = xAttrList->getNameByIndex( i );
1210cdf0e10cSrcweir 		OUString aLocalName;
1211cdf0e10cSrcweir 		sal_uInt16 nPrefix =
1212cdf0e10cSrcweir 			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1213cdf0e10cSrcweir 																 &aLocalName );
1214cdf0e10cSrcweir         if( XML_NAMESPACE_TABLE == nPrefix )
1215cdf0e10cSrcweir         {
1216cdf0e10cSrcweir             if ( IsXMLToken( aLocalName, XML_IS_SUB_TABLE ) )
1217cdf0e10cSrcweir             {
1218cdf0e10cSrcweir                 const OUString& rValue = xAttrList->getValueByIndex( i );
1219cdf0e10cSrcweir                 if( IsXMLToken( rValue, XML_TRUE ) )
1220cdf0e10cSrcweir                 {
1221cdf0e10cSrcweir                     m_aElemQName = GetTransformer().GetNamespaceMap().GetQNameByKey(
1222cdf0e10cSrcweir                                 XML_NAMESPACE_TABLE,
1223cdf0e10cSrcweir                                 ::xmloff::token::GetXMLToken( XML_SUB_TABLE ) );
1224cdf0e10cSrcweir                     if ( !pMutableAttrList )
1225cdf0e10cSrcweir                     {
1226cdf0e10cSrcweir                         pMutableAttrList =
1227cdf0e10cSrcweir                             new XMLMutableAttributeList( xAttrList );
1228cdf0e10cSrcweir                         xAttrList = pMutableAttrList;
1229cdf0e10cSrcweir                     }
1230cdf0e10cSrcweir                     pMutableAttrList->RemoveAttributeByIndex( i );
1231cdf0e10cSrcweir                 }
1232cdf0e10cSrcweir                 // OD 2005-07-05 #i50521# - no break here for savety reason.
1233cdf0e10cSrcweir             }
1234cdf0e10cSrcweir             // --> OD 2005-01-10 #i40011#, #i40015#
1235cdf0e10cSrcweir             // - convert attribute table:style-name for <table:table>
1236cdf0e10cSrcweir             else if ( IsXMLToken( aLocalName, XML_STYLE_NAME ) )
1237cdf0e10cSrcweir             {
1238cdf0e10cSrcweir                 const OUString& rValue = xAttrList->getValueByIndex( i );
1239cdf0e10cSrcweir                 OUString aAttrValue( rValue );
1240cdf0e10cSrcweir                 if( GetTransformer().DecodeStyleName(aAttrValue) )
1241cdf0e10cSrcweir                 {
1242cdf0e10cSrcweir                     if ( !pMutableAttrList )
1243cdf0e10cSrcweir                     {
1244cdf0e10cSrcweir                         pMutableAttrList =
1245cdf0e10cSrcweir                             new XMLMutableAttributeList( xAttrList );
1246cdf0e10cSrcweir                         xAttrList = pMutableAttrList;
1247cdf0e10cSrcweir                     }
1248cdf0e10cSrcweir                     pMutableAttrList->SetValueByIndex( i, aAttrValue );
1249cdf0e10cSrcweir                 }
1250cdf0e10cSrcweir             }
1251cdf0e10cSrcweir             // <--
1252cdf0e10cSrcweir             else if( IsXMLToken( aLocalName, XML_PRINT ) )
1253cdf0e10cSrcweir             {
1254cdf0e10cSrcweir                 if ( !pMutableAttrList )
1255cdf0e10cSrcweir                 {
1256cdf0e10cSrcweir                     pMutableAttrList =
1257cdf0e10cSrcweir                         new XMLMutableAttributeList( xAttrList );
1258cdf0e10cSrcweir                     xAttrList = pMutableAttrList;
1259cdf0e10cSrcweir                 }
1260cdf0e10cSrcweir     			pMutableAttrList->RemoveAttributeByIndex( i );
1261cdf0e10cSrcweir             }
1262cdf0e10cSrcweir         }
1263cdf0e10cSrcweir 	}
1264cdf0e10cSrcweir 
1265cdf0e10cSrcweir 	GetTransformer().GetDocHandler()->startElement( m_aElemQName, xAttrList );
1266cdf0e10cSrcweir }
1267cdf0e10cSrcweir 
EndElement()1268cdf0e10cSrcweir void XMLTableTransformerContext_Impl::EndElement()
1269cdf0e10cSrcweir {
1270cdf0e10cSrcweir 	GetTransformer().GetDocHandler()->endElement( m_aElemQName );
1271cdf0e10cSrcweir }
1272cdf0e10cSrcweir 
1273cdf0e10cSrcweir // -----------------------------------------------------------------------------
1274cdf0e10cSrcweir 
1275cdf0e10cSrcweir class XMLBodyOASISTransformerContext_Impl : public XMLTransformerContext
1276cdf0e10cSrcweir {
1277cdf0e10cSrcweir 	sal_Bool m_bFirstChild;
1278cdf0e10cSrcweir 
1279cdf0e10cSrcweir public:
1280cdf0e10cSrcweir 	TYPEINFO();
1281cdf0e10cSrcweir 
1282cdf0e10cSrcweir 	XMLBodyOASISTransformerContext_Impl( XMLTransformerBase& rTransformer,
1283cdf0e10cSrcweir 						   const ::rtl::OUString& rQName );
1284cdf0e10cSrcweir 
1285cdf0e10cSrcweir 	virtual ~XMLBodyOASISTransformerContext_Impl();
1286cdf0e10cSrcweir 
1287cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1288cdf0e10cSrcweir 
1289cdf0e10cSrcweir 	virtual XMLTransformerContext *CreateChildContext( sal_uInt16 nPrefix,
1290cdf0e10cSrcweir 								   const ::rtl::OUString& rLocalName,
1291cdf0e10cSrcweir 								   const ::rtl::OUString& rQName,
1292cdf0e10cSrcweir 								   const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1293cdf0e10cSrcweir 	virtual void EndElement();
1294cdf0e10cSrcweir };
1295cdf0e10cSrcweir 
1296cdf0e10cSrcweir TYPEINIT1( XMLBodyOASISTransformerContext_Impl, XMLTransformerContext );
1297cdf0e10cSrcweir 
XMLBodyOASISTransformerContext_Impl(XMLTransformerBase & rImp,const OUString & rQName)1298cdf0e10cSrcweir XMLBodyOASISTransformerContext_Impl::XMLBodyOASISTransformerContext_Impl(
1299cdf0e10cSrcweir 		XMLTransformerBase& rImp,
1300cdf0e10cSrcweir 	    const OUString& rQName ) :
1301cdf0e10cSrcweir 	XMLTransformerContext( rImp, rQName ),
1302cdf0e10cSrcweir 	m_bFirstChild( sal_False )
1303cdf0e10cSrcweir {
1304cdf0e10cSrcweir }
1305cdf0e10cSrcweir 
~XMLBodyOASISTransformerContext_Impl()1306cdf0e10cSrcweir XMLBodyOASISTransformerContext_Impl::~XMLBodyOASISTransformerContext_Impl()
1307cdf0e10cSrcweir {
1308cdf0e10cSrcweir }
1309cdf0e10cSrcweir 
StartElement(const Reference<XAttributeList> &)1310cdf0e10cSrcweir void XMLBodyOASISTransformerContext_Impl::StartElement(
1311cdf0e10cSrcweir 		const Reference< XAttributeList >& )
1312cdf0e10cSrcweir {
1313cdf0e10cSrcweir }
1314cdf0e10cSrcweir 
CreateChildContext(sal_uInt16 nPrefix,const::rtl::OUString & rLocalName,const::rtl::OUString & rQName,const::com::sun::star::uno::Reference<::com::sun::star::xml::sax::XAttributeList> & xAttrList)1315cdf0e10cSrcweir XMLTransformerContext* XMLBodyOASISTransformerContext_Impl::CreateChildContext( sal_uInt16 nPrefix,
1316cdf0e10cSrcweir 								   const ::rtl::OUString& rLocalName,
1317cdf0e10cSrcweir 								   const ::rtl::OUString& rQName,
1318cdf0e10cSrcweir 								   const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList )
1319cdf0e10cSrcweir {
1320cdf0e10cSrcweir     if (!m_bFirstChild)
1321cdf0e10cSrcweir     {
1322cdf0e10cSrcweir         m_bFirstChild = sal_True;
1323cdf0e10cSrcweir         XMLTransformerContext::StartElement(xAttrList);
1324cdf0e10cSrcweir     }
1325cdf0e10cSrcweir 
1326cdf0e10cSrcweir     return XMLTransformerContext::CreateChildContext(nPrefix, rLocalName, rQName, xAttrList);
1327cdf0e10cSrcweir }
1328cdf0e10cSrcweir 
EndElement()1329cdf0e10cSrcweir void XMLBodyOASISTransformerContext_Impl::EndElement()
1330cdf0e10cSrcweir {
1331cdf0e10cSrcweir     if (!m_bFirstChild)
1332cdf0e10cSrcweir         XMLTransformerContext::StartElement(Reference< XAttributeList >());
1333cdf0e10cSrcweir 
1334cdf0e10cSrcweir     XMLTransformerContext::EndElement();
1335cdf0e10cSrcweir }
1336cdf0e10cSrcweir 
1337cdf0e10cSrcweir //-----------------------------------------------------------------------------
1338cdf0e10cSrcweir 
1339cdf0e10cSrcweir class XMLTabStopOASISTContext_Impl : public XMLPersElemContentTContext
1340cdf0e10cSrcweir {
1341cdf0e10cSrcweir public:
1342cdf0e10cSrcweir 	TYPEINFO();
1343cdf0e10cSrcweir 
1344cdf0e10cSrcweir 	XMLTabStopOASISTContext_Impl( XMLTransformerBase& rTransformer,
1345cdf0e10cSrcweir 						   const ::rtl::OUString& rQName );
1346cdf0e10cSrcweir 
1347cdf0e10cSrcweir 	virtual ~XMLTabStopOASISTContext_Impl();
1348cdf0e10cSrcweir 
1349cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1350cdf0e10cSrcweir };
1351cdf0e10cSrcweir 
1352cdf0e10cSrcweir TYPEINIT1( XMLTabStopOASISTContext_Impl, XMLPersElemContentTContext );
1353cdf0e10cSrcweir 
XMLTabStopOASISTContext_Impl(XMLTransformerBase & rImp,const OUString & rQName)1354cdf0e10cSrcweir XMLTabStopOASISTContext_Impl::XMLTabStopOASISTContext_Impl(
1355cdf0e10cSrcweir 		XMLTransformerBase& rImp,
1356cdf0e10cSrcweir 		const OUString& rQName ) :
1357cdf0e10cSrcweir 	XMLPersElemContentTContext( rImp, rQName )
1358cdf0e10cSrcweir {
1359cdf0e10cSrcweir }
1360cdf0e10cSrcweir 
~XMLTabStopOASISTContext_Impl()1361cdf0e10cSrcweir XMLTabStopOASISTContext_Impl::~XMLTabStopOASISTContext_Impl()
1362cdf0e10cSrcweir {
1363cdf0e10cSrcweir }
1364cdf0e10cSrcweir 
StartElement(const Reference<XAttributeList> & rAttrList)1365cdf0e10cSrcweir void XMLTabStopOASISTContext_Impl::StartElement(
1366cdf0e10cSrcweir 		const Reference< XAttributeList >& rAttrList )
1367cdf0e10cSrcweir {
1368cdf0e10cSrcweir 	XMLTransformerActions *pActions =
1369cdf0e10cSrcweir 		GetTransformer().GetUserDefinedActions( OASIS_TAB_STOP_ACTIONS  );
1370cdf0e10cSrcweir 	OSL_ENSURE( pActions, "go no actions" );
1371cdf0e10cSrcweir 
1372cdf0e10cSrcweir 	sal_Unicode cStyleLeaderChar = 0;
1373cdf0e10cSrcweir 	sal_Int16 nLeaderText = -1;
1374cdf0e10cSrcweir 	Reference< XAttributeList > xAttrList( rAttrList );
1375cdf0e10cSrcweir 	XMLMutableAttributeList *pMutableAttrList = 0;
1376cdf0e10cSrcweir 	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1377cdf0e10cSrcweir 	for( sal_Int16 i=0; i < nAttrCount; i++ )
1378cdf0e10cSrcweir 	{
1379cdf0e10cSrcweir 		const OUString& rAttrName = xAttrList->getNameByIndex( i );
1380cdf0e10cSrcweir 		OUString aLocalName;
1381cdf0e10cSrcweir 		sal_uInt16 nPrefix =
1382cdf0e10cSrcweir 			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1383cdf0e10cSrcweir 																 &aLocalName );
1384cdf0e10cSrcweir 		XMLTransformerActions::key_type aKey( nPrefix, aLocalName );
1385cdf0e10cSrcweir 		XMLTransformerActions::const_iterator aIter =
1386cdf0e10cSrcweir 			pActions->find( aKey );
1387cdf0e10cSrcweir 		if( !(aIter == pActions->end() ) )
1388cdf0e10cSrcweir 		{
1389cdf0e10cSrcweir 			if( !pMutableAttrList )
1390cdf0e10cSrcweir 			{
1391cdf0e10cSrcweir 				pMutableAttrList =
1392cdf0e10cSrcweir 					new XMLMutableAttributeList( xAttrList );
1393cdf0e10cSrcweir 				xAttrList = pMutableAttrList;
1394cdf0e10cSrcweir 			}
1395cdf0e10cSrcweir 			const OUString& rAttrValue = xAttrList->getValueByIndex( i );
1396cdf0e10cSrcweir 			switch( (*aIter).second.m_nActionType )
1397cdf0e10cSrcweir 			{
1398cdf0e10cSrcweir 			case XML_ATACTION_REMOVE:
1399cdf0e10cSrcweir 				if( IsXMLToken( aLocalName, XML_LEADER_STYLE ) )
1400cdf0e10cSrcweir 				{
1401cdf0e10cSrcweir 					if( IsXMLToken( rAttrValue, XML_NONE ) )
1402cdf0e10cSrcweir 						cStyleLeaderChar = ' ';
1403cdf0e10cSrcweir 					else if( IsXMLToken( rAttrValue, XML_DOTTED ) )
1404cdf0e10cSrcweir 						cStyleLeaderChar = '.';
1405cdf0e10cSrcweir 					else
1406cdf0e10cSrcweir 						cStyleLeaderChar = 0;
1407cdf0e10cSrcweir 					pMutableAttrList->RemoveAttributeByIndex( i );
1408cdf0e10cSrcweir 					--i;
1409cdf0e10cSrcweir 					--nAttrCount;
1410cdf0e10cSrcweir 				}
1411cdf0e10cSrcweir 				break;
1412cdf0e10cSrcweir 			case XML_ATACTION_RENAME:
1413cdf0e10cSrcweir 				{
1414cdf0e10cSrcweir 					OUString aNewAttrQName(
1415cdf0e10cSrcweir 						GetTransformer().GetNamespaceMap().GetQNameByKey(
1416cdf0e10cSrcweir 							(*aIter).second.GetQNamePrefixFromParam1(),
1417cdf0e10cSrcweir 							::xmloff::token::GetXMLToken(
1418cdf0e10cSrcweir 							(*aIter).second.GetQNameTokenFromParam1()) ) );
1419cdf0e10cSrcweir 					pMutableAttrList->RenameAttributeByIndex( i,
1420cdf0e10cSrcweir 															  aNewAttrQName );
1421cdf0e10cSrcweir 				}
1422cdf0e10cSrcweir 				if( IsXMLToken( aLocalName, XML_LEADER_TEXT ) )
1423cdf0e10cSrcweir 				{
1424cdf0e10cSrcweir 					if( rAttrValue.getLength() > 1 )
1425cdf0e10cSrcweir 					{
1426cdf0e10cSrcweir 						OUString aAttrValue( rAttrValue.copy( 0, 1 ) );
1427cdf0e10cSrcweir 						pMutableAttrList->SetValueByIndex( i, aAttrValue );
1428cdf0e10cSrcweir 						nLeaderText = i;
1429cdf0e10cSrcweir 					}
1430cdf0e10cSrcweir 				}
1431cdf0e10cSrcweir 				break;
1432cdf0e10cSrcweir 			case XML_ATACTION_IN2INCH:
1433cdf0e10cSrcweir 				{
1434cdf0e10cSrcweir 					OUString aAttrValue( rAttrValue );
1435cdf0e10cSrcweir 					if( XMLTransformerBase::ReplaceSingleInWithInch(
1436cdf0e10cSrcweir 								aAttrValue ) )
1437cdf0e10cSrcweir 						pMutableAttrList->SetValueByIndex( i, aAttrValue );
1438cdf0e10cSrcweir 				}
1439cdf0e10cSrcweir 				break;
1440cdf0e10cSrcweir 			default:
1441cdf0e10cSrcweir 				OSL_ENSURE( !this, "unknown action" );
1442cdf0e10cSrcweir 				break;
1443cdf0e10cSrcweir 			}
1444cdf0e10cSrcweir 		}
1445cdf0e10cSrcweir 	}
1446cdf0e10cSrcweir 
1447cdf0e10cSrcweir 	if( cStyleLeaderChar && ' ' != cStyleLeaderChar )
1448cdf0e10cSrcweir 	{
1449cdf0e10cSrcweir 		if( nLeaderText != -1 )
1450cdf0e10cSrcweir 		{
1451cdf0e10cSrcweir 			OUString aNewAttrQName(
1452cdf0e10cSrcweir 				GetTransformer().GetNamespaceMap().GetQNameByKey(
1453cdf0e10cSrcweir 							XML_NAMESPACE_STYLE,
1454cdf0e10cSrcweir 							::xmloff::token::GetXMLToken( XML_LEADER_CHAR ) ) );
1455cdf0e10cSrcweir 			pMutableAttrList->AddAttribute( aNewAttrQName,
1456cdf0e10cSrcweir 									OUString::valueOf( cStyleLeaderChar ) );
1457cdf0e10cSrcweir 		}
1458cdf0e10cSrcweir 	}
1459cdf0e10cSrcweir 	else
1460cdf0e10cSrcweir 	{
1461cdf0e10cSrcweir 		if( nLeaderText != -1 )
1462cdf0e10cSrcweir 			pMutableAttrList->RemoveAttributeByIndex( nLeaderText );
1463cdf0e10cSrcweir 	}
1464cdf0e10cSrcweir 
1465cdf0e10cSrcweir 	XMLPersElemContentTContext::StartElement( xAttrList );
1466cdf0e10cSrcweir }
1467cdf0e10cSrcweir 
1468cdf0e10cSrcweir // -----------------------------------------------------------------------------
1469cdf0e10cSrcweir 
1470cdf0e10cSrcweir class XMLConfigItemTContext_Impl : public XMLTransformerContext
1471cdf0e10cSrcweir {
1472cdf0e10cSrcweir 	::rtl::OUString m_aContent;
1473cdf0e10cSrcweir 	sal_Bool m_bIsRedlineProtectionKey;
1474cdf0e10cSrcweir     sal_Bool m_bIsCursorX;
1475cdf0e10cSrcweir     sal_Bool m_bIsCursorY;
1476cdf0e10cSrcweir 
1477cdf0e10cSrcweir public:
1478cdf0e10cSrcweir 
1479cdf0e10cSrcweir 	TYPEINFO();
1480cdf0e10cSrcweir 
1481cdf0e10cSrcweir 	XMLConfigItemTContext_Impl( XMLTransformerBase& rTransformer,
1482cdf0e10cSrcweir 						   const ::rtl::OUString& rQName );
1483cdf0e10cSrcweir 
1484cdf0e10cSrcweir 	virtual ~XMLConfigItemTContext_Impl();
1485cdf0e10cSrcweir 
1486cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1487cdf0e10cSrcweir 	virtual void EndElement();
1488cdf0e10cSrcweir 
1489cdf0e10cSrcweir 	virtual void Characters( const ::rtl::OUString& rChars );
1490cdf0e10cSrcweir };
1491cdf0e10cSrcweir 
1492cdf0e10cSrcweir TYPEINIT1( XMLConfigItemTContext_Impl, XMLTransformerContext );
1493cdf0e10cSrcweir 
XMLConfigItemTContext_Impl(XMLTransformerBase & rImp,const OUString & rQName)1494cdf0e10cSrcweir XMLConfigItemTContext_Impl::XMLConfigItemTContext_Impl(
1495cdf0e10cSrcweir 		XMLTransformerBase& rImp,
1496cdf0e10cSrcweir 	    const OUString& rQName ) :
1497cdf0e10cSrcweir 	XMLTransformerContext( rImp, rQName ),
1498cdf0e10cSrcweir 	m_bIsRedlineProtectionKey( sal_False ),
1499cdf0e10cSrcweir     m_bIsCursorX( sal_False ),
1500cdf0e10cSrcweir     m_bIsCursorY( sal_False )
1501cdf0e10cSrcweir {
1502cdf0e10cSrcweir }
1503cdf0e10cSrcweir 
~XMLConfigItemTContext_Impl()1504cdf0e10cSrcweir XMLConfigItemTContext_Impl::~XMLConfigItemTContext_Impl()
1505cdf0e10cSrcweir {
1506cdf0e10cSrcweir }
1507cdf0e10cSrcweir 
StartElement(const Reference<XAttributeList> & rAttrList)1508cdf0e10cSrcweir void XMLConfigItemTContext_Impl::StartElement(
1509cdf0e10cSrcweir 		const Reference< XAttributeList >& rAttrList )
1510cdf0e10cSrcweir {
1511cdf0e10cSrcweir 	Reference< XAttributeList > xAttrList( rAttrList );
1512cdf0e10cSrcweir 
1513cdf0e10cSrcweir 	sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0;
1514cdf0e10cSrcweir 	for( sal_Int16 i=0; i < nAttrCount; i++ )
1515cdf0e10cSrcweir 	{
1516cdf0e10cSrcweir 		const OUString& rAttrName = xAttrList->getNameByIndex( i );
1517cdf0e10cSrcweir 		OUString aLocalName;
1518cdf0e10cSrcweir 		sal_uInt16 nPrefix =
1519cdf0e10cSrcweir 			GetTransformer().GetNamespaceMap().GetKeyByAttrName( rAttrName,
1520cdf0e10cSrcweir 																 &aLocalName );
1521cdf0e10cSrcweir 		if( XML_NAMESPACE_CONFIG == nPrefix )
1522cdf0e10cSrcweir         {
1523cdf0e10cSrcweir 			if ( IsXMLToken( aLocalName, XML_NAME ) )
1524cdf0e10cSrcweir 		    {
1525cdf0e10cSrcweir 			    const OUString& rValue = xAttrList->getValueByIndex( i );
1526cdf0e10cSrcweir 			    const sal_Char sRedlineProtectionKey[] = "RedlineProtectionKey";
1527cdf0e10cSrcweir                 const sal_Char sCursorX[] = "CursorPositionX";
1528cdf0e10cSrcweir                 const sal_Char sCursorY[] = "CursorPositionY";
1529cdf0e10cSrcweir 			    if( rValue.equalsAsciiL( sRedlineProtectionKey, sizeof(sRedlineProtectionKey)-1 ) )
1530cdf0e10cSrcweir 				    m_bIsRedlineProtectionKey = sal_True;
1531cdf0e10cSrcweir                 else if( rValue.equalsAsciiL( sCursorX, sizeof(sCursorX)-1 ) )
1532cdf0e10cSrcweir                     m_bIsCursorX = sal_True;
1533cdf0e10cSrcweir                 else if( rValue.equalsAsciiL( sCursorY, sizeof(sCursorY)-1 ) )
1534cdf0e10cSrcweir                     m_bIsCursorY = sal_True;
1535cdf0e10cSrcweir 
1536cdf0e10cSrcweir 			    break;
1537cdf0e10cSrcweir 		    }
1538cdf0e10cSrcweir         }
1539cdf0e10cSrcweir 	}
1540cdf0e10cSrcweir 
1541cdf0e10cSrcweir 	XMLTransformerContext::StartElement( xAttrList );
1542cdf0e10cSrcweir }
1543cdf0e10cSrcweir 
Characters(const::rtl::OUString & rChars)1544cdf0e10cSrcweir void XMLConfigItemTContext_Impl::Characters( const ::rtl::OUString& rChars )
1545cdf0e10cSrcweir {
1546cdf0e10cSrcweir     rtl::OUString sChars(rChars);
1547cdf0e10cSrcweir     if (m_bIsRedlineProtectionKey)
1548cdf0e10cSrcweir 	    m_aContent += rChars;
1549cdf0e10cSrcweir     else if (m_bIsCursorX || m_bIsCursorY)
1550cdf0e10cSrcweir     {
1551cdf0e10cSrcweir         sal_Int32 nPos = rChars.toInt32();
1552cdf0e10cSrcweir         if (m_bIsCursorX && nPos > 255)
1553cdf0e10cSrcweir             nPos = 255;
1554cdf0e10cSrcweir         else if (m_bIsCursorY && nPos > 31999)
1555cdf0e10cSrcweir             nPos = 31999;
1556cdf0e10cSrcweir 
1557cdf0e10cSrcweir         sChars = ::rtl::OUString::valueOf(nPos);
1558cdf0e10cSrcweir     }
1559cdf0e10cSrcweir 
1560cdf0e10cSrcweir 	XMLTransformerContext::Characters( sChars );
1561cdf0e10cSrcweir }
1562cdf0e10cSrcweir 
EndElement()1563cdf0e10cSrcweir void XMLConfigItemTContext_Impl::EndElement()
1564cdf0e10cSrcweir {
1565cdf0e10cSrcweir 
1566cdf0e10cSrcweir 	if( m_bIsRedlineProtectionKey )
1567cdf0e10cSrcweir 	{
1568cdf0e10cSrcweir 		const Reference< XPropertySet > rPropSet =
1569cdf0e10cSrcweir 			GetTransformer().GetPropertySet();
1570cdf0e10cSrcweir 		if( rPropSet.is() )
1571cdf0e10cSrcweir 		{
1572cdf0e10cSrcweir 			const sal_Char sRedlineProtectionKey[] = "RedlineProtectionKey";
1573cdf0e10cSrcweir 			OUString aPropName(RTL_CONSTASCII_USTRINGPARAM(sRedlineProtectionKey));
1574cdf0e10cSrcweir 			Reference< XPropertySetInfo > xPropSetInfo(
1575cdf0e10cSrcweir 						rPropSet->getPropertySetInfo() );
1576cdf0e10cSrcweir 			if( xPropSetInfo.is() &&
1577cdf0e10cSrcweir 				xPropSetInfo->hasPropertyByName( aPropName ) )
1578cdf0e10cSrcweir 			{
1579cdf0e10cSrcweir 				Sequence < sal_Int8 > aKey;
1580cdf0e10cSrcweir 				SvXMLUnitConverter::decodeBase64( aKey, m_aContent );
1581cdf0e10cSrcweir 				rPropSet->setPropertyValue( aPropName, makeAny( aKey ) );
1582cdf0e10cSrcweir 			}
1583cdf0e10cSrcweir 		}
1584cdf0e10cSrcweir 	}
1585cdf0e10cSrcweir 	XMLTransformerContext::EndElement();
1586cdf0e10cSrcweir }
1587cdf0e10cSrcweir 
1588cdf0e10cSrcweir // -----------------------------------------------------------------------------
1589cdf0e10cSrcweir 
1590cdf0e10cSrcweir class XMLTrackedChangesOASISTContext_Impl : public XMLTransformerContext
1591cdf0e10cSrcweir {
1592cdf0e10cSrcweir 	::rtl::OUString m_aAttrQName;
1593cdf0e10cSrcweir 
1594cdf0e10cSrcweir public:
1595cdf0e10cSrcweir 
1596cdf0e10cSrcweir 	TYPEINFO();
1597cdf0e10cSrcweir 
1598cdf0e10cSrcweir 	XMLTrackedChangesOASISTContext_Impl( XMLTransformerBase& rTransformer,
1599cdf0e10cSrcweir 						   const ::rtl::OUString& rQName,
1600cdf0e10cSrcweir 		   					sal_uInt16 nPrefix,
1601cdf0e10cSrcweir 							XMLTokenEnum eToken	);
1602cdf0e10cSrcweir 
1603cdf0e10cSrcweir 	virtual ~XMLTrackedChangesOASISTContext_Impl();
1604cdf0e10cSrcweir 
1605cdf0e10cSrcweir 	virtual void StartElement( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList );
1606cdf0e10cSrcweir };
1607cdf0e10cSrcweir 
1608cdf0e10cSrcweir TYPEINIT1( XMLTrackedChangesOASISTContext_Impl, XMLTransformerContext );
1609cdf0e10cSrcweir 
XMLTrackedChangesOASISTContext_Impl(XMLTransformerBase & rImp,const OUString & rQName,sal_uInt16 nPrefix,XMLTokenEnum eToken)1610cdf0e10cSrcweir XMLTrackedChangesOASISTContext_Impl::XMLTrackedChangesOASISTContext_Impl(
1611cdf0e10cSrcweir 		XMLTransformerBase& rImp,
1612cdf0e10cSrcweir 	    const OUString& rQName,
1613cdf0e10cSrcweir 		sal_uInt16 nPrefix,
1614cdf0e10cSrcweir 		XMLTokenEnum eToken	) :
1615cdf0e10cSrcweir 	XMLTransformerContext( rImp, rQName ),
1616cdf0e10cSrcweir 	m_aAttrQName( rImp.GetNamespaceMap().GetQNameByKey( nPrefix,
1617cdf0e10cSrcweir 														GetXMLToken(eToken)) )
1618cdf0e10cSrcweir {
1619cdf0e10cSrcweir }
1620cdf0e10cSrcweir 
~XMLTrackedChangesOASISTContext_Impl()1621cdf0e10cSrcweir XMLTrackedChangesOASISTContext_Impl::~XMLTrackedChangesOASISTContext_Impl()
1622cdf0e10cSrcweir {
1623cdf0e10cSrcweir }
1624cdf0e10cSrcweir 
StartElement(const Reference<XAttributeList> & rAttrList)1625cdf0e10cSrcweir void XMLTrackedChangesOASISTContext_Impl::StartElement(
1626cdf0e10cSrcweir 		const Reference< XAttributeList >& rAttrList )
1627cdf0e10cSrcweir {
1628cdf0e10cSrcweir 	Reference< XAttributeList > xAttrList( rAttrList );
1629cdf0e10cSrcweir 	const Reference< XPropertySet > rPropSet =
1630cdf0e10cSrcweir 		GetTransformer().GetPropertySet();
1631cdf0e10cSrcweir 	if( rPropSet.is() )
1632cdf0e10cSrcweir 	{
1633cdf0e10cSrcweir 		const sal_Char sRedlineProtectionKey[] = "RedlineProtectionKey";
1634cdf0e10cSrcweir 		OUString aPropName(RTL_CONSTASCII_USTRINGPARAM(sRedlineProtectionKey));
1635cdf0e10cSrcweir 		Reference< XPropertySetInfo > xPropSetInfo(
1636cdf0e10cSrcweir 					rPropSet->getPropertySetInfo() );
1637cdf0e10cSrcweir 		if( xPropSetInfo.is() &&
1638cdf0e10cSrcweir 			xPropSetInfo->hasPropertyByName( aPropName ) )
1639cdf0e10cSrcweir 		{
1640cdf0e10cSrcweir 			Any aAny = rPropSet->getPropertyValue( aPropName);
1641cdf0e10cSrcweir 			Sequence < sal_Int8 > aKey;
1642cdf0e10cSrcweir 			aAny >>= aKey;
1643cdf0e10cSrcweir 			if( aKey.getLength() )
1644cdf0e10cSrcweir 			{
1645cdf0e10cSrcweir 				OUStringBuffer aBuffer;
1646cdf0e10cSrcweir 				SvXMLUnitConverter::encodeBase64( aBuffer, aKey );
1647cdf0e10cSrcweir 				XMLMutableAttributeList *pMutableAttrList =
1648cdf0e10cSrcweir 					new XMLMutableAttributeList( xAttrList );
1649cdf0e10cSrcweir 				xAttrList = pMutableAttrList;
1650cdf0e10cSrcweir 				pMutableAttrList->AddAttribute( m_aAttrQName,
1651cdf0e10cSrcweir 												aBuffer.makeStringAndClear() );
1652cdf0e10cSrcweir 			}
1653cdf0e10cSrcweir 		}
1654cdf0e10cSrcweir 	}
1655cdf0e10cSrcweir 	XMLTransformerContext::StartElement( xAttrList );
1656cdf0e10cSrcweir }
1657cdf0e10cSrcweir 
1658cdf0e10cSrcweir // -----------------------------------------------------------------------------
1659cdf0e10cSrcweir 
CreateUserDefinedContext(const TransformerAction_Impl & rAction,const OUString & rQName,sal_Bool bPersistent)1660cdf0e10cSrcweir XMLTransformerContext *Oasis2OOoTransformer::CreateUserDefinedContext(
1661cdf0e10cSrcweir 							  const TransformerAction_Impl& rAction,
1662cdf0e10cSrcweir 							  const OUString& rQName,
1663cdf0e10cSrcweir 	   						  sal_Bool bPersistent )
1664cdf0e10cSrcweir {
1665cdf0e10cSrcweir 	switch( rAction.m_nActionType )
1666cdf0e10cSrcweir 	{
1667cdf0e10cSrcweir 	case XML_ETACTION_META:
1668cdf0e10cSrcweir 		return new XMLMetaTransformerContext( *this, rQName );
1669cdf0e10cSrcweir 	case XML_ETACTION_DOCUMENT:
1670cdf0e10cSrcweir 		return new XMLDocumentTransformerContext( *this, rQName );
1671cdf0e10cSrcweir 	case XML_ETACTION_BODY:
1672cdf0e10cSrcweir 		return new XMLBodyOASISTransformerContext_Impl( *this, rQName );
1673cdf0e10cSrcweir 	case XML_ETACTION_NOTES:
1674cdf0e10cSrcweir 		return new XMLNotesTransformerContext( *this, rQName,
1675cdf0e10cSrcweir 				static_cast< XMLTokenEnum>( rAction.m_nParam1 ), bPersistent );
1676cdf0e10cSrcweir 	case XML_ETACTION_TABLE:
1677cdf0e10cSrcweir 		return new XMLTableTransformerContext_Impl( *this, rQName );
1678cdf0e10cSrcweir 	case XML_ETACTION_STYLE:
1679cdf0e10cSrcweir 		return new XMLStyleOASISTContext( *this, rQName, bPersistent );
1680cdf0e10cSrcweir 	case XML_ETACTION_STYLE_RENAME:
1681cdf0e10cSrcweir 		return new XMLStyleOASISTContext( *this, rQName,
1682cdf0e10cSrcweir 					rAction.GetQNamePrefixFromParam1(),
1683cdf0e10cSrcweir 					rAction.GetQNameTokenFromParam1(), bPersistent );
1684cdf0e10cSrcweir 	case XML_ETACTION_FRAME:
1685cdf0e10cSrcweir 		return new XMLFrameOASISTransformerContext( *this, rQName );
1686cdf0e10cSrcweir 	case XML_ETACTION_EVENT:
1687cdf0e10cSrcweir 		return new XMLEventOASISTransformerContext( *this, rQName );
1688cdf0e10cSrcweir 	case XML_ETACTION_DLG:
1689cdf0e10cSrcweir 		return new XMLDlgOASISTransformerContext( *this, rQName );
1690cdf0e10cSrcweir 	case XML_ETACTION_TAB_STOP:
1691cdf0e10cSrcweir 		return new XMLTabStopOASISTContext_Impl( *this, rQName );
1692cdf0e10cSrcweir 	case XML_ETACTION_FORM_CONTROL:
1693cdf0e10cSrcweir 		{
1694cdf0e10cSrcweir 			const XMLTransformerContext *pCurrent = GetCurrentContext();
1695cdf0e10cSrcweir 			return new XMLControlOASISTransformerContext( *this, rQName,
1696cdf0e10cSrcweir 						pCurrent ? pCurrent->HasQName( XML_NAMESPACE_FORM,
1697cdf0e10cSrcweir 										   XML_FORM ) : sal_False  );
1698cdf0e10cSrcweir 		}
1699cdf0e10cSrcweir 	case XML_ETACTION_FORM_PROPERTY:
1700cdf0e10cSrcweir 		return new XMLFormPropOASISTransformerContext( *this, rQName,
1701cdf0e10cSrcweir 				static_cast< XMLTokenEnum >( rAction.m_nParam1 ) );
1702cdf0e10cSrcweir 	case XML_ETACTION_CHART:
1703cdf0e10cSrcweir 		return new XMLChartOASISTransformerContext( *this, rQName );
1704cdf0e10cSrcweir 	case XML_ETACTION_CONFIG_ITEM:
1705cdf0e10cSrcweir 		return new XMLConfigItemTContext_Impl( *this, rQName );
1706cdf0e10cSrcweir 	case XML_ETACTION_TRACKED_CHANGES:
1707cdf0e10cSrcweir 		return new XMLTrackedChangesOASISTContext_Impl( *this, rQName,
1708cdf0e10cSrcweir 			   				rAction.GetQNamePrefixFromParam1(),
1709cdf0e10cSrcweir 							rAction.GetQNameTokenFromParam1() );
1710cdf0e10cSrcweir 	case XML_ETACTION_CHART_PLOT_AREA:
1711cdf0e10cSrcweir         return new XMLChartPlotAreaOASISTContext( *this, rQName );
1712cdf0e10cSrcweir 	default:
1713cdf0e10cSrcweir 		OSL_ENSURE( !this, "no user defined context found!" );
1714cdf0e10cSrcweir 		break;
1715cdf0e10cSrcweir 	}
1716cdf0e10cSrcweir 
1717cdf0e10cSrcweir 	// default is copying
1718cdf0e10cSrcweir 	return new XMLTransformerContext( *this, rQName );
1719cdf0e10cSrcweir }
1720cdf0e10cSrcweir 
GetUserDefinedActions(sal_uInt16 n)1721cdf0e10cSrcweir XMLTransformerActions *Oasis2OOoTransformer::GetUserDefinedActions(
1722cdf0e10cSrcweir 		sal_uInt16 n )
1723cdf0e10cSrcweir {
1724cdf0e10cSrcweir 	XMLTransformerActions *pActions = 0;
1725cdf0e10cSrcweir 	if( n < MAX_OASIS_ACTIONS )
1726cdf0e10cSrcweir 	{
1727cdf0e10cSrcweir 		if( !m_aActions[n] )
1728cdf0e10cSrcweir 		{
1729cdf0e10cSrcweir 			if( n<MAX_OASIS_PROP_ACTIONS )
1730cdf0e10cSrcweir 			{
1731cdf0e10cSrcweir 				m_aActions[n] =
1732cdf0e10cSrcweir 					XMLStyleOASISTContext::CreateTransformerActions( n );
1733cdf0e10cSrcweir 			}
1734cdf0e10cSrcweir 			else switch( n )
1735cdf0e10cSrcweir 			{
1736cdf0e10cSrcweir 			case OASIS_STYLE_ACTIONS:
1737cdf0e10cSrcweir 				m_aActions[OASIS_STYLE_ACTIONS] =
1738cdf0e10cSrcweir 					new XMLTransformerActions( aStyleActionTable );
1739cdf0e10cSrcweir 				break;
1740cdf0e10cSrcweir 			case OASIS_FONT_FACE_ACTIONS:
1741cdf0e10cSrcweir 				m_aActions[OASIS_FONT_FACE_ACTIONS] =
1742cdf0e10cSrcweir 					new XMLTransformerActions( aFontFaceActionTable );
1743cdf0e10cSrcweir 				break;
1744cdf0e10cSrcweir 			case OASIS_SHAPE_ACTIONS:
1745cdf0e10cSrcweir 				m_aActions[OASIS_SHAPE_ACTIONS] =
1746cdf0e10cSrcweir 					new XMLTransformerActions( aShapeActionTable );
1747cdf0e10cSrcweir 				break;
1748cdf0e10cSrcweir 			case OASIS_CONNECTOR_ACTIONS:
1749cdf0e10cSrcweir 				m_aActions[OASIS_CONNECTOR_ACTIONS] =
1750cdf0e10cSrcweir 					new XMLTransformerActions( aConnectorActionTable );
1751cdf0e10cSrcweir 				break;
1752cdf0e10cSrcweir 			case OASIS_INDEX_ENTRY_TAB_STOP_ACTIONS:
1753cdf0e10cSrcweir 				m_aActions[OASIS_INDEX_ENTRY_TAB_STOP_ACTIONS] =
1754cdf0e10cSrcweir 					new XMLTransformerActions( aIndexEntryTabStopActionTable );
1755cdf0e10cSrcweir 				break;
1756cdf0e10cSrcweir 			case OASIS_TAB_STOP_ACTIONS:
1757cdf0e10cSrcweir 				m_aActions[OASIS_TAB_STOP_ACTIONS] =
1758cdf0e10cSrcweir 					new XMLTransformerActions( aTabStopActionTable );
1759cdf0e10cSrcweir 				break;
1760cdf0e10cSrcweir 			case OASIS_LINENUMBERING_ACTIONS:
1761cdf0e10cSrcweir 				m_aActions[OASIS_LINENUMBERING_ACTIONS] =
1762cdf0e10cSrcweir 					new XMLTransformerActions( aLineNumberingActionTable );
1763cdf0e10cSrcweir 				break;
1764cdf0e10cSrcweir 			case OASIS_FOOTNOTE_SEP_ACTIONS:
1765cdf0e10cSrcweir 				m_aActions[OASIS_FOOTNOTE_SEP_ACTIONS] =
1766cdf0e10cSrcweir 					new XMLTransformerActions( aFootnoteSepActionTable );
1767cdf0e10cSrcweir 				break;
1768cdf0e10cSrcweir 			case OASIS_DROP_CAP_ACTIONS:
1769cdf0e10cSrcweir 				m_aActions[OASIS_DROP_CAP_ACTIONS] =
1770cdf0e10cSrcweir 					new XMLTransformerActions( aDropCapActionTable );
1771cdf0e10cSrcweir 				break;
1772cdf0e10cSrcweir 			case OASIS_COLUMNS_ACTIONS:
1773cdf0e10cSrcweir 				m_aActions[OASIS_COLUMNS_ACTIONS] =
1774cdf0e10cSrcweir 					new XMLTransformerActions( aColumnsActionTable );
1775cdf0e10cSrcweir 				break;
1776cdf0e10cSrcweir 			case OASIS_TEXT_VALUE_TYPE_ACTIONS:
1777cdf0e10cSrcweir 				m_aActions[OASIS_TEXT_VALUE_TYPE_ACTIONS] =
1778cdf0e10cSrcweir 					new XMLTransformerActions( aTextValueTypeActionTable );
1779cdf0e10cSrcweir 				break;
1780cdf0e10cSrcweir 			case OASIS_TABLE_VALUE_TYPE_ACTIONS:
1781cdf0e10cSrcweir 				m_aActions[OASIS_TABLE_VALUE_TYPE_ACTIONS] =
1782cdf0e10cSrcweir 					new XMLTransformerActions( aTableValueTypeActionTable );
1783cdf0e10cSrcweir 				break;
1784cdf0e10cSrcweir 			case OASIS_PARA_ACTIONS:
1785cdf0e10cSrcweir 				m_aActions[OASIS_PARA_ACTIONS] =
1786cdf0e10cSrcweir 					new XMLTransformerActions( aParaActionTable );
1787cdf0e10cSrcweir 				break;
1788cdf0e10cSrcweir 			case OASIS_LIST_STYLE_REF_ACTIONS:
1789cdf0e10cSrcweir 				m_aActions[OASIS_LIST_STYLE_REF_ACTIONS] =
1790cdf0e10cSrcweir 					new XMLTransformerActions( aListStyleRefActionTable );
1791cdf0e10cSrcweir 				break;
1792cdf0e10cSrcweir 			case OASIS_TEXT_STYLE_REF_ACTIONS:
1793cdf0e10cSrcweir 				m_aActions[OASIS_TEXT_STYLE_REF_ACTIONS] =
1794cdf0e10cSrcweir 					new XMLTransformerActions( aTextStyleRefActionTable );
1795cdf0e10cSrcweir 				break;
1796cdf0e10cSrcweir 			case OASIS_PARA_STYLE_REF_ACTIONS:
1797cdf0e10cSrcweir 				m_aActions[OASIS_PARA_STYLE_REF_ACTIONS] =
1798cdf0e10cSrcweir 					new XMLTransformerActions( aParaStyleRefActionTable );
1799cdf0e10cSrcweir 				break;
1800cdf0e10cSrcweir 			case OASIS_MASTER_PAGE_REF_ACTIONS:
1801cdf0e10cSrcweir 				m_aActions[OASIS_MASTER_PAGE_REF_ACTIONS] =
1802cdf0e10cSrcweir 					new XMLTransformerActions( aMasterPageRefActionTable );
1803cdf0e10cSrcweir 				break;
1804cdf0e10cSrcweir 			case OASIS_MAP_STYLE_REF_ACTIONS:
1805cdf0e10cSrcweir 				m_aActions[OASIS_MAP_STYLE_REF_ACTIONS] =
1806cdf0e10cSrcweir 					new XMLTransformerActions( aMapStyleRefActionTable );
1807cdf0e10cSrcweir 				break;
1808cdf0e10cSrcweir 			case OASIS_MASTER_PAGE_ACTIONS:
1809cdf0e10cSrcweir 				m_aActions[OASIS_MASTER_PAGE_ACTIONS] =
1810cdf0e10cSrcweir 					new XMLTransformerActions( aMasterPageActionTable );
1811cdf0e10cSrcweir 				break;
1812cdf0e10cSrcweir 			case OASIS_NOTES_ACTIONS:
1813cdf0e10cSrcweir 				m_aActions[OASIS_NOTES_ACTIONS] =
1814cdf0e10cSrcweir 					new XMLTransformerActions( aNotesActionTable );
1815cdf0e10cSrcweir 				break;
1816cdf0e10cSrcweir 			case OASIS_ANNOTATION_ACTIONS:
1817cdf0e10cSrcweir 				m_aActions[OASIS_ANNOTATION_ACTIONS] =
1818cdf0e10cSrcweir 					new XMLTransformerActions( aAnnotationActionTable );
1819cdf0e10cSrcweir 				break;
1820cdf0e10cSrcweir 			case OASIS_CHANGE_INFO_ACTIONS:
1821cdf0e10cSrcweir 				m_aActions[OASIS_CHANGE_INFO_ACTIONS] =
1822cdf0e10cSrcweir 					new XMLTransformerActions( aChangeInfoActionTable );
1823cdf0e10cSrcweir 				break;
1824cdf0e10cSrcweir 			case OASIS_FRAME_ELEM_ACTIONS:
1825cdf0e10cSrcweir 				m_aActions[OASIS_FRAME_ELEM_ACTIONS] =
1826cdf0e10cSrcweir 					new XMLTransformerActions( aFrameActionTable );
1827cdf0e10cSrcweir 				break;
1828cdf0e10cSrcweir 			case OASIS_BACKGROUND_IMAGE_ACTIONS:
1829cdf0e10cSrcweir 				m_aActions[OASIS_BACKGROUND_IMAGE_ACTIONS] =
1830cdf0e10cSrcweir 					new XMLTransformerActions( aBackgroundImageActionTable );
1831cdf0e10cSrcweir 				break;
1832cdf0e10cSrcweir 			case OASIS_DDE_CONNECTION_DECL_ACTIONS:
1833cdf0e10cSrcweir 				m_aActions[OASIS_DDE_CONNECTION_DECL_ACTIONS] =
1834cdf0e10cSrcweir 					new XMLTransformerActions( aDDEConnectionDeclActionTable );
1835cdf0e10cSrcweir 				break;
1836cdf0e10cSrcweir 			case OASIS_EVENT_ACTIONS:
1837cdf0e10cSrcweir 				m_aActions[OASIS_EVENT_ACTIONS] =
1838cdf0e10cSrcweir 					new XMLTransformerActions( aEventActionTable );
1839cdf0e10cSrcweir                 break;
1840cdf0e10cSrcweir 			case OASIS_DLG_ACTIONS:
1841cdf0e10cSrcweir 				m_aActions[OASIS_DLG_ACTIONS] =
1842cdf0e10cSrcweir 					new XMLTransformerActions( aDlgActionTable );
1843cdf0e10cSrcweir 				break;
1844cdf0e10cSrcweir 			case OASIS_FORM_CONTROL_ACTIONS:
1845cdf0e10cSrcweir 				m_aActions[OASIS_FORM_CONTROL_ACTIONS] =
1846cdf0e10cSrcweir 					new XMLTransformerActions( aFormControlActionTable );
1847cdf0e10cSrcweir 				break;
1848cdf0e10cSrcweir 			case OASIS_FORM_COLUMN_ACTIONS:
1849cdf0e10cSrcweir 				m_aActions[OASIS_FORM_COLUMN_ACTIONS] =
1850cdf0e10cSrcweir 					new XMLTransformerActions( aFormColumnActionTable );
1851cdf0e10cSrcweir 				break;
1852cdf0e10cSrcweir 			case OASIS_FORM_PROP_ACTIONS:
1853cdf0e10cSrcweir 				m_aActions[OASIS_FORM_PROP_ACTIONS] =
1854cdf0e10cSrcweir 					new XMLTransformerActions( aFormPropActionTable );
1855cdf0e10cSrcweir 				break;
1856cdf0e10cSrcweir 			case OASIS_XLINK_ACTIONS:
1857cdf0e10cSrcweir 				m_aActions[OASIS_XLINK_ACTIONS] =
1858cdf0e10cSrcweir 					new XMLTransformerActions( aXLinkActionTable );
1859cdf0e10cSrcweir 				break;
1860cdf0e10cSrcweir 			case OASIS_CONFIG_ITEM_SET_ACTIONS:
1861cdf0e10cSrcweir 				m_aActions[OASIS_CONFIG_ITEM_SET_ACTIONS] =
1862cdf0e10cSrcweir 					new XMLTransformerActions( aConfigItemSetActionTable );
1863cdf0e10cSrcweir 				break;
1864cdf0e10cSrcweir 			case OASIS_FORMULA_ACTIONS:
1865cdf0e10cSrcweir 				m_aActions[OASIS_FORMULA_ACTIONS] =
1866cdf0e10cSrcweir 					new XMLTransformerActions( aFormulaActionTable );
1867cdf0e10cSrcweir 				break;
1868cdf0e10cSrcweir 			case OASIS_CHART_ACTIONS:
1869cdf0e10cSrcweir 				m_aActions[OASIS_CHART_ACTIONS] =
1870cdf0e10cSrcweir 					new XMLTransformerActions( aChartActionTable );
1871cdf0e10cSrcweir 				break;
1872cdf0e10cSrcweir 			case OASIS_FORM_ACTIONS:
1873cdf0e10cSrcweir 				m_aActions[OASIS_FORM_ACTIONS] =
1874cdf0e10cSrcweir 					new XMLTransformerActions( aFormActionTable );
1875cdf0e10cSrcweir 				break;
1876cdf0e10cSrcweir             case OASIS_ALPHABETICAL_INDEX_MARK_ACTIONS:
1877cdf0e10cSrcweir                 m_aActions[OASIS_ALPHABETICAL_INDEX_MARK_ACTIONS] =
1878cdf0e10cSrcweir                     new XMLTransformerActions(
1879cdf0e10cSrcweir                         aAlphabeticalIndexMarkActionTable );
1880cdf0e10cSrcweir                 break;
1881cdf0e10cSrcweir             case OASIS_CONTENT_VALIDATION_ACTIONS:
1882cdf0e10cSrcweir                 m_aActions[OASIS_CONTENT_VALIDATION_ACTIONS] =
1883cdf0e10cSrcweir                     new XMLTransformerActions( aContentValidationActionTable );
1884cdf0e10cSrcweir 			case OASIS_DDE_CONV_MODE_ACTIONS:
1885cdf0e10cSrcweir 				m_aActions[OASIS_DDE_CONV_MODE_ACTIONS] =
1886cdf0e10cSrcweir 					new XMLTransformerActions( aDDEConvModeActionTable );
1887cdf0e10cSrcweir 				break;
1888cdf0e10cSrcweir 			case OASIS_DATAPILOT_MEMBER_ACTIONS:
1889cdf0e10cSrcweir 				m_aActions[OASIS_DATAPILOT_MEMBER_ACTIONS] =
1890cdf0e10cSrcweir 					new XMLTransformerActions( aDataPilotMemberActionTable );
1891cdf0e10cSrcweir 				break;
1892cdf0e10cSrcweir 			case OASIS_DATAPILOT_LEVEL_ACTIONS:
1893cdf0e10cSrcweir 				m_aActions[OASIS_DATAPILOT_LEVEL_ACTIONS] =
1894cdf0e10cSrcweir 					new XMLTransformerActions( aDataPilotLevelActionTable );
1895cdf0e10cSrcweir 				break;
1896cdf0e10cSrcweir 			case OASIS_SOURCE_SERVICE_ACTIONS:
1897cdf0e10cSrcweir 				m_aActions[OASIS_SOURCE_SERVICE_ACTIONS] =
1898cdf0e10cSrcweir 					new XMLTransformerActions( aSourceServiceActionTable );
1899cdf0e10cSrcweir 				break;
1900cdf0e10cSrcweir             case OASIS_DRAW_AREA_POLYGON_ACTIONS:
1901cdf0e10cSrcweir                 m_aActions[OASIS_DRAW_AREA_POLYGON_ACTIONS] =
1902cdf0e10cSrcweir                     new XMLTransformerActions( aShapeActionTable );
1903cdf0e10cSrcweir                 m_aActions[OASIS_DRAW_AREA_POLYGON_ACTIONS]
1904cdf0e10cSrcweir                     ->Add( aDrawAreaPolygonActionTable );
1905cdf0e10cSrcweir                 break;
1906cdf0e10cSrcweir             case OASIS_SCRIPT_ACTIONS:
1907cdf0e10cSrcweir 				m_aActions[OASIS_SCRIPT_ACTIONS] =
1908cdf0e10cSrcweir 					new XMLTransformerActions( aScriptActionTable );
1909cdf0e10cSrcweir 				break;
1910cdf0e10cSrcweir             case OASIS_DATETIME_ACTIONS:
1911cdf0e10cSrcweir                 m_aActions[OASIS_DATETIME_ACTIONS] =
1912cdf0e10cSrcweir                     new XMLTransformerActions( aDateTimeActionTable );
1913cdf0e10cSrcweir                 break;
1914cdf0e10cSrcweir             // --> OD 2005-01-10 #i40011#, #i40015#
1915cdf0e10cSrcweir             case OASIS_TABLE_STYLE_REF_ACTIONS:
1916cdf0e10cSrcweir                 m_aActions[OASIS_TABLE_STYLE_REF_ACTIONS] =
1917cdf0e10cSrcweir                     new XMLTransformerActions( aTableStyleRefActionTable );
1918cdf0e10cSrcweir                 break;
1919cdf0e10cSrcweir             // <--
1920cdf0e10cSrcweir 			case OASIS_ANIMATION_ACTIONS:
1921cdf0e10cSrcweir                 m_aActions[OASIS_ANIMATION_ACTIONS] =
1922cdf0e10cSrcweir                     new XMLTransformerActions( aAnimationActionTable );
1923cdf0e10cSrcweir                 break;
1924cdf0e10cSrcweir 			}
1925cdf0e10cSrcweir 		}
1926cdf0e10cSrcweir 		pActions = m_aActions[n];
1927cdf0e10cSrcweir 	}
1928cdf0e10cSrcweir 
1929cdf0e10cSrcweir 	return pActions;
1930cdf0e10cSrcweir }
1931cdf0e10cSrcweir 
GetEventName(const OUString & rName,sal_Bool bForm)1932cdf0e10cSrcweir OUString Oasis2OOoTransformer::GetEventName( const OUString& rName,
1933cdf0e10cSrcweir 											 sal_Bool bForm )
1934cdf0e10cSrcweir {
1935cdf0e10cSrcweir 	if( bForm && !m_pFormEventMap )
1936cdf0e10cSrcweir 		m_pFormEventMap =
1937cdf0e10cSrcweir 			XMLEventOASISTransformerContext::CreateFormEventMap();
1938cdf0e10cSrcweir 	if( !m_pEventMap )
1939cdf0e10cSrcweir 		m_pEventMap = XMLEventOASISTransformerContext::CreateEventMap();
1940cdf0e10cSrcweir 
1941cdf0e10cSrcweir 	OUString aMacroName;
1942cdf0e10cSrcweir 	sal_uInt16 nPrefix =
1943cdf0e10cSrcweir 		GetNamespaceMap().GetKeyByAttrName( rName, &aMacroName );
1944cdf0e10cSrcweir 	return XMLEventOASISTransformerContext::GetEventName(
1945cdf0e10cSrcweir 				nPrefix, aMacroName, *m_pEventMap,
1946cdf0e10cSrcweir 		   		bForm ? m_pFormEventMap : 0	);
1947cdf0e10cSrcweir }
1948cdf0e10cSrcweir 
Oasis2OOoTransformer()1949cdf0e10cSrcweir Oasis2OOoTransformer::Oasis2OOoTransformer() throw() :
1950cdf0e10cSrcweir 	XMLTransformerBase( aActionTable, aTokenMap ),
1951cdf0e10cSrcweir 	m_pEventMap( 0 ),
1952cdf0e10cSrcweir 	m_pFormEventMap( 0 )
1953cdf0e10cSrcweir {
1954cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), GetXMLToken(XML_N_OFFICE), XML_NAMESPACE_OFFICE );
1955cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_OFFICE), GetXMLToken(XML_N_OFFICE_OOO), XML_NAMESPACE_OFFICE );
1956cdf0e10cSrcweir 
1957cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_META), GetXMLToken(XML_N_META), XML_NAMESPACE_META );
1958cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_META), GetXMLToken(XML_N_META_OOO), XML_NAMESPACE_META );
1959cdf0e10cSrcweir 
1960cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_STYLE), GetXMLToken(XML_N_STYLE), XML_NAMESPACE_STYLE );
1961cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_STYLE), GetXMLToken(XML_N_STYLE_OOO), XML_NAMESPACE_STYLE );
1962cdf0e10cSrcweir 
1963cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER), GetXMLToken(XML_N_NUMBER), XML_NAMESPACE_NUMBER );
1964cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_NUMBER), GetXMLToken(XML_N_NUMBER_OOO), XML_NAMESPACE_NUMBER );
1965cdf0e10cSrcweir 
1966cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG), GetXMLToken(XML_N_CONFIG), XML_NAMESPACE_CONFIG );
1967cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CONFIG), GetXMLToken(XML_N_CONFIG_OOO), XML_NAMESPACE_CONFIG );
1968cdf0e10cSrcweir 
1969cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_TEXT), GetXMLToken(XML_N_TEXT), XML_NAMESPACE_TEXT );
1970cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TEXT), GetXMLToken(XML_N_TEXT_OOO), XML_NAMESPACE_TEXT );
1971cdf0e10cSrcweir 
1972cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_TABLE), GetXMLToken(XML_N_TABLE), XML_NAMESPACE_TABLE );
1973cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_TABLE), GetXMLToken(XML_N_TABLE_OOO), XML_NAMESPACE_TABLE );
1974cdf0e10cSrcweir 
1975cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_DRAW), GetXMLToken(XML_N_DRAW), XML_NAMESPACE_DRAW );
1976cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DRAW), GetXMLToken(XML_N_DRAW_OOO), XML_NAMESPACE_DRAW );
1977cdf0e10cSrcweir 
1978cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_DR3D), GetXMLToken(XML_N_DR3D), XML_NAMESPACE_DR3D );
1979cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DR3D), GetXMLToken(XML_N_DR3D_OOO), XML_NAMESPACE_DR3D );
1980cdf0e10cSrcweir 
1981cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_PRESENTATION), GetXMLToken(XML_N_PRESENTATION), XML_NAMESPACE_PRESENTATION );
1982cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_PRESENTATION), GetXMLToken(XML_N_PRESENTATION_OOO), XML_NAMESPACE_PRESENTATION );
1983cdf0e10cSrcweir 
1984cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_CHART), GetXMLToken(XML_N_CHART), XML_NAMESPACE_CHART );
1985cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_CHART), GetXMLToken(XML_N_CHART_OOO), XML_NAMESPACE_CHART );
1986cdf0e10cSrcweir 
1987cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_FORM), GetXMLToken(XML_N_FORM), XML_NAMESPACE_FORM );
1988cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FORM), GetXMLToken(XML_N_FORM_OOO), XML_NAMESPACE_FORM );
1989cdf0e10cSrcweir 
1990cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT), GetXMLToken(XML_N_SCRIPT), XML_NAMESPACE_SCRIPT );
1991cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SCRIPT), GetXMLToken(XML_N_SCRIPT_OOO), XML_NAMESPACE_SCRIPT );
1992cdf0e10cSrcweir 
1993cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_DLG), GetXMLToken(XML_N_DLG), XML_NAMESPACE_DLG );
1994cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_DLG), GetXMLToken(XML_N_DLG), XML_NAMESPACE_DLG );
1995cdf0e10cSrcweir 
1996cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_FO), GetXMLToken(XML_N_FO_COMPAT), XML_NAMESPACE_FO );
1997cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_FO), GetXMLToken(XML_N_FO), XML_NAMESPACE_FO );
1998cdf0e10cSrcweir 
1999cdf0e10cSrcweir 	GetNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG_COMPAT), XML_NAMESPACE_SVG );
2000cdf0e10cSrcweir 	GetReplaceNamespaceMap().Add( GetXMLToken(XML_NP_SVG), GetXMLToken(XML_N_SVG),  XML_NAMESPACE_SVG );
2001cdf0e10cSrcweir 
2002cdf0e10cSrcweir 
2003cdf0e10cSrcweir 	for( sal_uInt16 i=0; i<MAX_OASIS_ACTIONS; ++i )
2004cdf0e10cSrcweir 		m_aActions[i] = 0;
2005cdf0e10cSrcweir }
2006cdf0e10cSrcweir 
~Oasis2OOoTransformer()2007cdf0e10cSrcweir Oasis2OOoTransformer::~Oasis2OOoTransformer() throw()
2008cdf0e10cSrcweir {
2009cdf0e10cSrcweir 	for( sal_uInt16 i=0; i<MAX_OASIS_ACTIONS; ++i )
2010cdf0e10cSrcweir 		delete m_aActions[i];
2011cdf0e10cSrcweir 	XMLEventOASISTransformerContext::FlushEventMap( m_pEventMap );
2012cdf0e10cSrcweir 	XMLEventOASISTransformerContext::FlushEventMap( m_pFormEventMap );
2013cdf0e10cSrcweir }
2014cdf0e10cSrcweir 
CreateUnoTunnelId()2015cdf0e10cSrcweir ::com::sun::star::uno::Sequence< sal_Int8 >  static CreateUnoTunnelId()
2016cdf0e10cSrcweir {
2017cdf0e10cSrcweir 	static osl::Mutex aCreateMutex;
2018cdf0e10cSrcweir 	Guard<osl::Mutex> aGuard( aCreateMutex );
2019cdf0e10cSrcweir 	Sequence< sal_Int8 > aSeq( 16 );
2020cdf0e10cSrcweir     rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0,	sal_True );
2021cdf0e10cSrcweir 	return aSeq;
2022cdf0e10cSrcweir }
2023cdf0e10cSrcweir 
getUnoTunnelId()2024cdf0e10cSrcweir const Sequence< sal_Int8 > & Oasis2OOoTransformer::getUnoTunnelId() throw()
2025cdf0e10cSrcweir {
2026cdf0e10cSrcweir     static Sequence< sal_Int8 > aSeq = ::CreateUnoTunnelId();
2027cdf0e10cSrcweir 	return aSeq;
2028cdf0e10cSrcweir }
2029cdf0e10cSrcweir 
2030cdf0e10cSrcweir // XUnoTunnel
getSomething(const Sequence<sal_Int8> & rId)2031cdf0e10cSrcweir sal_Int64 SAL_CALL Oasis2OOoTransformer::getSomething( const Sequence< sal_Int8 >& rId )
2032cdf0e10cSrcweir 	throw(RuntimeException)
2033cdf0e10cSrcweir {
2034cdf0e10cSrcweir     if( rId.getLength() == 16
2035cdf0e10cSrcweir         && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
2036cdf0e10cSrcweir 										rId.getConstArray(), 16 ) )
2037cdf0e10cSrcweir     {
2038cdf0e10cSrcweir 		return reinterpret_cast< sal_Int64 >( this );
2039cdf0e10cSrcweir     }
2040cdf0e10cSrcweir 	else
2041cdf0e10cSrcweir 	{
2042cdf0e10cSrcweir 		return (sal_Int64)0;
2043cdf0e10cSrcweir 	}
2044cdf0e10cSrcweir }
2045cdf0e10cSrcweir 
2046cdf0e10cSrcweir // XServiceInfo
getImplementationName()2047cdf0e10cSrcweir OUString SAL_CALL Oasis2OOoTransformer::getImplementationName()
2048cdf0e10cSrcweir     throw(RuntimeException)
2049cdf0e10cSrcweir {
2050cdf0e10cSrcweir 	return Oasis2OOoTransformer_getImplementationName();
2051cdf0e10cSrcweir }
2052cdf0e10cSrcweir 
supportsService(const OUString &)2053cdf0e10cSrcweir sal_Bool SAL_CALL Oasis2OOoTransformer::supportsService( const OUString& )
2054cdf0e10cSrcweir 	throw(RuntimeException)
2055cdf0e10cSrcweir {
2056cdf0e10cSrcweir     return sal_False;
2057cdf0e10cSrcweir }
2058cdf0e10cSrcweir 
getSupportedServiceNames()2059cdf0e10cSrcweir Sequence< OUString > SAL_CALL Oasis2OOoTransformer::getSupportedServiceNames(  )
2060cdf0e10cSrcweir 	throw(RuntimeException)
2061cdf0e10cSrcweir {
2062cdf0e10cSrcweir     Sequence<OUString> aSeq(0);
2063cdf0e10cSrcweir     return aSeq;
2064cdf0e10cSrcweir }
2065cdf0e10cSrcweir 
2066cdf0e10cSrcweir // Service registration
2067cdf0e10cSrcweir 
Oasis2OOoTransformer_getImplementationName()2068cdf0e10cSrcweir OUString SAL_CALL Oasis2OOoTransformer_getImplementationName() throw()
2069cdf0e10cSrcweir {
2070cdf0e10cSrcweir 	return OUString( RTL_CONSTASCII_USTRINGPARAM(
2071cdf0e10cSrcweir 		"com.sun.star.comp.Oasis2OOoTransformer" ) );
2072cdf0e10cSrcweir }
2073cdf0e10cSrcweir 
Oasis2OOoTransformer_getSupportedServiceNames()2074cdf0e10cSrcweir Sequence< OUString > SAL_CALL Oasis2OOoTransformer_getSupportedServiceNames()
2075cdf0e10cSrcweir 	throw()
2076cdf0e10cSrcweir {
2077cdf0e10cSrcweir 	const OUString aServiceName( Oasis2OOoTransformer_getImplementationName() );
2078cdf0e10cSrcweir 	const Sequence< OUString > aSeq( &aServiceName, 1 );
2079cdf0e10cSrcweir 	return aSeq;
2080cdf0e10cSrcweir }
2081cdf0e10cSrcweir 
Oasis2OOoTransformer_createInstance(const Reference<XMultiServiceFactory> &)2082cdf0e10cSrcweir Reference< XInterface > SAL_CALL Oasis2OOoTransformer_createInstance(
2083cdf0e10cSrcweir 		const Reference< XMultiServiceFactory > &)
2084cdf0e10cSrcweir 	throw( Exception )
2085cdf0e10cSrcweir {
2086cdf0e10cSrcweir 	OSL_TRACE("Creating Oasis2OOoTransformer");
2087cdf0e10cSrcweir 	return (cppu::OWeakObject*)new Oasis2OOoTransformer;
2088cdf0e10cSrcweir }
2089