Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/LibreOffice/xmloff/source/text/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 98 kB image not shown  

Quelle  txtprmap.cxx   Sprache: C

 
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */


#include <xmloff/txtprmap.hxx>
#include <xmloff/xmlnamespace.hxx>
#include <xmloff/xmltoken.hxx>
#include <xmloff/maptype.hxx>
#include <xmloff/xmltypes.hxx>
#include "txtprhdl.hxx"
#include <xmlsdtypes.hxx>
#include <sal/log.hxx>
#include <rtl/ref.hxx>
#include <xmlprop.hxx>

using namespace ::com::sun::star;
using namespace ::xmloff::token;

#define M_E_( a, p, l, t, c ) \
    { a, p, l, t, c, SvtSaveOptions::ODFSVER_010, false }

#define M_EV_( a, p, l, t, c, v ) \
    { a, p, l, t, c, v, false }

#define M_ED_( a, p, l, t, c ) \
    { a, p, l, (t) | MID_FLAG_DEFAULT_ITEM_EXPORT, c, SvtSaveOptions::ODFSVER_010, false }

// text properties
#define MT_E( a, p, l, t, c ) \
    M_E_( a, p, l, (t|XML_TYPE_PROP_TEXT), c )
#define MT_ED( a, p, l, t, c ) \
    M_ED_( a, p, l, (t|XML_TYPE_PROP_TEXT), c )

// paragraph properties
#define MP_E( a, p, l, t, c ) \
    M_E_( a, p, l, (t|XML_TYPE_PROP_PARAGRAPH), c )
#define MP_ED( a, p, l, t, c ) \
    M_ED_( a, p, l, (t|XML_TYPE_PROP_PARAGRAPH), c )

// graphic properties
#define MG_E( a, p, l, t, c ) \
    M_E_( a, p, l, (t|XML_TYPE_PROP_GRAPHIC), c )
#define MG_ED( a, p, l, t, c ) \
    M_ED_( a, p, l, (t|XML_TYPE_PROP_GRAPHIC), c )
#define MG_EV( a, p, l, t, c, v ) \
    M_EV_( a, p, l, (t|XML_TYPE_PROP_GRAPHIC), c, v )

// section properties
#define MS_E( a, p, l, t, c ) \
    M_E_( a, p, l, (t|XML_TYPE_PROP_SECTION), c )

// ruby properties
#define MR_E( a, p, l, t, c ) \
    M_E_( a, p, l, (t|XML_TYPE_PROP_RUBY), c )
#define MR_EV( a, p, l, t, c, v ) \
    M_EV_( a, p, l, (t|XML_TYPE_PROP_RUBY), c, v )

// cell properties
#define MC_E( a, p, l, t, c ) \
    M_E_( a, p, l, (t|XML_TYPE_PROP_TABLE_CELL), c )

#define MAP_ODF13(name,prefix,token,type,context)  { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_013, false }

// extensions import/export
#define MAP_EXT(name,prefix,token,type,context)  { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false }
// extensions import only
#define MAP_EXT_I(name,prefix,token,type,context)  { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, true }

#define M_END() { nullptr }

#define MAP_(name,prefix,token,type,context)  { name, prefix, token, type, context, SvtSaveOptions::ODFSVER_010, false }
#define GMAP(name,prefix,token,type,context) MAP_(name,prefix,token,static_cast<sal_Int32>(type|XML_TYPE_PROP_GRAPHIC),context)

XMLPropertyMapEntry constexpr aXMLParaPropMap[] =
{
    // RES_UNKNOWNATR_CONTAINER
    MP_E( PROP_ParaUserDefinedAttributes,      XML_NAMESPACE_TEXT, XML_XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),

    // fill attributes for paragraph backgrounds
    // #i125045# moved to the front to be able to exclude these in lcl_txtprmap_getMap
    // for TextPropMap::SHAPE_PARA to not have these double for Shapes (which already have these)
    GMAP( PROP_FillStyle,                      XML_NAMESPACE_DRAW, XML_FILL,                   XML_SW_TYPE_FILLSTYLE, 0 ),
    GMAP( PROP_FillColor,                      XML_NAMESPACE_DRAW, XML_FILL_COLOR,             XML_TYPE_COLOR, 0 ),
    GMAP( PROP_FillColor2,                     XML_NAMESPACE_DRAW, XML_SECONDARY_FILL_COLOR,   XML_TYPE_COLOR, 0 ),
    GMAP( PROP_FillGradientName,               XML_NAMESPACE_DRAW, XML_FILL_GRADIENT_NAME,     XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLGRADIENTNAME ),
    GMAP( PROP_FillGradientStepCount,          XML_NAMESPACE_DRAW, XML_GRADIENT_STEP_COUNT,    XML_TYPE_NUMBER16, 0 ),
    GMAP( PROP_FillHatchName,                  XML_NAMESPACE_DRAW, XML_FILL_HATCH_NAME,        XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLHATCHNAME ),
    GMAP( PROP_FillBackground,                 XML_NAMESPACE_DRAW, XML_FILL_HATCH_SOLID,       XML_TYPE_BOOL, 0 ),
    GMAP( PROP_FillBitmapName,                 XML_NAMESPACE_DRAW, XML_FILL_IMAGE_NAME,        XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLBITMAPNAME ),
    GMAP( PROP_FillTransparence,               XML_NAMESPACE_DRAW, XML_OPACITY,                XML_TYPE_NEG_PERCENT16|MID_FLAG_MULTI_PROPERTY, 0 ),    // exists in SW, too
    GMAP( PROP_FillTransparenceGradientName,   XML_NAMESPACE_DRAW, XML_OPACITY_NAME,           XML_TYPE_STYLENAME|MID_FLAG_NO_PROPERTY_IMPORT, CTF_FILLTRANSNAME ),
    GMAP( PROP_FillBitmapSizeX,                XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,       XML_SW_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
    GMAP( PROP_FillBitmapLogicalSize,          XML_NAMESPACE_DRAW, XML_FILL_IMAGE_WIDTH,       XML_SW_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
    GMAP( PROP_FillBitmapSizeY,                XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,      XML_SW_TYPE_FILLBITMAPSIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
    GMAP( PROP_FillBitmapLogicalSize,          XML_NAMESPACE_DRAW, XML_FILL_IMAGE_HEIGHT,      XML_SW_TYPE_LOGICAL_SIZE|MID_FLAG_MULTI_PROPERTY, 0 ),
    GMAP( PROP_FillBitmapMode,                 XML_NAMESPACE_STYLE,XML_REPEAT,                 XML_SW_TYPE_BITMAP_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
    GMAP( PROP_FillBitmapPositionOffsetX,      XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_X, XML_TYPE_PERCENT, 0 ),
    GMAP( PROP_FillBitmapPositionOffsetY,      XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT_Y, XML_TYPE_PERCENT, 0 ),
    GMAP( PROP_FillBitmapRectanglePoint,       XML_NAMESPACE_DRAW, XML_FILL_IMAGE_REF_POINT,   XML_SW_TYPE_BITMAP_REFPOINT, 0 ),
    GMAP( PROP_FillBitmapOffsetX,              XML_NAMESPACE_DRAW, XML_TILE_REPEAT_OFFSET,     XML_SW_TYPE_BITMAPREPOFFSETX|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_X ),
    GMAP( PROP_FillBitmapOffsetY,              XML_NAMESPACE_DRAW, XML_TILE_REPEAT_OFFSET,     XML_SW_TYPE_BITMAPREPOFFSETY|MID_FLAG_MULTI_PROPERTY, CTF_REPEAT_OFFSET_Y ),

    // RES_LR_SPACE
    // !!! DO NOT REORDER THE MARGINS !!!
    // - The all margin implementation enumerates the margin properties by relative index.
    MP_E( PROP_ParaLeftMargin,          XML_NAMESPACE_FO, XML_MARGIN,       XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARAMARGINALL ),
    MP_E( PROP_ParaLeftMarginRelative,  XML_NAMESPACE_FO, XML_MARGIN,       XML_TYPE_PERCENT16, CTF_PARAMARGINALL_REL ),
    MP_E( PROP_ParaLeftMargin,          XML_NAMESPACE_FO, XML_MARGIN_LEFT,  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARALEFTMARGIN ),
    MP_E( PROP_ParaLeftMarginRelative,  XML_NAMESPACE_FO, XML_MARGIN_LEFT,  XML_TYPE_PERCENT16, CTF_PARALEFTMARGIN_REL ),
    MP_E( PROP_ParaRightMargin,         XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARARIGHTMARGIN ),
    MP_E( PROP_ParaRightMarginRelative, XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TYPE_PERCENT16, CTF_PARARIGHTMARGIN_REL ),
    // RES_UL_SPACE
    MP_E( PROP_ParaTopMargin,            XML_NAMESPACE_FO,    XML_MARGIN_TOP,         XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARATOPMARGIN ),
    MP_E( PROP_ParaTopMarginRelative,    XML_NAMESPACE_FO,    XML_MARGIN_TOP,         XML_TYPE_PERCENT16, CTF_PARATOPMARGIN_REL ),
    MP_E( PROP_ParaBottomMargin,         XML_NAMESPACE_FO,    XML_MARGIN_BOTTOM,      XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARABOTTOMMARGIN ),
    MP_E( PROP_ParaBottomMarginRelative, XML_NAMESPACE_FO,    XML_MARGIN_BOTTOM,      XML_TYPE_PERCENT16, CTF_PARABOTTOMMARGIN_REL ),
    MAP_ODF13( PROP_ParaContextMargin,   XML_NAMESPACE_STYLE, XML_CONTEXTUAL_SPACING, XML_TYPE_BOOL|XML_TYPE_PROP_PARAGRAPH, 0 ),    // ODF 1.3 OFFICE-3767 and was written by LO<=4.2
    MAP_ODF13( PROP_ParaContextMargin,   XML_NAMESPACE_LO_EXT, XML_CONTEXTUAL_SPACING, XML_TYPE_BOOL|XML_TYPE_PROP_PARAGRAPH, 0 ),     // extension namespace
    // RES_CHRATR_CASEMAP
    MT_E( PROP_CharCaseMap, XML_NAMESPACE_FO, XML_FONT_VARIANT,   XML_TYPE_TEXT_CASEMAP_VAR, 0 ),
    MT_E( PROP_CharCaseMap, XML_NAMESPACE_FO, XML_TEXT_TRANSFORM, XML_TYPE_TEXT_CASEMAP,     0 ),
    // RES_CHRATR_COLOR
    MT_ED( PROP_CharColor,            XML_NAMESPACE_FO,     XML_COLOR,                 XML_TYPE_COLORAUTO|MID_FLAG_MERGE_PROPERTY,   0 ),
    MT_ED( PROP_CharColor,            XML_NAMESPACE_STYLE,  XML_USE_WINDOW_FONT_COLOR, XML_TYPE_ISAUTOCOLOR|MID_FLAG_MERGE_PROPERTY, 0 ),
    MAP_EXT_I( PROP_CharTransparence, XML_NAMESPACE_DRAW,   XML_OPACITY,               XML_TYPE_NEG_PERCENT16 | XML_TYPE_PROP_TEXT,  0 ),
    MAP_EXT( PROP_CharTransparence,   XML_NAMESPACE_LO_EXT, XML_OPACITY,               XML_TYPE_NEG_PERCENT16 | XML_TYPE_PROP_TEXT,  0 ),
    MAP_EXT( PROP_CharComplexColor,   XML_NAMESPACE_LO_EXT, XML_CHAR_COMPLEX_COLOR,    XML_TYPE_COMPLEX_COLOR|XML_TYPE_PROP_TEXT|MID_FLAG_ELEMENT_ITEM, CTF_COMPLEX_COLOR ),
    // RES_CHRATR_CONTOUR
    MT_E( PROP_CharContoured, XML_NAMESPACE_STYLE, XML_TEXT_OUTLINE, XML_TYPE_BOOL, 0 ),
    // RES_CHRATR_CROSSEDOUT
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_STYLE, XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TYPE,  XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY,  0 ),
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_WIDTH, XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TEXT,  XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY,  0 ),
    // RES_CHRATR_ESCAPEMENT
    MT_E( PROP_CharEscapement,       XML_NAMESPACE_STYLE, XML_TEXT_POSITION, XML_TYPE_TEXT_ESCAPEMENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MT_E( PROP_CharEscapementHeight, XML_NAMESPACE_STYLE, XML_TEXT_POSITION, XML_TYPE_TEXT_ESCAPEMENT_HEIGHT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    // RES_CHRATR_FONT
    MT_ED( PROP_CharFontName,      XML_NAMESPACE_STYLE, XML_FONT_NAME,           XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME ),
    MT_ED( PROP_CharFontName,      XML_NAMESPACE_FO,    XML_FONT_FAMILY,         XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME ),
    MT_ED( PROP_CharFontStyleName, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME,     XML_TYPE_STRING, CTF_FONTSTYLENAME ),
    MT_ED( PROP_CharFontFamily,    XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY ),
    MT_ED( PROP_CharFontPitch,     XML_NAMESPACE_STYLE, XML_FONT_PITCH,          XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH ),
    MT_ED( PROP_CharFontCharSet,   XML_NAMESPACE_STYLE, XML_FONT_CHARSET,        XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET ),
    // RES_CHRATR_FONTSIZE
    MT_ED( PROP_CharHeight,     XML_NAMESPACE_FO,    XML_FONT_SIZE,     XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT ),
    MT_ED( PROP_CharPropHeight, XML_NAMESPACE_FO,    XML_FONT_SIZE,     XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL ),
    MT_ED( PROP_CharDiffHeight, XML_NAMESPACE_STYLE, XML_FONT_SIZE_REL, XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF ),
    // RES_CHRATR_KERNING
    MT_E( PROP_CharKerning, XML_NAMESPACE_FO, XML_LETTER_SPACING,     XML_TYPE_TEXT_KERNING, 0 ),
    // RES_CHRATR_LANGUAGE
    MT_ED( PROP_CharLocale, XML_NAMESPACE_STYLE, XML_RFC_LANGUAGE_TAG, XML_TYPE_CHAR_RFC_LANGUAGE_TAG|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_ED( PROP_CharLocale, XML_NAMESPACE_FO,    XML_LANGUAGE,         XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY,         0 ),
    MT_ED( PROP_CharLocale, XML_NAMESPACE_FO,    XML_SCRIPT,           XML_TYPE_CHAR_SCRIPT|MID_FLAG_MERGE_PROPERTY,           0 ),
    MT_ED( PROP_CharLocale, XML_NAMESPACE_FO,    XML_COUNTRY,          XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY,          0 ),
    // RES_CHRATR_POSTURE
    MT_E( PROP_CharPosture, XML_NAMESPACE_FO, XML_FONT_STYLE, XML_TYPE_TEXT_POSTURE, 0 ),
    // RES_CHRATR_UNUSED1
    // RES_CHRATR_SHADOWED
    MT_E( PROP_CharShadowed, XML_NAMESPACE_FO, XML_TEXT_SHADOW, XML_TYPE_TEXT_SHADOWED, 0 ),
    // RES_CHRATR_UNDERLINE
    MT_E( PROP_CharUnderline,         XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_STYLE, XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY,  CTF_UNDERLINE ),
    MT_E( PROP_CharUnderline,         XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_TYPE,  XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY,  0 ),
    MT_E( PROP_CharUnderline,         XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_WIDTH, XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharUnderlineColor,    XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY,  CTF_UNDERLINE_COLOR  ),
    MT_E( PROP_CharUnderlineHasColor, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, CTF_UNDERLINE_HASCOLOR   ),
    // RES_CHRATR_WEIGHT
    MT_E( PROP_CharWeight, XML_NAMESPACE_FO, XML_FONT_WEIGHT, XML_TYPE_TEXT_WEIGHT, 0 ),
    // RES_CHRATR_RSID
    { PROP_Rsid, XML_NAMESPACE_OFFICE_EXT, XML_RSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false },
    // RES_PARATR_RSID
    { PROP_ParRsid, XML_NAMESPACE_OFFICE_EXT, XML_PARRSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false },
    // RES_CHRATR_WORDLINEMODE
    MT_E( PROP_CharWordMode, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_MODE,    XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharWordMode, XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharWordMode, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_MODE, XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
    // RES_CHRATR_AUTOKERN
    MT_E( PROP_CharAutoKerning, XML_NAMESPACE_STYLE, XML_LETTER_KERNING, XML_TYPE_BOOL, 0 ),
    // RES_CHRATR_BLINK
    MT_E( PROP_CharFlash, XML_NAMESPACE_STYLE, XML_TEXT_BLINKING, XML_TYPE_BOOL, 0 ),
    // RES_CHRATR_NOHYPHEN
    // TODO: only for words, PROP_ParaIsHyphenation is for paragraphs: check them
    // RES_CHRATR_UNUSED2
    // RES_CHRATR_BACKGROUND
    MT_E( PROP_CharBackColor,       XML_NAMESPACE_FO, XML_BACKGROUND_COLOR,      XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, CTF_CHAR_BACKGROUND ),
    MT_E( PROP_CharBackTransparent, XML_NAMESPACE_FO, XML_BACKGROUND_COLOR,      XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, CTF_CHAR_BACKGROUND_TRANSPARENCY),
    MT_E( PROP_CharBackColor,       XML_NAMESPACE_FO, XML_TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ),
    // RES_CHRATR_CJK_FONT
    MT_ED( PROP_CharFontNameAsian,      XML_NAMESPACE_STYLE, XML_FONT_NAME_ASIAN,           XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CJK ),
    MT_ED( PROP_CharFontNameAsian,      XML_NAMESPACE_STYLE, XML_FONT_FAMILY_ASIAN,         XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CJK ),
    MT_ED( PROP_CharFontStyleNameAsian, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME_ASIAN,     XML_TYPE_STRING, CTF_FONTSTYLENAME_CJK ),
    MT_ED( PROP_CharFontFamilyAsian,    XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC_ASIAN, XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CJK ),
    MT_ED( PROP_CharFontPitchAsian,     XML_NAMESPACE_STYLE, XML_FONT_PITCH_ASIAN,          XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CJK ),
    MT_ED( PROP_CharFontCharSetAsian,   XML_NAMESPACE_STYLE, XML_FONT_CHARSET_ASIAN,        XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CJK ),
    // RES_CHRATR_CJK_FONTSIZE
    MT_ED( PROP_CharHeightAsian,     XML_NAMESPACE_STYLE, XML_FONT_SIZE_ASIAN,     XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CJK ),
    MT_ED( PROP_CharPropHeightAsian, XML_NAMESPACE_STYLE, XML_FONT_SIZE_ASIAN,     XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CJK ),
    MT_ED( PROP_CharDiffHeightAsian, XML_NAMESPACE_STYLE, XML_FONT_SIZE_REL_ASIAN, XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CJK ),
    // RES_CHRATR_CJK_LANGUAGE
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_RFC_LANGUAGE_TAG_ASIAN, XML_TYPE_CHAR_RFC_LANGUAGE_TAG|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_LANGUAGE_ASIAN,         XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY,         0 ),
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_SCRIPT_ASIAN,           XML_TYPE_CHAR_SCRIPT|MID_FLAG_MERGE_PROPERTY,           0 ),
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_COUNTRY_ASIAN,          XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY,          0 ),
    // RES_CHRATR_CJK_POSTURE
    MT_E( PROP_CharPostureAsian, XML_NAMESPACE_STYLE, XML_FONT_STYLE_ASIAN, XML_TYPE_TEXT_POSTURE, 0 ),
    // RES_CHRATR_CJK_WEIGHT
    MT_E( PROP_CharWeightAsian, XML_NAMESPACE_STYLE, XML_FONT_WEIGHT_ASIAN, XML_TYPE_TEXT_WEIGHT, 0 ),
    // RES_CHRATR_CTL_FONT
    MT_ED( PROP_CharFontNameComplex,      XML_NAMESPACE_STYLE, XML_FONT_NAME_COMPLEX,           XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CTL ),
    MT_ED( PROP_CharFontNameComplex,      XML_NAMESPACE_STYLE, XML_FONT_FAMILY_COMPLEX,         XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CTL ),
    MT_ED( PROP_CharFontStyleNameComplex, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME_COMPLEX,     XML_TYPE_STRING, CTF_FONTSTYLENAME_CTL ),
    MT_ED( PROP_CharFontFamilyComplex,    XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC_COMPLEX, XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CTL ),
    MT_ED( PROP_CharFontPitchComplex,     XML_NAMESPACE_STYLE, XML_FONT_PITCH_COMPLEX,          XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CTL ),
    MT_ED( PROP_CharFontCharSetComplex,   XML_NAMESPACE_STYLE, XML_FONT_CHARSET_COMPLEX,        XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CTL ),
    // RES_CHRATR_CTL_FONTSIZE
    MT_ED( PROP_CharHeightComplex,     XML_NAMESPACE_STYLE, XML_FONT_SIZE_COMPLEX,     XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CTL ),
    MT_ED( PROP_CharPropHeightComplex, XML_NAMESPACE_STYLE, XML_FONT_SIZE_COMPLEX,     XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CTL ),
    MT_ED( PROP_CharDiffHeightComplex, XML_NAMESPACE_STYLE, XML_FONT_SIZE_REL_COMPLEX, XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CTL ),
    // RES_CHRATR_CTL_LANGUAGE
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_RFC_LANGUAGE_TAG_COMPLEX, XML_TYPE_CHAR_RFC_LANGUAGE_TAG|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_LANGUAGE_COMPLEX,         XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY,         0 ),
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_SCRIPT_COMPLEX,           XML_TYPE_CHAR_SCRIPT|MID_FLAG_MERGE_PROPERTY,           0 ),
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_COUNTRY_COMPLEX,          XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY,          0 ),
    // RES_CHRATR_CTL_POSTURE
    MT_E( PROP_CharPostureComplex, XML_NAMESPACE_STYLE, XML_FONT_STYLE_COMPLEX, XML_TYPE_TEXT_POSTURE, 0 ),
    // RES_CHRATR_CTL_WEIGHT
    MT_E( PROP_CharWeightComplex, XML_NAMESPACE_STYLE, XML_FONT_WEIGHT_COMPLEX, XML_TYPE_TEXT_WEIGHT, 0 ),
    // RES_CHRATR_ROTATE
    MT_E( PROP_CharRotation,            XML_NAMESPACE_STYLE, XML_TEXT_ROTATION_ANGLE, XML_TYPE_TEXT_ROTATION_ANGLE, 0 ),
    MT_E( PROP_CharRotationIsFitToLine, XML_NAMESPACE_STYLE, XML_TEXT_ROTATION_SCALE, XML_TYPE_TEXT_ROTATION_SCALE, 0 ),
    // RES_CHRATR_EMPHASIS_MARK
    MT_E( PROP_CharEmphasis, XML_NAMESPACE_STYLE, XML_TEXT_EMPHASIZE, XML_TYPE_TEXT_EMPHASIZE, 0 ),
    // RES_CHRATR_TWO_LINES
    MT_E( PROP_CharCombineIsOn,   XML_NAMESPACE_STYLE, XML_TEXT_COMBINE,            XML_TYPE_TEXT_COMBINE, 0 ),
    MT_E( PROP_CharCombinePrefix, XML_NAMESPACE_STYLE, XML_TEXT_COMBINE_START_CHAR, XML_TYPE_TEXT_COMBINECHAR, 0 ),
    MT_E( PROP_CharCombineSuffix, XML_NAMESPACE_STYLE, XML_TEXT_COMBINE_END_CHAR,   XML_TYPE_TEXT_COMBINECHAR, 0 ),
    // RES_CHRATR_SCALEW
    MT_E( PROP_CharScaleWidth, XML_NAMESPACE_STYLE, XML_TEXT_SCALE, XML_TYPE_PERCENT16, 0 ),
    //RES_CHRATR_RELIEF
    MT_E( PROP_CharRelief, XML_NAMESPACE_STYLE, XML_FONT_RELIEF, XML_TYPE_TEXT_FONT_RELIEF, 0 ),
    // RES_CHRATR_HIDDEN
    MT_E( PROP_CharHidden, XML_NAMESPACE_TEXT, XML_DISPLAY, XML_TYPE_TEXT_HIDDEN_AS_DISPLAY|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_TEXT_DISPLAY ),
    // RES_CHRATR_OVERLINE
    MT_E( PROP_CharOverline,         XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_STYLE, XML_TYPE_TEXT_OVERLINE_STYLE|MID_FLAG_MERGE_PROPERTY,     0 ),
    MT_E( PROP_CharOverline,         XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_TYPE,  XML_TYPE_TEXT_OVERLINE_TYPE|MID_FLAG_MERGE_PROPERTY,      0 ),
    MT_E( PROP_CharOverline,         XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_WIDTH, XML_TYPE_TEXT_OVERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY,     0 ),
    MT_E( PROP_CharOverlineColor,    XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_COLOR, XML_TYPE_TEXT_OVERLINE_COLOR|MID_FLAG_MULTI_PROPERTY,     0 ),
    MT_E( PROP_CharOverlineHasColor, XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_COLOR, XML_TYPE_TEXT_OVERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
    // RES_CHRATR_BOX
    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH,        XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERWIDTH ),
    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_LEFT,   XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERWIDTH ),
    MAP_EXT( PROP_CharRightBorder,    XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERWIDTH ),
    MAP_EXT( PROP_CharTopBorder,      XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_TOP,    XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERWIDTH ),
    MAP_EXT( PROP_CharBottomBorder,   XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERWIDTH ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH,        XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERWIDTH ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_LEFT,   XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERWIDTH ),
    MAP_EXT_I( PROP_CharRightBorder,  XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERWIDTH ),
    MAP_EXT_I( PROP_CharTopBorder,    XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_TOP,    XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERWIDTH ),
    MAP_EXT_I( PROP_CharBottomBorder, XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERWIDTH ),

    MAP_EXT( PROP_CharLeftBorderDistance,     XML_NAMESPACE_LO_EXT, XML_PADDING,        XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERDISTANCE ),
    MAP_EXT( PROP_CharLeftBorderDistance,     XML_NAMESPACE_LO_EXT, XML_PADDING_LEFT,   XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERDISTANCE ),
    MAP_EXT( PROP_CharRightBorderDistance,    XML_NAMESPACE_LO_EXT, XML_PADDING_RIGHT,  XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERDISTANCE ),
    MAP_EXT( PROP_CharTopBorderDistance,      XML_NAMESPACE_LO_EXT, XML_PADDING_TOP,    XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERDISTANCE ),
    MAP_EXT( PROP_CharBottomBorderDistance,   XML_NAMESPACE_LO_EXT, XML_PADDING_BOTTOM, XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharLeftBorderDistance,   XML_NAMESPACE_FO, XML_PADDING,        XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharLeftBorderDistance,   XML_NAMESPACE_FO, XML_PADDING_LEFT,   XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharRightBorderDistance,  XML_NAMESPACE_FO, XML_PADDING_RIGHT,  XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharTopBorderDistance,    XML_NAMESPACE_FO, XML_PADDING_TOP,    XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharBottomBorderDistance, XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERDISTANCE ),

    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER,        XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDER ),
    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER_LEFT,   XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDER ),
    MAP_EXT( PROP_CharRightBorder,    XML_NAMESPACE_LO_EXT, XML_BORDER_RIGHT,  XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDER ),
    MAP_EXT( PROP_CharTopBorder,      XML_NAMESPACE_LO_EXT, XML_BORDER_TOP,    XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDER ),
    MAP_EXT( PROP_CharBottomBorder,   XML_NAMESPACE_LO_EXT, XML_BORDER_BOTTOM, XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDER ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_FO,     XML_BORDER,        XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDER ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_FO,     XML_BORDER_LEFT,   XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDER ),
    MAP_EXT_I( PROP_CharRightBorder,  XML_NAMESPACE_FO,     XML_BORDER_RIGHT,  XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDER ),
    MAP_EXT_I( PROP_CharTopBorder,    XML_NAMESPACE_FO,     XML_BORDER_TOP,    XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDER ),
    MAP_EXT_I( PROP_CharBottomBorder, XML_NAMESPACE_FO,     XML_BORDER_BOTTOM, XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDER ),
    // RES_CHRATR_SHADOW
    MAP_EXT( PROP_CharShadowFormat,   XML_NAMESPACE_LO_EXT, XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT_I( PROP_CharShadowFormat, XML_NAMESPACE_STYLE,  XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ),
    // RES_CHRATR_HIGHLIGHT
    MT_E( PROP_CharHighlight, XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY| MID_FLAG_NO_PROPERTY_IMPORT, CTF_CHAR_HIGHLIGHT ),
    // RES_TXTATR_INETFMT
    // TODO
    // RES_TXTATR_REFMARK
    // TODO
    // RES_TXTATR_TOXMARK
    // TODO
    // RES_TXTATR_CHARFMT
//  M_E_SI( TEXT,   style_name,         RES_TXTATR_CHARFMT, 0 ),
    // RES_TXTATR_CJK_RUBY
    // TODO
    // RES_TXTATR_FIELD
    // TODO
    // RES_TXTATR_FLYCNT
    // TODO
    // RES_TXTATR_FTN
    // TODO
    // RES_TXTATR_SOFTHYPH
    // TODO
    // RES_TXTATR_HARDBLANK
    // TODO

    // RES_PARATR_LINESPACING
    MP_E( PROP_ParaLineSpacing, XML_NAMESPACE_FO,    XML_LINE_HEIGHT,          XML_TYPE_LINE_SPACE_FIXED,    0 ),
    MP_E( PROP_ParaLineSpacing, XML_NAMESPACE_STYLE, XML_LINE_HEIGHT_AT_LEAST, XML_TYPE_LINE_SPACE_MINIMUM,  0 ),
    MP_E( PROP_ParaLineSpacing, XML_NAMESPACE_STYLE, XML_LINE_SPACING,         XML_TYPE_LINE_SPACE_DISTANCE, 0 ),
    // RES_PARATR_ADJUST
    MP_E( PROP_ParaAdjust,           XML_NAMESPACE_FO,    XML_TEXT_ALIGN,          XML_TYPE_TEXT_ADJUST,     CTF_SD_SHAPE_PARA_ADJUST ),
    MP_E( PROP_ParaLastLineAdjust,   XML_NAMESPACE_FO,    XML_TEXT_ALIGN_LAST,     XML_TYPE_TEXT_ADJUSTLAST, CTF_PARA_ADJUSTLAST ),
    MP_E( PROP_ParaExpandSingleWord, XML_NAMESPACE_STYLE, XML_JUSTIFY_SINGLE_WORD, XML_TYPE_BOOL,            0 ),
    // RES_PARATR_SPLIT
    MP_E( PROP_ParaSplit, XML_NAMESPACE_FO, XML_KEEP_TOGETHER, XML_TYPE_TEXT_SPLIT, 0 ),
    // RES_PARATR_ORPHANS
    MP_E( PROP_ParaOrphans, XML_NAMESPACE_FO, XML_ORPHANS, XML_TYPE_NUMBER8, 0 ),
    // RES_PARATR_WIDOWS
    MP_E( PROP_ParaWidows, XML_NAMESPACE_FO, XML_WIDOWS, XML_TYPE_NUMBER8, 0 ),
    // RES_PARATR_TABSTOP
    MP_ED( PROP_ParaTabStops, XML_NAMESPACE_STYLE, XML_TAB_STOPS, MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_TABSTOP, CTF_TABSTOP ), // this is not really a string!
    // RES_PARATR_HYPHENZONE
    MT_E( PROP_ParaIsHyphenation,               XML_NAMESPACE_FO,     XML_HYPHENATE,                     XML_TYPE_BOOL,                             0 ),
    MT_E( PROP_ParaHyphenationMaxLeadingChars,  XML_NAMESPACE_FO,     XML_HYPHENATION_REMAIN_CHAR_COUNT, XML_TYPE_NUMBER16_NO_ZERO,                 0 ),
    MT_E( PROP_ParaHyphenationMaxTrailingChars, XML_NAMESPACE_FO,     XML_HYPHENATION_PUSH_CHAR_COUNT,   XML_TYPE_NUMBER16_NO_ZERO,                 0 ),
    MP_E( PROP_ParaHyphenationMaxHyphens,       XML_NAMESPACE_FO,     XML_HYPHENATION_LADDER_COUNT,      XML_TYPE_NUMBER16_NONE,                    0 ),
    MAP_EXT( PROP_ParaHyphenationNoCaps,        XML_NAMESPACE_LO_EXT, XML_HYPHENATION_NO_CAPS,           XML_TYPE_BOOL|XML_TYPE_PROP_TEXT,          0 ),
    MAP_EXT( PROP_ParaHyphenationNoLastWord,    XML_NAMESPACE_LO_EXT, XML_HYPHENATION_NO_LAST_WORD,      XML_TYPE_BOOL|XML_TYPE_PROP_TEXT,          0 ),
    MAP_EXT( PROP_ParaHyphenationMinWordLength, XML_NAMESPACE_LO_EXT, XML_HYPHENATION_WORD_CHAR_COUNT,   XML_TYPE_NUMBER16_NONE|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT( PROP_ParaHyphenationZone,          XML_NAMESPACE_LO_EXT, XML_HYPHENATION_ZONE,              XML_TYPE_NUMBER16_NONE|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT( PROP_ParaHyphenationZoneAlways,    XML_NAMESPACE_LO_EXT, XML_HYPHENATION_ZONE_ALWAYS,       XML_TYPE_NUMBER16_NONE|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT( PROP_ParaHyphenationZoneColumn,    XML_NAMESPACE_LO_EXT, XML_HYPHENATION_ZONE_COLUMN,       XML_TYPE_NUMBER16_NONE|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT( PROP_ParaHyphenationZonePage,      XML_NAMESPACE_LO_EXT, XML_HYPHENATION_ZONE_PAGE,         XML_TYPE_NUMBER16_NONE|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT( PROP_ParaHyphenationZoneSpread,    XML_NAMESPACE_LO_EXT, XML_HYPHENATION_ZONE_SPREAD,       XML_TYPE_NUMBER16_NONE|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT( PROP_ParaHyphenationCompoundMinLeadingChars, XML_NAMESPACE_LO_EXT, XML_HYPHENATION_COMPOUND_REMAIN_CHAR_COUNT, XML_TYPE_NUMBER16_NO_ZERO|XML_TYPE_PROP_TEXT,  0 ),
    MP_E( PROP_ParaHyphenationKeep,             XML_NAMESPACE_FO,     XML_HYPHENATION_KEEP,              XML_TYPE_HYPHENATION_KEEP,                 0 ),
    MAP_EXT( PROP_ParaHyphenationKeepType,      XML_NAMESPACE_LO_EXT, XML_HYPHENATION_KEEP_TYPE,         XML_TYPE_HYPHENATION_KEEP_TYPE|XML_TYPE_PROP_PARAGRAPH,           0 ),
    MAP_EXT( PROP_ParaHyphenationKeepLine,      XML_NAMESPACE_LO_EXT, XML_HYPHENATION_KEEP_LINE,         XML_TYPE_BOOL|XML_TYPE_PROP_PARAGRAPH,          0 ),
    // RES_PARATR_DROP
    MP_E( PROP_DropCapWholeWord,     XML_NAMESPACE_STYLE, XML_LENGTH,     MID_FLAG_SPECIAL_ITEM|XML_TYPE_BOOL,         CTF_DROPCAPWHOLEWORD ),
    MP_E( PROP_DropCapCharStyleName, XML_NAMESPACE_STYLE, XML_STYLE_NAME, MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING,       CTF_DROPCAPCHARSTYLE ),
    MP_E( PROP_DropCapFormat,        XML_NAMESPACE_STYLE, XML_DROP_CAP,   MID_FLAG_ELEMENT_ITEM|XML_TYPE_TEXT_DROPCAP, CTF_DROPCAPFORMAT ),
    // RES_PARATR_REGISTER
    MP_E( PROP_ParaRegisterModeActive, XML_NAMESPACE_STYLE, XML_REGISTER_TRUE, XML_TYPE_BOOL, 0 ),
    // RES_PARATR_NUMRULE
    MP_E( PROP_NumberingStyleName, XML_NAMESPACE_STYLE, XML_LIST_STYLE_NAME, MID_FLAG_SPECIAL_ITEM|XML_TYPE_STYLENAME, CTF_NUMBERINGSTYLENAME ),

    // RES_FILL_ORDER
    // not required
    // RES_FRM_SIZE
    // not required
    // RES_PAPER_BIN
    // not required
    // RES_LR_SPACE

    MP_E( PROP_ParaFirstLineIndent,         XML_NAMESPACE_FO,    XML_TEXT_INDENT,      XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARAFIRSTLINE ),
    MP_E( PROP_ParaFirstLineIndentRelative, XML_NAMESPACE_FO,    XML_TEXT_INDENT,      XML_TYPE_PERCENT,                         CTF_PARAFIRSTLINE_REL ),
    MP_E( PROP_ParaIsAutoFirstLineIndent,   XML_NAMESPACE_STYLE, XML_AUTO_TEXT_INDENT, XML_TYPE_BOOL,                            0 ),
    // RES_PAGEDESC
    MP_E( PROP_PageDescName,     XML_NAMESPACE_STYLE, XML_MASTER_PAGE_NAME, MID_FLAG_SPECIAL_ITEM|XML_TYPE_STYLENAME,            CTF_PAGEDESCNAME ),
    MP_E( PROP_PageNumberOffset, XML_NAMESPACE_STYLE, XML_PAGE_NUMBER,      XML_TYPE_NUMBER16_AUTO|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_PAGENUMBEROFFSET ),
    // RES_BREAK : TODO: does this work?
    MP_E( PROP_BreakType, XML_NAMESPACE_FO, XML_BREAK_BEFORE, XML_TYPE_TEXT_BREAKBEFORE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MP_E( PROP_BreakType, XML_NAMESPACE_FO, XML_BREAK_AFTER,  XML_TYPE_TEXT_BREAKAFTER,                          0 ),
    // RES_CNTNT
    // not required
    // RES_HEADER
    // not required
    // RES_FOOTER
    // not required
    // RES_PRINT
    // not required
    // RES_OPAQUE
    // not required
    // RES_PROTECT
    // not required
    // RES_SURROUND
    // not required
    // RES_VERT_ORIENT
    // not required
    // RES_HORI_ORIENT
    // not required
    // RES_ANCHOR
    // not required
    // RES_BACKGROUND
    // DO NOT REORDER these!
    MP_E( PROP_ParaBackColor,           XML_NAMESPACE_FO,    XML_BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, 0 ),
    MP_E( PROP_ParaBackTransparent,     XML_NAMESPACE_FO,    XML_BACKGROUND_COLOR, XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE,   0 ),
    MP_E( PROP_ParaBackGraphicLocation, XML_NAMESPACE_STYLE, XML_POSITION,         MID_FLAG_SPECIAL_ITEM|XML_TYPE_BUILDIN_CMP_ONLY,   CTF_BACKGROUND_POS  ),
    MP_E( PROP_ParaBackGraphicFilter,   XML_NAMESPACE_STYLE, XML_FILTER_NAME,      MID_FLAG_SPECIAL_ITEM|XML_TYPE_STRING,          CTF_BACKGROUND_FILTER ),
    MP_E( PROP_ParaBackGraphic,         XML_NAMESPACE_STYLE, XML_BACKGROUND_IMAGE, MID_FLAG_ELEMENT_ITEM|XML_TYPE_GRAPHIC, CTF_BACKGROUND_URL ),

    // RES_BOX
    MP_E( PROP_LeftBorder,   XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH,        XML_TYPE_BORDER_WIDTH, CTF_ALLBORDERWIDTH ),
    MP_E( PROP_LeftBorder,   XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_LEFT,   XML_TYPE_BORDER_WIDTH, CTF_LEFTBORDERWIDTH ),
    MP_E( PROP_RightBorder,  XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH, CTF_RIGHTBORDERWIDTH ),
    MP_E( PROP_TopBorder,    XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_TOP,    XML_TYPE_BORDER_WIDTH, CTF_TOPBORDERWIDTH ),
    MP_E( PROP_BottomBorder, XML_NAMESPACE_STYLE, XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH, CTF_BOTTOMBORDERWIDTH ),

    MP_E( PROP_LeftBorderDistance,   XML_NAMESPACE_FO, XML_PADDING,        XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_ALLBORDERDISTANCE ), // need special import filtering
    MP_E( PROP_LeftBorderDistance,   XML_NAMESPACE_FO, XML_PADDING_LEFT,   XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_LEFTBORDERDISTANCE ),
    MP_E( PROP_RightBorderDistance,  XML_NAMESPACE_FO, XML_PADDING_RIGHT,  XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_RIGHTBORDERDISTANCE ),
    MP_E( PROP_TopBorderDistance,    XML_NAMESPACE_FO, XML_PADDING_TOP,    XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_TOPBORDERDISTANCE ),
    MP_E( PROP_BottomBorderDistance, XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_BOTTOMBORDERDISTANCE ),

    MP_E( PROP_LeftBorder,   XML_NAMESPACE_FO, XML_BORDER,        XML_TYPE_BORDER, CTF_ALLBORDER ),
    MP_E( PROP_LeftBorder,   XML_NAMESPACE_FO, XML_BORDER_LEFT,   XML_TYPE_BORDER, CTF_LEFTBORDER ),
    MP_E( PROP_RightBorder,  XML_NAMESPACE_FO, XML_BORDER_RIGHT,  XML_TYPE_BORDER, CTF_RIGHTBORDER ),
    MP_E( PROP_TopBorder,    XML_NAMESPACE_FO, XML_BORDER_TOP,    XML_TYPE_BORDER, CTF_TOPBORDER ),
    MP_E( PROP_BottomBorder, XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_TYPE_BORDER, CTF_BOTTOMBORDER ),
    // RES_SHADOW
    MP_E( PROP_ParaShadowFormat, XML_NAMESPACE_STYLE, XML_SHADOW, XML_TYPE_TEXT_SHADOW, 0 ),
    // RES_FRMMACRO
    // not required
    // RES_COL
    // not required
    // RES_KEEP
    MP_E( PROP_ParaKeepTogether, XML_NAMESPACE_FO, XML_KEEP_WITH_NEXT, XML_TYPE_TEXT_KEEP, 0 ),
    // RES_URL
    // not required
    // RES_EDIT_IN_READONLY
    // not required
    // RES_LAYOUT_SPLIT
    // not required
    // RES_CHAIN
    // not required

    // RES_LINENUMBER
    MP_E( PROP_ParaLineNumberCount,      XML_NAMESPACE_TEXT, XML_NUMBER_LINES, XML_TYPE_BOOL,   0 ),
    MP_E( PROP_ParaLineNumberStartValue, XML_NAMESPACE_TEXT, XML_LINE_NUMBER,  XML_TYPE_NUMBER, 0 ),

    // RES_FTN_AT_TXTEND
    // not required
    // RES_END_AT_TXTEND
    // not required
    MP_ED( PROP_ParaIsCharacterDistance,        XML_NAMESPACE_STYLE,  XML_TEXT_AUTOSPACE,    XML_TYPE_TEXT_AUTOSPACE,                  0 ),
    MP_ED( PROP_ParaIsHangingPunctuation,       XML_NAMESPACE_STYLE,  XML_PUNCTUATION_WRAP,  XML_TYPE_TEXT_PUNCTUATION_WRAP,           0 ),
    MP_ED( PROP_ParaIsForbiddenRules,           XML_NAMESPACE_STYLE,  XML_LINE_BREAK,        XML_TYPE_TEXT_LINE_BREAK,                 0 ),
    MP_E( PROP_TabStopDistance,                 XML_NAMESPACE_STYLE,  XML_TAB_STOP_DISTANCE, XML_TYPE_MEASURE,                         0 ),
    MAP_EXT_I( PROP_ParaTabStopDefaultDistance, XML_NAMESPACE_STYLE,  XML_TAB_STOP_DISTANCE, XML_TYPE_MEASURE|XML_TYPE_PROP_PARAGRAPH, 0 ),
    MAP_EXT( PROP_ParaTabStopDefaultDistance,   XML_NAMESPACE_LO_EXT, XML_TAB_STOP_DISTANCE, XML_TYPE_MEASURE|XML_TYPE_PROP_PARAGRAPH, 0 ),

    // RES_PARATR_VERTALIGN
    MP_E( PROP_ParaVertAlignment, XML_NAMESPACE_STYLE, XML_VERTICAL_ALIGN, XML_TYPE_TEXT_VERTICAL_ALIGN, 0 ),

    // RES_PARATR_SNAPTOGRID
    MP_E( PROP_SnapToGrid, XML_NAMESPACE_STYLE, XML_SNAP_TO_LAYOUT_GRID, XML_TYPE_BOOL, 0 ),

    MP_ED( PROP_WritingMode, XML_NAMESPACE_STYLE, XML_WRITING_MODE, XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT, CTF_TEXTWRITINGMODE ),

    MP_E( PROP_ParaIsConnectBorder, XML_NAMESPACE_STYLE, XML_JOIN_BORDER, XML_TYPE_BOOL, 0 ),

    MP_E( PROP_DefaultOutlineLevel, XML_NAMESPACE_STYLE, XML_DEFAULT_OUTLINE_LEVEL, XML_TYPE_TEXT_NUMBER8_ONE_BASED|MID_FLAG_SPECIAL_ITEM_EXPORT|MID_FLAG_NO_PROPERTY_IMPORT, CTF_DEFAULT_OUTLINE_LEVEL ),

    MP_ED( PROP_FontIndependentLineSpacing, XML_NAMESPACE_STYLE, XML_FONT_INDEPENDENT_LINE_SPACING, XML_TYPE_BOOL, 0 ),

    MAP_EXT( PROP_ListAutoFormat, XML_NAMESPACE_LO_EXT, XML_MARKER_STYLE_NAME, XML_TYPE_STYLENAME|XML_TYPE_PROP_PARAGRAPH, 0 ),

    MAP_EXT( PROP_ParaLeftMarginUnit, XML_NAMESPACE_LO_EXT, XML_MARGIN_LEFT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_UNIT_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MAP_EXT_I( PROP_ParaLeftMargin, XML_NAMESPACE_LO_EXT, XML_MARGIN_LEFT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARALEFTMARGIN ),
    MAP_EXT_I( PROP_ParaLeftMarginRelative, XML_NAMESPACE_LO_EXT, XML_MARGIN_LEFT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_PERCENT16, CTF_PARALEFTMARGIN_REL ),
    MAP_EXT( PROP_ParaRightMarginUnit, XML_NAMESPACE_LO_EXT, XML_MARGIN_RIGHT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_UNIT_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MAP_EXT_I( PROP_ParaRightMargin, XML_NAMESPACE_LO_EXT, XML_MARGIN_RIGHT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARARIGHTMARGIN ),
    MAP_EXT_I( PROP_ParaRightMarginRelative, XML_NAMESPACE_LO_EXT, XML_MARGIN_RIGHT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_PERCENT16, CTF_PARARIGHTMARGIN_REL ),
    MAP_EXT( PROP_ParaFirstLineIndentUnit, XML_NAMESPACE_LO_EXT, XML_TEXT_INDENT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_UNIT_MEASURE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MAP_EXT_I( PROP_ParaFirstLineIndent, XML_NAMESPACE_LO_EXT, XML_TEXT_INDENT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_PARAFIRSTLINE ),
    MAP_EXT_I( PROP_ParaFirstLineIndentRelative, XML_NAMESPACE_LO_EXT, XML_TEXT_INDENT, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_PERCENT, CTF_PARAFIRSTLINE_REL ),
    MAP_EXT( PROP_ParaWordSpacing, XML_NAMESPACE_LO_EXT, XML_WORD_SPACING, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_PERCENT16, 0 ),
    MAP_EXT( PROP_ParaWordSpacingMinimum, XML_NAMESPACE_LO_EXT, XML_WORD_SPACING_MINIMUM, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_PERCENT16, 0 ),
    MAP_EXT( PROP_ParaWordSpacingMaximum, XML_NAMESPACE_LO_EXT, XML_WORD_SPACING_MAXIMUM, XML_TYPE_PROP_PARAGRAPH|XML_TYPE_PERCENT16, 0 ),

    MT_ED( PROP_CharScriptHint, XML_NAMESPACE_STYLE, XML_SCRIPT_TYPE, XML_TYPE_TEXT_SCRIPT_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),

    M_END()
};


XMLPropertyMapEntry constexpr aXMLAdditionalTextDefaultsMap[] =
{
    // RES_FOLLOW_TEXT_FLOW - DVO #i18732#
    MG_ED( PROP_IsFollowingTextFlow, XML_NAMESPACE_STYLE, XML_FLOW_WITH_TEXT, XML_TYPE_BOOL, 0 ),

    // #i28701# - RES_WRAP_INFLUENCE_ON_OBJPOS
    MG_ED( PROP_WrapInfluenceOnPosition, XML_NAMESPACE_DRAW, XML_WRAP_INFLUENCE_ON_POSITION, XML_TYPE_WRAP_INFLUENCE_ON_POSITION, 0 ),

    M_END()
};

XMLPropertyMapEntry constexpr aXMLTextPropMap[] =
{
    // RES_CHRATR_CASEMAP
    MT_E( PROP_CharCaseMap, XML_NAMESPACE_FO, XML_FONT_VARIANT,   XML_TYPE_TEXT_CASEMAP_VAR, 0 ),
    MT_E( PROP_CharCaseMap, XML_NAMESPACE_FO, XML_TEXT_TRANSFORM, XML_TYPE_TEXT_CASEMAP,     0 ),
    // RES_CHRATR_COLOR
    MT_ED( PROP_CharColor,            XML_NAMESPACE_FO,     XML_COLOR,                 XML_TYPE_COLORAUTO|MID_FLAG_MERGE_PROPERTY,   0 ),
    MT_ED( PROP_CharColor,            XML_NAMESPACE_STYLE,  XML_USE_WINDOW_FONT_COLOR, XML_TYPE_ISAUTOCOLOR|MID_FLAG_MERGE_PROPERTY, 0 ),
    MAP_EXT_I( PROP_CharTransparence, XML_NAMESPACE_DRAW,   XML_OPACITY,               XML_TYPE_NEG_PERCENT16 | XML_TYPE_PROP_TEXT,  0 ),
    MAP_EXT( PROP_CharTransparence,   XML_NAMESPACE_LO_EXT, XML_OPACITY,               XML_TYPE_NEG_PERCENT16 | XML_TYPE_PROP_TEXT,  0 ),
    MAP_EXT( PROP_CharComplexColor,   XML_NAMESPACE_LO_EXT, XML_CHAR_COMPLEX_COLOR,    XML_TYPE_COMPLEX_COLOR|XML_TYPE_PROP_TEXT|MID_FLAG_ELEMENT_ITEM, CTF_COMPLEX_COLOR ),
    // RES_CHRATR_CONTOUR
    MT_E( PROP_CharContoured, XML_NAMESPACE_STYLE, XML_TEXT_OUTLINE, XML_TYPE_BOOL, 0 ),
    // RES_CHRATR_CROSSEDOUT
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_STYLE, XML_TYPE_TEXT_CROSSEDOUT_STYLE|MID_FLAG_MERGE_PROPERTY, 0),
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TYPE,  XML_TYPE_TEXT_CROSSEDOUT_TYPE|MID_FLAG_MERGE_PROPERTY,  0),
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_WIDTH, XML_TYPE_TEXT_CROSSEDOUT_WIDTH|MID_FLAG_MERGE_PROPERTY, 0),
    MT_E( PROP_CharStrikeout, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_TEXT,  XML_TYPE_TEXT_CROSSEDOUT_TEXT|MID_FLAG_MERGE_PROPERTY,  0),
    // RES_CHRATR_ESCAPEMENT
    MT_E( PROP_CharEscapement,       XML_NAMESPACE_STYLE, XML_TEXT_POSITION, XML_TYPE_TEXT_ESCAPEMENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MT_E( PROP_CharEscapementHeight, XML_NAMESPACE_STYLE, XML_TEXT_POSITION, XML_TYPE_TEXT_ESCAPEMENT_HEIGHT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    // RES_CHRATR_FONT
    MT_ED( PROP_CharFontName,      XML_NAMESPACE_STYLE, XML_FONT_NAME,           XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME ),
    MT_ED( PROP_CharFontName,      XML_NAMESPACE_FO,    XML_FONT_FAMILY,         XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME ),
    MT_ED( PROP_CharFontStyleName, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME,     XML_TYPE_STRING, CTF_FONTSTYLENAME ),
    MT_ED( PROP_CharFontFamily,    XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY ),
    MT_ED( PROP_CharFontPitch,     XML_NAMESPACE_STYLE, XML_FONT_PITCH,          XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH ),
    MT_ED( PROP_CharFontCharSet,   XML_NAMESPACE_STYLE, XML_FONT_CHARSET,        XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET ),
    // RES_CHRATR_FONTSIZE
    MT_ED( PROP_CharHeight,     XML_NAMESPACE_FO,    XML_FONT_SIZE,     XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY,      CTF_CHARHEIGHT ),
    MT_ED( PROP_CharPropHeight, XML_NAMESPACE_FO,    XML_FONT_SIZE,     XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL ),
    MT_ED( PROP_CharDiffHeight, XML_NAMESPACE_STYLE, XML_FONT_SIZE_REL, XML_TYPE_CHAR_HEIGHT_DIFF,                         CTF_CHARHEIGHT_DIFF ),
    // RES_CHRATR_KERNING
    MT_E( PROP_CharKerning, XML_NAMESPACE_FO, XML_LETTER_SPACING, XML_TYPE_TEXT_KERNING, 0 ),
    // RES_CHRATR_LANGUAGE
    MT_ED( PROP_CharLocale, XML_NAMESPACE_STYLE, XML_RFC_LANGUAGE_TAG, XML_TYPE_CHAR_RFC_LANGUAGE_TAG|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_ED( PROP_CharLocale, XML_NAMESPACE_FO,    XML_LANGUAGE,         XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY,         0 ),
    MT_ED( PROP_CharLocale, XML_NAMESPACE_FO,    XML_SCRIPT,           XML_TYPE_CHAR_SCRIPT|MID_FLAG_MERGE_PROPERTY,           0 ),
    MT_ED( PROP_CharLocale, XML_NAMESPACE_FO,    XML_COUNTRY,          XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY,          0 ),
    // RES_CHRATR_POSTURE
    MT_E( PROP_CharPosture, XML_NAMESPACE_FO, XML_FONT_STYLE, XML_TYPE_TEXT_POSTURE, 0 ),
    // RES_CHRATR_UNUSED1
    // RES_CHRATR_SHADOWED
    MT_E( PROP_CharShadowed, XML_NAMESPACE_FO, XML_TEXT_SHADOW, XML_TYPE_TEXT_SHADOWED, 0 ),
    // VALIDATED UP TO THIS LINE
    // RES_CHRATR_UNDERLINE
    MT_E( PROP_CharUnderline,         XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_STYLE, XML_TYPE_TEXT_UNDERLINE_STYLE|MID_FLAG_MERGE_PROPERTY, CTF_UNDERLINE ),
    MT_E( PROP_CharUnderline,         XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_TYPE,  XML_TYPE_TEXT_UNDERLINE_TYPE|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharUnderline,         XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_WIDTH, XML_TYPE_TEXT_UNDERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharUnderlineColor,    XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_COLOR|MID_FLAG_MULTI_PROPERTY, CTF_UNDERLINE_COLOR  ),
    MT_E( PROP_CharUnderlineHasColor, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_COLOR, XML_TYPE_TEXT_UNDERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, CTF_UNDERLINE_HASCOLOR   ),
    // RES_CHRATR_WEIGHT
    MT_E( PROP_CharWeight, XML_NAMESPACE_FO, XML_FONT_WEIGHT, XML_TYPE_TEXT_WEIGHT, 0 ),
    // RES_CHRATR_RSID
    { PROP_Rsid, XML_NAMESPACE_OFFICE_EXT, XML_RSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false },
    // RES_PARATR_RSID
    { PROP_ParRsid, XML_NAMESPACE_OFFICE_EXT, XML_PARRSID, XML_TYPE_HEX|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false },
    // RES_CHRATR_WORDLINEMODE
    MT_E( PROP_CharWordMode, XML_NAMESPACE_STYLE, XML_TEXT_UNDERLINE_MODE,    XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharWordMode, XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_MODE,     XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_E( PROP_CharWordMode, XML_NAMESPACE_STYLE, XML_TEXT_LINE_THROUGH_MODE, XML_TYPE_TEXT_LINE_MODE|MID_FLAG_MERGE_PROPERTY, 0 ),
    // RES_CHRATR_AUTOKERN
    MT_E( PROP_CharAutoKerning, XML_NAMESPACE_STYLE, XML_LETTER_KERNING, XML_TYPE_BOOL, 0 ),
    // RES_CHRATR_BLINK
    MT_E( PROP_CharFlash, XML_NAMESPACE_STYLE, XML_TEXT_BLINKING, XML_TYPE_BOOL, 0 ),
    // RES_CHRATR_NOHYPHEN
    MT_E( PROP_CharNoHyphenation, XML_NAMESPACE_FO, XML_HYPHENATE, XML_TYPE_NBOOL, 0 ),
    // RES_CHRATR_UNUSED2
    // RES_CHRATR_BACKGROUND
    MT_E( PROP_CharBackColor,       XML_NAMESPACE_FO,     XML_BACKGROUND_COLOR,      XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY, CTF_CHAR_BACKGROUND ),
    MT_E( PROP_CharBackTransparent, XML_NAMESPACE_FO,     XML_BACKGROUND_COLOR,      XML_TYPE_ISTRANSPARENT|MID_FLAG_MERGE_ATTRIBUTE, CTF_CHAR_BACKGROUND_TRANSPARENCY),
    { PROP_CharShadingValue,        XML_NAMESPACE_LO_EXT, XML_CHAR_SHADING_VALUE,    XML_TYPE_NUMBER|XML_TYPE_PROP_TEXT, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false },
    MT_E( PROP_CharBackColor,       XML_NAMESPACE_FO,     XML_TEXT_BACKGROUND_COLOR, XML_TYPE_COLOR|MID_FLAG_SPECIAL_ITEM_EXPORT, CTF_OLDTEXTBACKGROUND ),
    // RES_CHRATR_CJK_FONT
    MT_ED( PROP_CharFontNameAsian,      XML_NAMESPACE_STYLE, XML_FONT_NAME_ASIAN,           XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CJK ),
    MT_ED( PROP_CharFontNameAsian,      XML_NAMESPACE_STYLE, XML_FONT_FAMILY_ASIAN,         XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CJK ),
    MT_ED( PROP_CharFontStyleNameAsian, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME_ASIAN,     XML_TYPE_STRING, CTF_FONTSTYLENAME_CJK ),
    MT_ED( PROP_CharFontFamilyAsian,    XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC_ASIAN, XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CJK ),
    MT_ED( PROP_CharFontPitchAsian,     XML_NAMESPACE_STYLE, XML_FONT_PITCH_ASIAN,          XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CJK ),
    MT_ED( PROP_CharFontCharSetAsian,   XML_NAMESPACE_STYLE, XML_FONT_CHARSET_ASIAN,        XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CJK ),
    // RES_CHRATR_CJK_FONTSIZE
    MT_ED( PROP_CharHeightAsian,     XML_NAMESPACE_STYLE, XML_FONT_SIZE_ASIAN, XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CJK ),
    MT_ED( PROP_CharPropHeightAsian, XML_NAMESPACE_STYLE, XML_FONT_SIZE_ASIAN, XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CJK ),
    MT_ED( PROP_CharDiffHeightAsian, XML_NAMESPACE_STYLE, XML_FONT_SIZE_REL_ASIAN, XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CJK ),
    // RES_CHRATR_CJK_LANGUAGE
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_RFC_LANGUAGE_TAG_ASIAN, XML_TYPE_CHAR_RFC_LANGUAGE_TAG|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_LANGUAGE_ASIAN,         XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY,         0 ),
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_SCRIPT_ASIAN,           XML_TYPE_CHAR_SCRIPT|MID_FLAG_MERGE_PROPERTY,           0 ),
    MT_ED( PROP_CharLocaleAsian, XML_NAMESPACE_STYLE, XML_COUNTRY_ASIAN,          XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY,          0 ),
    // RES_CHRATR_CJK_POSTURE
    MT_E( PROP_CharPostureAsian, XML_NAMESPACE_STYLE, XML_FONT_STYLE_ASIAN, XML_TYPE_TEXT_POSTURE, 0 ),
    // RES_CHRATR_CJK_WEIGHT
    MT_E( PROP_CharWeightAsian, XML_NAMESPACE_STYLE, XML_FONT_WEIGHT_ASIAN, XML_TYPE_TEXT_WEIGHT, 0 ),
    // RES_CHRATR_CTL_FONT
    MT_ED( PROP_CharFontNameComplex,      XML_NAMESPACE_STYLE, XML_FONT_NAME_COMPLEX,           XML_TYPE_STRING|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTNAME_CTL ),
    MT_ED( PROP_CharFontNameComplex,      XML_NAMESPACE_STYLE, XML_FONT_FAMILY_COMPLEX,         XML_TYPE_TEXT_FONTFAMILYNAME|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FONTFAMILYNAME_CTL ),
    MT_ED( PROP_CharFontStyleNameComplex, XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME_COMPLEX,     XML_TYPE_STRING, CTF_FONTSTYLENAME_CTL ),
    MT_ED( PROP_CharFontFamilyComplex,    XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC_COMPLEX, XML_TYPE_TEXT_FONTFAMILY, CTF_FONTFAMILY_CTL ),
    MT_ED( PROP_CharFontPitchComplex,     XML_NAMESPACE_STYLE, XML_FONT_PITCH_COMPLEX,          XML_TYPE_TEXT_FONTPITCH, CTF_FONTPITCH_CTL ),
    MT_ED( PROP_CharFontCharSetComplex,   XML_NAMESPACE_STYLE, XML_FONT_CHARSET_COMPLEX,        XML_TYPE_TEXT_FONTENCODING, CTF_FONTCHARSET_CTL ),
    // RES_CHRATR_CTL_FONTSIZE
    MT_ED( PROP_CharHeightComplex,     XML_NAMESPACE_STYLE, XML_FONT_SIZE_COMPLEX,     XML_TYPE_CHAR_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_CTL ),
    MT_ED( PROP_CharPropHeightComplex, XML_NAMESPACE_STYLE, XML_FONT_SIZE_COMPLEX,     XML_TYPE_CHAR_HEIGHT_PROP|MID_FLAG_MULTI_PROPERTY, CTF_CHARHEIGHT_REL_CTL ),
    MT_ED( PROP_CharDiffHeightComplex, XML_NAMESPACE_STYLE, XML_FONT_SIZE_REL_COMPLEX, XML_TYPE_CHAR_HEIGHT_DIFF, CTF_CHARHEIGHT_DIFF_CTL ),
    // RES_CHRATR_CTL_LANGUAGE
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_RFC_LANGUAGE_TAG_COMPLEX, XML_TYPE_CHAR_RFC_LANGUAGE_TAG|MID_FLAG_MERGE_PROPERTY, 0 ),
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_LANGUAGE_COMPLEX,         XML_TYPE_CHAR_LANGUAGE|MID_FLAG_MERGE_PROPERTY,         0 ),
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_SCRIPT_COMPLEX,           XML_TYPE_CHAR_SCRIPT|MID_FLAG_MERGE_PROPERTY,           0 ),
    MT_ED( PROP_CharLocaleComplex, XML_NAMESPACE_STYLE, XML_COUNTRY_COMPLEX,          XML_TYPE_CHAR_COUNTRY|MID_FLAG_MERGE_PROPERTY,          0 ),
    // RES_CHRATR_CTL_POSTURE
    MT_E( PROP_CharPostureComplex, XML_NAMESPACE_STYLE, XML_FONT_STYLE_COMPLEX, XML_TYPE_TEXT_POSTURE, 0 ),
    // RES_CHRATR_CTL_WEIGHT
    MT_E( PROP_CharWeightComplex, XML_NAMESPACE_STYLE, XML_FONT_WEIGHT_COMPLEX, XML_TYPE_TEXT_WEIGHT, 0 ),
    // RES_CHRATR_ROTATE
    MT_E( PROP_CharRotation,            XML_NAMESPACE_STYLE, XML_TEXT_ROTATION_ANGLE, XML_TYPE_TEXT_ROTATION_ANGLE, 0 ),
    MT_E( PROP_CharRotationIsFitToLine, XML_NAMESPACE_STYLE, XML_TEXT_ROTATION_SCALE, XML_TYPE_TEXT_ROTATION_SCALE, 0 ),
    // RES_CHRATR_EMPHASIS_MARK
    MT_E( PROP_CharEmphasis, XML_NAMESPACE_STYLE, XML_TEXT_EMPHASIZE, XML_TYPE_TEXT_EMPHASIZE, 0 ),
    // RES_CHRATR_TWO_LINES
    MT_E( PROP_CharCombineIsOn,   XML_NAMESPACE_STYLE, XML_TEXT_COMBINE,            XML_TYPE_TEXT_COMBINE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MT_E( PROP_CharCombinePrefix, XML_NAMESPACE_STYLE, XML_TEXT_COMBINE_START_CHAR, XML_TYPE_TEXT_COMBINECHAR, 0 ),
    MT_E( PROP_CharCombineSuffix, XML_NAMESPACE_STYLE, XML_TEXT_COMBINE_END_CHAR,   XML_TYPE_TEXT_COMBINECHAR, 0 ),
    // RES_CHRATR_SCALEW
    MT_E( PROP_CharScaleWidth, XML_NAMESPACE_STYLE, XML_TEXT_SCALE, XML_TYPE_PERCENT16, 0 ),
    // combined characters field, does not correspond to a property
    MT_E( PROP_, XML_NAMESPACE_STYLE, XML_TEXT_COMBINE, XML_TYPE_TEXT_COMBINE_CHARACTERS|MID_FLAG_NO_PROPERTY, CTF_COMBINED_CHARACTERS_FIELD ),
    //RES_CHRATR_RELIEF
    MT_E( PROP_CharRelief, XML_NAMESPACE_STYLE, XML_FONT_RELIEF, XML_TYPE_TEXT_FONT_RELIEF, 0 ),
    // RES_CHRATR_HIDDEN
    MT_E( PROP_CharHidden, XML_NAMESPACE_TEXT, XML_DISPLAY, XML_TYPE_TEXT_HIDDEN_AS_DISPLAY|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_TEXT_DISPLAY ),
    // RES_CHRATR_OVERLINE
    MT_E( PROP_CharOverline,         XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_STYLE, XML_TYPE_TEXT_OVERLINE_STYLE|MID_FLAG_MERGE_PROPERTY,     0 ),
    MT_E( PROP_CharOverline,         XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_TYPE,  XML_TYPE_TEXT_OVERLINE_TYPE|MID_FLAG_MERGE_PROPERTY,      0 ),
    MT_E( PROP_CharOverline,         XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_WIDTH, XML_TYPE_TEXT_OVERLINE_WIDTH|MID_FLAG_MERGE_PROPERTY,     0 ),
    MT_E( PROP_CharOverlineColor,    XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_COLOR, XML_TYPE_TEXT_OVERLINE_COLOR|MID_FLAG_MULTI_PROPERTY,     0 ),
    MT_E( PROP_CharOverlineHasColor, XML_NAMESPACE_STYLE, XML_TEXT_OVERLINE_COLOR, XML_TYPE_TEXT_OVERLINE_HASCOLOR|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
    // RES_CHRATR_BOX
    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH,        XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERWIDTH ),
    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_LEFT,   XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERWIDTH ),
    MAP_EXT( PROP_CharRightBorder,    XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERWIDTH ),
    MAP_EXT( PROP_CharTopBorder,      XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_TOP,    XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERWIDTH ),
    MAP_EXT( PROP_CharBottomBorder,   XML_NAMESPACE_LO_EXT, XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERWIDTH ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH,        XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERWIDTH ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_LEFT,   XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERWIDTH ),
    MAP_EXT_I( PROP_CharRightBorder,  XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_RIGHT,  XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERWIDTH ),
    MAP_EXT_I( PROP_CharTopBorder,    XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_TOP,    XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERWIDTH ),
    MAP_EXT_I( PROP_CharBottomBorder, XML_NAMESPACE_STYLE,  XML_BORDER_LINE_WIDTH_BOTTOM, XML_TYPE_BORDER_WIDTH|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERWIDTH ),

    MAP_EXT( PROP_CharLeftBorderDistance,     XML_NAMESPACE_LO_EXT, XML_PADDING,        XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERDISTANCE ),
    MAP_EXT( PROP_CharLeftBorderDistance,     XML_NAMESPACE_LO_EXT, XML_PADDING_LEFT,   XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERDISTANCE ),
    MAP_EXT( PROP_CharRightBorderDistance,    XML_NAMESPACE_LO_EXT, XML_PADDING_RIGHT,  XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERDISTANCE ),
    MAP_EXT( PROP_CharTopBorderDistance,      XML_NAMESPACE_LO_EXT, XML_PADDING_TOP,    XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERDISTANCE ),
    MAP_EXT( PROP_CharBottomBorderDistance,   XML_NAMESPACE_LO_EXT, XML_PADDING_BOTTOM, XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharLeftBorderDistance,   XML_NAMESPACE_FO, XML_PADDING,        XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharLeftBorderDistance,   XML_NAMESPACE_FO, XML_PADDING_LEFT,   XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharRightBorderDistance,  XML_NAMESPACE_FO, XML_PADDING_RIGHT,  XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharTopBorderDistance,    XML_NAMESPACE_FO, XML_PADDING_TOP,    XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDERDISTANCE ),
    MAP_EXT_I( PROP_CharBottomBorderDistance, XML_NAMESPACE_FO, XML_PADDING_BOTTOM, XML_TYPE_MEASURE|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDERDISTANCE ),

    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER,        XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDER ),
    MAP_EXT( PROP_CharLeftBorder,     XML_NAMESPACE_LO_EXT, XML_BORDER_LEFT,   XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDER ),
    MAP_EXT( PROP_CharRightBorder,    XML_NAMESPACE_LO_EXT, XML_BORDER_RIGHT,  XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDER ),
    MAP_EXT( PROP_CharTopBorder,      XML_NAMESPACE_LO_EXT, XML_BORDER_TOP,    XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDER ),
    MAP_EXT( PROP_CharBottomBorder,   XML_NAMESPACE_LO_EXT, XML_BORDER_BOTTOM, XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDER ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_FO, XML_BORDER,        XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARALLBORDER ),
    MAP_EXT_I( PROP_CharLeftBorder,   XML_NAMESPACE_FO, XML_BORDER_LEFT,   XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARLEFTBORDER ),
    MAP_EXT_I( PROP_CharRightBorder,  XML_NAMESPACE_FO, XML_BORDER_RIGHT,  XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARRIGHTBORDER ),
    MAP_EXT_I( PROP_CharTopBorder,    XML_NAMESPACE_FO, XML_BORDER_TOP,    XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARTOPBORDER ),
    MAP_EXT_I( PROP_CharBottomBorder, XML_NAMESPACE_FO, XML_BORDER_BOTTOM, XML_TYPE_BORDER|XML_TYPE_PROP_TEXT, CTF_CHARBOTTOMBORDER ),
    // RES_CHRATR_SHADOW
    MAP_EXT( PROP_CharShadowFormat,   XML_NAMESPACE_LO_EXT, XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ),
    MAP_EXT_I( PROP_CharShadowFormat, XML_NAMESPACE_STYLE,  XML_SHADOW, XML_TYPE_TEXT_SHADOW|XML_TYPE_PROP_TEXT, 0 ),
    // RES_CHRATR_HIGHLIGHT
    MT_E( PROP_CharHighlight, XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_COLORTRANSPARENT|MID_FLAG_MULTI_PROPERTY|MID_FLAG_NO_PROPERTY_IMPORT, CTF_CHAR_HIGHLIGHT ),
    // RES_TXTATR_INETFMT
    MT_E( PROP_HyperLinkURL, XML_NAMESPACE_TEXT, XML_XMLNS, XML_TYPE_STRING|MID_FLAG_NO_PROPERTY_IMPORT, CTF_HYPERLINK_URL ),
    // RES_TXTATR_REFMARK
    // TODO
    // RES_TXTATR_TOXMARK
    // TODO
    // RES_TXTATR_CHARFMT
    MT_E( PROP_CharStyleName, XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TYPE_STRING|MID_FLAG_NO_PROPERTY_IMPORT, CTF_CHAR_STYLE_NAME ),
    // RES_TXTATR_CJK_RUBY
    // TODO
    // RES_TXTATR_FIELD
    // TODO
    // RES_TXTATR_FLYCNT
    // TODO
    // RES_TXTATR_FTN
    // TODO
    // RES_TXTATR_SOFTHYPH
    // TODO
    // RES_TXTATR_HARDBLANK
    // TODO
    // RES_UNKNOWNATR_CONTAINER
    MT_E( PROP_TextUserDefinedAttributes, XML_NAMESPACE_TEXT,  XML_XMLNS,             XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM, 0 ),
    MT_ED( PROP_ParaIsCharacterDistance,  XML_NAMESPACE_STYLE, XML_TEXT_AUTOSPACE,    XML_TYPE_TEXT_AUTOSPACE,                              0 ),
    MT_ED( PROP_ParaIsHangingPunctuation, XML_NAMESPACE_STYLE, XML_PUNCTUATION_WRAP,  XML_TYPE_TEXT_PUNCTUATION_WRAP,                       0 ),
    MT_ED( PROP_ParaIsForbiddenRules,     XML_NAMESPACE_STYLE, XML_LINE_BREAK,        XML_TYPE_TEXT_LINE_BREAK,                             0 ),
    MT_E( PROP_TabStopDistance,           XML_NAMESPACE_STYLE, XML_TAB_STOP_DISTANCE, XML_TYPE_MEASURE,                                     0 ),

    MT_ED( PROP_CharScriptHint,           XML_NAMESPACE_STYLE, XML_SCRIPT_TYPE,       XML_TYPE_TEXT_SCRIPT_TYPE|MID_FLAG_MERGE_PROPERTY,    0 ),

    M_END()
};

XMLPropertyMapEntry constexpr aXMLFramePropMap[] =
{
    // RES_FILL_ORDER
    // TODO: not required???
    // RES_FRM_SIZE
    MG_ED( PROP_Width,           XML_NAMESPACE_SVG,   XML_WIDTH,     XML_TYPE_MEASURE, CTF_FRAMEWIDTH_ABS ),
    MG_ED( PROP_Width,           XML_NAMESPACE_FO,    XML_MIN_WIDTH, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_FRAMEWIDTH_MIN_ABS ),
    MG_ED( PROP_RelativeWidth,   XML_NAMESPACE_FO,    XML_MIN_WIDTH, XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEWIDTH_MIN_REL ),
    MG_ED( PROP_RelativeWidth,   XML_NAMESPACE_STYLE, XML_REL_WIDTH, XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEWIDTH_REL ),
    MG_ED( PROP_WidthType,       XML_NAMESPACE_FO,    XML_TEXT_BOX,  XML_TYPE_NUMBER16|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_FRAMEWIDTH_TYPE ),
//  M_ED( "RelativeWidth",       XML_NAMESPACE_STYLE, XML_REL_WIDTH, XML_TYPE_TEXT_REL_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, 0 ),
//  M_ED( "IsSyncWidthToHeight", XML_NAMESPACE_STYLE, XML_REL_WIDTH, XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, 0 ),

    MG_ED( PROP_Height,          XML_NAMESPACE_SVG,   XML_HEIGHT,     XML_TYPE_MEASURE, CTF_FRAMEHEIGHT_ABS ),
    MG_ED( PROP_Height,          XML_NAMESPACE_FO,    XML_MIN_HEIGHT, XML_TYPE_MEASURE|MID_FLAG_MULTI_PROPERTY, CTF_FRAMEHEIGHT_MIN_ABS ),
    MG_ED( PROP_RelativeHeight,  XML_NAMESPACE_FO,    XML_MIN_HEIGHT, XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEHEIGHT_MIN_REL ),
    MG_ED( PROP_RelativeHeight,  XML_NAMESPACE_STYLE, XML_REL_HEIGHT, XML_TYPE_TEXT_REL_WIDTH_HEIGHT, CTF_FRAMEHEIGHT_REL ),
//  M_ED( "RelativeHeight",      XML_NAMESPACE_STYLE, XML_REL_HEIGHT, XML_TYPE_TEXT_REL_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_FRAMEHEIGHT_REL ),
//  M_ED( "IsSyncHeightToWidth", XML_NAMESPACE_STYLE, XML_REL_HEIGHT, XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT|MID_FLAG_MULTI_PROPERTY, CTF_SYNCHEIGHT ),
//  M_ED( "IsSyncHeightToWidth", XML_NAMESPACE_STYLE, XML_REL_HEIGHT, XML_TYPE_TEXT_SYNC_WIDTH_HEIGHT_MIN, CTF_SYNCHEIGHT_MIN ),
    MG_ED( PROP_SizeType,        XML_NAMESPACE_FO,    XML_TEXT_BOX,   XML_TYPE_NUMBER16|MID_FLAG_SPECIAL_ITEM_IMPORT, CTF_SIZETYPE ),
    // RES_PAPER_BIN
    // not required
    // RES_ANCHOR
    // moved to here because it is not used for automatic styles
    MG_ED( PROP_AnchorType, XML_NAMESPACE_TEXT, XML_ANCHOR_TYPE, XML_TYPE_TEXT_ANCHOR_TYPE, CTF_ANCHORTYPE ),
    // AnchorPage number is not required for styles!
    MG_ED( PROP_HoriOrientPosition, XML_NAMESPACE_SVG, XML_X, XML_TYPE_MEASURE, 0 ),
    MG_ED( PROP_VertOrientPosition, XML_NAMESPACE_SVG, XML_Y, XML_TYPE_MEASURE, 0 ),
    // ***** The map for automatic styles starts here *****
    // RES_LR_SPACE
    MG_E( PROP_LeftMargin,  XML_NAMESPACE_FO, XML_MARGIN,       XML_TYPE_MEASURE, CTF_MARGINALL ),
    MG_E( PROP_LeftMargin,  XML_NAMESPACE_FO, XML_MARGIN_LEFT,  XML_TYPE_MEASURE, CTF_MARGINLEFT ),
    MG_E( PROP_RightMargin, XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TYPE_MEASURE, CTF_MARGINRIGHT ),
    // RES_UL_SPACE
    MG_E( PROP_TopMargin,    XML_NAMESPACE_FO, XML_MARGIN_TOP,    XML_TYPE_MEASURE, CTF_MARGINTOP ),
    MG_E( PROP_BottomMargin, XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TYPE_MEASURE, CTF_MARGINBOTTOM ),
    // RES_PAGEDESC
    // not required
    // RES_BREAK
    // not required
    // RES_CNTNT
    // not required (accessed using API)
    // RES_HEADER
    // not required
    // RES_FOOTER
    // not required
    // RES_PRINT
    MG_E( PROP_Print, XML_NAMESPACE_STYLE, XML_PRINT_CONTENT, XML_TYPE_BOOL, 0 ),
    // RES_OPAQUE
    MG_ED( PROP_Opaque, XML_NAMESPACE_STYLE, XML_RUN_THROUGH, XML_TYPE_TEXT_OPAQUE, 0 ),
    // RES_PROTECT
    MG_E( PROP_ContentProtected,  XML_NAMESPACE_STYLE, XML_PROTECT, XML_TYPE_TEXT_PROTECT_CONTENT|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MG_E( PROP_SizeProtected,     XML_NAMESPACE_STYLE, XML_PROTECT, XML_TYPE_TEXT_PROTECT_SIZE|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    MG_E( PROP_PositionProtected, XML_NAMESPACE_STYLE, XML_PROTECT, XML_TYPE_TEXT_PROTECT_POSITION|MID_FLAG_MERGE_ATTRIBUTE|MID_FLAG_MULTI_PROPERTY, 0 ),
    // RES_SURROUND
    MG_ED( PROP_TextWrap,           XML_NAMESPACE_STYLE, XML_WRAP,                      XML_TYPE_TEXT_WRAP, CTF_WRAP ),
--> --------------------

--> maximum size reached

--> --------------------

Messung V0.5
C=90 H=96 G=93

¤ Dauer der Verarbeitung: 0.12 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.