LCOV - code coverage report
Current view: top level - libreoffice/sc/source/filter/xml - xmlimprt.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 31 37 83.8 %
Date: 2012-12-27 Functions: 25 29 86.2 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #ifndef SC_XMLIMPRT_HXX
      21             : #define SC_XMLIMPRT_HXX
      22             : 
      23             : #include <rsc/rscsfx.hxx>
      24             : #include <xmloff/xmlictxt.hxx>
      25             : #include <xmloff/xmlimp.hxx>
      26             : #include <xmloff/xmltkmap.hxx>
      27             : #include <xmloff/xmlaustp.hxx>
      28             : #include <xmloff/xmlstyle.hxx>
      29             : #include <com/sun/star/frame/XModel.hpp>
      30             : #include <com/sun/star/util/DateTime.hpp>
      31             : #include "xmlsubti.hxx"
      32             : #include "global.hxx"
      33             : #include "formula/grammar.hxx"
      34             : 
      35             : #include "xmlstyle.hxx"
      36             : #include "XMLDetectiveContext.hxx"
      37             : #include <com/sun/star/sheet/ValidationAlertStyle.hpp>
      38             : #include <com/sun/star/sheet/ValidationType.hpp>
      39             : #include <com/sun/star/sheet/ConditionOperator.hpp>
      40             : #include <com/sun/star/table/CellAddress.hpp>
      41             : #include <com/sun/star/beans/XPropertySet.hpp>
      42             : #include <com/sun/star/util/XNumberFormatTypes.hpp>
      43             : #include <com/sun/star/sheet/XSheetCellRangeContainer.hpp>
      44             : 
      45             : #include <vector>
      46             : #include <boost/unordered_map.hpp>
      47             : #include <boost/ptr_container/ptr_list.hpp>
      48             : #include <boost/ptr_container/ptr_map.hpp>
      49             : 
      50             : class ScMyStyleNumberFormats;
      51             : class XMLNumberFormatAttributesExportHelper;
      52             : 
      53             : enum ScXMLDocTokens
      54             : {
      55             :     XML_TOK_DOC_FONTDECLS,
      56             :     XML_TOK_DOC_STYLES,
      57             :     XML_TOK_DOC_AUTOSTYLES,
      58             :     XML_TOK_DOC_MASTERSTYLES,
      59             :     XML_TOK_DOC_META,
      60             :     XML_TOK_DOC_SCRIPTS,
      61             :     XML_TOK_DOC_BODY,
      62             :     XML_TOK_DOC_SETTINGS,
      63             :     XML_TOK_OFFICE_END=XML_TOK_UNKNOWN
      64             : };
      65             : 
      66             : enum ScXMLStylesTokens
      67             : {
      68             :     XML_TOK_STYLES_STYLE
      69             : };
      70             : 
      71             : enum ScXMLStylesAttrTokens
      72             : {
      73             :     XML_TOK_STYLES_STYLE_NAME,
      74             :     XML_TOK_STYLES_STYLE_FAMILY,
      75             :     XML_TOK_STYLES_STYLE_PARENT_STYLE_NAME
      76             : };
      77             : 
      78             : enum ScXMLStyleTokens
      79             : {
      80             :     XML_TOK_STYLE_PROPERTIES
      81             : };
      82             : 
      83             : enum ScXMLBodyTokens
      84             : {
      85             :     XML_TOK_BODY_TRACKED_CHANGES,
      86             :     XML_TOK_BODY_CALCULATION_SETTINGS,
      87             :     XML_TOK_BODY_CONTENT_VALIDATIONS,
      88             :     XML_TOK_BODY_LABEL_RANGES,
      89             :     XML_TOK_BODY_TABLE,
      90             :     XML_TOK_BODY_NAMED_EXPRESSIONS,
      91             :     XML_TOK_BODY_DATABASE_RANGES,
      92             :     XML_TOK_BODY_DATABASE_RANGE,
      93             :     XML_TOK_BODY_DATA_PILOT_TABLES,
      94             :     XML_TOK_BODY_CONSOLIDATION,
      95             :     XML_TOK_BODY_DDE_LINKS
      96             : };
      97             : 
      98             : enum ScXMLContentValidationsElemTokens
      99             : {
     100             :     XML_TOK_CONTENT_VALIDATION
     101             : };
     102             : 
     103             : enum ScXMLContentValidationElemTokens
     104             : {
     105             :     XML_TOK_CONTENT_VALIDATION_ELEM_HELP_MESSAGE,
     106             :     XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MESSAGE,
     107             :     XML_TOK_CONTENT_VALIDATION_ELEM_ERROR_MACRO,
     108             :     XML_TOK_CONTENT_VALIDATION_ELEM_EVENT_LISTENERS
     109             : };
     110             : 
     111             : enum ScXMLContentValidationAttrTokens
     112             : {
     113             :     XML_TOK_CONTENT_VALIDATION_NAME,
     114             :     XML_TOK_CONTENT_VALIDATION_CONDITION,
     115             :     XML_TOK_CONTENT_VALIDATION_BASE_CELL_ADDRESS,
     116             :     XML_TOK_CONTENT_VALIDATION_ALLOW_EMPTY_CELL,
     117             :     XML_TOK_CONTENT_VALIDATION_DISPLAY_LIST
     118             : };
     119             : 
     120             : enum ScXMLContentValidationMessageElemTokens
     121             : {
     122             :     XML_TOK_P
     123             : };
     124             : 
     125             : enum ScXMLContentValidationHelpMessageAttrTokens
     126             : {
     127             :     XML_TOK_HELP_MESSAGE_ATTR_TITLE,
     128             :     XML_TOK_HELP_MESSAGE_ATTR_DISPLAY
     129             : };
     130             : 
     131             : enum ScXMLContentValidationErrorMessageAttrTokens
     132             : {
     133             :     XML_TOK_ERROR_MESSAGE_ATTR_TITLE,
     134             :     XML_TOK_ERROR_MESSAGE_ATTR_DISPLAY,
     135             :     XML_TOK_ERROR_MESSAGE_ATTR_MESSAGE_TYPE
     136             : };
     137             : 
     138             : enum ScXMLContentValidationErrorMacroAttrTokens
     139             : {
     140             :     XML_TOK_ERROR_MACRO_ATTR_NAME,
     141             :     XML_TOK_ERROR_MACRO_ATTR_EXECUTE
     142             : };
     143             : 
     144             : enum ScXMLCondFormatsTokens
     145             : {
     146             :     XML_TOK_CONDFORMATS_CONDFORMAT
     147             : };
     148             : 
     149             : enum ScXMLCondFormatTokens
     150             : {
     151             :     XML_TOK_CONDFORMAT_COLORSCALE,
     152             :     XML_TOK_CONDFORMAT_DATABAR,
     153             :     XML_TOK_CONDFORMAT_CONDITION,
     154             :     XML_TOK_CONDFORMAT_ICONSET
     155             : };
     156             : 
     157             : enum ScXMLCondFormatAttrTokens
     158             : {
     159             :     XML_TOK_CONDFORMAT_TARGET_RANGE
     160             : };
     161             : 
     162             : enum ScXMLConditionAttrTokens
     163             : {
     164             :     XML_TOK_CONDITION_VALUE,
     165             :     XML_TOK_CONDITION_APPLY_STYLE_NAME,
     166             :     XML_TOK_CONDITION_BASE_CELL_ADDRESS
     167             : };
     168             : 
     169             : enum ScXMLColorScaleFormatTokens
     170             : {
     171             :     XML_TOK_COLORSCALE_COLORSCALEENTRY
     172             : };
     173             : 
     174             : enum ScXMLColorScaleEntryAttrTokens
     175             : {
     176             :     XML_TOK_COLORSCALEENTRY_TYPE,
     177             :     XML_TOK_COLORSCALEENTRY_VALUE,
     178             :     XML_TOK_COLORSCALEENTRY_COLOR
     179             : };
     180             : 
     181             : enum ScXMLFormattingFormatTokens
     182             : {
     183             :     XML_TOK_DATABAR_DATABARENTRY,
     184             :     XML_TOK_FORMATTING_ENTRY
     185             : };
     186             : 
     187             : enum ScXMLDataBarAttrTokens
     188             : {
     189             :     XML_TOK_DATABAR_POSITIVE_COLOR,
     190             :     XML_TOK_DATABAR_NEGATIVE_COLOR,
     191             :     XML_TOK_DATABAR_GRADIENT,
     192             :     XML_TOK_DATABAR_AXISPOSITION,
     193             :     XML_TOK_DATABAR_SHOWVALUE,
     194             :     XML_TOK_DATABAR_AXISCOLOR
     195             : };
     196             : 
     197             : enum ScXMLDataBarEntryAttrTokens
     198             : {
     199             :     XML_TOK_DATABARENTRY_TYPE,
     200             :     XML_TOK_DATABARENTRY_VALUE
     201             : };
     202             : 
     203             : enum ScXMLIconSetAttrTokens
     204             : {
     205             :     XML_TOK_ICONSET_TYPE
     206             : };
     207             : 
     208             : enum ScXMLLabelRangesElemTokens
     209             : {
     210             :     XML_TOK_LABEL_RANGE_ELEM
     211             : };
     212             : 
     213             : enum ScXMLLabelRangeAttrTokens
     214             : {
     215             :     XML_TOK_LABEL_RANGE_ATTR_LABEL_RANGE,
     216             :     XML_TOK_LABEL_RANGE_ATTR_DATA_RANGE,
     217             :     XML_TOK_LABEL_RANGE_ATTR_ORIENTATION
     218             : };
     219             : 
     220             : enum ScXMLTableTokens
     221             : {
     222             :     XML_TOK_TABLE_NAMED_EXPRESSIONS,
     223             :     XML_TOK_TABLE_COL_GROUP,
     224             :     XML_TOK_TABLE_HEADER_COLS,
     225             :     XML_TOK_TABLE_COLS,
     226             :     XML_TOK_TABLE_COL,
     227             :     XML_TOK_TABLE_ROW_GROUP,
     228             :     XML_TOK_TABLE_HEADER_ROWS,
     229             :     XML_TOK_TABLE_PROTECTION,
     230             :     XML_TOK_TABLE_ROWS,
     231             :     XML_TOK_TABLE_ROW,
     232             :     XML_TOK_TABLE_SOURCE,
     233             :     XML_TOK_TABLE_SCENARIO,
     234             :     XML_TOK_TABLE_SHAPES,
     235             :     XML_TOK_TABLE_FORMS,
     236             :     XML_TOK_TABLE_EVENT_LISTENERS,
     237             :     XML_TOK_TABLE_EVENT_LISTENERS_EXT,
     238             :     XML_TOK_TABLE_CONDFORMATS
     239             : };
     240             : 
     241             : enum ScXMLTokenProtectionTokens
     242             : {
     243             :     XML_TOK_TABLE_SELECT_PROTECTED_CELLS,
     244             :     XML_TOK_TABLE_SELECT_UNPROTECTED_CELLS
     245             : };
     246             : 
     247             : enum ScXMLTableRowsTokens
     248             : {
     249             :     XML_TOK_TABLE_ROWS_ROW_GROUP,
     250             :     XML_TOK_TABLE_ROWS_HEADER_ROWS,
     251             :     XML_TOK_TABLE_ROWS_ROWS,
     252             :     XML_TOK_TABLE_ROWS_ROW
     253             : };
     254             : 
     255             : enum ScXMLTableColsTokens
     256             : {
     257             :     XML_TOK_TABLE_COLS_COL_GROUP,
     258             :     XML_TOK_TABLE_COLS_HEADER_COLS,
     259             :     XML_TOK_TABLE_COLS_COLS,
     260             :     XML_TOK_TABLE_COLS_COL
     261             : };
     262             : 
     263             : enum ScXMLTableAttrTokens
     264             : {
     265             :     XML_TOK_TABLE_NAME,
     266             :     XML_TOK_TABLE_STYLE_NAME,
     267             :     XML_TOK_TABLE_PROTECTED,
     268             :     XML_TOK_TABLE_PRINT_RANGES,
     269             :     XML_TOK_TABLE_PASSWORD,
     270             :     XML_TOK_TABLE_PASSHASH,
     271             :     XML_TOK_TABLE_PASSHASH_2,
     272             :     XML_TOK_TABLE_PRINT
     273             : };
     274             : 
     275             : enum ScXMLTableScenarioAttrTokens
     276             : {
     277             :     XML_TOK_TABLE_SCENARIO_ATTR_DISPLAY_BORDER,
     278             :     XML_TOK_TABLE_SCENARIO_ATTR_BORDER_COLOR,
     279             :     XML_TOK_TABLE_SCENARIO_ATTR_COPY_BACK,
     280             :     XML_TOK_TABLE_SCENARIO_ATTR_COPY_STYLES,
     281             :     XML_TOK_TABLE_SCENARIO_ATTR_COPY_FORMULAS,
     282             :     XML_TOK_TABLE_SCENARIO_ATTR_IS_ACTIVE,
     283             :     XML_TOK_TABLE_SCENARIO_ATTR_SCENARIO_RANGES,
     284             :     XML_TOK_TABLE_SCENARIO_ATTR_COMMENT,
     285             :     XML_TOK_TABLE_SCENARIO_ATTR_PROTECTED
     286             : };
     287             : 
     288             : enum ScXMLTableColAttrTokens
     289             : {
     290             :     XML_TOK_TABLE_COL_ATTR_STYLE_NAME,
     291             :     XML_TOK_TABLE_COL_ATTR_REPEATED,
     292             :     XML_TOK_TABLE_COL_ATTR_VISIBILITY,
     293             :     XML_TOK_TABLE_COL_ATTR_DEFAULT_CELL_STYLE_NAME
     294             : };
     295             : 
     296             : enum ScXMLTableRowTokens
     297             : {
     298             :     XML_TOK_TABLE_ROW_CELL,
     299             :     XML_TOK_TABLE_ROW_COVERED_CELL
     300             : };
     301             : 
     302             : enum ScXMLTableRowAttrTokens
     303             : {
     304             :     XML_TOK_TABLE_ROW_ATTR_STYLE_NAME,
     305             :     XML_TOK_TABLE_ROW_ATTR_VISIBILITY,
     306             :     XML_TOK_TABLE_ROW_ATTR_REPEATED,
     307             :     XML_TOK_TABLE_ROW_ATTR_DEFAULT_CELL_STYLE_NAME
     308             : //  XML_TOK_TABLE_ROW_ATTR_USE_OPTIMAL_HEIGHT
     309             : };
     310             : 
     311             : enum ScXMLTableRowCellTokens
     312             : {
     313             :     XML_TOK_TABLE_ROW_CELL_P,
     314             :     XML_TOK_TABLE_ROW_CELL_TABLE,
     315             :     XML_TOK_TABLE_ROW_CELL_ANNOTATION,
     316             :     XML_TOK_TABLE_ROW_CELL_DETECTIVE,
     317             :     XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE
     318             : };
     319             : 
     320             : enum ScXMLTableRowCellAttrTokens
     321             : {
     322             :     XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME,
     323             :     XML_TOK_TABLE_ROW_CELL_ATTR_CONTENT_VALIDATION_NAME,
     324             :     XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_ROWS,
     325             :     XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_COLS,
     326             :     XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_COLS,
     327             :     XML_TOK_TABLE_ROW_CELL_ATTR_SPANNED_MATRIX_ROWS,
     328             :     XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED,
     329             :     XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE,
     330             :     XML_TOK_TABLE_ROW_CELL_ATTR_VALUE,
     331             :     XML_TOK_TABLE_ROW_CELL_ATTR_DATE_VALUE,
     332             :     XML_TOK_TABLE_ROW_CELL_ATTR_TIME_VALUE,
     333             :     XML_TOK_TABLE_ROW_CELL_ATTR_STRING_VALUE,
     334             :     XML_TOK_TABLE_ROW_CELL_ATTR_BOOLEAN_VALUE,
     335             :     XML_TOK_TABLE_ROW_CELL_ATTR_FORMULA,
     336             :     XML_TOK_TABLE_ROW_CELL_ATTR_CURRENCY
     337             : };
     338             : 
     339             : enum ScXMLAnnotationAttrTokens
     340             : {
     341             :     XML_TOK_TABLE_ANNOTATION_ATTR_AUTHOR,
     342             :     XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE,
     343             :     XML_TOK_TABLE_ANNOTATION_ATTR_CREATE_DATE_STRING,
     344             :     XML_TOK_TABLE_ANNOTATION_ATTR_DISPLAY,
     345             :     XML_TOK_TABLE_ANNOTATION_ATTR_X,
     346             :     XML_TOK_TABLE_ANNOTATION_ATTR_Y
     347             : };
     348             : 
     349             : enum ScXMLDetectiveElemTokens
     350             : {
     351             :     XML_TOK_DETECTIVE_ELEM_HIGHLIGHTED,
     352             :     XML_TOK_DETECTIVE_ELEM_OPERATION
     353             : };
     354             : 
     355             : enum ScXMLDetectiveHighlightedAttrTokens
     356             : {
     357             :     XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CELL_RANGE,
     358             :     XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_DIRECTION,
     359             :     XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_CONTAINS_ERROR,
     360             :     XML_TOK_DETECTIVE_HIGHLIGHTED_ATTR_MARKED_INVALID
     361             : };
     362             : 
     363             : enum ScXMLDetectiveOperationAttrTokens
     364             : {
     365             :     XML_TOK_DETECTIVE_OPERATION_ATTR_NAME,
     366             :     XML_TOK_DETECTIVE_OPERATION_ATTR_INDEX
     367             : };
     368             : 
     369             : enum ScXMLCellRangeSourceAttrTokens
     370             : {
     371             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_NAME,
     372             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_HREF,
     373             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_NAME,
     374             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_FILTER_OPTIONS,
     375             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_COLUMN,
     376             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_LAST_ROW,
     377             :     XML_TOK_TABLE_CELL_RANGE_SOURCE_ATTR_REFRESH_DELAY
     378             : };
     379             : 
     380             : enum ScXMLNamedExpressionsTokens
     381             : {
     382             :     XML_TOK_NAMED_EXPRESSIONS_NAMED_RANGE,
     383             :     XML_TOK_NAMED_EXPRESSIONS_NAMED_EXPRESSION
     384             : };
     385             : 
     386             : enum ScXMLNamedRangeAttrTokens
     387             : {
     388             :     XML_TOK_NAMED_RANGE_ATTR_NAME,
     389             :     XML_TOK_NAMED_RANGE_ATTR_CELL_RANGE_ADDRESS,
     390             :     XML_TOK_NAMED_RANGE_ATTR_BASE_CELL_ADDRESS,
     391             :     XML_TOK_NAMED_RANGE_ATTR_RANGE_USABLE_AS
     392             : };
     393             : 
     394             : enum ScXMLNamedExpressionAttrTokens
     395             : {
     396             :     XML_TOK_NAMED_EXPRESSION_ATTR_NAME,
     397             :     XML_TOK_NAMED_EXPRESSION_ATTR_BASE_CELL_ADDRESS,
     398             :     XML_TOK_NAMED_EXPRESSION_ATTR_EXPRESSION
     399             : };
     400             : 
     401             : enum ScXMLDatabaseRangesTokens
     402             : {
     403             :     XML_TOK_DATABASE_RANGE
     404             : };
     405             : 
     406             : enum ScXMLDatabaseRangeTokens
     407             : {
     408             :     XML_TOK_DATABASE_RANGE_SOURCE_SQL,
     409             :     XML_TOK_DATABASE_RANGE_SOURCE_TABLE,
     410             :     XML_TOK_DATABASE_RANGE_SOURCE_QUERY,
     411             :     XML_TOK_FILTER,
     412             :     XML_TOK_SORT,
     413             :     XML_TOK_DATABASE_RANGE_SUBTOTAL_RULES
     414             : };
     415             : 
     416             : enum ScXMLDatabaseRangeAttrTokens
     417             : {
     418             :     XML_TOK_DATABASE_RANGE_ATTR_NAME,
     419             :     XML_TOK_DATABASE_RANGE_ATTR_IS_SELECTION,
     420             :     XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_STYLES,
     421             :     XML_TOK_DATABASE_RANGE_ATTR_ON_UPDATE_KEEP_SIZE,
     422             :     XML_TOK_DATABASE_RANGE_ATTR_HAS_PERSISTENT_DATA,
     423             :     XML_TOK_DATABASE_RANGE_ATTR_ORIENTATION,
     424             :     XML_TOK_DATABASE_RANGE_ATTR_CONTAINS_HEADER,
     425             :     XML_TOK_DATABASE_RANGE_ATTR_DISPLAY_FILTER_BUTTONS,
     426             :     XML_TOK_DATABASE_RANGE_ATTR_TARGET_RANGE_ADDRESS,
     427             :     XML_TOK_DATABASE_RANGE_ATTR_REFRESH_DELAY
     428             : };
     429             : 
     430             : enum ScXMLDatabaseRangeSourceSQLAttrTokens
     431             : {
     432             :     XML_TOK_SOURCE_SQL_ATTR_DATABASE_NAME,
     433             :     XML_TOK_SOURCE_SQL_ATTR_HREF,
     434             :     XML_TOK_SOURCE_SQL_ATTR_CONNECTION_RESOURCE,
     435             :     XML_TOK_SOURCE_SQL_ATTR_SQL_STATEMENT,
     436             :     XML_TOK_SOURCE_SQL_ATTR_PARSE_SQL_STATEMENT
     437             : };
     438             : 
     439             : enum ScXMLDatabaseRangeSourceTableAttrTokens
     440             : {
     441             :     XML_TOK_SOURCE_TABLE_ATTR_DATABASE_NAME,
     442             :     XML_TOK_SOURCE_TABLE_ATTR_HREF,
     443             :     XML_TOK_SOURCE_TABLE_ATTR_CONNECTION_RESOURCE,
     444             :     XML_TOK_SOURCE_TABLE_ATTR_TABLE_NAME
     445             : };
     446             : 
     447             : enum ScXMLDatabaseRangeSourceQueryAttrTokens
     448             : {
     449             :     XML_TOK_SOURCE_QUERY_ATTR_DATABASE_NAME,
     450             :     XML_TOK_SOURCE_QUERY_ATTR_HREF,
     451             :     XML_TOK_SOURCE_QUERY_ATTR_CONNECTION_RESOURCE,
     452             :     XML_TOK_SOURCE_QUERY_ATTR_QUERY_NAME
     453             : };
     454             : 
     455             : enum ScXMLFilterTokens
     456             : {
     457             :     XML_TOK_FILTER_AND,
     458             :     XML_TOK_FILTER_OR,
     459             :     XML_TOK_FILTER_CONDITION
     460             : };
     461             : 
     462             : enum ScXMLFilterAttrTokens
     463             : {
     464             :     XML_TOK_FILTER_ATTR_TARGET_RANGE_ADDRESS,
     465             :     XML_TOK_FILTER_ATTR_CONDITION_SOURCE_RANGE_ADDRESS,
     466             :     XML_TOK_FILTER_ATTR_CONDITION_SOURCE,
     467             :     XML_TOK_FILTER_ATTR_DISPLAY_DUPLICATES
     468             : };
     469             : 
     470             : enum ScXMLFilterConditionElemTokens
     471             : {
     472             :     XML_TOK_CONDITION_FILTER_SET_ITEM
     473             : };
     474             : 
     475             : enum ScXMLFilterConditionAttrTokens
     476             : {
     477             :     XML_TOK_CONDITION_ATTR_FIELD_NUMBER,
     478             :     XML_TOK_CONDITION_ATTR_CASE_SENSITIVE,
     479             :     XML_TOK_CONDITION_ATTR_DATA_TYPE,
     480             :     XML_TOK_CONDITION_ATTR_VALUE,
     481             :     XML_TOK_CONDITION_ATTR_OPERATOR
     482             : };
     483             : 
     484             : enum ScXMLFilterSetItemAttrTokens
     485             : {
     486             :     XML_TOK_FILTER_SET_ITEM_ATTR_VALUE
     487             : };
     488             : 
     489             : enum ScXMLSortTokens
     490             : {
     491             :     XML_TOK_SORT_SORT_BY
     492             : };
     493             : 
     494             : enum ScXMLSortAttrTokens
     495             : {
     496             :     XML_TOK_SORT_ATTR_BIND_STYLES_TO_CONTENT,
     497             :     XML_TOK_SORT_ATTR_TARGET_RANGE_ADDRESS,
     498             :     XML_TOK_SORT_ATTR_CASE_SENSITIVE,
     499             :     XML_TOK_SORT_ATTR_LANGUAGE,
     500             :     XML_TOK_SORT_ATTR_COUNTRY,
     501             :     XML_TOK_SORT_ATTR_ALGORITHM
     502             : };
     503             : 
     504             : enum ScXMLSortSortByAttrTokens
     505             : {
     506             :     XML_TOK_SORT_BY_ATTR_FIELD_NUMBER,
     507             :     XML_TOK_SORT_BY_ATTR_DATA_TYPE,
     508             :     XML_TOK_SORT_BY_ATTR_ORDER
     509             : };
     510             : 
     511             : enum ScXMLDatabaseRangeSubTotalRulesTokens
     512             : {
     513             :     XML_TOK_SUBTOTAL_RULES_SORT_GROUPS,
     514             :     XML_TOK_SUBTOTAL_RULES_SUBTOTAL_RULE
     515             : };
     516             : 
     517             : enum ScXMLDatabaseRangeSubTotalRulesAttrTokens
     518             : {
     519             :     XML_TOK_SUBTOTAL_RULES_ATTR_BIND_STYLES_TO_CONTENT,
     520             :     XML_TOK_SUBTOTAL_RULES_ATTR_CASE_SENSITIVE,
     521             :     XML_TOK_SUBTOTAL_RULES_ATTR_PAGE_BREAKS_ON_GROUP_CHANGE
     522             : };
     523             : 
     524             : enum ScXMLSubTotalRulesSortGroupsAttrTokens
     525             : {
     526             :     XML_TOK_SORT_GROUPS_ATTR_DATA_TYPE,
     527             :     XML_TOK_SORT_GROUPS_ATTR_ORDER
     528             : };
     529             : 
     530             : enum ScXMLSubTotalRulesSubTotalRuleTokens
     531             : {
     532             :     XML_TOK_SUBTOTAL_RULE_SUBTOTAL_FIELD
     533             : };
     534             : 
     535             : enum ScXMLSubTotalRulesSubTotalRuleAttrTokens
     536             : {
     537             :     XML_TOK_SUBTOTAL_RULE_ATTR_GROUP_BY_FIELD_NUMBER
     538             : };
     539             : 
     540             : enum ScXMLSubTotalRuleSubTotalField
     541             : {
     542             :     XML_TOK_SUBTOTAL_FIELD_ATTR_FIELD_NUMBER,
     543             :     XML_TOK_SUBTOTAL_FIELD_ATTR_FUNCTION
     544             : };
     545             : 
     546             : enum ScXMLDataPilotTablesElemTokens
     547             : {
     548             :     XML_TOK_DATA_PILOT_TABLE
     549             : };
     550             : 
     551             : enum ScXMLDataPilotTableAttrTokens
     552             : {
     553             :     XML_TOK_DATA_PILOT_TABLE_ATTR_NAME,
     554             :     XML_TOK_DATA_PILOT_TABLE_ATTR_APPLICATION_DATA,
     555             :     XML_TOK_DATA_PILOT_TABLE_ATTR_GRAND_TOTAL,
     556             :     XML_TOK_DATA_PILOT_TABLE_ATTR_IGNORE_EMPTY_ROWS,
     557             :     XML_TOK_DATA_PILOT_TABLE_ATTR_IDENTIFY_CATEGORIES,
     558             :     XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS,
     559             :     XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS,
     560             :     XML_TOK_DATA_PILOT_TABLE_ATTR_SHOW_FILTER_BUTTON,
     561             :     XML_TOK_DATA_PILOT_TABLE_ATTR_DRILL_DOWN,
     562             :     XML_TOK_DATA_PILOT_TABLE_ATTR_HEADER_GRID_LAYOUT
     563             : };
     564             : 
     565             : enum ScXMLDataPilotTableElemTokens
     566             : {
     567             :     XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SQL,
     568             :     XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_TABLE,
     569             :     XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL,
     570             :     XML_TOK_DATA_PILOT_TABLE_ELEM_GRAND_TOTAL_EXT,
     571             :     XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_QUERY,
     572             :     XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_SERVICE,
     573             :     XML_TOK_DATA_PILOT_TABLE_ELEM_SOURCE_CELL_RANGE,
     574             :     XML_TOK_DATA_PILOT_TABLE_ELEM_DATA_PILOT_FIELD
     575             : };
     576             : 
     577             : enum ScXMLDataPilotTableSourceServiceAttrTokens
     578             : {
     579             :     XML_TOK_SOURCE_SERVICE_ATTR_NAME,
     580             :     XML_TOK_SOURCE_SERVICE_ATTR_SOURCE_NAME,
     581             :     XML_TOK_SOURCE_SERVICE_ATTR_OBJECT_NAME,
     582             :     XML_TOK_SOURCE_SERVICE_ATTR_USER_NAME,
     583             :     XML_TOK_SOURCE_SERVICE_ATTR_PASSWORD
     584             : };
     585             : 
     586             : enum ScXMLDataPilotGrandTotalAttrTokens
     587             : {
     588             :     XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY,
     589             :     XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_ORIENTATION,
     590             :     XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME,
     591             :     XML_TOK_DATA_PILOT_GRAND_TOTAL_ATTR_DISPLAY_NAME_EXT
     592             : };
     593             : 
     594             : enum ScXMLDataPilotTableSourceCellRangeElemTokens
     595             : {
     596             :     XML_TOK_SOURCE_CELL_RANGE_ELEM_FILTER
     597             : };
     598             : 
     599             : enum ScXMLDataPilotTableSourceCellRangeAttrTokens
     600             : {
     601             :     XML_TOK_SOURCE_CELL_RANGE_ATTR_CELL_RANGE_ADDRESS,
     602             :     XML_TOK_SOURCE_CELL_RANGE_ATTR_NAME
     603             : };
     604             : 
     605             : enum ScXMLDataPilotFieldAttrTokens
     606             : {
     607             :     XML_TOK_DATA_PILOT_FIELD_ATTR_SOURCE_FIELD_NAME,
     608             :     XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME,
     609             :     XML_TOK_DATA_PILOT_FIELD_ATTR_DISPLAY_NAME_EXT,
     610             :     XML_TOK_DATA_PILOT_FIELD_ATTR_IS_DATA_LAYOUT_FIELD,
     611             :     XML_TOK_DATA_PILOT_FIELD_ATTR_FUNCTION,
     612             :     XML_TOK_DATA_PILOT_FIELD_ATTR_ORIENTATION,
     613             :     XML_TOK_DATA_PILOT_FIELD_ATTR_SELECTED_PAGE,
     614             :     XML_TOK_DATA_PILOT_FIELD_ATTR_USED_HIERARCHY
     615             : };
     616             : 
     617             : enum ScXMLDataPilotFieldElemTokens
     618             : {
     619             :     XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LEVEL,
     620             :     XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_REFERENCE,
     621             :     XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_GROUPS
     622             : };
     623             : 
     624             : enum ScXMLDataPilotLevelAttrTokens
     625             : {
     626             :     XML_TOK_DATA_PILOT_LEVEL_ATTR_SHOW_EMPTY
     627             : };
     628             : 
     629             : enum ScXMLDataPilotLevelElemTokens
     630             : {
     631             :     XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_SUBTOTALS,
     632             :     XML_TOK_DATA_PILOT_LEVEL_ELEM_DATA_PILOT_MEMBERS,
     633             :     XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_DISPLAY_INFO,
     634             :     XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_SORT_INFO,
     635             :     XML_TOK_DATA_PILOT_FIELD_ELEM_DATA_PILOT_LAYOUT_INFO
     636             : };
     637             : 
     638             : enum ScXMLDataPilotSubTotalsElemTokens
     639             : {
     640             :     XML_TOK_DATA_PILOT_SUBTOTALS_ELEM_DATA_PILOT_SUBTOTAL
     641             : };
     642             : 
     643             : enum ScXMLDataPilotSubTotalAttrTokens
     644             : {
     645             :     XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_FUNCTION,
     646             :     XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME,
     647             :     XML_TOK_DATA_PILOT_SUBTOTAL_ATTR_DISPLAY_NAME_EXT
     648             : };
     649             : 
     650             : enum ScXMLDataPilotMembersElemTokens
     651             : {
     652             :     XML_TOK_DATA_PILOT_MEMBERS_ELEM_DATA_PILOT_MEMBER
     653             : };
     654             : 
     655             : enum ScXMLDataPilotMemberAttrTokens
     656             : {
     657             :     XML_TOK_DATA_PILOT_MEMBER_ATTR_NAME,
     658             :     XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME,
     659             :     XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY_NAME_EXT,
     660             :     XML_TOK_DATA_PILOT_MEMBER_ATTR_DISPLAY,
     661             :     XML_TOK_DATA_PILOT_MEMBER_ATTR_SHOW_DETAILS
     662             : };
     663             : 
     664             : enum ScXMLConsolidationAttrTokens
     665             : {
     666             :     XML_TOK_CONSOLIDATION_ATTR_FUNCTION,
     667             :     XML_TOK_CONSOLIDATION_ATTR_SOURCE_RANGES,
     668             :     XML_TOK_CONSOLIDATION_ATTR_TARGET_ADDRESS,
     669             :     XML_TOK_CONSOLIDATION_ATTR_USE_LABEL,
     670             :     XML_TOK_CONSOLIDATION_ATTR_LINK_TO_SOURCE
     671             : };
     672             : 
     673             : 
     674             : class SvXMLTokenMap;
     675             : class XMLShapeImportHelper;
     676             : class ScXMLChangeTrackingImportHelper;
     677             : class SolarMutexGuard;
     678             : 
     679             : struct tScMyCellRange
     680             : {
     681             :     SCTAB Sheet;
     682             :     sal_Int32 StartColumn, EndColumn;
     683             :     sal_Int32 StartRow, EndRow;
     684             : };
     685             : 
     686          28 : struct ScMyNamedExpression
     687             : {
     688             :     rtl::OUString      sName;
     689             :     rtl::OUString      sContent;
     690             :     rtl::OUString      sContentNmsp;
     691             :     rtl::OUString      sBaseCellAddress;
     692             :     rtl::OUString      sRangeType;
     693             :     formula::FormulaGrammar::Grammar eGrammar;
     694             :     bool               bIsExpression;
     695             : };
     696             : 
     697             : typedef ::boost::ptr_list<ScMyNamedExpression> ScMyNamedExpressions;
     698             : 
     699           0 : struct ScMyLabelRange
     700             : {
     701             :     rtl::OUString   sLabelRangeStr;
     702             :     rtl::OUString   sDataRangeStr;
     703             :     bool            bColumnOrientation;
     704             : };
     705             : 
     706             : typedef std::list<const ScMyLabelRange*> ScMyLabelRanges;
     707             : 
     708          52 : struct ScMyImportValidation
     709             : {
     710             :     rtl::OUString                                   sName;
     711             :     rtl::OUString                                   sImputTitle;
     712             :     rtl::OUString                                   sImputMessage;
     713             :     rtl::OUString                                   sErrorTitle;
     714             :     rtl::OUString                                   sErrorMessage;
     715             :     rtl::OUString                                   sFormula1;
     716             :     rtl::OUString                                   sFormula2;
     717             :     rtl::OUString                                   sFormulaNmsp1;
     718             :     rtl::OUString                                   sFormulaNmsp2;
     719             :     rtl::OUString                                   sBaseCellAddress;   // string is used directly
     720             :     com::sun::star::sheet::ValidationAlertStyle     aAlertStyle;
     721             :     com::sun::star::sheet::ValidationType           aValidationType;
     722             :     com::sun::star::sheet::ConditionOperator        aOperator;
     723             :     formula::FormulaGrammar::Grammar                eGrammar1;
     724             :     formula::FormulaGrammar::Grammar                eGrammar2;
     725             :     sal_Int16                                       nShowList;
     726             :     bool                                            bShowErrorMessage;
     727             :     bool                                            bShowImputMessage;
     728             :     bool                                            bIgnoreBlanks;
     729             : };
     730             : 
     731             : typedef std::vector<ScMyImportValidation>           ScMyImportValidations;
     732             : typedef std::list<SvXMLImportContext*>              ScMyViewContextList;
     733             : class ScMyStylesImportHelper;
     734             : 
     735             : class ScXMLImport: public SvXMLImport
     736             : {
     737             :     typedef ::boost::unordered_map< ::rtl::OUString, sal_Int16, ::rtl::OUStringHash >   CellTypeMap;
     738             :     typedef ::boost::ptr_map<SCTAB, ScMyNamedExpressions> SheetNamedExpMap;
     739             : 
     740             :     CellTypeMap             aCellTypeMap;
     741             : 
     742             :     ScDocument*             pDoc;
     743             :     ScXMLChangeTrackingImportHelper*    pChangeTrackingImportHelper;
     744             :     ScMyViewContextList                 aViewContextList;
     745             :     ScMyStylesImportHelper*             pStylesImportHelper;
     746             :     rtl::OUString                       sNumberFormat;
     747             :     rtl::OUString                       sLocale;
     748             :     rtl::OUString                       sCellStyle;
     749             :     rtl::OUString                       sStandardFormat;
     750             :     rtl::OUString                       sType;
     751             : 
     752             :     UniReference < XMLPropertyHandlerFactory >  xScPropHdlFactory;
     753             :     UniReference < XMLPropertySetMapper >       xCellStylesPropertySetMapper;
     754             :     UniReference < XMLPropertySetMapper >       xColumnStylesPropertySetMapper;
     755             :     UniReference < XMLPropertySetMapper >       xRowStylesPropertySetMapper;
     756             :     UniReference < XMLPropertySetMapper >       xTableStylesPropertySetMapper;
     757             : 
     758             :     SvXMLTokenMap           *pDocElemTokenMap;
     759             :     SvXMLTokenMap           *pStylesElemTokenMap;
     760             :     SvXMLTokenMap           *pStylesAttrTokenMap;
     761             :     SvXMLTokenMap           *pStyleElemTokenMap;
     762             :     SvXMLTokenMap           *pBodyElemTokenMap;
     763             :     SvXMLTokenMap           *pContentValidationsElemTokenMap;
     764             :     SvXMLTokenMap           *pContentValidationElemTokenMap;
     765             :     SvXMLTokenMap           *pContentValidationAttrTokenMap;
     766             :     SvXMLTokenMap           *pContentValidationMessageElemTokenMap;
     767             :     SvXMLTokenMap           *pContentValidationHelpMessageAttrTokenMap;
     768             :     SvXMLTokenMap           *pContentValidationErrorMessageAttrTokenMap;
     769             :     SvXMLTokenMap           *pContentValidationErrorMacroAttrTokenMap;
     770             :     SvXMLTokenMap           *pCondFormatsTokenMap;
     771             :     SvXMLTokenMap           *pCondFormatTokenMap;
     772             :     SvXMLTokenMap           *pCondFormatAttrMap;
     773             :     SvXMLTokenMap           *pConditionAttrMap;
     774             :     SvXMLTokenMap           *pColorScaleTokenMap;
     775             :     SvXMLTokenMap           *pColorScaleEntryAttrTokenMap;
     776             :     SvXMLTokenMap           *pDataBarTokenMap;
     777             :     SvXMLTokenMap           *pDataBarAttrMap;
     778             :     SvXMLTokenMap           *pFormattingEntryAttrMap;
     779             :     SvXMLTokenMap           *pIconSetAttrMap;
     780             :     SvXMLTokenMap           *pLabelRangesElemTokenMap;
     781             :     SvXMLTokenMap           *pLabelRangeAttrTokenMap;
     782             :     SvXMLTokenMap           *pTableElemTokenMap;
     783             :     SvXMLTokenMap           *pTableProtectionElemTokenMap;
     784             :     SvXMLTokenMap           *pTableRowsElemTokenMap;
     785             :     SvXMLTokenMap           *pTableColsElemTokenMap;
     786             :     SvXMLTokenMap           *pTableScenarioAttrTokenMap;
     787             :     SvXMLTokenMap           *pTableAttrTokenMap;
     788             :     SvXMLTokenMap           *pTableColAttrTokenMap;
     789             :     SvXMLTokenMap           *pTableRowElemTokenMap;
     790             :     SvXMLTokenMap           *pTableRowAttrTokenMap;
     791             :     SvXMLTokenMap           *pTableRowCellElemTokenMap;
     792             :     SvXMLTokenMap           *pTableRowCellAttrTokenMap;
     793             :     SvXMLTokenMap           *pTableAnnotationAttrTokenMap;
     794             :     SvXMLTokenMap           *pDetectiveElemTokenMap;
     795             :     SvXMLTokenMap           *pDetectiveHighlightedAttrTokenMap;
     796             :     SvXMLTokenMap           *pDetectiveOperationAttrTokenMap;
     797             :     SvXMLTokenMap           *pTableCellRangeSourceAttrTokenMap;
     798             :     SvXMLTokenMap           *pNamedExpressionsElemTokenMap;
     799             :     SvXMLTokenMap           *pNamedRangeAttrTokenMap;
     800             :     SvXMLTokenMap           *pNamedExpressionAttrTokenMap;
     801             :     SvXMLTokenMap           *pDatabaseRangesElemTokenMap;
     802             :     SvXMLTokenMap           *pDatabaseRangeElemTokenMap;
     803             :     SvXMLTokenMap           *pDatabaseRangeAttrTokenMap;
     804             :     SvXMLTokenMap           *pDatabaseRangeSourceSQLAttrTokenMap;
     805             :     SvXMLTokenMap           *pDatabaseRangeSourceTableAttrTokenMap;
     806             :     SvXMLTokenMap           *pDatabaseRangeSourceQueryAttrTokenMap;
     807             :     SvXMLTokenMap           *pFilterElemTokenMap;
     808             :     SvXMLTokenMap           *pFilterAttrTokenMap;
     809             :     SvXMLTokenMap           *pFilterConditionElemTokenMap;
     810             :     SvXMLTokenMap           *pFilterConditionAttrTokenMap;
     811             :     SvXMLTokenMap           *pFilterSetItemAttrTokenMap;
     812             :     SvXMLTokenMap           *pSortElemTokenMap;
     813             :     SvXMLTokenMap           *pSortAttrTokenMap;
     814             :     SvXMLTokenMap           *pSortSortByAttrTokenMap;
     815             :     SvXMLTokenMap           *pDatabaseRangeSubTotalRulesElemTokenMap;
     816             :     SvXMLTokenMap           *pDatabaseRangeSubTotalRulesAttrTokenMap;
     817             :     SvXMLTokenMap           *pSubTotalRulesSortGroupsAttrTokenMap;
     818             :     SvXMLTokenMap           *pSubTotalRulesSubTotalRuleElemTokenMap;
     819             :     SvXMLTokenMap           *pSubTotalRulesSubTotalRuleAttrTokenMap;
     820             :     SvXMLTokenMap           *pSubTotalRuleSubTotalFieldAttrTokenMap;
     821             :     SvXMLTokenMap           *pDataPilotTablesElemTokenMap;
     822             :     SvXMLTokenMap           *pDataPilotTableAttrTokenMap;
     823             :     SvXMLTokenMap           *pDataPilotTableElemTokenMap;
     824             :     SvXMLTokenMap           *pDataPilotTableSourceServiceAttrTokenMap;
     825             :     SvXMLTokenMap           *pDataPilotGrandTotalAttrTokenMap;
     826             :     SvXMLTokenMap           *pDataPilotTableSourceCellRangeElemTokenMap;
     827             :     SvXMLTokenMap           *pDataPilotTableSourceCellRangeAttrTokenMap;
     828             :     SvXMLTokenMap           *pDataPilotFieldAttrTokenMap;
     829             :     SvXMLTokenMap           *pDataPilotFieldElemTokenMap;
     830             :     SvXMLTokenMap           *pDataPilotLevelAttrTokenMap;
     831             :     SvXMLTokenMap           *pDataPilotLevelElemTokenMap;
     832             :     SvXMLTokenMap           *pDataPilotSubTotalsElemTokenMap;
     833             :     SvXMLTokenMap           *pDataPilotSubTotalAttrTokenMap;
     834             :     SvXMLTokenMap           *pDataPilotMembersElemTokenMap;
     835             :     SvXMLTokenMap           *pDataPilotMemberAttrTokenMap;
     836             :     SvXMLTokenMap           *pConsolidationAttrTokenMap;
     837             : 
     838             :     ScMyTables              aTables;
     839             : 
     840             :     ScMyNamedExpressions*   pMyNamedExpressions;
     841             :     SheetNamedExpMap maSheetNamedExpressions;
     842             : 
     843             :     ScMyLabelRanges*        pMyLabelRanges;
     844             :     ScMyImportValidations*  pValidations;
     845             :     ScMyImpDetectiveOpArray*    pDetectiveOpArray;
     846             :     SolarMutexGuard*        pSolarMutexGuard;
     847             : 
     848             :     std::vector<rtl::OUString>          aTableStyles;
     849             :     XMLNumberFormatAttributesExportHelper* pNumberFormatAttributesExportHelper;
     850             :     ScMyStyleNumberFormats* pStyleNumberFormats;
     851             :     com::sun::star::uno::Reference <com::sun::star::util::XNumberFormats> xNumberFormats;
     852             :     com::sun::star::uno::Reference <com::sun::star::util::XNumberFormatTypes> xNumberFormatTypes;
     853             : 
     854             :     com::sun::star::uno::Reference <com::sun::star::sheet::XSheetCellRangeContainer> xSheetCellRanges;
     855             : 
     856             :     rtl::OUString           sEmpty;
     857             :     rtl::OUString           sPrevStyleName;
     858             :     rtl::OUString           sPrevCurrency;
     859             :     sal_uInt32              nSolarMutexLocked;
     860             :     sal_Int32               nProgressCount;
     861             :     sal_uInt16              nStyleFamilyMask;// Mask of styles to load
     862             :     sal_Int16               nPrevCellType;
     863             :     bool                    bLoadDoc;   // Load doc or styles only
     864             :     bool                    bRemoveLastChar;
     865             :     bool                    bNullDateSetted;
     866             :     bool                    bSelfImportingXMLSet;
     867             :     bool                    bLatinDefaultStyle;     // latin-only number format in default style?
     868             :     bool                    bFromWrapper;           // called from ScDocShell / ScXMLImportWrapper?
     869             :     bool mbHasNewCondFormatData;
     870             : 
     871             : 
     872             : protected:
     873             : 
     874             :     // This method is called after the namespace map has been updated, but
     875             :     // before a context for the current element has been pushed.
     876             :     virtual SvXMLImportContext *CreateContext(sal_uInt16 nPrefix,
     877             :                                       const ::rtl::OUString& rLocalName,
     878             :                                       const ::com::sun::star::uno::Reference<
     879             :                                           ::com::sun::star::xml::sax::XAttributeList>& xAttrList );
     880             :     virtual XMLShapeImportHelper* CreateShapeImport();
     881             : 
     882             : public:
     883             :     // #110680#
     884             :     ScXMLImport(
     885             :         const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
     886             :         const sal_uInt16 nImportFlag);
     887             : 
     888             :     ~ScXMLImport() throw();
     889             : 
     890             :     // namespace office
     891             :     // NB: in contrast to other CreateFooContexts, this particular one handles
     892             :     //     the root element (i.e. office:document-meta)
     893             :     SvXMLImportContext *CreateMetaContext(
     894             :                                     const ::rtl::OUString& rLocalName );
     895             :     SvXMLImportContext *CreateFontDeclsContext(const sal_uInt16 nPrefix, const ::rtl::OUString& rLocalName,
     896             :                                      const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList);
     897             :     SvXMLImportContext *CreateScriptContext(
     898             :                                     const ::rtl::OUString& rLocalName );
     899             :     SvXMLImportContext *CreateStylesContext(const ::rtl::OUString& rLocalName,
     900             :                                      const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList, bool bAutoStyles );
     901             :     SvXMLImportContext *CreateBodyContext(
     902             :                                     const ::rtl::OUString& rLocalName,
     903             :                                     const ::com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& xAttrList );
     904             : 
     905             :     virtual void SetStatistics(
     906             :         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue> & i_rStats);
     907             : 
     908        4494 :     inline ScDocument*          GetDocument()           { return pDoc; }
     909          24 :     inline const ScDocument*    GetDocument() const     { return pDoc; }
     910             : 
     911       19899 :     ScMyTables& GetTables() { return aTables; }
     912             : 
     913             :     sal_uInt16 GetStyleFamilyMask() const { return nStyleFamilyMask; }
     914          44 :     bool IsStylesOnlyMode() const { return !bLoadDoc; }
     915             : 
     916        1162 :     bool IsLatinDefaultStyle() const  { return bLatinDefaultStyle; }
     917             : 
     918             :     sal_Int16 GetCellType(const ::rtl::OUString& rStrValue) const;
     919             : 
     920          32 :     UniReference < XMLPropertySetMapper > GetCellStylesPropertySetMapper() const { return xCellStylesPropertySetMapper; }
     921          22 :     UniReference < XMLPropertySetMapper > GetColumnStylesPropertySetMapper() const { return xColumnStylesPropertySetMapper; }
     922          22 :     UniReference < XMLPropertySetMapper > GetRowStylesPropertySetMapper() const { return xRowStylesPropertySetMapper; }
     923          22 :     UniReference < XMLPropertySetMapper > GetTableStylesPropertySetMapper() const { return xTableStylesPropertySetMapper; }
     924             : 
     925             :     const SvXMLTokenMap& GetDocElemTokenMap();
     926             :     const SvXMLTokenMap& GetBodyElemTokenMap();
     927             :     const SvXMLTokenMap& GetContentValidationsElemTokenMap();
     928             :     const SvXMLTokenMap& GetContentValidationElemTokenMap();
     929             :     const SvXMLTokenMap& GetContentValidationAttrTokenMap();
     930             :     const SvXMLTokenMap& GetContentValidationMessageElemTokenMap();
     931             :     const SvXMLTokenMap& GetContentValidationHelpMessageAttrTokenMap();
     932             :     const SvXMLTokenMap& GetContentValidationErrorMessageAttrTokenMap();
     933             :     const SvXMLTokenMap& GetContentValidationErrorMacroAttrTokenMap();
     934             :     const SvXMLTokenMap& GetCondFormatsTokenMap();
     935             :     const SvXMLTokenMap& GetCondFormatTokenMap();
     936             :     const SvXMLTokenMap& GetCondFormatAttrMap();
     937             :     const SvXMLTokenMap& GetConditionAttrMap();
     938             :     const SvXMLTokenMap& GetColorScaleTokenMap();
     939             :     const SvXMLTokenMap& GetColorScaleEntryAttrMap();
     940             :     const SvXMLTokenMap& GetFormattingTokenMap();
     941             :     const SvXMLTokenMap& GetDataBarAttrMap();
     942             :     const SvXMLTokenMap& GetDataBarEntryAttrMap();
     943             :     const SvXMLTokenMap& GetIconSetAttrMap();
     944             :     const SvXMLTokenMap& GetLabelRangesElemTokenMap();
     945             :     const SvXMLTokenMap& GetLabelRangeAttrTokenMap();
     946             :     const SvXMLTokenMap& GetTableElemTokenMap();
     947             :     const SvXMLTokenMap& GetTableProtectionAttrTokenMap();
     948             :     const SvXMLTokenMap& GetTableRowsElemTokenMap();
     949             :     const SvXMLTokenMap& GetTableColsElemTokenMap();
     950             :     const SvXMLTokenMap& GetTableAttrTokenMap();
     951             :     const SvXMLTokenMap& GetTableScenarioAttrTokenMap();
     952             :     const SvXMLTokenMap& GetTableColAttrTokenMap();
     953             :     const SvXMLTokenMap& GetTableRowElemTokenMap();
     954             :     const SvXMLTokenMap& GetTableRowAttrTokenMap();
     955             :     const SvXMLTokenMap& GetTableRowCellElemTokenMap();
     956             :     const SvXMLTokenMap& GetTableRowCellAttrTokenMap();
     957             :     const SvXMLTokenMap& GetTableAnnotationAttrTokenMap();
     958             :     const SvXMLTokenMap& GetDetectiveElemTokenMap();
     959             :     const SvXMLTokenMap& GetDetectiveHighlightedAttrTokenMap();
     960             :     const SvXMLTokenMap& GetDetectiveOperationAttrTokenMap();
     961             :     const SvXMLTokenMap& GetTableCellRangeSourceAttrTokenMap();
     962             :     const SvXMLTokenMap& GetNamedExpressionsElemTokenMap();
     963             :     const SvXMLTokenMap& GetNamedRangeAttrTokenMap();
     964             :     const SvXMLTokenMap& GetNamedExpressionAttrTokenMap();
     965             :     const SvXMLTokenMap& GetDatabaseRangesElemTokenMap();
     966             :     const SvXMLTokenMap& GetDatabaseRangeElemTokenMap();
     967             :     const SvXMLTokenMap& GetDatabaseRangeAttrTokenMap();
     968             :     const SvXMLTokenMap& GetDatabaseRangeSourceSQLAttrTokenMap();
     969             :     const SvXMLTokenMap& GetDatabaseRangeSourceTableAttrTokenMap();
     970             :     const SvXMLTokenMap& GetDatabaseRangeSourceQueryAttrTokenMap();
     971             :     const SvXMLTokenMap& GetFilterElemTokenMap();
     972             :     const SvXMLTokenMap& GetFilterAttrTokenMap();
     973             :     const SvXMLTokenMap& GetFilterConditionElemTokenMap();
     974             :     const SvXMLTokenMap& GetFilterConditionAttrTokenMap();
     975             :     const SvXMLTokenMap& GetFilterSetItemAttrTokenMap();
     976             :     const SvXMLTokenMap& GetSortElemTokenMap();
     977             :     const SvXMLTokenMap& GetSortAttrTokenMap();
     978             :     const SvXMLTokenMap& GetSortSortByAttrTokenMap();
     979             :     const SvXMLTokenMap& GetDatabaseRangeSubTotalRulesElemTokenMap();
     980             :     const SvXMLTokenMap& GetDatabaseRangeSubTotalRulesAttrTokenMap();
     981             :     const SvXMLTokenMap& GetSubTotalRulesSortGroupsAttrTokenMap();
     982             :     const SvXMLTokenMap& GetSubTotalRulesSubTotalRuleElemTokenMap();
     983             :     const SvXMLTokenMap& GetSubTotalRulesSubTotalRuleAttrTokenMap();
     984             :     const SvXMLTokenMap& GetSubTotalRuleSubTotalFieldAttrTokenMap();
     985             :     const SvXMLTokenMap& GetDataPilotTablesElemTokenMap();
     986             :     const SvXMLTokenMap& GetDataPilotTableAttrTokenMap();
     987             :     const SvXMLTokenMap& GetDataPilotTableElemTokenMap();
     988             :     const SvXMLTokenMap& GetDataPilotTableSourceServiceAttrTokenMap();
     989             :     const SvXMLTokenMap& GetDataPilotGrandTotalAttrTokenMap();
     990             :     const SvXMLTokenMap& GetDataPilotTableSourceCellRangeElemTokenMap();
     991             :     const SvXMLTokenMap& GetDataPilotTableSourceCellRangeAttrTokenMap();
     992             :     const SvXMLTokenMap& GetDataPilotFieldAttrTokenMap();
     993             :     const SvXMLTokenMap& GetDataPilotFieldElemTokenMap();
     994             :     const SvXMLTokenMap& GetDataPilotLevelAttrTokenMap();
     995             :     const SvXMLTokenMap& GetDataPilotLevelElemTokenMap();
     996             :     const SvXMLTokenMap& GetDataPilotSubTotalsElemTokenMap();
     997             :     const SvXMLTokenMap& GetDataPilotSubTotalAttrTokenMap();
     998             :     const SvXMLTokenMap& GetDataPilotMembersElemTokenMap();
     999             :     const SvXMLTokenMap& GetDataPilotMemberAttrTokenMap();
    1000             :     const SvXMLTokenMap& GetConsolidationAttrTokenMap();
    1001             : 
    1002           8 :     void AddNamedExpression(ScMyNamedExpression* pMyNamedExpression)
    1003             :     {
    1004           8 :         if (!pMyNamedExpressions)
    1005           3 :             pMyNamedExpressions = new ScMyNamedExpressions();
    1006           8 :         pMyNamedExpressions->push_back(pMyNamedExpression);
    1007           8 :     }
    1008             : 
    1009          22 :     ScMyNamedExpressions* GetNamedExpressions() { return pMyNamedExpressions; }
    1010             : 
    1011             :     void AddNamedExpression(SCTAB nTab, ScMyNamedExpression* pNamedExp);
    1012             : 
    1013           0 :     void    AddLabelRange(const ScMyLabelRange* pMyLabelRange) {
    1014           0 :         if (!pMyLabelRanges)
    1015           0 :             pMyLabelRanges = new ScMyLabelRanges();
    1016           0 :         pMyLabelRanges->push_back(pMyLabelRange); }
    1017          22 :     ScMyLabelRanges* GetLabelRanges() { return pMyLabelRanges; }
    1018             : 
    1019           2 :     void AddValidation(const ScMyImportValidation& rValidation) {
    1020           2 :         if (!pValidations)
    1021           1 :             pValidations = new ScMyImportValidations();
    1022           2 :         pValidations->push_back(rValidation); }
    1023             :     bool GetValidation(const rtl::OUString& sName, ScMyImportValidation& aValidation);
    1024             : 
    1025          22 :     inline ScMyImpDetectiveOpArray* GetDetectiveOpArray()   {
    1026          22 :         if (!pDetectiveOpArray)
    1027          22 :             pDetectiveOpArray = new ScMyImpDetectiveOpArray();
    1028          22 :         return pDetectiveOpArray; }
    1029             : 
    1030        3234 :     void SetRemoveLastChar(bool bValue) { bRemoveLastChar = bValue; }
    1031         323 :     bool GetRemoveLastChar() { return bRemoveLastChar; }
    1032             : 
    1033             :     ScXMLChangeTrackingImportHelper* GetChangeTrackingImportHelper();
    1034             :     void AddViewContext(SvXMLImportContext* pContext) { aViewContextList.push_back(pContext); }
    1035             :     void InsertStyles();
    1036             : 
    1037             :     void SetChangeTrackingViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& rChangeProps);
    1038             :     virtual void SetViewSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aViewProps);
    1039             :     virtual void SetConfigurationSettings(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aConfigProps);
    1040             : 
    1041          50 :     void SetTableStyle(const rtl::OUString& rValue) { aTableStyles.push_back(rValue); }
    1042             :     std::vector<rtl::OUString> GetTableStyle() { return aTableStyles; }
    1043        8206 :     ScMyStylesImportHelper* GetStylesImportHelper() { return pStylesImportHelper; }
    1044             :     sal_Int32 SetCurrencySymbol(const sal_Int32 nKey, const rtl::OUString& rCurrency);
    1045             :     bool IsCurrencySymbol(const sal_Int32 nNumberFormat, const rtl::OUString& sCurrencySymbol, const rtl::OUString& sBankSymbol);
    1046             :     void SetType(com::sun::star::uno::Reference <com::sun::star::beans::XPropertySet>& rProperties,
    1047             :         sal_Int32& rNumberFormat,
    1048             :         const sal_Int16 nCellType,
    1049             :         const rtl::OUString& rCurrency);
    1050             : 
    1051             :     void ProgressBarIncrement(bool bEditCell, sal_Int32 nInc = 1);
    1052             : 
    1053           0 :     void SetNewCondFormatData() { mbHasNewCondFormatData = true; }
    1054           3 :     bool HasNewCondFormatData() { return mbHasNewCondFormatData; }
    1055             : 
    1056             : private:
    1057             :     void AddStyleRange(const com::sun::star::table::CellRangeAddress& rCellRange);
    1058             :     void SetStyleToRanges();
    1059             : 
    1060             :     void ExamineDefaultStyle();
    1061             : public:
    1062             :     void SetStyleToRange(const ScRange& rRange, const rtl::OUString* pStyleName,
    1063             :         const sal_Int16 nCellType, const rtl::OUString* pCurrency);
    1064             :     bool SetNullDateOnUnitConverter();
    1065             :     XMLNumberFormatAttributesExportHelper* GetNumberFormatAttributesExportHelper();
    1066             :     ScMyStyleNumberFormats* GetStyleNumberFormats();
    1067             : 
    1068             :     void SetStylesToRangesFinished();
    1069             : 
    1070             :     // XImporter
    1071             :     virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
    1072             : 
    1073             :     // XServiceInfo
    1074             :     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
    1075             : 
    1076             :     virtual void SAL_CALL startDocument(void)
    1077             :         throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
    1078             :     virtual void SAL_CALL endDocument(void)
    1079             :         throw( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
    1080             : 
    1081             :     virtual void DisposingModel();
    1082             : 
    1083             :     /**
    1084             :      * Use this class to manage solar mutex locking instead of calling
    1085             :      * LockSolarMutex() and UnlockSolarMutex() directly.
    1086             :      */
    1087             :     class MutexGuard
    1088             :     {
    1089             :     public:
    1090             :         explicit MutexGuard(ScXMLImport& rImport);
    1091             :         ~MutexGuard();
    1092             :     private:
    1093             :         ScXMLImport& mrImport;
    1094             :     };
    1095             :     void LockSolarMutex();
    1096             :     void UnlockSolarMutex();
    1097             : 
    1098             :     sal_Int32 GetByteOffset();
    1099             : 
    1100             :     void SetRangeOverflowType(sal_uInt32 nType);
    1101             : 
    1102             :     sal_Int32   GetRangeType(const rtl::OUString sRangeType) const;
    1103             :     void SetNamedRanges();
    1104             :     void SetSheetNamedRanges();
    1105             :     void SetLabelRanges();
    1106             :     void AddDefaultNote( const com::sun::star::table::CellAddress& aCell );
    1107             : 
    1108             :     /** Extracts the formula string, the formula grammar namespace URL, and a
    1109             :         grammar enum value from the passed formula attribute value.
    1110             : 
    1111             :         @param rFormula
    1112             :             (out-parameter) Returns the plain formula string with the leading
    1113             :             equality sign if existing.
    1114             : 
    1115             :         @param rFormulaNmsp
    1116             :             (out-parameter) Returns the URL of the formula grammar namespace if
    1117             :             the attribute value contains the prefix of an unknown namespace.
    1118             : 
    1119             :         @param reGrammar
    1120             :             (out-parameter) Returns the exact formula grammar if the formula
    1121             :             is in a supported ODF format (e.g. FormulaGrammar::GRAM_PODF for
    1122             :             ODF 1.0/1.1 formulas, or FormulaGrammar::GRAM_ODFF for ODF 1.2
    1123             :             formulas a.k.a. OpenFormula). Returns the default storage grammar,
    1124             :             if the attribute value does not contain a namespace prefix. Returns
    1125             :             the special value FormulaGrammar::GRAM_EXTERNAL, if an unknown
    1126             :             namespace could be extracted from the formula which will be
    1127             :             contained in the parameter rFormulaNmsp then.
    1128             : 
    1129             :         @param rAttrValue
    1130             :             The value of the processed formula attribute.
    1131             : 
    1132             :         @param bRestrictToExternalNmsp
    1133             :             If set to true, only namespaces of external formula grammars will
    1134             :             be recognized. Internal namespace prefixes (e.g. 'oooc:' or 'of:'
    1135             :             will be considered to be part of the formula, e.g. an expression
    1136             :             with range operator.
    1137             :      */
    1138             :     void ExtractFormulaNamespaceGrammar(
    1139             :             ::rtl::OUString& rFormula,
    1140             :             ::rtl::OUString& rFormulaNmsp,
    1141             :             ::formula::FormulaGrammar::Grammar& reGrammar,
    1142             :             const ::rtl::OUString& rAttrValue,
    1143             :             bool bRestrictToExternalNmsp = false ) const;
    1144             : };
    1145             : 
    1146             : #endif
    1147             : 
    1148             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10