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