xref: /AOO41X/main/xmloff/inc/txtflde.hxx (revision 3b32dd21b48084cc91e8cdf23382ce990aee2296) !
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 
GetExport()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(
448         sal_Int16 nSeqNo,
449         const ::rtl::OUString& rSeqName );
450 
451 private:
452     // service names
453     const ::rtl::OUString sServicePrefix;
454     const ::rtl::OUString sFieldMasterPrefix;
455     const ::rtl::OUString sPresentationServicePrefix;
456 
457     // property names
458     const ::rtl::OUString sPropertyAdjust;
459     const ::rtl::OUString sPropertyAuthor;
460     const ::rtl::OUString sPropertyChapterFormat;
461     const ::rtl::OUString sPropertyChapterNumberingLevel;
462     const ::rtl::OUString sPropertyCharStyleNames;
463     const ::rtl::OUString sPropertyCondition;
464     const ::rtl::OUString sPropertyContent;
465     const ::rtl::OUString sPropertyDataBaseName;
466     const ::rtl::OUString sPropertyDataBaseURL;
467     const ::rtl::OUString sPropertyDataColumnName;
468     const ::rtl::OUString sPropertyDataCommandType;
469     const ::rtl::OUString sPropertyDataTableName;
470     const ::rtl::OUString sPropertyDate;
471     const ::rtl::OUString sPropertyDateTime;
472     const ::rtl::OUString sPropertyDateTimeValue;
473     const ::rtl::OUString sPropertyDDECommandElement;
474     const ::rtl::OUString sPropertyDDECommandFile;
475     const ::rtl::OUString sPropertyDDECommandType;
476     const ::rtl::OUString sPropertyDependentTextFields;
477     const ::rtl::OUString sPropertyFalseContent;
478     const ::rtl::OUString sPropertyFields;
479     const ::rtl::OUString sPropertyFieldSubType;
480     const ::rtl::OUString sPropertyFileFormat;
481     const ::rtl::OUString sPropertyFullName;
482     const ::rtl::OUString sPropertyHint;
483     const ::rtl::OUString sPropertyInitials;
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 #endif
538