dbaccess/source/filter/xml/xmlfilter.cxx | 316 ++++++++++++++++++++----------- xmloff/source/text/txtparai.cxx | 109 ++++++++++ xmloff/source/text/txtparai.hxx | 9 3 files changed, 329 insertions(+), 105 deletions(-)
New commits: commit 1ec824c9ab71c21cab77da8594ec3591db933e6f Author: Daniel Sikeler <d.sikele...@gmail.com> Date: Thu Feb 12 11:09:54 2015 +0100 SvXMLTokenMapEntries in dbaccess Change-Id: I6ebe3f40b395842d3c9e08ba4e2b65c1b0b0fcd7 diff --git a/dbaccess/source/filter/xml/xmlfilter.cxx b/dbaccess/source/filter/xml/xmlfilter.cxx index 03e94ba..7aaca83 100644 --- a/dbaccess/source/filter/xml/xmlfilter.cxx +++ b/dbaccess/source/filter/xml/xmlfilter.cxx @@ -38,8 +38,10 @@ #include <xmloff/xmltoken.hxx> #include <xmloff/txtimp.hxx> #include <xmloff/nmspmap.hxx> +#include <xmloff/token/tokens.hxx> #include <com/sun/star/xml/sax/InputSource.hpp> #include <com/sun/star/xml/sax/Parser.hpp> +#include <com/sun/star/xml/sax/FastToken.hpp> #include <xmloff/ProgressBarHelper.hxx> #include <sfx2/docfile.hxx> #include <com/sun/star/io/XInputStream.hpp> @@ -75,6 +77,8 @@ #include <rtl/strbuf.hxx> using namespace ::com::sun::star; +using namespace xmloff; +using css::xml::sax::FastToken::NAMESPACE; extern "C" void SAL_CALL createRegistryInfo_ODBFilter( ) { @@ -603,15 +607,24 @@ const SvXMLTokenMap& ODBFilter::GetDocElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, - { XML_NAMESPACE_OOO, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, - { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OOO, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OOO, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OFFICE, XML_DATABASE, XML_TOK_DOC_DATABASE }, - { XML_NAMESPACE_OOO, XML_DATABASE, XML_TOK_DOC_DATABASE }, - { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT }, + { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS, + (NAMESPACE | XML_NAMESPACE_OFFICE | XML_settings) }, + { XML_NAMESPACE_OOO, XML_SETTINGS, XML_TOK_DOC_SETTINGS, + (NAMESPACE | XML_NAMESPACE_OOO | XML_settings) }, + { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES, + (NAMESPACE | XML_NAMESPACE_OFFICE | XML_styles) }, + { XML_NAMESPACE_OOO, XML_STYLES, XML_TOK_DOC_STYLES, + (NAMESPACE | XML_NAMESPACE_OOO | XML_styles) }, + { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES, + (NAMESPACE | XML_NAMESPACE_OFFICE | XML_automatic_styles) }, + { XML_NAMESPACE_OOO, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES, + (NAMESPACE | XML_NAMESPACE_OOO | XML_automatic_styles) }, + { XML_NAMESPACE_OFFICE, XML_DATABASE, XML_TOK_DOC_DATABASE, + (NAMESPACE | XML_NAMESPACE_OFFICE | XML_database) }, + { XML_NAMESPACE_OOO, XML_DATABASE, XML_TOK_DOC_DATABASE, + (NAMESPACE | XML_NAMESPACE_OOO | XML_database) }, + { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT, + (NAMESPACE | XML_NAMESPACE_OFFICE | XML_scripts) }, XML_TOKEN_MAP_END }; m_pDocElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -625,13 +638,20 @@ const SvXMLTokenMap& ODBFilter::GetDatabaseElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_DATASOURCE, XML_TOK_DATASOURCE }, - { XML_NAMESPACE_DB, XML_FORMS, XML_TOK_FORMS}, - { XML_NAMESPACE_DB, XML_REPORTS, XML_TOK_REPORTS}, - { XML_NAMESPACE_DB, XML_QUERIES, XML_TOK_QUERIES}, - { XML_NAMESPACE_DB, XML_TABLES, XML_TOK_TABLES}, - { XML_NAMESPACE_DB, XML_TABLE_REPRESENTATIONS, XML_TOK_TABLES}, - { XML_NAMESPACE_DB, XML_SCHEMA_DEFINITION, XML_TOK_SCHEMA_DEFINITION}, + { XML_NAMESPACE_DB, XML_DATASOURCE, XML_TOK_DATASOURCE, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source) }, + { XML_NAMESPACE_DB, XML_FORMS, XML_TOK_FORMS, + (NAMESPACE | XML_NAMESPACE_DB | XML_forms) }, + { XML_NAMESPACE_DB, XML_REPORTS, XML_TOK_REPORTS, + (NAMESPACE | XML_NAMESPACE_DB | XML_reports) }, + { XML_NAMESPACE_DB, XML_QUERIES, XML_TOK_QUERIES, + (NAMESPACE | XML_NAMESPACE_DB | XML_queries) }, + { XML_NAMESPACE_DB, XML_TABLES, XML_TOK_TABLES, + (NAMESPACE | XML_NAMESPACE_DB | XML_tables) }, + { XML_NAMESPACE_DB, XML_TABLE_REPRESENTATIONS, XML_TOK_TABLES, + (NAMESPACE | XML_NAMESPACE_DB | XML_table_representations) }, + { XML_NAMESPACE_DB, XML_SCHEMA_DEFINITION, XML_TOK_SCHEMA_DEFINITION, + (NAMESPACE | XML_NAMESPACE_DB | XML_schema_definition) }, XML_TOKEN_MAP_END }; m_pDatabaseElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -645,44 +665,81 @@ const SvXMLTokenMap& ODBFilter::GetDataSourceElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_CONNECTION_RESOURCE, XML_TOK_CONNECTION_RESOURCE}, - { XML_NAMESPACE_DB, XML_SUPPRESS_VERSION_COLUMNS, XML_TOK_SUPPRESS_VERSION_COLUMNS}, - { XML_NAMESPACE_DB, XML_JAVA_DRIVER_CLASS, XML_TOK_JAVA_DRIVER_CLASS}, - { XML_NAMESPACE_DB, XML_EXTENSION, XML_TOK_EXTENSION}, - { XML_NAMESPACE_DB, XML_IS_FIRST_ROW_HEADER_LINE, XML_TOK_IS_FIRST_ROW_HEADER_LINE}, - { XML_NAMESPACE_DB, XML_SHOW_DELETED, XML_TOK_SHOW_DELETED}, - { XML_NAMESPACE_DB, XML_IS_TABLE_NAME_LENGTH_LIMITED, XML_TOK_IS_TABLE_NAME_LENGTH_LIMITED}, - { XML_NAMESPACE_DB, XML_SYSTEM_DRIVER_SETTINGS, XML_TOK_SYSTEM_DRIVER_SETTINGS}, - { XML_NAMESPACE_DB, XML_ENABLE_SQL92_CHECK, XML_TOK_ENABLE_SQL92_CHECK}, - { XML_NAMESPACE_DB, XML_APPEND_TABLE_ALIAS_NAME, XML_TOK_APPEND_TABLE_ALIAS_NAME}, - { XML_NAMESPACE_DB, XML_PARAMETER_NAME_SUBSTITUTION, XML_TOK_PARAMETER_NAME_SUBSTITUTION}, - { XML_NAMESPACE_DB, XML_IGNORE_DRIVER_PRIVILEGES, XML_TOK_IGNORE_DRIVER_PRIVILEGES}, - { XML_NAMESPACE_DB, XML_BOOLEAN_COMPARISON_MODE, XML_TOK_BOOLEAN_COMPARISON_MODE}, - { XML_NAMESPACE_DB, XML_USE_CATALOG, XML_TOK_USE_CATALOG}, - { XML_NAMESPACE_DB, XML_BASE_DN, XML_TOK_BASE_DN}, - { XML_NAMESPACE_DB, XML_MAX_ROW_COUNT, XML_TOK_MAX_ROW_COUNT}, - { XML_NAMESPACE_DB, XML_LOGIN, XML_TOK_LOGIN}, - { XML_NAMESPACE_DB, XML_TABLE_FILTER, XML_TOK_TABLE_FILTER}, - { XML_NAMESPACE_DB, XML_TABLE_TYPE_FILTER, XML_TOK_TABLE_TYPE_FILTER}, - { XML_NAMESPACE_DB, XML_AUTO_INCREMENT, XML_TOK_AUTO_INCREMENT}, - { XML_NAMESPACE_DB, XML_DELIMITER, XML_TOK_DELIMITER}, - { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTINGS, XML_TOK_DATA_SOURCE_SETTINGS}, - { XML_NAMESPACE_DB, XML_FONT_CHARSET, XML_TOK_FONT_CHARSET}, + { XML_NAMESPACE_DB, XML_CONNECTION_RESOURCE, XML_TOK_CONNECTION_RESOURCE, + (NAMESPACE | XML_NAMESPACE_DB | XML_connection_resource) }, + { XML_NAMESPACE_DB, XML_SUPPRESS_VERSION_COLUMNS, XML_TOK_SUPPRESS_VERSION_COLUMNS, + (NAMESPACE | XML_NAMESPACE_DB | XML_suppress_version_columns) }, + { XML_NAMESPACE_DB, XML_JAVA_DRIVER_CLASS, XML_TOK_JAVA_DRIVER_CLASS, + (NAMESPACE | XML_NAMESPACE_DB | XML_java_driver_class) }, + { XML_NAMESPACE_DB, XML_EXTENSION, XML_TOK_EXTENSION, + (NAMESPACE | XML_NAMESPACE_DB | XML_extension) }, + { XML_NAMESPACE_DB, XML_IS_FIRST_ROW_HEADER_LINE, XML_TOK_IS_FIRST_ROW_HEADER_LINE, + (NAMESPACE | XML_NAMESPACE_DB | XML_is_first_row_header_line) }, + { XML_NAMESPACE_DB, XML_SHOW_DELETED, XML_TOK_SHOW_DELETED, + (NAMESPACE | XML_NAMESPACE_DB | XML_show_deleted) }, + { XML_NAMESPACE_DB, XML_IS_TABLE_NAME_LENGTH_LIMITED, XML_TOK_IS_TABLE_NAME_LENGTH_LIMITED, + (NAMESPACE | XML_NAMESPACE_DB | XML_is_table_name_length_limited) }, + { XML_NAMESPACE_DB, XML_SYSTEM_DRIVER_SETTINGS, XML_TOK_SYSTEM_DRIVER_SETTINGS, + (NAMESPACE | XML_NAMESPACE_DB | XML_system_driver_settings) }, + { XML_NAMESPACE_DB, XML_ENABLE_SQL92_CHECK, XML_TOK_ENABLE_SQL92_CHECK, + (NAMESPACE | XML_NAMESPACE_DB | XML_enable_sql92_check) }, + { XML_NAMESPACE_DB, XML_APPEND_TABLE_ALIAS_NAME, XML_TOK_APPEND_TABLE_ALIAS_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_append_table_alias_name) }, + { XML_NAMESPACE_DB, XML_PARAMETER_NAME_SUBSTITUTION, XML_TOK_PARAMETER_NAME_SUBSTITUTION, + (NAMESPACE | XML_NAMESPACE_DB | XML_parameter_name_substitution) }, + { XML_NAMESPACE_DB, XML_IGNORE_DRIVER_PRIVILEGES, XML_TOK_IGNORE_DRIVER_PRIVILEGES, + (NAMESPACE | XML_NAMESPACE_DB | XML_ignore_driver_privileges) }, + { XML_NAMESPACE_DB, XML_BOOLEAN_COMPARISON_MODE, XML_TOK_BOOLEAN_COMPARISON_MODE, + (NAMESPACE | XML_NAMESPACE_DB | XML_boolean_comparison_mode) }, + { XML_NAMESPACE_DB, XML_USE_CATALOG, XML_TOK_USE_CATALOG, + (NAMESPACE | XML_NAMESPACE_DB | XML_use_catalog) }, + { XML_NAMESPACE_DB, XML_BASE_DN, XML_TOK_BASE_DN, + (NAMESPACE | XML_NAMESPACE_DB | XML_base_dn) }, + { XML_NAMESPACE_DB, XML_MAX_ROW_COUNT, XML_TOK_MAX_ROW_COUNT, + (NAMESPACE | XML_NAMESPACE_DB | XML_max_row_count) }, + { XML_NAMESPACE_DB, XML_LOGIN, XML_TOK_LOGIN, + (NAMESPACE | XML_NAMESPACE_DB | XML_login) }, + { XML_NAMESPACE_DB, XML_TABLE_FILTER, XML_TOK_TABLE_FILTER, + (NAMESPACE | XML_NAMESPACE_DB | XML_table_filter) }, + { XML_NAMESPACE_DB, XML_TABLE_TYPE_FILTER, XML_TOK_TABLE_TYPE_FILTER, + (NAMESPACE | XML_NAMESPACE_DB | XML_table_type_filter) }, + { XML_NAMESPACE_DB, XML_AUTO_INCREMENT, XML_TOK_AUTO_INCREMENT, + (NAMESPACE | XML_NAMESPACE_DB | XML_auto_increment) }, + { XML_NAMESPACE_DB, XML_DELIMITER, XML_TOK_DELIMITER, + (NAMESPACE | XML_NAMESPACE_DB | XML_delimiter) }, + { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTINGS, XML_TOK_DATA_SOURCE_SETTINGS, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source_settings) }, + { XML_NAMESPACE_DB, XML_FONT_CHARSET, XML_TOK_FONT_CHARSET, + (NAMESPACE | XML_NAMESPACE_DB | XML_font_charset) }, // db odf 12 - { XML_NAMESPACE_DB, XML_CONNECTION_DATA, XML_TOK_CONNECTION_DATA}, - { XML_NAMESPACE_DB, XML_DATABASE_DESCRIPTION, XML_TOK_DATABASE_DESCRIPTION}, - { XML_NAMESPACE_DB, XML_COMPOUND_DATABASE, XML_TOK_COMPOUND_DATABASE}, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DB_HREF}, - { XML_NAMESPACE_DB, XML_MEDIA_TYPE, XML_TOK_MEDIA_TYPE}, - { XML_NAMESPACE_DB, XML_TYPE, XML_TOK_DB_TYPE}, - { XML_NAMESPACE_DB, XML_HOSTNAME, XML_TOK_HOSTNAME}, - { XML_NAMESPACE_DB, XML_PORT, XML_TOK_PORT}, - { XML_NAMESPACE_DB, XML_LOCAL_SOCKET, XML_TOK_LOCAL_SOCKET}, - { XML_NAMESPACE_DB, XML_DATABASE_NAME, XML_TOK_DATABASE_NAME}, - { XML_NAMESPACE_DB, XML_DRIVER_SETTINGS, XML_TOK_DRIVER_SETTINGS}, - { XML_NAMESPACE_DB, XML_JAVA_CLASSPATH, XML_TOK_JAVA_CLASSPATH}, - { XML_NAMESPACE_DB, XML_CHARACTER_SET, XML_TOK_CHARACTER_SET}, - { XML_NAMESPACE_DB, XML_APPLICATION_CONNECTION_SETTINGS,XML_TOK_APPLICATION_CONNECTION_SETTINGS}, + { XML_NAMESPACE_DB, XML_CONNECTION_DATA, XML_TOK_CONNECTION_DATA, + (NAMESPACE | XML_NAMESPACE_DB | XML_connection_data) }, + { XML_NAMESPACE_DB, XML_DATABASE_DESCRIPTION, XML_TOK_DATABASE_DESCRIPTION, + (NAMESPACE | XML_NAMESPACE_DB | XML_database_description) }, + { XML_NAMESPACE_DB, XML_COMPOUND_DATABASE, XML_TOK_COMPOUND_DATABASE, + (NAMESPACE | XML_NAMESPACE_DB | XML_compound_database) }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DB_HREF, + (NAMESPACE | XML_NAMESPACE_XLINK | XML_href) }, + { XML_NAMESPACE_DB, XML_MEDIA_TYPE, XML_TOK_MEDIA_TYPE, + (NAMESPACE | XML_NAMESPACE_DB | XML_media_type) }, + { XML_NAMESPACE_DB, XML_TYPE, XML_TOK_DB_TYPE, + (NAMESPACE | XML_NAMESPACE_DB | XML_type) }, + { XML_NAMESPACE_DB, XML_HOSTNAME, XML_TOK_HOSTNAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_hostname) }, + { XML_NAMESPACE_DB, XML_PORT, XML_TOK_PORT, + (NAMESPACE | XML_NAMESPACE_DB | XML_port) }, + { XML_NAMESPACE_DB, XML_LOCAL_SOCKET, XML_TOK_LOCAL_SOCKET, + (NAMESPACE | XML_NAMESPACE_DB | XML_local_socket) }, + { XML_NAMESPACE_DB, XML_DATABASE_NAME, XML_TOK_DATABASE_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_database_name) }, + { XML_NAMESPACE_DB, XML_DRIVER_SETTINGS, XML_TOK_DRIVER_SETTINGS, + (NAMESPACE | XML_NAMESPACE_DB | XML_driver_settings) }, + { XML_NAMESPACE_DB, XML_JAVA_CLASSPATH, XML_TOK_JAVA_CLASSPATH, + (NAMESPACE | XML_NAMESPACE_DB | XML_java_classpath) }, + { XML_NAMESPACE_DB, XML_CHARACTER_SET, XML_TOK_CHARACTER_SET, + (NAMESPACE | XML_NAMESPACE_DB | XML_character_set) }, + { XML_NAMESPACE_DB, XML_APPLICATION_CONNECTION_SETTINGS,XML_TOK_APPLICATION_CONNECTION_SETTINGS, + (NAMESPACE | XML_NAMESPACE_DB | XML_application_connection_settings) }, XML_TOKEN_MAP_END }; m_pDataSourceElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -696,10 +753,14 @@ const SvXMLTokenMap& ODBFilter::GetLoginElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_USER_NAME, XML_TOK_USER_NAME}, - { XML_NAMESPACE_DB, XML_IS_PASSWORD_REQUIRED, XML_TOK_IS_PASSWORD_REQUIRED}, - { XML_NAMESPACE_DB, XML_USE_SYSTEM_USER, XML_TOK_USE_SYSTEM_USER}, - { XML_NAMESPACE_DB, XML_LOGIN_TIMEOUT, XML_TOK_LOGIN_TIMEOUT}, + { XML_NAMESPACE_DB, XML_USER_NAME, XML_TOK_USER_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_user_name) }, + { XML_NAMESPACE_DB, XML_IS_PASSWORD_REQUIRED, XML_TOK_IS_PASSWORD_REQUIRED, + (NAMESPACE | XML_NAMESPACE_DB | XML_is_password_required) }, + { XML_NAMESPACE_DB, XML_USE_SYSTEM_USER, XML_TOK_USE_SYSTEM_USER, + (NAMESPACE | XML_NAMESPACE_DB | XML_use_system_user) }, + { XML_NAMESPACE_DB, XML_LOGIN_TIMEOUT, XML_TOK_LOGIN_TIMEOUT, + (NAMESPACE | XML_NAMESPACE_DB | XML_login_timeout) }, XML_TOKEN_MAP_END }; m_pLoginElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -713,8 +774,10 @@ const SvXMLTokenMap& ODBFilter::GetDatabaseDescriptionElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_FILE_BASED_DATABASE, XML_TOK_FILE_BASED_DATABASE}, - { XML_NAMESPACE_DB, XML_SERVER_DATABASE, XML_TOK_SERVER_DATABASE}, + { XML_NAMESPACE_DB, XML_FILE_BASED_DATABASE, XML_TOK_FILE_BASED_DATABASE, + (NAMESPACE | XML_NAMESPACE_DB | XML_file_based_database) }, + { XML_NAMESPACE_DB, XML_SERVER_DATABASE, XML_TOK_SERVER_DATABASE, + (NAMESPACE | XML_NAMESPACE_DB | XML_server_database) }, XML_TOKEN_MAP_END }; m_pDatabaseDescriptionElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -728,19 +791,32 @@ const SvXMLTokenMap& ODBFilter::GetDataSourceInfoElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_ADDITIONAL_COLUMN_STATEMENT,XML_TOK_ADDITIONAL_COLUMN_STATEMENT}, - { XML_NAMESPACE_DB, XML_ROW_RETRIEVING_STATEMENT, XML_TOK_ROW_RETRIEVING_STATEMENT}, - { XML_NAMESPACE_DB, XML_STRING, XML_TOK_STRING}, - { XML_NAMESPACE_DB, XML_FIELD, XML_TOK_FIELD}, - { XML_NAMESPACE_DB, XML_DECIMAL, XML_TOK_DECIMAL}, - { XML_NAMESPACE_DB, XML_THOUSAND, XML_TOK_THOUSAND}, - { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING, XML_TOK_DATA_SOURCE_SETTING}, - { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_VALUE, XML_TOK_DATA_SOURCE_SETTING_VALUE}, - { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_IS_LIST,XML_TOK_DATA_SOURCE_SETTING_IS_LIST}, - { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_TYPE, XML_TOK_DATA_SOURCE_SETTING_TYPE}, - { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_NAME, XML_TOK_DATA_SOURCE_SETTING_NAME}, - { XML_NAMESPACE_DB, XML_FONT_CHARSET, XML_TOK_FONT_CHARSET}, - { XML_NAMESPACE_DB, XML_ENCODING, XML_TOK_ENCODING}, + { XML_NAMESPACE_DB, XML_ADDITIONAL_COLUMN_STATEMENT,XML_TOK_ADDITIONAL_COLUMN_STATEMENT, + (NAMESPACE | XML_NAMESPACE_DB | XML_additional_column_statement) }, + { XML_NAMESPACE_DB, XML_ROW_RETRIEVING_STATEMENT, XML_TOK_ROW_RETRIEVING_STATEMENT, + (NAMESPACE | XML_NAMESPACE_DB | XML_row_retrieving_statement) }, + { XML_NAMESPACE_DB, XML_STRING, XML_TOK_STRING, + (NAMESPACE | XML_NAMESPACE_DB | XML_string) }, + { XML_NAMESPACE_DB, XML_FIELD, XML_TOK_FIELD, + (NAMESPACE | XML_NAMESPACE_DB | XML_field) }, + { XML_NAMESPACE_DB, XML_DECIMAL, XML_TOK_DECIMAL, + (NAMESPACE | XML_NAMESPACE_DB | XML_decimal) }, + { XML_NAMESPACE_DB, XML_THOUSAND, XML_TOK_THOUSAND, + (NAMESPACE | XML_NAMESPACE_DB | XML_thousand) }, + { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING, XML_TOK_DATA_SOURCE_SETTING, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source_setting) }, + { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_VALUE, XML_TOK_DATA_SOURCE_SETTING_VALUE, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source_setting_value) }, + { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_IS_LIST,XML_TOK_DATA_SOURCE_SETTING_IS_LIST, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source_setting_is_list) }, + { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_TYPE, XML_TOK_DATA_SOURCE_SETTING_TYPE, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source_setting_type) }, + { XML_NAMESPACE_DB, XML_DATA_SOURCE_SETTING_NAME, XML_TOK_DATA_SOURCE_SETTING_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_data_source_setting_name) }, + { XML_NAMESPACE_DB, XML_FONT_CHARSET, XML_TOK_FONT_CHARSET, + (NAMESPACE | XML_NAMESPACE_DB | XML_font_charset) }, + { XML_NAMESPACE_DB, XML_ENCODING, XML_TOK_ENCODING, + (NAMESPACE | XML_NAMESPACE_DB | XML_encoding) }, XML_TOKEN_MAP_END }; m_pDataSourceInfoElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -754,13 +830,20 @@ const SvXMLTokenMap& ODBFilter::GetDocumentsElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_COMPONENT, XML_TOK_COMPONENT}, - { XML_NAMESPACE_DB, XML_COMPONENT_COLLECTION, XML_TOK_COMPONENT_COLLECTION}, - { XML_NAMESPACE_DB, XML_QUERY_COLLECTION, XML_TOK_QUERY_COLLECTION}, - { XML_NAMESPACE_DB, XML_QUERY, XML_TOK_QUERY}, - { XML_NAMESPACE_DB, XML_TABLE, XML_TOK_TABLE}, - { XML_NAMESPACE_DB, XML_TABLE_REPRESENTATION, XML_TOK_TABLE}, - { XML_NAMESPACE_DB, XML_COLUMN, XML_TOK_COLUMN}, + { XML_NAMESPACE_DB, XML_COMPONENT, XML_TOK_COMPONENT, + (NAMESPACE | XML_NAMESPACE_DB | XML_component) }, + { XML_NAMESPACE_DB, XML_COMPONENT_COLLECTION, XML_TOK_COMPONENT_COLLECTION, + (NAMESPACE | XML_NAMESPACE_DB | XML_component_collection) }, + { XML_NAMESPACE_DB, XML_QUERY_COLLECTION, XML_TOK_QUERY_COLLECTION, + (NAMESPACE | XML_NAMESPACE_DB | XML_query_collection) }, + { XML_NAMESPACE_DB, XML_QUERY, XML_TOK_QUERY, + (NAMESPACE | XML_NAMESPACE_DB | XML_query) }, + { XML_NAMESPACE_DB, XML_TABLE, XML_TOK_TABLE, + (NAMESPACE | XML_NAMESPACE_DB | XML_table) }, + { XML_NAMESPACE_DB, XML_TABLE_REPRESENTATION, XML_TOK_TABLE, + (NAMESPACE | XML_NAMESPACE_DB | XML_table_representation) }, + { XML_NAMESPACE_DB, XML_COLUMN, XML_TOK_COLUMN, + (NAMESPACE | XML_NAMESPACE_DB | XML_column) }, XML_TOKEN_MAP_END }; m_pDocumentsElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -774,12 +857,18 @@ const SvXMLTokenMap& ODBFilter::GetComponentElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_HREF }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TYPE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_SHOW }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_ACTUATE}, - { XML_NAMESPACE_DB, XML_AS_TEMPLATE, XML_TOK_AS_TEMPLATE }, - { XML_NAMESPACE_DB, XML_NAME, XML_TOK_COMPONENT_NAME }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_HREF, + (NAMESPACE | XML_NAMESPACE_XLINK | XML_href) }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TYPE, + (NAMESPACE | XML_NAMESPACE_XLINK | XML_type) }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_SHOW, + (NAMESPACE | XML_NAMESPACE_XLINK | XML_show) }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_ACTUATE, + (NAMESPACE | XML_NAMESPACE_XLINK | XML_actuate) }, + { XML_NAMESPACE_DB, XML_AS_TEMPLATE, XML_TOK_AS_TEMPLATE, + (NAMESPACE | XML_NAMESPACE_DB | XML_as_template) }, + { XML_NAMESPACE_DB, XML_NAME, XML_TOK_COMPONENT_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_name) }, XML_TOKEN_MAP_END }; m_pComponentElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -793,17 +882,28 @@ const SvXMLTokenMap& ODBFilter::GetQueryElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_COMMAND, XML_TOK_COMMAND }, - { XML_NAMESPACE_DB, XML_ESCAPE_PROCESSING, XML_TOK_ESCAPE_PROCESSING }, - { XML_NAMESPACE_DB, XML_NAME, XML_TOK_QUERY_NAME }, - { XML_NAMESPACE_DB, XML_FILTER_STATEMENT, XML_TOK_FILTER_STATEMENT }, - { XML_NAMESPACE_DB, XML_ORDER_STATEMENT, XML_TOK_ORDER_STATEMENT }, - { XML_NAMESPACE_DB, XML_CATALOG_NAME, XML_TOK_CATALOG_NAME }, - { XML_NAMESPACE_DB, XML_SCHEMA_NAME, XML_TOK_SCHEMA_NAME }, - { XML_NAMESPACE_DB, XML_STYLE_NAME, XML_TOK_STYLE_NAME}, - { XML_NAMESPACE_DB, XML_APPLY_FILTER, XML_TOK_APPLY_FILTER}, - { XML_NAMESPACE_DB, XML_APPLY_ORDER, XML_TOK_APPLY_ORDER}, - { XML_NAMESPACE_DB, XML_COLUMNS, XML_TOK_COLUMNS}, + { XML_NAMESPACE_DB, XML_COMMAND, XML_TOK_COMMAND, + (NAMESPACE | XML_NAMESPACE_DB | XML_command) }, + { XML_NAMESPACE_DB, XML_ESCAPE_PROCESSING, XML_TOK_ESCAPE_PROCESSING, + (NAMESPACE | XML_NAMESPACE_DB | XML_escape_processing) }, + { XML_NAMESPACE_DB, XML_NAME, XML_TOK_QUERY_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_name) }, + { XML_NAMESPACE_DB, XML_FILTER_STATEMENT, XML_TOK_FILTER_STATEMENT, + (NAMESPACE | XML_NAMESPACE_DB | XML_filter_statement) }, + { XML_NAMESPACE_DB, XML_ORDER_STATEMENT, XML_TOK_ORDER_STATEMENT, + (NAMESPACE | XML_NAMESPACE_DB | XML_order_statement) }, + { XML_NAMESPACE_DB, XML_CATALOG_NAME, XML_TOK_CATALOG_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_catalog_name) }, + { XML_NAMESPACE_DB, XML_SCHEMA_NAME, XML_TOK_SCHEMA_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_schema_name) }, + { XML_NAMESPACE_DB, XML_STYLE_NAME, XML_TOK_STYLE_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_style_name) }, + { XML_NAMESPACE_DB, XML_APPLY_FILTER, XML_TOK_APPLY_FILTER, + (NAMESPACE | XML_NAMESPACE_DB | XML_apply_filter) }, + { XML_NAMESPACE_DB, XML_APPLY_ORDER, XML_TOK_APPLY_ORDER, + (NAMESPACE | XML_NAMESPACE_DB | XML_apply_order) }, + { XML_NAMESPACE_DB, XML_COLUMNS, XML_TOK_COLUMNS, + (NAMESPACE | XML_NAMESPACE_DB | XML_columns) }, XML_TOKEN_MAP_END }; m_pQueryElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); @@ -817,14 +917,22 @@ const SvXMLTokenMap& ODBFilter::GetColumnElemTokenMap() const { static const SvXMLTokenMapEntry aElemTokenMap[]= { - { XML_NAMESPACE_DB, XML_NAME, XML_TOK_COLUMN_NAME }, - { XML_NAMESPACE_DB, XML_STYLE_NAME, XML_TOK_COLUMN_STYLE_NAME }, - { XML_NAMESPACE_DB, XML_HELP_MESSAGE, XML_TOK_COLUMN_HELP_MESSAGE }, - { XML_NAMESPACE_DB, XML_VISIBILITY, XML_TOK_COLUMN_VISIBILITY }, - { XML_NAMESPACE_DB, XML_DEFAULT_VALUE, XML_TOK_COLUMN_DEFAULT_VALUE }, - { XML_NAMESPACE_DB, XML_TYPE_NAME, XML_TOK_COLUMN_TYPE_NAME }, - { XML_NAMESPACE_DB, XML_VISIBLE, XML_TOK_COLUMN_VISIBLE }, - { XML_NAMESPACE_DB, XML_DEFAULT_CELL_STYLE_NAME, XML_TOK_DEFAULT_CELL_STYLE_NAME }, + { XML_NAMESPACE_DB, XML_NAME, XML_TOK_COLUMN_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_name) }, + { XML_NAMESPACE_DB, XML_STYLE_NAME, XML_TOK_COLUMN_STYLE_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_style_name) }, + { XML_NAMESPACE_DB, XML_HELP_MESSAGE, XML_TOK_COLUMN_HELP_MESSAGE, + (NAMESPACE | XML_NAMESPACE_DB | XML_help_message) }, + { XML_NAMESPACE_DB, XML_VISIBILITY, XML_TOK_COLUMN_VISIBILITY, + (NAMESPACE | XML_NAMESPACE_DB | XML_visibility) }, + { XML_NAMESPACE_DB, XML_DEFAULT_VALUE, XML_TOK_COLUMN_DEFAULT_VALUE, + (NAMESPACE | XML_NAMESPACE_DB | XML_default_value) }, + { XML_NAMESPACE_DB, XML_TYPE_NAME, XML_TOK_COLUMN_TYPE_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_type_name) }, + { XML_NAMESPACE_DB, XML_VISIBLE, XML_TOK_COLUMN_VISIBLE, + (NAMESPACE | XML_NAMESPACE_DB | XML_visible) }, + { XML_NAMESPACE_DB, XML_DEFAULT_CELL_STYLE_NAME, XML_TOK_DEFAULT_CELL_STYLE_NAME, + (NAMESPACE | XML_NAMESPACE_DB | XML_default_cell_style_name) }, XML_TOKEN_MAP_END }; m_pColumnElemTokenMap.reset(new SvXMLTokenMap( aElemTokenMap )); commit 9c2d041a6a8e6282f4e1379ba4a8382534d94f00 Author: Daniel Sikeler <d.sikele...@gmail.com> Date: Thu Feb 12 10:34:23 2015 +0100 XMLNumberParaContext implements fast interface all methods implemented Change-Id: Ia8e9980e626f96b50c1294fac7715882d9056ceb diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx index 4e27dd0..f66278f 100644 --- a/xmloff/source/text/txtparai.cxx +++ b/xmloff/source/text/txtparai.cxx @@ -2556,6 +2556,78 @@ XMLNumberedParaContext::XMLNumberedParaContext( i_rImport.GetTextImport()->GetTextListHelper().PushListContext( this ); } +XMLNumberedParaContext::XMLNumberedParaContext( SvXMLImport& rImport, + sal_Int32 /*Element*/, + const Reference< xml::sax::XFastAttributeList >& xAttrList ) +: SvXMLImportContext( rImport ), + m_Level(0), + m_StartValue(-1), + m_ListId(), + m_xNumRules() +{ + OUString StyleName; + + const SvXMLTokenMap& rTokenMap( + rImport.GetTextImport()->GetTextNumberedParagraphAttrTokenMap() ); + + uno::Sequence< xml::FastAttribute > attributes = xAttrList->getFastAttributes(); + for( xml::FastAttribute attribute : attributes ) + { + switch( rTokenMap.Get( attribute.Token ) ) + { + case XML_TOK_TEXT_NUMBERED_PARAGRAPH_XMLID: + m_XmlId = attribute.Value; +//FIXME: there is no UNO API for lists + break; + case XML_TOK_TEXT_NUMBERED_PARAGRAPH_LIST_ID: + m_ListId = attribute.Value; + break; + case XML_TOK_TEXT_NUMBERED_PARAGRAPH_LEVEL: + { + sal_Int32 nTmp = attribute.Value.toInt32(); + if( nTmp >= 1 && nTmp <= SHRT_MAX ) { + m_Level = static_cast<sal_uInt16>(nTmp) - 1; + } + } + break; + case XML_TOK_TEXT_NUMBERED_PARAGRAPH_STYLE_NAME: + StyleName = attribute.Value; + break; + case XML_TOK_TEXT_NUMBERED_PARAGRAPH_CONTINUE_NUMBERING: + // this attribute is deprecated + break; + case XML_TOK_TEXT_NUMBERED_PARAGRAPH_START_VALUE: + { + sal_Int32 nTmp = attribute.Value.toInt32(); + if( nTmp >= 0 && nTmp <= SHRT_MAX ) { + m_StartValue = static_cast<sal_Int16>(nTmp); + } + } + break; + } + } + + XMLTextListsHelper& rTextListsHelper( + rImport.GetTextImport()->GetTextListHelper() ); + if( m_ListId.isEmpty() ) + { + SAL_WARN_IF( rImport.GetODFVersion() == "1.2", "xmloff.text", + "invalid numbered-paragraph: no list-id (1.2)" ); + m_ListId = rTextListsHelper.GetNumberedParagraphListId( + m_Level, StyleName ); + SAL_WARN_IF( m_ListId.isEmpty(), "xmloff.text", "numbered-paragraph: no ListId"); + if( m_ListId.isEmpty() ){ + return; + } + } + m_xNumRules = rTextListsHelper.EnsureNumberedParagraph( + rImport, m_ListId, m_Level, StyleName ); + + SAL_WARN_IF( !m_xNumRules.is(), "xmloff.text", "numbered-paragraph: no NumRules" ); + + rImport.GetTextImport()->GetTextListHelper().PushListContext( this ); +} + XMLNumberedParaContext::~XMLNumberedParaContext() { } @@ -2567,6 +2639,14 @@ void XMLNumberedParaContext::EndElement() } } +void SAL_CALL XMLNumberedParaContext::endFastElement( sal_Int32 /*Element*/ ) + throw(RuntimeException, xml::sax::SAXException, std::exception) +{ + if( !m_ListId.isEmpty() ) { + GetImport().GetTextImport()->PopListContext(); + } +} + SvXMLImportContext *XMLNumberedParaContext::CreateChildContext( sal_uInt16 i_nPrefix, const OUString& i_rLocalName, const Reference< xml::sax::XAttributeList > & i_xAttrList ) @@ -2592,4 +2672,31 @@ SvXMLImportContext *XMLNumberedParaContext::CreateChildContext( return pContext; } +Reference< xml::sax::XFastContextHandler > SAL_CALL + XMLNumberedParaContext::createFastChildContext( sal_Int32 Element, + const Reference< xml::sax::XFastAttributeList >& xAttrList ) + throw(RuntimeException, xml::sax::SAXException, std::exception) +{ + Reference< xml::sax::XFastContextHandler > pContext( 0 ); + + if( (NAMESPACE | XML_NAMESPACE_TEXT) == (Element & NAMESPACE & XML_NAMESPACE_TEXT) ) + { + bool bIsHeader( XML_h == (Element & XML_h) ); + if( bIsHeader || (XML_p == (Element & XML_p)) ) + { + pContext = new XMLParaContext( GetImport(), + Element, xAttrList, bIsHeader ); +// ignore text:number } else if (IsXMLToken( i_rLocalName, XML_NUMBER )) { + } + } + + if( !pContext.is() ) { + pContext = SvXMLImportContext::createFastChildContext( + Element, xAttrList ); + } + + return pContext; +} + + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/xmloff/source/text/txtparai.hxx b/xmloff/source/text/txtparai.hxx index a273b51..ce039a5 100644 --- a/xmloff/source/text/txtparai.hxx +++ b/xmloff/source/text/txtparai.hxx @@ -110,15 +110,24 @@ public: const OUString& i_rLocalName, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > & i_xAttrList ); + XMLNumberedParaContext( SvXMLImport& rImport, + sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ); virtual ~XMLNumberedParaContext(); virtual void EndElement() SAL_OVERRIDE; + virtual void SAL_CALL endFastElement( sal_Int32 Element ) + throw(css::uno::RuntimeException, css::xml::sax::SAXException, std::exception) SAL_OVERRIDE; virtual SvXMLImportContext *CreateChildContext( sal_uInt16 i_nPrefix, const OUString& i_rLocalName, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList > & i_xAttrList ) SAL_OVERRIDE; + virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL + createFastChildContext( sal_Int32 Element, + const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) + throw(css::uno::RuntimeException, css::xml::sax::SAXException, std::exception) SAL_OVERRIDE; sal_Int16 GetLevel() const { return m_Level; } const ::com::sun::star::uno::Reference < commit d14a8d8db3fa657aa8e9a349f9f5c589eb774ca5 Author: Daniel Sikeler <d.sikele...@gmail.com> Date: Thu Feb 12 10:33:48 2015 +0100 fix XMLParaContext Change-Id: I919be971474ba9e99310d524f468a78436706d9e diff --git a/xmloff/source/text/txtparai.cxx b/xmloff/source/text/txtparai.cxx index ea7eafb8..4e27dd0 100644 --- a/xmloff/source/text/txtparai.cxx +++ b/xmloff/source/text/txtparai.cxx @@ -2039,7 +2039,7 @@ XMLParaContext::XMLParaContext( SvXMLImport& rImport, sal_Int32 Element, : SvXMLImportContext( rImport ), xStart( rImport.GetTextImport()->GetCursorAsRange()->getStart() ), m_bHaveAbout( false ), - nOutlineLevel( XML_H == (XML_H | Element) ? 1 : -1 ), + nOutlineLevel( XML_h == (XML_h & Element) ? 1 : -1 ), pHints( 0 ), // Lost outline numbering in master document (#73509#) mbOutlineLevelAttrFound( false ), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits