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

Generated by: LCOV version 1.10