xref: /aoo41x/main/xmloff/inc/txtflde.hxx (revision ecfe53c5)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 /** @#file
25  *  XML export of all text fields
26  */
27 
28 #ifndef _XMLOFF_TXTFLDE_HXX
29 #define _XMLOFF_TXTFLDE_HXX
30 
31 #include <com/sun/star/uno/Reference.h>
32 #include "xmloff/xmlnmspe.hxx"
33 
34 #include <rtl/ustring.hxx>
35 #include <xmloff/xmltoken.hxx>
36 
37 #include <map>
38 #include <set>
39 
40 
41 class SvXMLExport;
42 class SvXMLNumFmtExport;
43 struct XMLPropertyState;
44 
45 namespace com { namespace sun { namespace star {
46 	namespace util { struct DateTime; }
47 	namespace util { struct Date; }
48 	namespace text { class XTextField; }
49 	namespace text { class XText; }
50 	namespace beans { class XPropertySet; }
51 	namespace beans { class XPropertySetInfo; }
52 	namespace frame { class XModel; }
53     namespace uno { template<typename A> class Sequence; }
54 } } }
55 namespace rtl { class OUString; }
56 
57 
58 /// field IDs,
59 //   including translation between UNO speak and XML speak if appropriate
60 
61 enum FieldIdEnum {
62 	FIELD_ID_SENDER,		// sender == extended user
63 	FIELD_ID_AUTHOR,
64 	FIELD_ID_DATE,			// current date
65 	FIELD_ID_TIME,			// current time (+date)
66 	FIELD_ID_PAGENUMBER,	// page number
67 	FIELD_ID_PAGESTRING,	// page contination string (page number string)
68 	FIELD_ID_REFPAGE_SET,	// set reference page
69 	FIELD_ID_REFPAGE_GET,	// get reference page number
70 
71 	FIELD_ID_PLACEHOLDER,	// placeholder field == jump edit field
72 
73 	FIELD_ID_VARIABLE_DECL,	// field type for set variable
74 	FIELD_ID_VARIABLE_GET,	// get variable == get expression
75 	FIELD_ID_VARIABLE_SET,	// set variable == set expression
76 	FIELD_ID_VARIABLE_INPUT,	// input field (variable)
77 	FIELD_ID_USER_DECL,		// field type for user field
78 	FIELD_ID_USER_GET,		// user field
79 	FIELD_ID_USER_INPUT,	// input field (user field)
80 	FIELD_ID_TEXT_INPUT,	// input field (text)
81 	FIELD_ID_EXPRESSION,	// expression field = formula field
82 	FIELD_ID_SEQUENCE_DECL,	// field type for sequence
83 	FIELD_ID_SEQUENCE,		// sequence field
84 
85 	FIELD_ID_DATABASE_NEXT,		// select next row
86 	FIELD_ID_DATABASE_SELECT,	// select row # (NumSet)
87 	FIELD_ID_DATABASE_DISPLAY,	// display data (form letter field)
88 	FIELD_ID_DATABASE_NAME,		// display current db name (database name)
89 	FIELD_ID_DATABASE_NUMBER,	// display row # (SetNumber)
90 
91 	FIELD_ID_DOCINFO_CREATION_AUTHOR,	// docinfo fields
92 	FIELD_ID_DOCINFO_CREATION_TIME,
93 	FIELD_ID_DOCINFO_CREATION_DATE,
94 	FIELD_ID_DOCINFO_DESCRIPTION,
95 	FIELD_ID_DOCINFO_CUSTOM,
96 	FIELD_ID_DOCINFO_PRINT_TIME,
97 	FIELD_ID_DOCINFO_PRINT_DATE,
98 	FIELD_ID_DOCINFO_PRINT_AUTHOR,
99 	FIELD_ID_DOCINFO_TITLE,
100 	FIELD_ID_DOCINFO_SUBJECT,
101 	FIELD_ID_DOCINFO_KEYWORDS,
102 	FIELD_ID_DOCINFO_REVISION,
103 	FIELD_ID_DOCINFO_EDIT_DURATION,
104 	FIELD_ID_DOCINFO_SAVE_TIME,
105 	FIELD_ID_DOCINFO_SAVE_DATE,
106 	FIELD_ID_DOCINFO_SAVE_AUTHOR,
107 
108 	FIELD_ID_CONDITIONAL_TEXT,			// conditionally choose between 2 texts
109 	FIELD_ID_HIDDEN_TEXT,				// conditionally hide a text
110 	FIELD_ID_HIDDEN_PARAGRAPH,			// conditionally hide a paragraph
111 
112 	FIELD_ID_TEMPLATE_NAME,		// display name of template
113 	FIELD_ID_CHAPTER,			// display name/number of current chapter
114 	FIELD_ID_FILE_NAME,			// display name of current file
115 
116 	FIELD_ID_COUNT_PARAGRAPHS,		// statistics fields: - paragraphs
117 	FIELD_ID_COUNT_WORDS,			//					  - words
118 	FIELD_ID_COUNT_CHARACTERS,		//					  - chars
119 	FIELD_ID_COUNT_PAGES,			//					  - pages
120 	FIELD_ID_COUNT_TABLES,			//					  - tables
121 	FIELD_ID_COUNT_GRAPHICS,		//					  - graphics
122 	FIELD_ID_COUNT_OBJECTS,			//					  - objects
123 
124 	FIELD_ID_MACRO,					// macro fields
125 	FIELD_ID_REF_REFERENCE,			// get reference field (reference)
126 	FIELD_ID_REF_SEQUENCE,			// get reference field (sequence)
127 	FIELD_ID_REF_BOOKMARK,			// get reference field (bookmark)
128 	FIELD_ID_REF_FOOTNOTE,			// get reference field (footnote)
129 	FIELD_ID_REF_ENDNOTE,			// get reference field (endnote)
130 	FIELD_ID_DDE,					// DDE field
131 
132 	FIELD_ID_BIBLIOGRAPHY,			// bibliography index entry
133 
134 	FIELD_ID_SHEET_NAME,			// name of current (spread-)sheet
135 	FIELD_ID_URL,					// URL field (only Calc, Draw, Impress)
136 
137 	FIELD_ID_SCRIPT,				// script fields (for HTML pages, mostly)
138 	FIELD_ID_ANNOTATION,			// annotation (notice) field
139 
140 	FIELD_ID_COMBINED_CHARACTERS,	// combined characters (asian typography)
141 
142     FIELD_ID_META,                  // text:meta-field (RDF metadata)
143 
144 	FIELD_ID_MEASURE,				// for measure shapes
145 
146     FIELD_ID_TABLE_FORMULA,         // DEPRECATED: table formulas (Writer 2.0)
147     FIELD_ID_DROP_DOWN,             // DEPRECATED: dropdown fields (WW8)
148 
149 	FIELD_ID_DRAW_HEADER,
150 	FIELD_ID_DRAW_FOOTER,
151 	FIELD_ID_DRAW_DATE_TIME,
152 
153 	FIELD_ID_UNKNOWN		// invalid or unknown field type!
154 };
155 
156 
157 
158 class XMLTextFieldExport
159 {
160 	SvXMLExport& rExport;
161 
162 	/// store used text field master names (NULL means: don't collect)
163 	::std::map<
164 			::com::sun::star::uno::Reference< ::com::sun::star::text::XText >,
165 			::std::set< ::rtl::OUString > > *
166 		pUsedMasters;
167 
168 public:
169 
170 	XMLTextFieldExport( SvXMLExport& rExp,
171 						/// XMLPropertyState for the combined characters field
172 						XMLPropertyState* pCombinedCharState = NULL );
173 	virtual ~XMLTextFieldExport();
174 
175 	/// Export this field and the surrounding span element with the formatting.
176 	/// To be called for every field in the document body.
177 	void ExportField(const ::com::sun::star::uno::Reference <
178                         ::com::sun::star::text::XTextField > & rTextField,
179                      sal_Bool bProgress );
180 
181 	/// collect styles (character styles, data styles, ...) for this field
182 	/// (if appropriate).
183 	/// Also collect used field masters (if pUsedMasters is set)
184 	/// to be called for every field during style export.
185 	void ExportFieldAutoStyle(const ::com::sun::star::uno::Reference <
186                         ::com::sun::star::text::XTextField > & rTextField,
187                  const sal_Bool bProgress, const sal_Bool bRecursive );
188 
189 	/// export field declarations.
190 	/// to be called once at beginning of document body.
191 	void ExportFieldDeclarations();
192 
193 	/// export field declarations for fields used in the the particular XText.
194 	/// (Requires that a list of used field declarations has previously been
195 	///  built-up in ExportFieldAutoStyle() )
196 	void ExportFieldDeclarations(
197 		const ::com::sun::star::uno::Reference <
198 				::com::sun::star::text::XText > & rText);
199 
200 	/// export all field declarations, or only those that have been used?
201 	/// Calling this method will reset the list of used field declataions.
202 	void SetExportOnlyUsedFieldDeclarations(
203 		sal_Bool bExportOnlyUsed = sal_True);
204 
205 	// determine element or attribute names
206 	// (public, because they may be useful in related XML export classes)
207 	static enum ::xmloff::token::XMLTokenEnum MapPlaceholderType(sal_uInt16 nType);
208 	static enum ::xmloff::token::XMLTokenEnum MapTemplateDisplayFormat(sal_Int16 nType);
209 	static enum ::xmloff::token::XMLTokenEnum MapChapterDisplayFormat(sal_Int16 nType);
210 	static enum ::xmloff::token::XMLTokenEnum MapFilenameDisplayFormat(sal_Int16 nType);
211 	static enum ::xmloff::token::XMLTokenEnum MapDocInfoFieldName(enum FieldIdEnum nToken);
212 	static enum ::xmloff::token::XMLTokenEnum MapReferenceSource(sal_Int16 nType);
213 	static enum ::xmloff::token::XMLTokenEnum MapReferenceType(sal_Int16 nType);
214 	static enum ::xmloff::token::XMLTokenEnum MapCountFieldName(FieldIdEnum nToken);
215 	static enum ::xmloff::token::XMLTokenEnum MapBibliographyFieldName(::rtl::OUString sName);
216 	static enum ::xmloff::token::XMLTokenEnum MapMeasureKind(sal_Int16 nKind);
217 	enum ::xmloff::token::XMLTokenEnum MapPageNumberName(const ::com::sun::star::uno::Reference<
218 					  ::com::sun::star::beans::XPropertySet> & xPropSet,
219 					  sal_Int32& nOffset);	/// also adjust page offset
220 	enum ::xmloff::token::XMLTokenEnum MapAuthorFieldName(const ::com::sun::star::uno::Reference <
221 					  ::com::sun::star::beans::XPropertySet > & xPropSet);
222 	enum ::xmloff::token::XMLTokenEnum MapSenderFieldName(const ::com::sun::star::uno::Reference <
223 					  ::com::sun::star::beans::XPropertySet > & xPropSet);
224 
225 protected:
226 
227 	SvXMLExport& GetExport() { return rExport; }
228 
229 	/// export a field after <text:span> is already written
230 	void ExportFieldHelper(
231 		const ::com::sun::star::uno::Reference<
232 				::com::sun::star::text::XTextField> & rTextField,
233 		const ::com::sun::star::uno::Reference<
234 				::com::sun::star::beans::XPropertySet> & rPropSet,
235 		const ::com::sun::star::uno::Reference<
236 				::com::sun::star::beans::XPropertySet> & rRangePropSet,
237         enum FieldIdEnum nToken,
238         sal_Bool bProgress );
239 
240 	/// export an empty element
241 	void ExportElement(enum ::xmloff::token::XMLTokenEnum eElement,	/// element token
242 					   sal_Bool bAddSpace = sal_False); /// add blanks around
243 														/// element?
244 
245 	/// export an element with string content
246 	void ExportElement(enum ::xmloff::token::XMLTokenEnum eElement,	/// element token
247 					   const ::rtl::OUString& sContent,	/// element content
248 					   sal_Bool bAddSpace = sal_False); /// add blanks around
249 														/// element?
250 
251     /// export a macro (as used in the macro field)
252     void ExportMacro( const ::com::sun::star::uno::Reference<
253                           ::com::sun::star::beans::XPropertySet> & rPropSet,
254                       const ::rtl::OUString& rContent);
255 
256     /// export text:meta-field (RDF metadata)
257     void ExportMetaField( const ::com::sun::star::uno::Reference<
258                               ::com::sun::star::beans::XPropertySet> & i_xMeta,
259                           bool i_bAutoStyles, sal_Bool i_bProgress );
260 
261 	/// export a boolean attribute
262 	void ProcessBoolean(
263 		enum ::xmloff::token::XMLTokenEnum eXmlName,	/// attribute token (namespace text)
264 		sal_Bool bBool,		/// attribute value
265 		sal_Bool bDefault);	/// attribute default; omit, if attribute differs
266 
267 	/// export an integer attribute
268 	void ProcessInteger(
269 		enum ::xmloff::token::XMLTokenEnum eXmlName,	/// attribute token (namespace text)
270 		sal_Int32 nNum);			/// attribute value
271 
272 	/// export an integer attribute, omit if default
273 	void ProcessIntegerDef(
274 		enum ::xmloff::token::XMLTokenEnum eXmlName,	/// attribute token (namespace text)
275 		sal_Int32 nNum,				/// attribute value
276 		sal_Int32 nDefault);		/// default value
277 
278 	/// export a string attribute
279 	void ProcessString(
280 		enum ::xmloff::token::XMLTokenEnum eXmlName,		/// attribute token (namespace text)
281 		const ::rtl::OUString& sValue,	/// attribute value
282 		sal_Bool bOmitEmpty = sal_False, /// omit attribute, if value is empty
283 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
284 
285 	/// export a string attribute taht gets a QName value
286 	void ProcessString(
287 		enum ::xmloff::token::XMLTokenEnum eXmlName,		/// attribute token (namespace text)
288 		sal_uInt16 nValuePrefix,
289 		const ::rtl::OUString& sValue,	/// attribute value
290 		sal_Bool bOmitEmpty = sal_False, /// omit attribute, if value is empty
291 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
292 
293 
294 	/// export a string attribute, omit if default
295 	void ProcessString(
296 		enum ::xmloff::token::XMLTokenEnum eXmlName,		/// attribute token (namespace text)
297 		const ::rtl::OUString& sValue,	/// attribute value
298 		const ::rtl::OUString& sDefault, /// default value; omit if equal
299 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
300 
301 	/// export a string attribute, omit if default
302 	void ProcessString(
303 		enum ::xmloff::token::XMLTokenEnum eXmlName,		/// attribute token (namespace text)
304 		sal_uInt16 nValuePrefix,
305 		const ::rtl::OUString& sValue,	/// attribute value
306 		const ::rtl::OUString& sDefault, /// default value; omit if equal
307 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
308 
309 	/// export a string attribute
310 	void ProcessString(
311 		enum ::xmloff::token::XMLTokenEnum eXmlName,		/// attribute token (namespace text)
312 		enum ::xmloff::token::XMLTokenEnum eValue,			/// attribute token
313 		sal_Bool bOmitEmpty = sal_False, /// omit attribute, if value is empty
314 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
315 
316 	/// export a string attribute, omit if default
317 	void ProcessString(
318 		enum ::xmloff::token::XMLTokenEnum eXmlName,		/// attribute token (namespace text)
319 		enum ::xmloff::token::XMLTokenEnum eValue,			/// attribute value token
320 		enum ::xmloff::token::XMLTokenEnum eDefault,		/// default value token
321 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
322 
323 	/// export a string as a sequence of paragraphs
324 	void ProcessParagraphSequence(
325 		/// string containing the paragraphs
326 		const ::rtl::OUString& sParagraphSequence);
327 
328 	/// export a numbering format (numeric, roman, alphabetic, etc.)
329 	void ProcessNumberingType(
330 		sal_Int16 nNumberingType);		/// numbering type key
331 
332 	/// export display attribute (value, formula, none)
333 	void ProcessDisplay(sal_Bool bIsVisible,	/// is visible?
334 						sal_Bool bIsCommand,	/// is show command/show name?
335 						sal_Bool bDefault = sal_True);	/// omit, if default
336 
337 	/// export all data-style related attributes
338 	void ProcessValueAndType(
339 		sal_Bool bIsString,		/// do we process a string or a number?
340 		sal_Int32 nFormatKey,	/// format key for NumberFormatter; possibly -1
341 		const ::rtl::OUString& sContent, /// string content; possibly invalid
342 		const ::rtl::OUString& sDefault, /// default string
343 		double fValue,			/// float content; possibly invalid
344 		sal_Bool bExportValue,	/// export value attribute?
345 		sal_Bool bExportValueType,	/// export value-type attribute?
346 		sal_Bool bExportStyle,	/// export style-sttribute?
347         sal_Bool bForceSystemLanguage, /// no style language export
348 		sal_Bool bTimeStyle = sal_False); /// exporting a time style?
349 
350 	/// export times, dates and durations according to ISO 8601
351 	void ProcessDateTime(
352 		enum ::xmloff::token::XMLTokenEnum eXMLName, 	/// attribute token
353 		double dValue, 				/// date/time value
354 		sal_Bool bIsDate, 			/// export as date (rather than date/time)?
355 		sal_Bool bIsDuration = sal_False,			/// export as duration
356 		sal_Bool bOmitDurationIfZero = sal_True,	/// omit zero-length durat.
357 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
358 
359 	/// export a date, time, or duration
360 	void ProcessDateTime(
361 		enum ::xmloff::token::XMLTokenEnum eXMLName, 	/// attribute token
362 		sal_Int32 nMinutes,				/// date/time value in minutes
363 		sal_Bool bIsDate, 			/// export as date?
364 		sal_Bool bIsDuration,		/// export as duration?
365 		sal_Bool bOmitDurationIfZero,	/// omit zero-length durations
366 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
367 
368 	/// export times, dates and durations according to ISO 8601
369 	void ProcessDateTime(
370 		enum ::xmloff::token::XMLTokenEnum eXMLName, 	/// attribute token
371 		const ::com::sun::star::util::DateTime& rTime,		/// date/time value
372 		sal_Bool bIsDate,			/// export as date (rather than date/time)?
373 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
374 
375 	/// export date according to ISO 8601
376 	void ProcessDate(
377 		enum ::xmloff::token::XMLTokenEnum eXMLName, 	/// attribute token
378 		const ::com::sun::star::util::Date& rTime,	/// date value
379 		sal_uInt16 nPrefix = XML_NAMESPACE_TEXT);	/// attribute name prefix
380 
381 	/// export all attributes for bibliography data fields
382 	void ProcessBibliographyData(
383 		const ::com::sun::star::uno::Reference <
384 			::com::sun::star::beans::XPropertySet > & rPropertySet);
385 
386 	/// export CommandTypeAttribute
387 	void ProcessCommandType(
388         sal_Int32 nCommandType);		/// com::sun::star::sdb::CommandType
389 
390 	void ProcessStringSequence(
391         const ::com::sun::star::uno::Sequence<rtl::OUString>& rSequence,
392         const rtl::OUString sSelected );
393 
394 	void ProcessStringSequence(
395         const ::com::sun::star::uno::Sequence<rtl::OUString>& rSequence,
396         sal_Int32 nSelected );
397 
398     /// export attributes that describe a data source
399     void ExportDataBaseElement(
400         enum ::xmloff::token::XMLTokenEnum eElement,
401         const ::rtl::OUString& sContent,
402 		const ::com::sun::star::uno::Reference <
403             ::com::sun::star::beans::XPropertySet > & rPropertySet,
404 		const ::com::sun::star::uno::Reference <
405             ::com::sun::star::beans::XPropertySetInfo > & rPropertySetInfo );
406 
407 	/// for XDependentTextFields, get PropertySet of FieldMaster
408 	::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet >
409 	GetMasterPropertySet(const ::com::sun::star::uno::Reference <
410 						 ::com::sun::star::text::XTextField > & rTextField);
411 
412 	/// get PropertySet of (any) DependentTextField for this FieldMaster
413 	sal_Bool GetDependentFieldPropertySet(
414 		const ::com::sun::star::uno::Reference<
415 		::com::sun::star::beans::XPropertySet> & xmaster,
416 		::com::sun::star::uno::Reference<
417 		::com::sun::star::beans::XPropertySet> & xField);
418 
419 
420 	/// get field ID from XTextField (and it's Property-Set)
421 	enum FieldIdEnum GetFieldID(const ::com::sun::star::uno::Reference <
422 						  ::com::sun::star::text::XTextField > & rTextField,
423 						  const ::com::sun::star::uno::Reference <
424 						  ::com::sun::star::beans::XPropertySet > & xPropSet);
425 
426 	/// get field ID from XTextField service name (and it's PropertySet)
427 	enum FieldIdEnum MapFieldName(const ::rtl::OUString& sFieldName,
428 							const ::com::sun::star::uno::Reference <
429 							::com::sun::star::beans::XPropertySet> & xPropSet);
430 
431 	/// determine, whether field has string or numeric content
432 	sal_Bool IsStringField(FieldIdEnum nFieldType,	/// field ID
433 						   const ::com::sun::star::uno::Reference <
434 						   ::com::sun::star::beans::XPropertySet > & xPropSet);
435 
436 
437 	/// explode a field master name into field type and field name
438 	sal_Bool ExplodeFieldMasterName(
439 		const ::rtl::OUString& sMasterName,	/// name as returned by SO API
440 		::rtl::OUString& sFieldType,		/// out: field type
441 		::rtl::OUString& sVarName);			/// out: variable name
442 
443 	/// make reference name for a foot- or endnote
444 	static ::rtl::OUString MakeFootnoteRefName(sal_Int16 nSeqNo);
445 
446 	/// make reference name for a sequence field
447 	static ::rtl::OUString MakeSequenceRefName(sal_Int16 nSeqNo,
448 											  const ::rtl::OUString& rSeqName);
449 
450 private:
451 	// constants
452 
453 	// service names
454 	const ::rtl::OUString sServicePrefix;
455 	const ::rtl::OUString sFieldMasterPrefix;
456 	const ::rtl::OUString sPresentationServicePrefix;
457 
458 	// property names
459 	const ::rtl::OUString sPropertyAdjust;
460 	const ::rtl::OUString sPropertyAuthor;
461 	const ::rtl::OUString sPropertyChapterFormat;
462 	const ::rtl::OUString sPropertyChapterNumberingLevel;
463 	const ::rtl::OUString sPropertyCharStyleNames;
464 	const ::rtl::OUString sPropertyCondition;
465 	const ::rtl::OUString sPropertyContent;
466 	const ::rtl::OUString sPropertyDataBaseName;
467 	const ::rtl::OUString sPropertyDataBaseURL;
468 	const ::rtl::OUString sPropertyDataColumnName;
469 	const ::rtl::OUString sPropertyDataCommandType;
470 	const ::rtl::OUString sPropertyDataTableName;
471 	const ::rtl::OUString sPropertyDate;
472 	const ::rtl::OUString sPropertyDateTime;
473 	const ::rtl::OUString sPropertyDateTimeValue;
474 	const ::rtl::OUString sPropertyDDECommandElement;
475 	const ::rtl::OUString sPropertyDDECommandFile;
476 	const ::rtl::OUString sPropertyDDECommandType;
477 	const ::rtl::OUString sPropertyDependentTextFields;
478 	const ::rtl::OUString sPropertyFalseContent;
479 	const ::rtl::OUString sPropertyFields;
480 	const ::rtl::OUString sPropertyFieldSubType;
481 	const ::rtl::OUString sPropertyFileFormat;
482 	const ::rtl::OUString sPropertyFullName;
483 	const ::rtl::OUString sPropertyHint;
484 	const ::rtl::OUString sPropertyInstanceName;
485 	const ::rtl::OUString sPropertyIsAutomaticUpdate;
486 	const ::rtl::OUString sPropertyIsConditionTrue;
487 	const ::rtl::OUString sPropertyIsDataBaseFormat;
488 	const ::rtl::OUString sPropertyIsDate;
489 	const ::rtl::OUString sPropertyIsExpression;
490 	const ::rtl::OUString sPropertyIsFixed;
491 	const ::rtl::OUString sPropertyIsFixedLanguage;
492 	const ::rtl::OUString sPropertyIsHidden;
493 	const ::rtl::OUString sPropertyIsInput;
494 	const ::rtl::OUString sPropertyIsShowFormula;
495 	const ::rtl::OUString sPropertyIsVisible;
496 	const ::rtl::OUString sPropertyItems;
497 	const ::rtl::OUString sPropertyLevel;
498 	const ::rtl::OUString sPropertyMacro;
499 	const ::rtl::OUString sPropertyMeasureKind;
500 	const ::rtl::OUString sPropertyName;
501 	const ::rtl::OUString sPropertyNumberFormat;
502 	const ::rtl::OUString sPropertyNumberingSeparator;
503 	const ::rtl::OUString sPropertyNumberingType;
504 	const ::rtl::OUString sPropertyOffset;
505 	const ::rtl::OUString sPropertyOn;
506 	const ::rtl::OUString sPropertyPlaceholder;
507 	const ::rtl::OUString sPropertyPlaceholderType;
508 	const ::rtl::OUString sPropertyReferenceFieldPart;
509 	const ::rtl::OUString sPropertyReferenceFieldSource;
510 	const ::rtl::OUString sPropertyReferenceFieldType;
511 	const ::rtl::OUString sPropertyRevision;
512 	const ::rtl::OUString sPropertyScriptType;
513 	const ::rtl::OUString sPropertySelectedItem;
514 	const ::rtl::OUString sPropertySequenceNumber;
515 	const ::rtl::OUString sPropertySequenceValue;
516 	const ::rtl::OUString sPropertySetNumber;
517 	const ::rtl::OUString sPropertySourceName;
518 	const ::rtl::OUString sPropertySubType;
519 	const ::rtl::OUString sPropertyTargetFrame;
520 	const ::rtl::OUString sPropertyTrueContent;
521 	const ::rtl::OUString sPropertyURL;
522 	const ::rtl::OUString sPropertyURLContent;
523 	const ::rtl::OUString sPropertyUserText;
524 	const ::rtl::OUString sPropertyValue;
525 	const ::rtl::OUString sPropertyVariableName;
526 	const ::rtl::OUString sPropertyVariableSubType;
527     const ::rtl::OUString sPropertyHelp;
528     const ::rtl::OUString sPropertyTooltip;
529     const ::rtl::OUString sPropertyTextRange;
530 
531 	const ::rtl::OUString sEmpty;
532 
533 	XMLPropertyState* pCombinedCharactersPropertyState;
534 
535 };
536 
537 
538 
539 
540 
541 
542 #endif
543