diff options
author | Henning Brinkmann <hbrinkm@openoffice.org> | 2006-10-24 08:27:54 +0000 |
---|---|---|
committer | Henning Brinkmann <hbrinkm@openoffice.org> | 2006-10-24 08:27:54 +0000 |
commit | 5398d00863db3303cb4f3683ea1af98ff9d46a2a (patch) | |
tree | 90c4fa0aacc5cffb7fa4b5d23167b4c8184194b3 | |
parent | ee309d277e83fdd10d93cadbf65bbc460efe67c3 (diff) |
initial check in
125 files changed, 78433 insertions, 0 deletions
diff --git a/writerfilter/documentation/AddingTable.cxx b/writerfilter/documentation/AddingTable.cxx new file mode 100644 index 000000000000..faa898a62350 --- /dev/null +++ b/writerfilter/documentation/AddingTable.cxx @@ -0,0 +1,56 @@ +void test() +{ + portion = appendPortion("text"); + tableContext = new TableContext(); + { + tableStack.push(tableContext); + portion = appendPortion("A1"); + tableContext.addPortion(portion); + tableContext.endCell(); + portion = appendPortion("B1"); + tableContext.addPortion(portion); + tableContext.endCell(); + portion = appendPortion("C1"); + tableContext.addPortion(portion); + tableContext.endCell(); + tableContext.endRow(rowProperties); + portion = appendPortion("A2"); + tableContext.addPortion(portion); + tableContext.endCell(); + tableContext = new TableContext(); + { + tableStack.push(tableContext); + portion = appendPortion("B2A1"); + tableContext.addPortion(portion); + tableContext.endCell(); + portion = appendPortion("B2B1"); + tableContext.addPortion(portion); + tableContext.endCell(); + tableContext.endRow(rowProperties); + portion = appendPortion("B2A2"); + tableContext.addPortion(portion); + tableContext.endCell(); + portion = appendPortion("B2B2"); + tableContext.addPortion(portion); + tableContext.endCell(); + tableContext.endRow(rowProperties); + } + portion = createTable(tableContext); + tableContext = tableStack.pop(); + tableContext.addPortion(portion); + portion = appendPortion("B2"); + tableContext.addPortion(portion); + tableContext.endCell(); + portion = appendPortion("C2"); + tableContext.addPortion(portion); + tableContext.endCell(); + tableContext.endRow(rowProperties); + } + portion = createTable(tableContext); + portion = appendPortion("text"); +} + +/* + tableContext.endCell: + merge text ranges of portions to one and add this range to ranges of row. + */ diff --git a/writerfilter/documentation/doxygen/Doxyfile b/writerfilter/documentation/doxygen/Doxyfile new file mode 100644 index 000000000000..45255d578bfb --- /dev/null +++ b/writerfilter/documentation/doxygen/Doxyfile @@ -0,0 +1,1237 @@ +# Doxyfile 1.4.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = writerfilter + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = $(WORKSTAMP) + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../../inc ../../source ../../java + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.cxx *.hxx *.java + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = CVS + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = images + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = $(SOLARINC) + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 512 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 4 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = YES + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = YES + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/writerfilter/documentation/doxygen/images/doctok.png b/writerfilter/documentation/doxygen/images/doctok.png Binary files differnew file mode 100644 index 000000000000..15adb9670109 --- /dev/null +++ b/writerfilter/documentation/doxygen/images/doctok.png diff --git a/writerfilter/documentation/sprms.txt b/writerfilter/documentation/sprms.txt new file mode 100644 index 000000000000..ccb50df7cbf6 --- /dev/null +++ b/writerfilter/documentation/sprms.txt @@ -0,0 +1,10 @@ +0x2461: extra alignment: + + 4: distributed + 8: justify low + 5: justify middle + 7: justify high + 9: Thai Distribute + + +
\ No newline at end of file diff --git a/writerfilter/documentation/tablesInDoc.txt b/writerfilter/documentation/tablesInDoc.txt new file mode 100644 index 000000000000..629e68d75590 --- /dev/null +++ b/writerfilter/documentation/tablesInDoc.txt @@ -0,0 +1,135 @@ +All paragraphs in tables: + + sprms: + 0x2416 (sprmPFInTable) indicates a paragraph is in a table + 0x6649 (sprmPTableDepth) demarks the nesting depth of the paragraph + +paragraph at nesting depth 1: + + end of cell: 0x7 + end of row: 0x7 + sprm 0x2417(sprmFTtp) + + the end of a row has its own 0x7 + +paragraphs at nesting depth > 1; + + end of cell: 0xd + sprm 0x244b(sprmPCell) + end of row 0xd + sprm 0x244b(sprmPCell) + sprm 0x244c(sprmPRow) + + the end of a row has its own 0xd + +Algorithm to detect table structure: + +Datastructures: + +RowData<Handle>: + int getCellCount() + // return number of cells in row + Handle getStart(i) + // get handle for start of cell i + Handle getEnd(i) + // get handle for end off cell i + Properties getProperties() + // return properties of row + +TableData<Handle>: + void addCell(Handle start, Handle end) + // insert cell starting at start and ending at end into the + // current row + void endRow(properties) + // end current row and save properties for that row, begin new row + int getRowCount + // return number of rows in table + RowData<Handle> getRow(i) + // get data for row i + +prevTableDepth + depth in table hierarchy of previous paragraph + +curTableDepth + depth in table hierarchy of current paragraph + +bInCell + true if current paragraph is in a cell + +bEndCell + true if current paragraph if the last paragraph of a cell + +bEndRow + true if current paragraph is the end of a row + +paragraphHandle + handle for current paragraph + +initial: + create stack of TableData<Handle> + +final: + handle remaining TableData<Handle> on stack + +creating StreamHandler: + push new TableData<Handle> on stack + +destroying StreamHandler: + handle TableData<Handle> on top of stack + pop TableData<Handle> from stack + +StreamHandler::substream: + push new TableData<Handle> on stack + handle TableData<Handle> on top of stack + pop TableData<Handle> from stack + +starting paragraph group: + paragraphHandle = currentHandle; + bInCell = false; + bCellEnd = false; + bRowEnd = false; + +ending paragraph group: + difference = curTableDepth - prevTableDepth + + if (difference > 0) + push difference new TableData<Handle> onto stack + else if (difference < 0) + { + repeat difference times + { + handle top of stack + pop stack + } + } + precTableDepth = curTableDepth + + if (bInCell) + { + if (handleStart is null) + handleStart = paragraphHandle; + + if (bCellEnd) + { + stack.top().addCell(handleStart, paragraphHandle); + clear handleStart + } + + if (bRowEnd) + { + stack.top().endRow(properties) + } + + +in StreamHandler::props: + save properties + +PropertiesHandler::sprm: + sprm 0x6649: + save value in curTableDepth + sprm 0x2416: + bInCell = true + sprm 0x244b: + bCellEnd = true + sprm 0x2417: + bRowEnd = true + +text: + 0x7: + bCellEnd = true diff --git a/writerfilter/inc/WriterFilterDllApi.hxx b/writerfilter/inc/WriterFilterDllApi.hxx new file mode 100644 index 000000000000..750e12338ad6 --- /dev/null +++ b/writerfilter/inc/WriterFilterDllApi.hxx @@ -0,0 +1,50 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: WriterFilterDllApi.hxx,v $ + * + * $Revision: 1.3 $ + * + * last change: $Author: hbrinkm $ $Date: 2006-10-24 09:27:07 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#define INCLUDED_WRITERFILTERDLLAPI_H + +#ifndef _SAL_TYPES_H_ +#include "sal/types.h" +#endif + +#if defined(WRITERFILTER_DLLIMPLEMENTATION) +#define WRITERFILTER_DLLPUBLIC SAL_DLLPUBLIC_EXPORT +#else +#define WRITERFILTER_DLLPUBLIC SAL_DLLPUBLIC_IMPORT +#endif +#define WRITERFILTER_DLLPRIVATE SAL_DLLPRIVATE + +#endif /* INCLUDED_WRITERFILTERDLLAPI_H */ diff --git a/writerfilter/inc/dmapper/DomainMapper.hxx b/writerfilter/inc/dmapper/DomainMapper.hxx new file mode 100644 index 000000000000..a702c1eaed8d --- /dev/null +++ b/writerfilter/inc/dmapper/DomainMapper.hxx @@ -0,0 +1,66 @@ +#ifndef INCLUDED_DOMAINMAPPER_HXX +#define INCLUDED_DOMAINMAPPER_HXX + +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#include <WriterFilterDllApi.hxx> +#endif +#include <doctok/WW8ResourceModel.hxx> +#include <com/sun/star/lang/XComponent.hpp> + +namespace dmapper +{ +using namespace std; + +class PropertyMap; +class FontTable; +class ListTable; + +class DomainMapper_Impl; + +// different context types require different sprm handling (e.g. names) +enum SprmType +{ + SPRM_DEFAULT, + SPRM_LIST +}; +class WRITERFILTER_DLLPUBLIC DomainMapper : public doctok::Properties, public doctok::Table, + public doctok::BinaryObj, public doctok::Stream +{ + DomainMapper_Impl *m_pImpl; + +public: + DomainMapper(::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > xModel); + virtual ~DomainMapper(); + + // Properties + virtual void attribute(doctok::Id Name, doctok::Value & val); + virtual void sprm(doctok::Sprm & sprm); + + // Table + virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref); + + // BinaryObj + virtual void data(const sal_uInt8* buf, size_t len, + doctok::Reference<Properties>::Pointer_t ref); + + // Stream + virtual void startSectionGroup(); + virtual void endSectionGroup(); + virtual void startParagraphGroup(); + virtual void endParagraphGroup(); + virtual void startCharacterGroup(); + virtual void endCharacterGroup(); + virtual void text(const sal_uInt8 * data, size_t len); + virtual void utext(const sal_uInt8 * data, size_t len); + virtual void props(doctok::Reference<Properties>::Pointer_t ref); + virtual void table(doctok::Id name, + doctok::Reference<Table>::Pointer_t ref); + virtual void substream(doctok::Id name, + ::doctok::Reference<Stream>::Pointer_t ref); + virtual void info(const string & info); + + void sprm( doctok::Sprm& sprm, ::boost::shared_ptr<PropertyMap> pContext, SprmType = SPRM_DEFAULT ); +}; +} + +#endif // diff --git a/writerfilter/inc/doctok/WW8Document.hxx b/writerfilter/inc/doctok/WW8Document.hxx new file mode 100644 index 000000000000..64e310c4d383 --- /dev/null +++ b/writerfilter/inc/doctok/WW8Document.hxx @@ -0,0 +1,411 @@ +#ifndef INCLUDED_WW8_DOCUMENT_HXX +#define INCLUDED_WW8_DOCUMENT_HXX + +#include <boost/shared_ptr.hpp> +#ifndef _SAL_TYPES_H_ +#include <sal/types.h> +#endif // _SAL_TYPES_H_ +#ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_ +#include <com/sun/star/uno/Reference.hxx> +#endif +#ifndef INCLUDED_SUB_SEQUENCE_HXX +#include <doctok/SubSequence.hxx> +#endif +#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_ +#include <com/sun/star/io/XInputStream.hpp> +#endif +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEX_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif + +#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX +#include <doctok/WW8ResourceModel.hxx> +#endif + +#ifndef INCLUDED_OUTPUT_WITH_DEPTH +#include <OutputWithDepth.hxx> +#endif + +#include <WriterFilterDllApi.hxx> + +namespace doctok { + +using namespace ::com::sun::star; + +/** + A stream containing a WW8 document. + + The content of the stream is a sequence of unsigned bytes. The + stream consists of substreams that are identified by string + identifiers. +*/ +class WRITERFILTER_DLLPUBLIC WW8Stream +{ +public: + /** + Pointer to a WW8Stream. + */ + typedef boost::shared_ptr<WW8Stream> Pointer_t; + + /** + Type for the content of the stream + */ + typedef SubSequence<sal_uInt8> Sequence; + + /** + Returns pointer to a substream. + + @param rSid identifier of substream to return + + @return the substream + */ + virtual Pointer_t getSubStream(const ::rtl::OUString & rSid) = 0; + + /** + Return a continious part of the stream. + + @param nOffset offset in the stream where the part starts + @param nCount length of the part (number of bytes) + + @return sequence of unsigned bytes + */ + virtual Sequence get(sal_uInt32 nOffset, sal_uInt32 nCount) + const = 0; + + // Returns the names of substreams contained in the stream + virtual string getSubStreamNames() const = 0; + + virtual uno::Sequence<rtl::OUString> getSubStreamUNames() const = 0; + + //virtual bool put(sal_uInt32 nOffset, const Sequence & rSeq) = 0; +}; + +/** + A property. + +*/ +class WRITERFILTER_DLLPUBLIC WW8Property +{ +public: + /** + Ponter to a property. + */ + typedef boost::shared_ptr<WW8Property> Pointer_t; + + virtual ~WW8Property(); + + virtual sal_uInt32 getId() const = 0; + virtual sal_uInt32 getParam() const = 0; + virtual WW8Stream::Sequence getParams() const = 0; + + virtual string toString() const = 0; + + /** + Dumps this object to an output. + + */ + virtual void dump(OutputWithDepth<string> & o) const = 0; +}; + +/** + An iterator for traversal of a set of properties. + + Sample code for use of iterator: + + \code + Return_t function(WW8PropertySet::tPointer pSet) + { + do_something; + + WW8PropertySetIterator::tPointer pIt = pSet->begin(); + WW8PropertySetIterator::tPointer pItEnd = pSet->end(); + + while ((*pIt) != (*pItEnd)) + { + do_something(); + + ++(*pIt); + } + + do_something; + } + \endcode +*/ +class WRITERFILTER_DLLPUBLIC WW8PropertySetIterator +{ +public: + typedef boost::shared_ptr<WW8PropertySetIterator> Pointer_t; + + virtual ~WW8PropertySetIterator(); + + /** + Advance iterator to the next property. + */ + virtual WW8PropertySetIterator & operator++() = 0; + + /** + Returns a pointer to the property the iterator references. + */ + virtual WW8Property::Pointer_t get() const = 0; + + /** + Checks if the iterator is equal to another one. + */ + virtual bool equal(const WW8PropertySetIterator & rIt) const = 0; + + /** + Returns string representation of iterator. + */ + virtual string toString() const = 0; +}; + +/** + Checks if two property set iterators are not equal. +*/ +bool operator != (const WW8PropertySetIterator & rA, + const WW8PropertySetIterator & rB); + +/** + A set of properties. +*/ +class WRITERFILTER_DLLPUBLIC WW8PropertySet +{ +public: + typedef boost::shared_ptr<WW8PropertySet> Pointer_t; + + virtual ~WW8PropertySet(); + + /** + Returns iterator to the start of the set. + */ + virtual WW8PropertySetIterator::Pointer_t begin() = 0; + + /** + Returns iterator to the end of the set. + */ + virtual WW8PropertySetIterator::Pointer_t end() = 0; + + /** + Dumps property set to output stream. + + @param o output stream to dump property set to + */ + virtual void dump(OutputWithDepth<string> & o) const = 0; + + /** + Iterate through property set and for each element dump a dot + output stream. + + @param o output stream to dump dots to + */ + virtual void dots(ostream & o) = 0; + + virtual bool isPap() const = 0; + virtual sal_uInt32 get_istd() const = 0; + + /** + Insert another property set into this property set. + + @param pSet the set to insert + */ + virtual void insert(const WW8PropertySet::Pointer_t pSet) = 0; +}; + +enum PropertyType { + /** Auxiliary type for character positions defined in piece table */ + PROP_DOC, + + /** properties are section properies */ + PROP_SEC, + + /** properties are paragraph properties */ + PROP_PAP, + + /** properties are character properties */ + PROP_CHP, + + /** a footnote reference */ + PROP_FOOTNOTE, + + /** an endnote reference */ + PROP_ENDNOTE, + + /** an annotaion reference */ + PROP_ANNOTATION, + + /** the start of a bookmark */ + PROP_BOOKMARKSTART, + + /** the end of a bookmark */ + PROP_BOOKMARKEND, + + /** a field character (start, separator or end) */ + PROP_FLD, + + /** a shape character */ + PROP_SHP +}; + +/** + An iterator for traversal of the character positions of a Word + document. + + The use of the iterator is analogous to WW8PropertySetIterator. +*/ +class WRITERFILTER_DLLPUBLIC WW8DocumentIterator +{ +public: + typedef boost::shared_ptr<WW8DocumentIterator> Pointer_t; + + virtual ~WW8DocumentIterator(); + + /** + Advance iterator to next character position of the document. + */ + virtual WW8DocumentIterator & operator++() = 0; + + /** + Recedes iterator to previous character postion of the document. + */ + virtual WW8DocumentIterator & operator--() = 0; + + /** + Returns properties set at the character position the iterator + points to. + + @return pointer to set of properties + */ + virtual doctok::Reference<Properties>::Pointer_t getProperties() const = 0; + + virtual doctok::Reference<Stream>::Pointer_t getSubDocument() const = 0; + + /** + Returns text run at the character position the iterator points + to. + */ + virtual WW8Stream::Sequence getText() = 0; + + /** + Return pointer to the shape at character position the iterator + is pointing to. + */ + virtual doctok::Reference<Properties>::Pointer_t getShape() const = 0; + + /** + Checks if the characters of the entity the iterator points to + are complex. + + Complex characters in a Word document are byte size + characters. Non-complex characters are word size characters. + + @retval true The characters are complex. + @retval false The characters are non-complex. + */ + virtual bool isComplex() const = 0; + + /** + Returns the property type of the entity the iterator points to. + */ + virtual PropertyType getPropertyType() const = 0; + + /** + Checks is the iterator is equal to another one. + + @param rIt iterator to check against + + @retval true the iterators are equal + @retval false else + */ + virtual bool equal(const WW8DocumentIterator & rIt) const = 0; + + /** + Returns string representation of the iterator. + */ + virtual string toString() const = 0; + + /** + Dumps the iterator to an output stream. + + @param o the output stream to dump the iterator to + */ + virtual void dump(ostream & o) const = 0; +}; + +/** + Checks if two document iterators are equal. + + @param rA first iterator + @param rB second iterator + + @retval true the document iterators are equal + @retval false else + */ +bool operator == (const WW8DocumentIterator & rA, + const WW8DocumentIterator & rB); + +class WRITERFILTER_DLLPUBLIC SubDocumentId +{ +public: + enum eType { FOOTNOTES, HEADERS, FOOTERS }; + +private: + eType mnType; + sal_uInt8 mnIndex; + +public: + SubDocumentId(eType nType, sal_uInt8 nIndex) + : mnType(nType), mnIndex(nIndex) + { + } + + eType getType() const { return mnType; } + sal_uInt8 getIndex() const { return mnIndex; } +}; + +/** + A Word 8 document. +*/ +class WRITERFILTER_DLLPUBLIC WW8Document : public doctok::Reference<Stream> +{ +public: + typedef boost::shared_ptr<WW8Document> Pointer_t; + + virtual ~WW8Document(); + + /** + Get a subdocument. + + A subdocument can be + + - a header + - a footer + - a footnode + + @param nId identifier of the subdocumen + */ + virtual Pointer_t getSubDocument(SubDocumentId nId) = 0; + + /** + Returns iterator to beginning of document. + */ + virtual WW8DocumentIterator::Pointer_t begin() = 0; + + /** + Returns iterator to end of document. + */ + virtual WW8DocumentIterator::Pointer_t end() = 0; +}; + +class WRITERFILTER_DLLPUBLIC WW8DocumentFactory +{ +public: + static WW8Stream::Pointer_t + createStream(uno::Reference<uno::XComponentContext> rContext, + uno::Reference<io::XInputStream> rStream); + + static WW8Document::Pointer_t + createDocument(WW8Stream::Pointer_t rpStream); +}; +} + +#endif // INCLUDED_WW8_DOCUMENT_HXX diff --git a/writerfilter/inc/rtftok/RTFInputSource.hxx b/writerfilter/inc/rtftok/RTFInputSource.hxx new file mode 100644 index 000000000000..54cf7c84d068 --- /dev/null +++ b/writerfilter/inc/rtftok/RTFInputSource.hxx @@ -0,0 +1,19 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_RTFINPUTSOURCE_HXX +#define INCLUDED_RTFINPUTSOURCE_HXX + +namespace writerfilter { namespace rtftok { + +class RTFInputSource +{ +public: + virtual int read(void *buffer, int maxLen) = 0; +}; + +} } /* end namespace writerfilter::rtftok */ + + +#endif /* INCLUDED_RTFINPUTSOURCE_HXX */ diff --git a/writerfilter/inc/rtftok/RTFParseException.hxx b/writerfilter/inc/rtftok/RTFParseException.hxx new file mode 100644 index 000000000000..df5fef6c06fa --- /dev/null +++ b/writerfilter/inc/rtftok/RTFParseException.hxx @@ -0,0 +1,19 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_RTFPARSEEXCEPTION_HXX +#define INCLUDED_RTFPARSEEXCEPTION_HXX + +namespace writerfilter { namespace rtftok { + +class RTFParseException +{ +public: + RTFParseException(char *message); +}; + +} } /* end namespace writerfilter::rtftok */ + + +#endif /* INCLUDED_RTFPARSEEXCEPTION_HXX */ diff --git a/writerfilter/inc/rtftok/RTFScanner.hxx b/writerfilter/inc/rtftok/RTFScanner.hxx new file mode 100644 index 000000000000..7610aca41853 --- /dev/null +++ b/writerfilter/inc/rtftok/RTFScanner.hxx @@ -0,0 +1,42 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_RTFSCANNER_HXX +#define INCLUDED_RTFSCANNER_HXX + +#include <WriterFilterDllApi.hxx> +#include <vector> +#include <rtftok/RTFInputSource.hxx> +#include <rtftok/RTFScannerHandler.hxx> + +namespace writerfilter { namespace rtftok { + +class WRITERFILTER_DLLPUBLIC RTFScanner { +public: + RTFScanner(RTFScannerHandler &eventHandler_) : eventHandler(eventHandler_) {}; + virtual ~RTFScanner() { } + + const char* YYText() { return yytext; } + int YYLeng() { return yyleng; } + + virtual int yylex() = 0; + + int lineno() const { return yylineno; } + +protected: + char* yytext; + int yyleng; + int yylineno; // only maintained if you use %option yylineno + int yy_flex_debug; // only has effect with -d or "%option debug" + RTFScannerHandler &eventHandler; + + +public: + static writerfilter::rtftok::RTFScanner* createRTFScanner(writerfilter::rtftok::RTFInputSource& inputSource, writerfilter::rtftok::RTFScannerHandler &eventHandler); +}; + +} } /* end namespace writerfilter::rtftok */ + + +#endif /* INCLUDED_RTFSCANNER_HXX */ diff --git a/writerfilter/inc/rtftok/RTFScannerHandler.hxx b/writerfilter/inc/rtftok/RTFScannerHandler.hxx new file mode 100644 index 000000000000..c27a7bf1c3a0 --- /dev/null +++ b/writerfilter/inc/rtftok/RTFScannerHandler.hxx @@ -0,0 +1,27 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + +#ifndef INCLUDED_RTFSCANNERHANDLER_HXX +#define INCLUDED_RTFSCANNERHANDLER_HXX + +namespace writerfilter { namespace rtftok { + +class RTFScannerHandler +{ +public: + virtual void dest(char*token, char*value)=0; + virtual void ctrl(char*token, char*value)=0; + virtual void lbrace(void)=0; + virtual void rbrace(void)=0; + virtual void addSpaces(int count)=0; + virtual void addBinData(unsigned char data)=0; + virtual void addChar(char ch) =0; + virtual void addCharU(sal_Unicode ch) =0; + virtual void addHexChar(char* hexch) =0; + +}; + +} } /* end namespace writerfilter::rtftok */ + +#endif /* INCLUDED_RTFSCANNERHANDLER_HXX */ diff --git a/writerfilter/qa/cppunittests/doctok/doctok.job b/writerfilter/qa/cppunittests/doctok/doctok.job new file mode 100644 index 000000000000..c99341dd55d9 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/doctok.job @@ -0,0 +1 @@ +doctok.test.openFile
\ No newline at end of file diff --git a/writerfilter/qa/cppunittests/doctok/export.map b/writerfilter/qa/cppunittests/doctok/export.map new file mode 100644 index 000000000000..4ca70fa85463 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/export.map @@ -0,0 +1,7 @@ +UDK_3.0 { + global: + registerAllTestFunction; + + local: + *; +}; diff --git a/writerfilter/qa/cppunittests/doctok/makefile.mk b/writerfilter/qa/cppunittests/doctok/makefile.mk new file mode 100644 index 000000000000..459ae167b495 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/makefile.mk @@ -0,0 +1,79 @@ +#************************************************************************* +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.1 $ +# +# last change: $Author: hbrinkm $ $Date: 2006-10-24 09:27:12 $ +# +# The Contents of this file are made available subject to +# the terms of GNU Lesser General Public License Version 2.1. +# +# +# GNU Lesser General Public License Version 2.1 +# ============================================= +# Copyright 2005 by Sun Microsystems, Inc. +# 901 San Antonio Road, Palo Alto, CA 94303, USA +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License version 2.1, as published by the Free Software Foundation. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# +#************************************************************************* +PRJ=..$/..$/.. + +PRJNAME=writerfilter +TARGET=test-doctok +# this is removed at the moment because we need some enhancements +# TESTDIR=TRUE + +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + + +# BEGIN ---------------------------------------------------------------- +# auto generated Target:doctok by codegen.pl +SHL1OBJS= \ + $(SLO)$/testdoctok.obj + +SHL1TARGET= testdoctok +SHL1STDLIBS=\ + $(SALLIB) \ + $(UCBHELPERLIB) \ + $(CPPUHELPERLIB) \ + $(CPPULIB) \ + $(CPPUNITLIB) + +SHL1LIBS=\ + $(SLB)$/doctok.lib +SHL1DEPS= \ + $(SHL1LIBS) + +SHL1IMPLIB= i$(SHL1TARGET) +# SHL1DEF= $(MISC)$/$(SHL1TARGET).def + +DEF1NAME =$(SHL1TARGET) +# DEF1EXPORTFILE= export.exp +SHL1VERSIONMAP= export.map +# auto generated Target:doctok +# END ------------------------------------------------------------------ + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk +.INCLUDE : _cppunit.mk diff --git a/writerfilter/qa/cppunittests/doctok/testdoctok.cxx b/writerfilter/qa/cppunittests/doctok/testdoctok.cxx new file mode 100644 index 000000000000..12674d3f1086 --- /dev/null +++ b/writerfilter/qa/cppunittests/doctok/testdoctok.cxx @@ -0,0 +1,228 @@ +// autogenerated file with codegen.pl + +#include <cppunit/simpleheader.hxx> + +#include <osl/process.h> +#include <ucbhelper/contentbroker.hxx> +#include <cppuhelper/bootstrap.hxx> +#include <com/sun/star/ucb/XSimpleFileAccess.hpp> +#include <com/sun/star/io/XInputStream.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> +#include <com/sun/star/uno/Any.hxx> +#include <com/sun/star/container/XNameContainer.hpp> + +#include <doctok/exceptions.hxx> +#include <doctok/WW8Document.hxx> +#include <doctok/WW8ResourceModel.hxx> + +#include <iostream> + +namespace testdoctok +{ + using namespace ::std; + using namespace ::com::sun::star; + using namespace doctok; + + uno::Reference<io::XInputStream> xStream; + uno::Reference<uno::XComponentContext> xContext; + WW8Document::Pointer_t pDocument; + uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > xSimpleFileAccess; + + class test : public CppUnit::TestFixture + { + + public: + // initialise your test code values here. + void setUp() + { + } + + void tearDown() + { + } + + void testInitUno() + { + bool bResult = false; + + // initialise UCB-Broker + uno::Reference<uno::XComponentContext> + xComponentContext + (::cppu::defaultBootstrap_InitialComponentContext()); + OSL_ASSERT( xComponentContext.is() ); + + xContext = xComponentContext; + + uno::Reference<lang::XMultiComponentFactory> + xFactory(xComponentContext->getServiceManager() ); + OSL_ASSERT(xFactory.is()); + + uno::Sequence<uno::Any> aUcbInitSequence(2); + aUcbInitSequence[0] <<= + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local")); + aUcbInitSequence[1] <<= + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office")); + + uno::Reference<lang::XMultiServiceFactory> + xServiceFactory(xFactory, uno::UNO_QUERY); + OSL_ASSERT( xServiceFactory.is() ); + + if (xServiceFactory.is()) + { + sal_Bool bRet = + ::ucb::ContentBroker::initialize(xServiceFactory, + aUcbInitSequence); + + OSL_ASSERT(bRet); + if (bRet) + { + uno::Reference< ::com::sun::star::ucb::XSimpleFileAccess > + xNameContainer(xFactory->createInstanceWithContext + (::rtl::OUString::createFromAscii + ("com.sun.star.ucb.SimpleFileAccess" ), + xComponentContext), uno::UNO_QUERY ); + + if (xNameContainer.is()) + { + xSimpleFileAccess = xNameContainer; + + bResult = true; + } + } + } + + CPPUNIT_ASSERT_MESSAGE("UNO initialization failed", + bResult); + } + + // insert your test code here. + void testOpenFile() + { + try + { + rtl_uString *dir=NULL; + osl_getProcessWorkingDir(&dir); + rtl_uString *fname=NULL; + //rtl_uString_newFromAscii(&fname, "/OpenDocument-v1.doc"); + rtl_uString_newFromAscii(&fname, "/test.doc"); + //rtl_uString_newFromAscii(&fname, "/numbers.doc"); + rtl_uString *absfile=NULL; + rtl_uString_newConcat(&absfile, dir, fname); + + rtl::OUString sInputFileURL( absfile ); + + for (sal_uInt32 n = 0; n < sInputFileURL.getLength(); ++n) + { + sal_uChar nC = sInputFileURL[n]; + + if (nC < 0xff && isprint(nC)) + clog << static_cast<char>(nC); + else + clog << "."; + } + + clog << endl; + + xStream = xSimpleFileAccess->openFileRead(sInputFileURL); + + WW8Stream::Pointer_t pStream = + WW8DocumentFactory::createStream(xContext, xStream); + + pDocument = WW8DocumentFactory::createDocument(pStream); + } + catch (doctok::Exception e) + { + clog << "Exception!!" << endl; + } + + CPPUNIT_ASSERT_MESSAGE("creating document failed", + pDocument != NULL); + +#if 1 + } + + void testTraversal() + { +#endif + sal_uInt32 nResult = 0; + + try + { + WW8DocumentIterator::Pointer_t pIt = pDocument->begin(); + WW8DocumentIterator::Pointer_t pItEnd = pDocument->end(); + + while (! pIt->equal(*pItEnd)) + { + pIt->dump(clog); + + clog << endl; + + WW8PropertySet::Pointer_t pAttrs = pIt->getProperties(); + + if (pAttrs != NULL) + { + pAttrs->dump(clog); + } + + pIt->getText().dump(clog); + ++(*pIt); + ++nResult; + } + } + catch (doctok::Exception e) + { + clog << "Exception!!" << endl; + } + + char sBuffer[256]; + snprintf(sBuffer, 255, "%d", nResult); + clog << "Iterator steps:" << sBuffer << endl; + + CPPUNIT_ASSERT_MESSAGE("traversing document failed", + nResult > 0); + } + + void testEvents() + { + try + { + Stream::Pointer_t pStream = doctok::createStreamHandler(); + + pDocument->resolve(*pStream); + } + catch (doctok::Exception e) + { + clog << "Exception!!" << endl; + } + } + + void testEnd() + { + ::ucb::ContentBroker::deinitialize(); + } + + // Change the following lines only, if you add, remove or rename + // member functions of the current class, + // because these macros are need by auto register mechanism. + + CPPUNIT_TEST_SUITE(test); + CPPUNIT_TEST(testInitUno); + CPPUNIT_TEST(testOpenFile); + //CPPUNIT_TEST(testTraversal); + CPPUNIT_TEST(testEvents); + CPPUNIT_TEST(testEnd); + CPPUNIT_TEST_SUITE_END(); + }; // class test + + // ----------------------------------------------------------------------------- + CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(testdoctok::test, "doctok"); +} // namespace doctok + + +// ----------------------------------------------------------------------------- + +// this macro creates an empty function, which will called by the RegisterAllFunctions() +// to let the user the possibility to also register some functions by hand. +NOADDITIONAL; + diff --git a/writerfilter/source/dmapper/ConversionHelper.cxx b/writerfilter/source/dmapper/ConversionHelper.cxx new file mode 100644 index 000000000000..8d6d70577dea --- /dev/null +++ b/writerfilter/source/dmapper/ConversionHelper.cxx @@ -0,0 +1,417 @@ +#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX +#include <ConversionHelper.hxx> +#endif +#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_ +#include <com/sun/star/table/BorderLine.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_ +#include <com/sun/star/lang/Locale.hpp> +#endif +#ifndef _TOOLS_COLOR_HXX +#include <tools/color.hxx> +#endif +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif + +using namespace com::sun::star; + +namespace dmapper{ + +#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L)) + +//line definitions in 1/100 mm +#define LINE_WIDTH_0 2 +#define LINE_WIDTH_1 36 +#define LINE_WIDTH_2 89 +#define LINE_WIDTH_3 142 +#define LINE_WIDTH_4 177 +#define LINE_WIDTH_5 18 + +#define DOUBLE_LINE0_OUT LINE_WIDTH_0 +#define DOUBLE_LINE0_IN LINE_WIDTH_0 +#define DOUBLE_LINE0_DIST LINE_WIDTH_1 + +#define DOUBLE_LINE1_OUT LINE_WIDTH_1 +#define DOUBLE_LINE1_IN LINE_WIDTH_1 +#define DOUBLE_LINE1_DIST LINE_WIDTH_1 + +#define DOUBLE_LINE2_OUT LINE_WIDTH_2 +#define DOUBLE_LINE2_IN LINE_WIDTH_2 +#define DOUBLE_LINE2_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE3_OUT LINE_WIDTH_2 +#define DOUBLE_LINE3_IN LINE_WIDTH_1 +#define DOUBLE_LINE3_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE4_OUT LINE_WIDTH_1 +#define DOUBLE_LINE4_IN LINE_WIDTH_2 +#define DOUBLE_LINE4_DIST LINE_WIDTH_1 + +#define DOUBLE_LINE5_OUT LINE_WIDTH_3 +#define DOUBLE_LINE5_IN LINE_WIDTH_2 +#define DOUBLE_LINE5_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE6_OUT LINE_WIDTH_2 +#define DOUBLE_LINE6_IN LINE_WIDTH_3 +#define DOUBLE_LINE6_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE7_OUT LINE_WIDTH_0 +#define DOUBLE_LINE7_IN LINE_WIDTH_0 +#define DOUBLE_LINE7_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE8_OUT LINE_WIDTH_1 +#define DOUBLE_LINE8_IN LINE_WIDTH_0 +#define DOUBLE_LINE8_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE9_OUT LINE_WIDTH_2 +#define DOUBLE_LINE9_IN LINE_WIDTH_0 +#define DOUBLE_LINE9_DIST LINE_WIDTH_2 + +#define DOUBLE_LINE10_OUT LINE_WIDTH_3 +#define DOUBLE_LINE10_IN LINE_WIDTH_0 +#define DOUBLE_LINE10_DIST LINE_WIDTH_2 + +sal_Int32 ConversionHelper::MakeBorderLine( sal_Int32 nSprmValue, table::BorderLine& rToFill ) +{ + //Border + //borders are defined as: + // 0x XX XX XX XX + // || || || || + // || || || ---- Line width in 1/8 pt + // || || || + // || || ------- Line type: 0 - none 1 - single ... 25 - engrave 3D and 64 - 230 page borders + // || || + // || ---------- Line color + // || + // ------------- seven bits line space + // -------------- first bit: with shading + sal_Int16 nLineThicknessTwip = (sal_Int16)((nSprmValue & 0xff) * 20)/8L ; + sal_Int32 nLineType = ((nSprmValue & 0xff00) >> 8); + sal_Int32 nLineColor = (nSprmValue & 0xff0000)>>16; + sal_Int32 nLineDistance = (((nSprmValue & 0x3f000000)>>24) * 2540 + 36)/72L; + sal_Int32 nLineThickness = TWIP_TO_MM100(nLineThicknessTwip); + + static const sal_Int32 aBorderDefColor[] = + { + COL_AUTO, COL_BLACK, COL_LIGHTBLUE, COL_LIGHTCYAN, COL_LIGHTGREEN, + COL_LIGHTMAGENTA, COL_LIGHTRED, COL_YELLOW, COL_WHITE, COL_BLUE, + COL_CYAN, COL_GREEN, COL_MAGENTA, COL_RED, COL_BROWN, COL_GRAY, + COL_LIGHTGRAY + }; + //no auto color for borders + if(!nLineColor) + ++nLineColor; + if(sal::static_int_cast<sal_uInt32>(nLineColor) < + sizeof(aBorderDefColor) / sizeof(nLineColor)) + nLineColor = aBorderDefColor[nLineColor]; + + enum eBorderCode + { + single0, single1, single2, single3, single4, single5, + double0, double1, double2, double3, double4, double5, double6, + double7, double8, double9, double10, + none + } eCodeIdx = none; + + // Map to our border types, we should use of one equal line + // thickness, or one of smaller thickness. If too small we + // can make the defecit up in additional white space or + // object size + switch(nLineType) + { + // First the single lines + case 1: + case 2: + case 5: + // and the unsupported special cases which we map to a single line + case 6: + case 7: + case 8: + case 9: + case 22: + // or if in necessary by a double line + case 24: + case 25: + if( nLineThickness < 10) + eCodeIdx = single0;// 1 Twip for us + else if( nLineThickness < 20) + eCodeIdx = single5;// 10 Twips for us + else if (nLineThickness < 50) + eCodeIdx = single1;// 20 Twips + else if (nLineThickness < 80) + eCodeIdx = single2;// 50 + else if (nLineThickness < 100) + eCodeIdx = single3;// 80 + else if (nLineThickness < 150) + eCodeIdx = single4;// 100 + // Hack: for the quite thick lines we must paint double lines, + // because our singles lines don't come thicker than 5 points. + else if (nLineThickness < 180) + eCodeIdx = double2;// 150 + else + eCodeIdx = double5;// 180 + break; + // then the shading beams which we represent by a double line + case 23: + eCodeIdx = double1; + break; + // then the double lines, for which we have good matches + case 3: + case 10: //Don't have tripple so use double + if (nLineThickness < 60) + eCodeIdx = double0;// 22 Twips for us + else if (nLineThickness < 135) + eCodeIdx = double7;// some more space + else if (nLineThickness < 180) + eCodeIdx = double1;// 60 + else + eCodeIdx = double2;// 150 + break; + case 11: + eCodeIdx = double4;// 90 Twips for us + break; + case 12: + case 13: //Don't have thin thick thin, so use thick thin + if (nLineThickness < 87) + eCodeIdx = double8;// 71 Twips for us + else if (nLineThickness < 117) + eCodeIdx = double9;// 101 + else if (nLineThickness < 166) + eCodeIdx = double10;// 131 + else + eCodeIdx = double5;// 180 + break; + case 14: + if (nLineThickness < 46) + eCodeIdx = double0;// 22 Twips for us + else if (nLineThickness < 76) + eCodeIdx = double1;// 60 + else if (nLineThickness < 121) + eCodeIdx = double4;// 90 + else if (nLineThickness < 166) + eCodeIdx = double2;// 150 + else + eCodeIdx = double6;// 180 + break; + case 15: + case 16: //Don't have thin thick thin, so use thick thin + if (nLineThickness < 46) + eCodeIdx = double0;// 22 Twips for us + else if (nLineThickness < 76) + eCodeIdx = double1;// 60 + else if (nLineThickness < 121) + eCodeIdx = double3;// 90 + else if (nLineThickness < 166) + eCodeIdx = double2;// 150 + else + eCodeIdx = double5;// 180 + break; + case 17: + if (nLineThickness < 46) + eCodeIdx = double0;// 22 Twips for us + else if (nLineThickness < 72) + eCodeIdx = double7;// 52 + else if (nLineThickness < 137) + eCodeIdx = double4;// 90 + else + eCodeIdx = double6;// 180 + break; + case 18: + case 19: //Don't have thin thick thin, so use thick thin + if (nLineThickness < 46) + eCodeIdx = double0;// 22 Twips for us + else if (nLineThickness < 62) + eCodeIdx = double7;// 52 + else if (nLineThickness < 87) + eCodeIdx = double8;// 71 + else if (nLineThickness < 117) + eCodeIdx = double9;// 101 + else if (nLineThickness < 156) + eCodeIdx = double10;// 131 + else + eCodeIdx = double5;// 180 + break; + case 20: + if (nLineThickness < 46) + eCodeIdx = single1; // 20 Twips for us + else + eCodeIdx = double1;// 60 + break; + case 21: + eCodeIdx = double1;// 60 Twips for us + break; + default: + eCodeIdx = single0; + break; + } + struct BorderDefinition + { + sal_Int16 nOut; + sal_Int16 nIn; + sal_Int16 nDist; + }; + + + static const BorderDefinition aLineTab[] = + { + /* 0*/ { LINE_WIDTH_0, 0, 0 }, + /* 1*/ { LINE_WIDTH_1, 0, 0 }, + /* 2*/ { LINE_WIDTH_2, 0, 0 }, + /* 3*/ { LINE_WIDTH_3, 0, 0 }, + /* 4*/ { LINE_WIDTH_4, 0, 0 }, + /* 5*/ { LINE_WIDTH_5, 0, 0 }, + /* 6*/ { DOUBLE_LINE0_OUT, DOUBLE_LINE0_IN, DOUBLE_LINE0_DIST }, + /* 7*/ { DOUBLE_LINE1_OUT, DOUBLE_LINE1_IN, DOUBLE_LINE1_DIST }, + /* 8*/ { DOUBLE_LINE2_OUT, DOUBLE_LINE2_IN, DOUBLE_LINE2_DIST }, + /* 9*/ { DOUBLE_LINE3_OUT, DOUBLE_LINE3_IN, DOUBLE_LINE3_DIST }, + /*10*/ { DOUBLE_LINE4_OUT, DOUBLE_LINE4_IN, DOUBLE_LINE4_DIST }, + /*11*/ { DOUBLE_LINE5_OUT, DOUBLE_LINE5_IN, DOUBLE_LINE5_DIST }, + /*12*/ { DOUBLE_LINE6_OUT, DOUBLE_LINE6_IN, DOUBLE_LINE6_DIST }, + /*13*/ { DOUBLE_LINE7_OUT, DOUBLE_LINE7_IN, DOUBLE_LINE7_DIST }, + /*14*/ { DOUBLE_LINE8_OUT, DOUBLE_LINE8_IN, DOUBLE_LINE8_DIST }, + /*15*/ { DOUBLE_LINE9_OUT, DOUBLE_LINE9_IN, DOUBLE_LINE9_DIST }, + /*16*/ { DOUBLE_LINE10_OUT,DOUBLE_LINE10_IN,DOUBLE_LINE10_DIST} + }; + + rToFill.Color = nLineColor; + rToFill.InnerLineWidth = aLineTab[eCodeIdx].nIn; + rToFill.OuterLineWidth = aLineTab[eCodeIdx].nOut; + rToFill.LineDistance = aLineTab[eCodeIdx].nDist; + return nLineDistance; +} + +void lcl_SwapQuotesInField(::rtl::OUString &rFmt) +{ + //Swap unescaped " and ' with ' and " + sal_Int32 nLen = rFmt.getLength(); + ::rtl::OUStringBuffer aBuffer( rFmt.getStr() ); + const sal_Unicode* pFmt = rFmt.getStr(); + for (sal_Int32 nI = 0; nI < nLen; ++nI) + { + if ((pFmt[nI] == '\"') && (!nI || pFmt[nI-1] != '\\')) + aBuffer.setCharAt(nI, '\''); + else if ((pFmt[nI] == '\'') && (!nI || pFmt[nI-1] != '\\')) + aBuffer.setCharAt(nI, '\"'); + } + rFmt = aBuffer.makeStringAndClear(); +} +bool lcl_IsNotAM(::rtl::OUString& rFmt, sal_Int32 nPos) +{ + return ( + (nPos == rFmt.getLength() - 1) || + ( + (rFmt.getStr()[nPos+1] != 'M') && + (rFmt.getStr()[nPos+1] != 'm') + ) + ); +} + +::rtl::OUString ConversionHelper::ConvertMSFormatStringToSO( + const ::rtl::OUString& rFormat, lang::Locale& rLocale, bool bHijri) +{ + ::rtl::OUString sFormat(rFormat); + lcl_SwapQuotesInField(sFormat); + + //#102782#, #102815#, #108341# & #111944# have to work at the same time :-) + bool bForceJapanese(false); + bool bForceNatNum(false); + sal_Int32 nLen = sFormat.getLength(); + sal_Int32 nI = 0; +// const sal_Unicode* pFormat = sFormat.getStr(); + ::rtl::OUStringBuffer aNewFormat( sFormat.getStr() ); + while (nI < nLen) + { + if (aNewFormat.charAt(nI) == '\\') + nI++; + else if (aNewFormat.charAt(nI) == '\"') + { + ++nI; + //While not at the end and not at an unescaped end quote + while ((nI < nLen) && (!(aNewFormat.charAt(nI) == '\"') && (aNewFormat.charAt(nI-1) != '\\'))) + ++nI; + } + else //normal unquoted section + { + sal_Unicode nChar = aNewFormat.charAt(nI); + if (nChar == 'O') + { + aNewFormat.setCharAt(nI, 'M'); + bForceNatNum = true; + } + else if (nChar == 'o') + { + aNewFormat.setCharAt(nI, 'm'); + bForceNatNum = true; + } + else if ((nChar == 'A') && lcl_IsNotAM(sFormat, nI)) + { + aNewFormat.setCharAt(nI, 'D'); + bForceNatNum = true; + } + else if ((nChar == 'g') || (nChar == 'G')) + bForceJapanese = true; + else if ((nChar == 'a') && lcl_IsNotAM(sFormat, nI)) + bForceJapanese = true; + else if (nChar == 'E') + { + if ((nI != nLen-1) && (aNewFormat.charAt(nI+1) == 'E')) + { + //todo: this cannot be the right way to replace a part of the string! + aNewFormat.setCharAt( nI, 'Y' ); + aNewFormat.setCharAt( nI + 1, 'Y' ); + aNewFormat.insert(nI + 2, ::rtl::OUString::createFromAscii("YY")); + nLen+=2; + nI+=3; + } + bForceJapanese = true; + } + else if (nChar == 'e') + { + if ((nI != nLen-1) && (aNewFormat.charAt(nI+1) == 'e')) + { + //todo: this cannot be the right way to replace a part of the string! + aNewFormat.setCharAt( nI, 'y' ); + aNewFormat.setCharAt( nI + 1, 'y' ); + aNewFormat.insert(nI + 2, ::rtl::OUString::createFromAscii("yy")); + nLen+=2; + nI+=3; + } + bForceJapanese = true; + } + else if (nChar == '/') + { + // MM We have to escape '/' in case it's used as a char + //todo: this cannot be the right way to replace a part of the string! + aNewFormat.setCharAt( nI, '\\' ); + aNewFormat.insert(nI + 1, ::rtl::OUString::createFromAscii("/")); + nI++; + nLen++; + } + } + ++nI; + } + + if (bForceNatNum) + bForceJapanese = true; + + if (bForceJapanese) + { + rLocale.Language = ::rtl::OUString::createFromAscii("ja"); + rLocale.Country = ::rtl::OUString::createFromAscii("JP"); + } + + if (bForceNatNum) + { + aNewFormat.insert( 0, ::rtl::OUString::createFromAscii("[NatNum1][$-411]")); + } + + if (bHijri) + { + aNewFormat.insert( 0, ::rtl::OUString::createFromAscii("[~hijri]")); + } + return aNewFormat.makeStringAndClear(); + +} + +} //namespace dmapper diff --git a/writerfilter/source/dmapper/ConversionHelper.hxx b/writerfilter/source/dmapper/ConversionHelper.hxx new file mode 100644 index 000000000000..1c6709d2b597 --- /dev/null +++ b/writerfilter/source/dmapper/ConversionHelper.hxx @@ -0,0 +1,31 @@ +#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX +#define INCLUDED_DMAPPER_CONVERSIONHELPER_HXX + +#ifndef _SAL_TYPES_H_ +#include <sal/types.h> +#endif +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif + +namespace com{ namespace sun{ namespace star{ + namespace lang{ + struct Locale; + } + namespace table{ + struct BorderLine; +}}}} + + +namespace dmapper{ +namespace ConversionHelper{ + + // create a border line and return the distance value + sal_Int32 MakeBorderLine( sal_Int32 nSprmValue, ::com::sun::star::table::BorderLine& rToFill ); + //convert the number format string form MS format to SO format + ::rtl::OUString ConvertMSFormatStringToSO( + const ::rtl::OUString& rFormat, ::com::sun::star::lang::Locale& rLocale, bool bHijri); + +} // namespace ConversionHelper +} //namespace dmapper +#endif diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx new file mode 100644 index 000000000000..da8cf42efe7a --- /dev/null +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -0,0 +1,1394 @@ +#ifndef INCLUDED_DOMAINMAPPER_HXX +#include <dmapper/DomainMapper.hxx> +#endif +#ifndef INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX +#include <DomainMapper_Impl.hxx> +#endif +#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX +#include <ConversionHelper.hxx> +#endif +#ifndef INCLUDED_I18NPOOL_MSLANGID_HXX +#include <i18npool/mslangid.hxx> +#endif +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XTextCursor.hpp> +#include <com/sun/star/text/XTextPortionAppend.hpp> +#include <com/sun/star/text/XParagraphAppend.hpp> +#ifndef _COM_SUN_STAR_AWT_FONTRELIEF_HPP_ +#include <com/sun/star/awt/FontRelief.hpp> +#endif +#ifndef _COM_SUN_STAR_AWT_FONTWEIGHT_HPP_ +#include <com/sun/star/awt/FontWeight.hpp> +#endif +#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_ +#include <com/sun/star/awt/FontUnderline.hpp> +#endif +#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_ +#include <com/sun/star/awt/FontStrikeout.hpp> +#endif +#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_ +#include <com/sun/star/awt/FontSlant.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_ +#include <com/sun/star/container/XIndexReplace.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_PARAGRAPHADJUST_HPP_ +#include <com/sun/star/style/ParagraphAdjust.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_CASEMAP_HPP_ +#include <com/sun/star/style/CaseMap.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_LINESPACING_HPP_ +#include <com/sun/star/style/LineSpacing.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_LINESPACINGMODE_HPP_ +#include <com/sun/star/style/LineSpacingMode.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_ +#include <com/sun/star/table/BorderLine.hpp> +#endif +#include <comphelper/types.hxx> + +#include <rtl/ustrbuf.hxx> +#include <boost/shared_ptr.hpp> +#include <com/sun/star/uno/Any.hxx> +#ifndef _TOOLS_COLOR_HXX +#include <tools/color.hxx> +#endif +#include <vector> +#include <iostream> + +using namespace ::com::sun::star; +using namespace ::rtl; +using namespace ::writerfilter; +namespace dmapper{ +sal_Int32 lcl_ConvertColor(sal_Int32 nIntValue) +{ + + sal_uInt8 + r(static_cast<sal_uInt8>(nIntValue&0xFF)), + g(static_cast<sal_uInt8>(((nIntValue)>>8)&0xFF)), + b(static_cast<sal_uInt8>((nIntValue>>16)&0xFF)), + t(static_cast<sal_uInt8>((nIntValue>>24)&0xFF)); + sal_Int32 nRet = (t<<24) + (r<<16) + (g<<8) + b; + return nRet; +} + +/*-- 09.06.2006 09:52:11--------------------------------------------------- + + -----------------------------------------------------------------------*/ +DomainMapper::DomainMapper(uno::Reference< lang::XComponent > xModel) : + m_pImpl( new DomainMapper_Impl( *this, xModel )) +{ +} +/*-- 09.06.2006 09:52:12--------------------------------------------------- + + -----------------------------------------------------------------------*/ +DomainMapper::~DomainMapper() +{ +} +/*-- 09.06.2006 09:52:12--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::attribute(doctok::Id Name, doctok::Value & val) +{ + sal_Int32 nIntValue = val.getInt(); + if( Name >= NS_rtf::LN_WIDENT && Name <= NS_rtf::LN_LCBSTTBFUSSR ) + m_pImpl->GetFIB().SetData( Name, nIntValue ); + else + { + switch( Name ) + { + case NS_rtf::LN_ISTD: //index of applied style + { + //search for the style with the given id and apply it + //as CharStyleName or ParaStyleName + const StyleSheetEntry* pEntry = m_pImpl->GetStyleSheetTable()->FindStyleSheetByISTD(nIntValue); + if(pEntry) + { + bool bParaStyle = pEntry->nPropertyCalls > 1; + if(bParaStyle) + m_pImpl->SetCurrentParaStyleId(nIntValue); + m_pImpl->GetTopContext()->Insert( + bParaStyle ? + PROP_PARA_STYLE_NAME : PROP_CHAR_STYLE_NAME, + uno::makeAny( pEntry->sStyleName ) ); + } + } + break; + // case NS_rtf::LN_ISTARTAT: break; + // case NS_rtf::LN_NFC: break; + // case NS_rtf::LN_FLEGAL: break; + // case NS_rtf::LN_FNORESTART: break; + // case NS_rtf::LN_FPREV: break; + // case NS_rtf::LN_FPREVSPACE: break; + // case NS_rtf::LN_FWORD6: break; + // case NS_rtf::LN_UNUSED5_7: break; + // case NS_rtf::LN_RGBXCHNUMS: break; + // case NS_rtf::LN_IXCHFOLLOW: break; + // case NS_rtf::LN_DXASPACE: break; + // case NS_rtf::LN_DXAINDENT: break; + // case NS_rtf::LN_CBGRPPRLCHPX: break; + // case NS_rtf::LN_CBGRPPRLPAPX: break; + // case NS_rtf::LN_LSID: break; + // case NS_rtf::LN_TPLC: break; + // case NS_rtf::LN_RGISTD: break; + // case NS_rtf::LN_FSIMPLELIST: break; + // case NS_rtf::LN_FRESTARTHDN: break; + // case NS_rtf::LN_UNSIGNED26_2: break; + // case NS_rtf::LN_ILVL: break; + // case NS_rtf::LN_FSTARTAT: break; + // case NS_rtf::LN_FFORMATTING: break; + // case NS_rtf::LN_UNSIGNED4_6: break; + // case NS_rtf::LN_UNUSED4: break; + // case NS_rtf::LN_UNUSED8: break; + // case NS_rtf::LN_CLFOLVL: break; + // case NS_rtf::LN_CBFFNM1: break; + // case NS_rtf::LN_PRQ: break; + // case NS_rtf::LN_FTRUETYPE: break; + // case NS_rtf::LN_UNUSED1_3: break; + // case NS_rtf::LN_FF: break; + // case NS_rtf::LN_UNUSED1_7: break; + // case NS_rtf::LN_WWEIGHT: break; + case NS_rtf::LN_CHS: + { + m_pImpl->GetFIB().SetLNCHS( nIntValue ); + } + break; + break; + // case NS_rtf::LN_IXCHSZALT: break; + // case NS_rtf::LN_PANOSE: break; + // case NS_rtf::LN_FS: break; + // case NS_rtf::LN_STI: break; + // case NS_rtf::LN_FSCRATCH: break; + // case NS_rtf::LN_FINVALHEIGHT: break; + // case NS_rtf::LN_FHASUPE: break; + // case NS_rtf::LN_FMASSCOPY: break; + // case NS_rtf::LN_SGC: break; + // case NS_rtf::LN_ISTDBASE: break; + // case NS_rtf::LN_CUPX: break; + // case NS_rtf::LN_ISTDNEXT: break; + // case NS_rtf::LN_BCHUPE: break; + // case NS_rtf::LN_FAUTOREDEF: break; + // case NS_rtf::LN_FHIDDEN: break; + // case NS_rtf::LN_UNUSED8_3: break; + // case NS_rtf::LN_CSTD: break; + // case NS_rtf::LN_CBSTDBASEINFILE: break; + // case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break; + // case NS_rtf::LN_UNUSED4_2: break; + // case NS_rtf::LN_STIMAXWHENSAVED: break; + // case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break; + // case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break; + // case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break; + /* case NS_rtf::LN_WIDENT: case NS_rtf::LN_NFIB: case NS_rtf::LN_NPRODUCT: case NS_rtf::LN_LID: case NS_rtf::LN_PNNEXT: case NS_rtf::LN_FDOT: case NS_rtf::LN_FGLSY: case NS_rtf::LN_FCOMPLEX: case NS_rtf::LN_FHASPIC: + case NS_rtf::LN_CQUICKSAVES: case NS_rtf::LN_FENCRYPTED: case NS_rtf::LN_FWHICHTBLSTM: case NS_rtf::LN_FREADONLYRECOMMENDED: case NS_rtf::LN_FWRITERESERVATION: case NS_rtf::LN_FEXTCHAR: case NS_rtf::LN_FLOADOVERRIDE: case NS_rtf::LN_FFAREAST: + case NS_rtf::LN_FCRYPTO: case NS_rtf::LN_NFIBBACK: case NS_rtf::LN_LKEY: case NS_rtf::LN_ENVR: case NS_rtf::LN_FMAC: case NS_rtf::LN_FEMPTYSPECIAL: case NS_rtf::LN_FLOADOVERRIDEPAGE: case NS_rtf::LN_FFUTURESAVEDUNDO: + case NS_rtf::LN_FWORD97SAVED: case NS_rtf::LN_FSPARE0: case NS_rtf::LN_CHSTABLES: case NS_rtf::LN_FCMIN: case NS_rtf::LN_FCMAC: case NS_rtf::LN_CSW: case NS_rtf::LN_WMAGICCREATED: case NS_rtf::LN_WMAGICREVISED: case NS_rtf::LN_WMAGICCREATEDPRIVATE: + case NS_rtf::LN_WMAGICREVISEDPRIVATE: case NS_rtf::LN_PNFBPCHPFIRST_W6: case NS_rtf::LN_PNCHPFIRST_W6: case NS_rtf::LN_CPNBTECHP_W6: case NS_rtf::LN_PNFBPPAPFIRST_W6: case NS_rtf::LN_PNPAPFIRST_W6: case NS_rtf::LN_CPNBTEPAP_W6: case NS_rtf::LN_PNFBPLVCFIRST_W6: + case NS_rtf::LN_PNLVCFIRST_W6: case NS_rtf::LN_CPNBTELVC_W6: case NS_rtf::LN_LIDFE: case NS_rtf::LN_CLW: case NS_rtf::LN_CBMAC: case NS_rtf::LN_LPRODUCTCREATED: case NS_rtf::LN_LPRODUCTREVISED: case NS_rtf::LN_CCPTEXT: + case NS_rtf::LN_CCPFTN: case NS_rtf::LN_CCPHDD: case NS_rtf::LN_CCPMCR: case NS_rtf::LN_CCPATN: case NS_rtf::LN_CCPEDN: case NS_rtf::LN_CCPTXBX: case NS_rtf::LN_CCPHDRTXBX: case NS_rtf::LN_PNFBPCHPFIRST: case NS_rtf::LN_PNCHPFIRST: case NS_rtf::LN_CPNBTECHP: + case NS_rtf::LN_PNFBPPAPFIRST: case NS_rtf::LN_PNPAPFIRST: case NS_rtf::LN_CPNBTEPAP: case NS_rtf::LN_PNFBPLVCFIRST: case NS_rtf::LN_PNLVCFIRST: case NS_rtf::LN_CPNBTELVC: case NS_rtf::LN_FCISLANDFIRST: case NS_rtf::LN_FCISLANDLIM: case NS_rtf::LN_CFCLCB: case NS_rtf::LN_FCSTSHFORIG: + case NS_rtf::LN_LCBSTSHFORIG: case NS_rtf::LN_FCSTSHF: case NS_rtf::LN_LCBSTSHF: case NS_rtf::LN_FCPLCFFNDREF: case NS_rtf::LN_LCBPLCFFNDREF: case NS_rtf::LN_FCPLCFFNDTXT: case NS_rtf::LN_LCBPLCFFNDTXT: case NS_rtf::LN_FCPLCFANDREF: case NS_rtf::LN_LCBPLCFANDREF: case NS_rtf::LN_FCPLCFANDTXT: case NS_rtf::LN_LCBPLCFANDTXT: case NS_rtf::LN_FCPLCFSED: case NS_rtf::LN_LCBPLCFSED: + case NS_rtf::LN_FCPLCFPAD: case NS_rtf::LN_LCBPLCFPAD: case NS_rtf::LN_FCPLCFPHE: case NS_rtf::LN_LCBPLCFPHE: case NS_rtf::LN_FCSTTBFGLSY: case NS_rtf::LN_LCBSTTBFGLSY: case NS_rtf::LN_FCPLCFGLSY: case NS_rtf::LN_LCBPLCFGLSY: case NS_rtf::LN_FCPLCFHDD: case NS_rtf::LN_LCBPLCFHDD: case NS_rtf::LN_FCPLCFBTECHPX: case NS_rtf::LN_LCBPLCFBTECHPX: + case NS_rtf::LN_FCPLCFBTEPAPX: case NS_rtf::LN_LCBPLCFBTEPAPX: case NS_rtf::LN_FCPLCFSEA: case NS_rtf::LN_LCBPLCFSEA: case NS_rtf::LN_FCSTTBFFFN: case NS_rtf::LN_LCBSTTBFFFN: case NS_rtf::LN_FCPLCFFLDMOM: case NS_rtf::LN_LCBPLCFFLDMOM: case NS_rtf::LN_FCPLCFFLDHDR: case NS_rtf::LN_LCBPLCFFLDHDR: + case NS_rtf::LN_FCPLCFFLDFTN: case NS_rtf::LN_LCBPLCFFLDFTN: case NS_rtf::LN_FCPLCFFLDATN: case NS_rtf::LN_LCBPLCFFLDATN: case NS_rtf::LN_FCPLCFFLDMCR: case NS_rtf::LN_LCBPLCFFLDMCR: case NS_rtf::LN_FCSTTBFBKMK: case NS_rtf::LN_LCBSTTBFBKMK: case NS_rtf::LN_FCPLCFBKF: case NS_rtf::LN_LCBPLCFBKF: case NS_rtf::LN_FCPLCFBKL: case NS_rtf::LN_LCBPLCFBKL: + case NS_rtf::LN_FCCMDS: case NS_rtf::LN_LCBCMDS: case NS_rtf::LN_FCPLCMCR: case NS_rtf::LN_LCBPLCMCR: case NS_rtf::LN_FCSTTBFMCR: case NS_rtf::LN_LCBSTTBFMCR: case NS_rtf::LN_FCPRDRVR: case NS_rtf::LN_LCBPRDRVR: case NS_rtf::LN_FCPRENVPORT: case NS_rtf::LN_LCBPRENVPORT: case NS_rtf::LN_FCPRENVLAND: case NS_rtf::LN_LCBPRENVLAND: + case NS_rtf::LN_FCWSS: case NS_rtf::LN_LCBWSS: case NS_rtf::LN_FCDOP: case NS_rtf::LN_LCBDOP: case NS_rtf::LN_FCSTTBFASSOC: case NS_rtf::LN_LCBSTTBFASSOC: case NS_rtf::LN_FCCLX: case NS_rtf::LN_LCBCLX: case NS_rtf::LN_FCPLCFPGDFTN: case NS_rtf::LN_LCBPLCFPGDFTN: case NS_rtf::LN_FCAUTOSAVESOURCE: + case NS_rtf::LN_LCBAUTOSAVESOURCE: case NS_rtf::LN_FCGRPXSTATNOWNERS: case NS_rtf::LN_LCBGRPXSTATNOWNERS: case NS_rtf::LN_FCSTTBFATNBKMK: case NS_rtf::LN_LCBSTTBFATNBKMK: case NS_rtf::LN_FCPLCDOAMOM: case NS_rtf::LN_LCBPLCDOAMOM: case NS_rtf::LN_FCPLCDOAHDR: case NS_rtf::LN_LCBPLCDOAHDR: case NS_rtf::LN_FCPLCSPAMOM: case NS_rtf::LN_LCBPLCSPAMOM: case NS_rtf::LN_FCPLCSPAHDR: + case NS_rtf::LN_LCBPLCSPAHDR: case NS_rtf::LN_FCPLCFATNBKF: case NS_rtf::LN_LCBPLCFATNBKF: case NS_rtf::LN_FCPLCFATNBKL: case NS_rtf::LN_LCBPLCFATNBKL: case NS_rtf::LN_FCPMS: case NS_rtf::LN_LCBPMS: case NS_rtf::LN_FCFORMFLDSTTBF: case NS_rtf::LN_LCBFORMFLDSTTBF: case NS_rtf::LN_FCPLCFENDREF: + case NS_rtf::LN_LCBPLCFENDREF: case NS_rtf::LN_FCPLCFENDTXT: case NS_rtf::LN_LCBPLCFENDTXT: case NS_rtf::LN_FCPLCFFLDEDN: case NS_rtf::LN_LCBPLCFFLDEDN: case NS_rtf::LN_FCPLCFPGDEDN: case NS_rtf::LN_LCBPLCFPGDEDN: case NS_rtf::LN_FCDGGINFO: case NS_rtf::LN_LCBDGGINFO: case NS_rtf::LN_FCSTTBFRMARK: + case NS_rtf::LN_LCBSTTBFRMARK: case NS_rtf::LN_FCSTTBFCAPTION: case NS_rtf::LN_LCBSTTBFCAPTION: case NS_rtf::LN_FCSTTBFAUTOCAPTION: case NS_rtf::LN_LCBSTTBFAUTOCAPTION: case NS_rtf::LN_FCPLCFWKB: case NS_rtf::LN_LCBPLCFWKB: case NS_rtf::LN_FCPLCFSPL: case NS_rtf::LN_LCBPLCFSPL: case NS_rtf::LN_FCPLCFTXBXTXT: case NS_rtf::LN_LCBPLCFTXBXTXT: + case NS_rtf::LN_FCPLCFFLDTXBX: case NS_rtf::LN_LCBPLCFFLDTXBX: case NS_rtf::LN_FCPLCFHDRTXBXTXT: case NS_rtf::LN_LCBPLCFHDRTXBXTXT: case NS_rtf::LN_FCPLCFFLDHDRTXBX: case NS_rtf::LN_LCBPLCFFLDHDRTXBX: case NS_rtf::LN_FCSTWUSER: case NS_rtf::LN_LCBSTWUSER: case NS_rtf::LN_FCSTTBTTMBD: case NS_rtf::LN_LCBSTTBTTMBD: + case NS_rtf::LN_FCUNUSED: case NS_rtf::LN_LCBUNUSED: case NS_rtf::LN_FCPGDMOTHER: case NS_rtf::LN_LCBPGDMOTHER: case NS_rtf::LN_FCBKDMOTHER: case NS_rtf::LN_LCBBKDMOTHER: case NS_rtf::LN_FCPGDFTN: case NS_rtf::LN_LCBPGDFTN: case NS_rtf::LN_FCBKDFTN: case NS_rtf::LN_LCBBKDFTN: case NS_rtf::LN_FCPGDEDN: case NS_rtf::LN_LCBPGDEDN: + case NS_rtf::LN_FCBKDEDN: case NS_rtf::LN_LCBBKDEDN: case NS_rtf::LN_FCSTTBFINTLFLD: case NS_rtf::LN_LCBSTTBFINTLFLD: case NS_rtf::LN_FCROUTESLIP: case NS_rtf::LN_LCBROUTESLIP: case NS_rtf::LN_FCSTTBSAVEDBY: case NS_rtf::LN_LCBSTTBSAVEDBY: case NS_rtf::LN_FCSTTBFNM: case NS_rtf::LN_LCBSTTBFNM: case NS_rtf::LN_FCPLCFLST: + case NS_rtf::LN_LCBPLCFLST: case NS_rtf::LN_FCPLFLFO: case NS_rtf::LN_LCBPLFLFO: case NS_rtf::LN_FCPLCFTXBXBKD: case NS_rtf::LN_LCBPLCFTXBXBKD: case NS_rtf::LN_FCPLCFTXBXHDRBKD: case NS_rtf::LN_LCBPLCFTXBXHDRBKD: case NS_rtf::LN_FCDOCUNDO: case NS_rtf::LN_LCBDOCUNDO: case NS_rtf::LN_FCRGBUSE: case NS_rtf::LN_LCBRGBUSE: + case NS_rtf::LN_FCUSP: case NS_rtf::LN_LCBUSP: case NS_rtf::LN_FCUSKF: case NS_rtf::LN_LCBUSKF: case NS_rtf::LN_FCPLCUPCRGBUSE: case NS_rtf::LN_LCBPLCUPCRGBUSE: case NS_rtf::LN_FCPLCUPCUSP: case NS_rtf::LN_LCBPLCUPCUSP: case NS_rtf::LN_FCSTTBGLSYSTYLE: + case NS_rtf::LN_LCBSTTBGLSYSTYLE: case NS_rtf::LN_FCPLGOSL: case NS_rtf::LN_LCBPLGOSL: case NS_rtf::LN_FCPLCOCX: case NS_rtf::LN_LCBPLCOCX: case NS_rtf::LN_FCPLCFBTELVC: case NS_rtf::LN_LCBPLCFBTELVC: case NS_rtf::LN_DWLOWDATETIME: case NS_rtf::LN_DWHIGHDATETIME: case NS_rtf::LN_FCPLCFLVC: case NS_rtf::LN_LCBPLCFLVC: case NS_rtf::LN_FCPLCASUMY: + case NS_rtf::LN_LCBPLCASUMY: case NS_rtf::LN_FCPLCFGRAM: case NS_rtf::LN_LCBPLCFGRAM: case NS_rtf::LN_FCSTTBLISTNAMES: case NS_rtf::LN_LCBSTTBLISTNAMES: case NS_rtf::LN_FCSTTBFUSSR: + case NS_rtf::LN_LCBSTTBFUSSR: { + m_pImpl->GetFIB().SetData( Name, nIntValue ); + } + break;*/ + case NS_rtf::LN_FN: + case NS_rtf::LN_FCSEPX: + case NS_rtf::LN_FNMPR: + case NS_rtf::LN_FCMPR: + //section descriptor, unused or internally used + break; + // case NS_rtf::LN_ICOFORE: break; + // case NS_rtf::LN_ICOBACK: break; + // case NS_rtf::LN_IPAT: break; + // case NS_rtf::LN_SHDFORECOLOR: break; + // case NS_rtf::LN_SHDBACKCOLOR: break; + // case NS_rtf::LN_SHDPATTERN: break; + // case NS_rtf::LN_DPTLINEWIDTH: break; + // case NS_rtf::LN_BRCTYPE: break; + // case NS_rtf::LN_ICO: break; + // case NS_rtf::LN_DPTSPACE: break; + // case NS_rtf::LN_FSHADOW: break; + // case NS_rtf::LN_FFRAME: break; + // case NS_rtf::LN_UNUSED2_15: break; + // case NS_rtf::LN_FFIRSTMERGED: break; + // case NS_rtf::LN_FMERGED: break; + // case NS_rtf::LN_FVERTICAL: break; + // case NS_rtf::LN_FBACKWARD: break; + // case NS_rtf::LN_FROTATEFONT: break; + // case NS_rtf::LN_FVERTMERGE: break; + // case NS_rtf::LN_FVERTRESTART: break; + // case NS_rtf::LN_VERTALIGN: break; + // case NS_rtf::LN_FUNUSED: break; + // case NS_rtf::LN_WUNUSED: break; + // case NS_rtf::LN_BRCTOP: break; + // case NS_rtf::LN_BRCLEFT: break; + // case NS_rtf::LN_BRCBOTTOM: break; + // case NS_rtf::LN_BRCRIGHT: break; + // case NS_rtf::LN_IBKL: break; + // case NS_rtf::LN_ITCFIRST: break; + // case NS_rtf::LN_FPUB: break; + // case NS_rtf::LN_ITCLIM: break; + // case NS_rtf::LN_FCOL: break; + // case NS_rtf::LN_LINECOLOR: break; + // case NS_rtf::LN_LINEWIDTH: break; + // case NS_rtf::LN_LINETYPE: break; + // case NS_rtf::LN_MM: break; + // case NS_rtf::LN_XEXT: break; + // case NS_rtf::LN_YEXT: break; + // case NS_rtf::LN_HMF: break; + // case NS_rtf::LN_LCB: break; + // case NS_rtf::LN_CBHEADER: break; + // case NS_rtf::LN_MFP: break; + // case NS_rtf::LN_BM_RCWINMF: break; + // case NS_rtf::LN_DXAGOAL: break; + // case NS_rtf::LN_DYAGOAL: break; + // case NS_rtf::LN_MX: break; + // case NS_rtf::LN_MY: break; + // case NS_rtf::LN_DXACROPLEFT: break; + // case NS_rtf::LN_DYACROPTOP: break; + // case NS_rtf::LN_DXACROPRIGHT: break; + // case NS_rtf::LN_DYACROPBOTTOM: break; + // case NS_rtf::LN_BRCL: break; + // case NS_rtf::LN_FFRAMEEMPTY: break; + // case NS_rtf::LN_FBITMAP: break; + // case NS_rtf::LN_FDRAWHATCH: break; + // case NS_rtf::LN_FERROR: break; + // case NS_rtf::LN_BPP: break; + // case NS_rtf::LN_DXAORIGIN: break; + // case NS_rtf::LN_DYAORIGIN: break; + // case NS_rtf::LN_CPROPS: break; + // case NS_rtf::LN_LINEPROPSTOP: break; + // case NS_rtf::LN_LINEPROPSLEFT: break; + // case NS_rtf::LN_LINEPROPSBOTTOM: break; + // case NS_rtf::LN_LINEPROPSRIGHT: break; + // case NS_rtf::LN_LINEPROPSHORIZONTAL: break; + // case NS_rtf::LN_LINEPROPSVERTICAL: break; + // case NS_rtf::LN_headerr: break; + // case NS_rtf::LN_footerr: break; + // case NS_rtf::LN_endnote: break; + // case NS_rtf::LN_BOOKMARKNAME: break; + + // case NS_rtf::LN_LISTLEVEL: break; + // case NS_rtf::LN_LFO: break; + // case NS_rtf::LN_F: break; + // case NS_rtf::LN_ALTFONTNAME: break; + // case NS_rtf::LN_XSZFFN: break; + // case NS_rtf::LN_XSTZNAME: break; + // case NS_rtf::LN_XSTZNAME1: break; + // case NS_rtf::LN_UPXSTART: break; + // case NS_rtf::LN_UPX: break; + case NS_rtf::LN_sed: + { + //section properties + doctok::Reference<Properties>::Pointer_t pProperties = val.getProperties(); + if( pProperties.get()) + { + pProperties->resolve(*this); + } + } + break; + case NS_rtf::LN_tbdAdd: // + { + doctok::Reference<Properties>::Pointer_t pProperties = val.getProperties(); + if( pProperties.get()) + { + pProperties->resolve(*this); + //increment to the next tab stop + m_pImpl->NextTabStop(); + } + } + break; + case NS_rtf::LN_dxaDel: //deleted tab + case NS_rtf::LN_dxaAdd: //set tab + case NS_rtf::LN_TLC: //tab leading characters - for decimal tabs + case NS_rtf::LN_JC: //tab justification + m_pImpl->ModifyCurrentTabStop(Name, nIntValue); + break; + case NS_rtf::LN_UNUSED0_6: // really unused + break; + // case NS_rtf::LN_picf: break; + // case NS_rtf::LN_rgbrc: break; + // case NS_rtf::LN_shd: break; + // case NS_rtf::LN_cellShd: break; + // case NS_rtf::LN_cellTopColor: break; + // case NS_rtf::LN_cellLeftColor: break; + // case NS_rtf::LN_cellBottomColor: break; + // case NS_rtf::LN_cellRightColor: break; + + // case NS_rtf::LN_LISTTABLE: break; + // case NS_rtf::LN_LFOTABLE: break; + // case NS_rtf::LN_FONTTABLE: break; + // case NS_rtf::LN_STYLESHEET: break; + default: + { + //int nVal = val.getInt(); + } + } + } +} +/*-- 09.06.2006 09:52:12--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::sprm(doctok::Sprm & sprm_) +{ + m_pImpl->getTableManager().sprm(sprm_); + + DomainMapper::sprm( sprm_, m_pImpl->GetTopContext() ); +} +/*-- 20.06.2006 09:58:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::sprm( doctok::Sprm& sprm_, PropertyMapPtr rContext, SprmType eSprmType ) +{ + OSL_ENSURE(rContext.get(), "PropertyMap has to be valid!"); + if(!rContext.get()) + return ; + sal_uInt32 nId = sprm_.getId(); + + //TODO: In rtl-paragraphs the meaning of left/right are to be exchanged + bool bExchangeLeftRight = false; + // if( nId == 0x2461 && AlreadyInRTLPara() ) + // bExchangeLeftRight = true; + doctok::Value::Pointer_t pValue = sprm_.getValue(); + sal_Int32 nIntValue = pValue->getInt(); + /* WRITERFILTERSTATUS: table: sprmdata */ + switch(nId) + { +// case 2: // sprmPIstd +// case 0x4600: break; // sprmPIstd - style code +// case 3: // "sprmPIstdPermute +// case 0xC601: break; // sprmPIstdPermute +// case 0x2602: break; // sprmPIncLvl + case 0x2461: // sprmPJc Asian (undocumented) + case 0x2403: // sprmPJc + { + sal_Int16 nAdjust = 0; + sal_Int16 nLastLineAdjust = 0; + switch(nIntValue) + { + case 0: nAdjust = static_cast< sal_Int16 > ( + bExchangeLeftRight ? style::ParagraphAdjust_RIGHT : style::ParagraphAdjust_LEFT); + break; + case 1: nAdjust = style::ParagraphAdjust_CENTER; break; + case 2: nAdjust = static_cast< sal_Int16 > ( + bExchangeLeftRight ? style::ParagraphAdjust_LEFT : style::ParagraphAdjust_RIGHT); + break; + case 4: + nLastLineAdjust = style::ParagraphAdjust_BLOCK; + //no break; + case 3: nAdjust = style::ParagraphAdjust_BLOCK; break; + } + rContext->Insert( PROP_PARA_ADJUST, uno::makeAny( nAdjust ) ); + rContext->Insert( PROP_PARA_LAST_LINE_ADJUST, uno::makeAny( nLastLineAdjust ) ); + } + break; +// case 0x2404: break; // sprmPFSideBySide + case 0x2405: // sprmPFKeep + { + } + break; + case 0x2406: // sprmPFKeepFollow + /* WRITERFILTERSTATUS: done: 100, planned: 0, spent: 1 */ + /* WRITERFILTERSTATUS: comment: */ + rContext->Insert(PROP_PARA_KEEP_TOGETHER, uno::makeAny( nIntValue ? true : false) ); + break; +// case 0x2407: break; // sprmPFPageBreakBefore +// case 0x2408: break; // sprmPBrcl +// case 0x2409: break; // sprmPBrcp + case 0x260A: // sprmPIlvl + rContext->Insert( PROP_NUMBERING_LEVEL, uno::makeAny( (sal_Int16)nIntValue )); + break; + case 0x460B: // sprmPIlfo + { + //convert the ListTable entry to a NumberingRules propery and apply it + sal_Int32 nListId = m_pImpl->GetLFOTable()->GetListID( nIntValue ); + if(nListId >= 0) + { + ListTablePtr pListTable = m_pImpl->GetListTable(); + rContext->Insert( PROP_NUMBERING_RULES, + uno::makeAny(pListTable->GetNumberingRules(nListId))); + //TODO: Merge overwrittern numbering levels from LFO table + } + } + break; + case 0x240C: // sprmPFNoLineNumb + rContext->Insert(PROP_PARA_LINE_NUMBER_COUNT, uno::makeAny( nIntValue ? false : true) ); + break; + case 0xC60D: // sprmPChgTabsPapx + { + /* WRITERFILTERSTATUS: done: 90, planned: 8, spent: 8 */ + /* WRITERFILTERSTATUS: comment: bar tab stops a unavailable */ + doctok::Reference<Properties>::Pointer_t pProperties = sprm_.getProps(); + // Initialize tab stop vector from style sheet + uno::Any aValue = m_pImpl->GetPropertyFromStyleSheet(PROP_PARA_TAB_STOPS); + uno::Sequence< style::TabStop > aStyleTabStops; + if(aValue >>= aStyleTabStops) + { + m_pImpl->InitTabStopFromStyle( aStyleTabStops ); + } + + //create a new tab stop property - this is done with the contained properties + if( pProperties.get()) + pProperties->resolve(*this); + //add this property + rContext->Insert(PROP_PARA_TAB_STOPS, uno::makeAny( m_pImpl->GetCurrentTabStopAndClear())); + } + break; + case 0x845d: //right margin Asian - undocumented + case 0x845e: //left margin Asian - undocumented + case 16: // sprmPDxaRight - right margin + case 0x840E: // sprmPDxaRight - right margin + case 17: + case 0x840F: // sprmPDxaLeft + if( 0x840e == nId || 0x17 == nId|| (bExchangeLeftRight && nId == 0x845d) || ( !bExchangeLeftRight && nId == 0x845e)) + rContext->Insert( + eSprmType == SPRM_DEFAULT ? PROP_PARA_LEFT_MARGIN : PROP_LEFT_MARGIN, + + uno::makeAny( lcl_convertToMM100(nIntValue ) )); + else if(eSprmType == SPRM_DEFAULT) + rContext->Insert( + PROP_PARA_RIGHT_MARGIN, + uno::makeAny( lcl_convertToMM100(nIntValue ) )); + //TODO: what happens to the right margins in numberings? + break; + case 18: // sprmPNest + case 0x4610: // sprmPNest + //not handled in the old WW8 filter + break; + case 0x8460: //first line indent Asian - undocumented + case 19: + case 0x8411: // sprmPDxaLeft1 + rContext->Insert( + eSprmType == SPRM_DEFAULT ? PROP_PARA_FIRST_LINE_INDENT : PROP_FIRST_LINE_OFFSET, + uno::makeAny( lcl_convertToMM100(nIntValue ) )); + break; + case 20 : // sprmPDyaLine + case 0x6412: // sprmPDyaLine + { + style::LineSpacing aSpacing; + sal_Int16 nDistance = sal_Int16(nIntValue & 0xffff); + if(nIntValue & 0xffff0000) + { + // single line in Writer is 100, in Word it is 240 + aSpacing.Mode = style::LineSpacingMode::PROP; + aSpacing.Height = sal_Int16(sal_Int32(nDistance) * 100 /240); + } + else + { + if(nDistance < 0) + { + aSpacing.Mode = style::LineSpacingMode::FIX; + aSpacing.Height = sal_Int16(lcl_convertToMM100(-nDistance)); + } + else if(nDistance >0) + { + aSpacing.Mode = style::LineSpacingMode::MINIMUM; + aSpacing.Height = sal_Int16(lcl_convertToMM100(nDistance)); + } + } + rContext->Insert(PROP_PARA_LINE_SPACING, uno::makeAny( aSpacing )); + } + break; + case 21 : // legacy version + case 0xA413: // sprmPDyaBefore + rContext->Insert(PROP_PARA_TOP_MARGIN, uno::makeAny( lcl_convertToMM100( nIntValue ) )); + break; + case 22 : + case 0xA414: // sprmPDyaAfter + rContext->Insert(PROP_PARA_BOTTOM_MARGIN, uno::makeAny( lcl_convertToMM100( nIntValue ) )); + break; + + case 23: //sprmPChgTabs + case 0xC615: // sprmPChgTabs + OSL_ASSERT("unhandled"); + //tabs of list level? + break; +// case 24: // "sprmPFInTable" +// case 0x2416: break; // sprmPFInTable +// case 25: // "sprmPTtp" pap.fTtp +// case 0x2417: // sprmPFTtp +// was: Read_TabRowEnd +// break; +// case 26: // "sprmPDxaAbs +// case 0x8418: break; // sprmPDxaAbs +// case 27: //sprmPDyaAbs +// case 0x8419: break; // sprmPDyaAbs +// case 0x841A: break; // sprmPDxaWidth +// case 0x261B: break; // sprmPPc +// case 0x461C: break; // sprmPBrcTop10 +// case 0x461D: break; // sprmPBrcLeft10 +// case 0x461E: break; // sprmPBrcBottom10 +// case 0x461F: break; // sprmPBrcRight10 +// case 0x4620: break; // sprmPBrcBetween10 +// case 0x4621: break; // sprmPBrcBar10 +// case 0x4622: break; // sprmPDxaFromText10 +// case 0x2423: break; // sprmPWr + + case 0x6424: // sprmPBrcTop + /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */ + /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */ + case 0x6425: // sprmPBrcLeft + /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */ + /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */ + case 0x6426: // sprmPBrcBottom + /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */ + /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */ + case 0x6427: // sprmPBrcRight + /* WRITERFILTERSTATUS: done: 50, planned: 8, spent: 4 */ + /* WRITERFILTERSTATUS: comment: page borders are no handled yet, conversion incomplete */ + case 0x6428: // sprmPBrcBetween + /* WRITERFILTERSTATUS: done: 0, planned: 8, spent: 0 */ + /* WRITERFILTERSTATUS: comment: */ + { + table::BorderLine aBorderLine; + sal_Int32 nLineDistance = ConversionHelper::MakeBorderLine( nIntValue, aBorderLine ); + PropertyIds eBorderId = PROP_LEFT_BORDER; + PropertyIds eBorderDistId = PROP_LEFT_BORDER_DISTANCE ; + switch( nId ) + { + case 0x6428: // sprmPBrcBetween + OSL_ASSERT("TODO: inner border is not handled"); + break; + case 0x6425: // sprmPBrcLeft + eBorderId = PROP_LEFT_BORDER; + eBorderDistId = PROP_LEFT_BORDER_DISTANCE ; + break; + case 0x6427: // sprmPBrcRight + eBorderId = PROP_RIGHT_BORDER ; + eBorderDistId = PROP_RIGHT_BORDER_DISTANCE ; + break; + case 0x6424: // sprmPBrcTop + eBorderId = PROP_TOP_BORDER ; + eBorderDistId = PROP_TOP_BORDER_DISTANCE; + break; + case 0x6426: // sprmPBrcBottom + default: + eBorderId = PROP_BOTTOM_BORDER ; + eBorderDistId = PROP_BOTTOM_BORDER_DISTANCE; + } + rContext->Insert(eBorderId, uno::makeAny( aBorderLine )); + rContext->Insert(eBorderDistId, uno::makeAny( nLineDistance )); + } + break; + case 0xc64e: + /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */ + /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */ + case 0xc64f: + /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */ + /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */ + case 0xc650: + /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */ + /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */ + case 0xc651: + /* WRITERFILTERSTATUS: done: 0, planned: 2, spent: 0 */ + /* WRITERFILTERSTATUS: comment: probably _real_ border colors, unhandled */ + OSL_ASSERT("TODO: border color definition"); + break; +// case 0x6629: break; // sprmPBrcBar + case 0x242A: // sprmPFNoAutoHyph + rContext->Insert(PROP_PARA_IS_HYPHENATION, uno::makeAny( nIntValue ? false : true )); + break; +// case 0x442B: break; // sprmPWHeightAbs +// case 0x442C: break; // sprmPDcs + + case 0x442D: // sprmPShd + OSL_ASSERT("not handled"); + //contains fore color, back color and shadow percentage, results in a brush + break; + +// case 0x842E: break; // sprmPDyaFromText +// case 0x842F: break; // sprmPDxaFromText +// case 0x2430: break; // sprmPFLocked +// case 0x2431: break; // sprmPFWidowControl +// case 0xC632: break; // sprmPRuler +// case 0x2433: break; // sprmPFKinsoku +// case 0x2434: break; // sprmPFWordWrap + case 0x2435: ; // sprmPFOverflowPunct - hanging punctuation + rContext->Insert(PROP_PARA_IS_HANGING_PUNCTUATION, uno::makeAny( nIntValue ? false : true )); + break; +// case 0x2436: break; // sprmPFTopLinePunct +// case 0x2437: break; // sprmPFAutoSpaceDE +// case 0x2438: break; // sprmPFAutoSpaceDN +// case 0x4439: break; // sprmPWAlignFont +// case 0x443A: break; // sprmPFrameTextFlow +// case 0x243B: break; // sprmPISnapBaseLine +// case 0xC63E: break; // sprmPAnld +// case 0xC63F: break; // sprmPPropRMark +// case 0x2640: break; // sprmPOutLvl +// case 0x2441: break; // sprmPFBiDi +// case 0x2443: break; // sprmPFNumRMIns +// case 0x2444: break; // sprmPCrLf +// case 0xC645: break; // sprmPNumRM +// case 0x6645: break; // sprmPHugePapx +// case 0x2447: break; // sprmPFUsePgsuSettings +// case 0x2448: break; // sprmPFAdjustRight +// case 0x0800: break; // sprmCFRMarkDel +// case 0x0801: break; // sprmCFRMark +// case 0x0802: break; // sprmCFFldVanish + case 0x0855: // sprmCFSpec + break; + case 0x6A03: // sprmCPicLocation + { + //is being resolved on the tokenizer side +/* + doctok::Reference<Properties>::Pointer_t pProperties = sprm_.getProps(); + if( pProperties.get()) + { + pProperties->resolve(*this); + } +*/ } + break; +// case 0x4804: break; // sprmCIbstRMark +// case 0x6805: break; // sprmCDttmRMark +// case 0x0806: break; // sprmCFData +// case 0x4807: break; // sprmCIdslRMark +// case 0xEA08: break; // sprmCChs +// case 0x6A09: break; // sprmCSymbol +// case 0x080A: break; // sprmCFOle2 +// case 0x480B: break; // sprmCIdCharType +// case 0x2A0C: break; // sprmCHighlight +// case 0x680E: break; // sprmCObjLocation +// case 0x2A10: break; // sprmCFFtcAsciSymb +// case 0x4A30: break; // sprmCIstd +// case 0xCA31: break; // sprmCIstdPermute +// case 0x2A32: break; // sprmCDefault +// case 0x2A33: break; // sprmCPlain +// case 0x2A34: break; // sprmCKcd + case 0x0858:// sprmCFEmboss + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 060:// sprmCFBold + case 0x085C:// sprmCFBoldBi (offset 0x27 to normal bold) + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x085D:// sprmCFItalicBi (offset 0x27 to normal italic) + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x835: //sprmCFBold + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x836: //sprmCFItalic + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x837: //sprmCFStrike + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5*/ + case 0x838: //sprmCFOutline + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x839: //sprmCFShadow + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x83a: //sprmCFSmallCaps + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x83b: //sprmCFCaps + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x83c: //sprmCFVanish + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + case 0x2A53: // sprmCFDStrike + /* WRITERFILTERSTATUS: done: 100, planned: , spent: 0.5 */ + { + PropertyIds ePropertyId = PROP_CHAR_WEIGHT; //initialized to prevent warning! + switch( nId ) + { + case 060:// sprmCFBold + case 0x085C: // sprmCFBoldBi + case 0x835: /*sprmCFBold*/ + ePropertyId = nId != 0x085C ? PROP_CHAR_WEIGHT : PROP_CHAR_WEIGHT_COMPLEX; + break; + case 0x085D: // sprmCFItalicBi + case 0x836: /*sprmCFItalic*/ + ePropertyId = nId == 0x836 ? PROP_CHAR_POSTURE : PROP_CHAR_POSTURE_COMPLEX; + break; + case 0x837: /*sprmCFStrike*/ + case 0x2A53 : /*sprmCFDStrike double strike through*/ + ePropertyId = PROP_CHAR_STRIKEOUT; + break; + case 0x838: /*sprmCFOutline*/ + ePropertyId = PROP_CHAR_CONTOURED; + break; + case 0x839: /*sprmCFShadow*/ + ePropertyId = PROP_CHAR_SHADOWED; + break; + case 0x83a: /*sprmCFSmallCaps*/ + case 0x83b: /*sprmCFCaps*/ + ePropertyId = PROP_CHAR_CASEMAP; + break; + case 0x83c: /*sprmCFVanish*/ + ePropertyId = PROP_CHAR_HIDDEN; + break; + case 0x0858: /*sprmCFEmboss*/ + ePropertyId = PROP_CHAR_RELIEF; + break; + } + //expected: 0,1,128,129 + if(nIntValue != 128) //inherited from paragraph - ignore + { + if( nIntValue == 129) //inverted style sheet value + { + //get value from style sheet and invert it + sal_Int16 nStyleValue; + double fDoubleValue; + uno::Any aStyleVal = m_pImpl->GetPropertyFromStyleSheet(ePropertyId); + if( !aStyleVal.hasValue() ) + { + nIntValue = 0x83a == nId ? + 4 : 1; + } + else if(aStyleVal.getValueTypeClass() == uno::TypeClass_FLOAT ) + { + //only in case of awt::FontWeight + aStyleVal >>= fDoubleValue; + nIntValue = fDoubleValue > 100. ? 0 : 1; + } + else if((aStyleVal >>= nStyleValue) || + (nStyleValue = (sal_Int16)comphelper::getEnumAsINT32(aStyleVal)) >= 0 ) + { + nIntValue = 0x83a == nId ? + nStyleValue ? 0 : 4 : + nStyleValue ? 0 : 1; + } + else + { + OSL_ASSERT("what type was it"); + } + } + sal_uInt16 nPropertyNameId = 0; + switch( nId ) + { + case 060:/*sprmCFBold*/ + case 0x085C: // sprmCFBoldBi + case 0x835: /*sprmCFBold*/ + rContext->Insert(ePropertyId, + uno::makeAny( nIntValue ? awt::FontWeight::BOLD : awt::FontWeight::NORMAL ) ); + break; + case 0x085D: // sprmCFItalicBi + case 0x836: /*sprmCFItalic*/ + rContext->Insert(ePropertyId, + uno::makeAny( nIntValue ? awt::FontSlant_ITALIC : awt::FontSlant_NONE ) ); + break; + case 0x837: /*sprmCFStrike*/ + rContext->Insert(ePropertyId, + uno::makeAny( nIntValue ? awt::FontStrikeout::SINGLE : awt::FontStrikeout::NONE ) ); + break; + case 0x2A53 : /*sprmCFDStrike double strike through*/ + rContext->Insert(ePropertyId, + uno::makeAny( awt::FontStrikeout::DOUBLE ) ); + break; + case 0x838: /*sprmCFOutline*/ + nPropertyNameId = static_cast<sal_uInt16>( ePropertyId ); + break; + case 0x83a: /*sprmCFSmallCaps*/ + rContext->Insert(ePropertyId, + uno::makeAny( nIntValue ? style::CaseMap::SMALLCAPS : style::CaseMap::NONE)); + break; + case 0x83b: /*sprmCFCaps*/ + rContext->Insert(ePropertyId, + uno::makeAny( nIntValue ? style::CaseMap::UPPERCASE : style::CaseMap::NONE)); + break; + case 0x83c: /*sprmCFVanish*/ + break; + case 0x0858: /*sprmCFEmboss*/ + rContext->Insert(ePropertyId, + uno::makeAny( nIntValue ? awt::FontRelief::EMBOSSED : awt::FontRelief::NONE )); + break; + + } + if(nPropertyNameId) + rContext->Insert((PropertyIds)nPropertyNameId, uno::makeAny( nIntValue ? true : false ) ); + } + } + break; +// case 0x4A3D: break; // sprmCFtcDefault + case 0x2A3E: // sprmCKul + { + // Parameter: 0 = none, 1 = single, 2 = by Word, + // 3 = double, 4 = dotted, 5 = hidden + // 6 = thick, 7 = dash, 8 = dot(not used) + // 9 = dotdash 10 = dotdotdash 11 = wave + sal_Int16 eUnderline = awt::FontUnderline::NONE; + switch(nIntValue) + { + case 0: eUnderline = awt::FontUnderline::NONE; break; + case 2: rContext->Insert(PROP_CHAR_WORD_MODE, uno::makeAny( true ) ); // TODO: how to get rid of it? + case 1: eUnderline = awt::FontUnderline::SINGLE; break; + case 3: eUnderline = awt::FontUnderline::DOUBLE; break; + case 4: eUnderline = awt::FontUnderline::DOTTED; break; + case 7: eUnderline = awt::FontUnderline::DASH; break; + case 9: eUnderline = awt::FontUnderline::DASHDOT; break; + case 10:eUnderline = awt::FontUnderline::DASHDOTDOT; break; + case 6: eUnderline = awt::FontUnderline::BOLD; break; + case 11:eUnderline = awt::FontUnderline::WAVE; break; + case 20:eUnderline = awt::FontUnderline::BOLDDOTTED; break; + case 23:eUnderline = awt::FontUnderline::BOLDDASH; break; + case 39:eUnderline = awt::FontUnderline::LONGDASH; break; + case 55:eUnderline = awt::FontUnderline::BOLDLONGDASH; break; + case 25:eUnderline = awt::FontUnderline::BOLDDASHDOT; break; + case 26:eUnderline = awt::FontUnderline::BOLDDASHDOTDOT;break; + case 27:eUnderline = awt::FontUnderline::BOLDWAVE; break; + case 43:eUnderline = awt::FontUnderline::DOUBLEWAVE; break; + default: ; + } + rContext->Insert(PROP_CHAR_UNDERLINE, uno::makeAny( eUnderline ) ); + } + break; +// case 0xEA3F: break; // sprmCSizePos +// case 0x4A41: break; // sprmCLid + case 0x2A42: /*compat - old text color*/break; // sprmCIco + case 0x4A61: // sprmCHpsBi + case 0x4A43: // sprmCHps + { + //multiples of half points (12pt == 24) + double fVal = double(nIntValue) / 2.; + rContext->Insert( + 0x4A61 == nId ? PROP_CHAR_HEIGHT_COMPLEX : PROP_CHAR_HEIGHT, uno::makeAny( fVal ) ); + } + break; +// case 0x2A44: break; // sprmCHpsInc +// case 0x4845: break; // sprmCHpsPos +// case 0x2A46: break; // sprmCHpsPosAdj +// case 0xCA47: break; // sprmCMajority + case 0x2A48: // sprmCIss + { + //sub/super script 1: super, 2: sub, 0: normal + sal_Int16 nEscapement = 0; + sal_Int8 nProp = 58; + switch(nIntValue) + { + case 1: //super + nEscapement = 101; + break; + case 2: //sub + nEscapement = -101; + break; + case 0: nProp = 0;break; //none + } + rContext->Insert(PROP_CHAR_ESCAPEMENT, uno::makeAny( nEscapement ) ); + rContext->Insert(PROP_CHAR_ESCAPEMENT_HEIGHT, uno::makeAny( nProp ) ); + } + break; +// case 0xCA49: break; // sprmCHpsNew50 +// case 0xCA4A: break; // sprmCHpsInc1 + case 0x71 : //"sprmCDxaSpace" + case 0x96 : //"sprmCDxaSpace" + case 0x8840: // sprmCDxaSpace + //Kerning half point values + //TODO: there are two kerning values - + // in ww8par6.cxx 0x484b is used as boolean AutoKerning + rContext->Insert(PROP_CHAR_CHAR_KERNING, uno::makeAny( sal_Int16(lcl_convertToMM100(sal_Int16(nIntValue))) ) ); + break; + case 0x484B: // sprmCHpsKern auto kerning is bound to a minimum font size in Word - but not in Writer :-( + rContext->Insert(PROP_CHAR_AUTO_KERNING, uno::makeAny( true ) ); + break; +// case 0xCA4C: break; // sprmCMajority50 +// case 0x4A4D: break; // sprmCHpsMul +// case 0x484E: break; // sprmCYsri + case 0x4A4F: // sprmCRgFtc0 //ascii font index + case 0x4A50: // sprmCRgFtc1 //Asian font index + case 0x4A51: // sprmCRgFtc2 //CTL font index + case 0x4A5E: // sprmCFtcBi //font index of a CTL font + { + FontTablePtr pFontTable = m_pImpl->GetFontTable(); + if(nIntValue >= 0 && pFontTable->size() > sal_uInt32(nIntValue)) + { + PropertyIds eFontName = PROP_CHAR_FONT_NAME; + PropertyIds eFontStyle = PROP_CHAR_FONT_STYLE; + PropertyIds eFontFamily = PROP_CHAR_FONT_FAMILY; + PropertyIds eFontCharSet = PROP_CHAR_FONT_CHAR_SET; + PropertyIds eFontPitch = PROP_CHAR_FONT_PITCH; + switch(nId) + { + case 0x4A4F: + //already initialized + break; + case 0x4A50: + eFontName = PROP_CHAR_FONT_NAME_ASIAN; + eFontStyle = PROP_CHAR_FONT_STYLE_ASIAN; + eFontFamily = PROP_CHAR_FONT_FAMILY_ASIAN; + eFontCharSet = PROP_CHAR_FONT_CHAR_SET_ASIAN; + eFontPitch = PROP_CHAR_FONT_PITCH_ASIAN; + break; + case 0x4A51: + case 0x4A5E: + eFontName = PROP_CHAR_FONT_NAME_COMPLEX; + eFontStyle = PROP_CHAR_FONT_STYLE_COMPLEX; + eFontFamily = PROP_CHAR_FONT_FAMILY_COMPLEX; + eFontCharSet = PROP_CHAR_FONT_CHAR_SET_COMPLEX; + eFontPitch = PROP_CHAR_FONT_PITCH_COMPLEX; + break; + } + const FontEntry* pFontEntry = pFontTable->getFontEntry(sal_uInt32(nIntValue)); + rContext->Insert(eFontName, uno::makeAny( pFontEntry->sFontName )); +// rContext->Insert(eFontStyle, uno::makeAny( pFontEntry-> )); +// rContext->Insert(eFontFamily, uno::makeAny( pFontEntry-> )); + rContext->Insert(eFontCharSet, uno::makeAny( (sal_Int16)pFontEntry->nTextEncoding )); + rContext->Insert(eFontPitch, uno::makeAny( pFontEntry->nPitchRequest )); + } + } + break; + case 0x4852: // sprmCCharScale + rContext->Insert(PROP_CHAR_SCALE_WIDTH, + uno::makeAny( sal_Int16(nIntValue) )); + + break; + case 0x0854: // sprmCFImprint 1 or 0 + // FontRelief: NONE, EMBOSSED, ENGRAVED + rContext->Insert(PROP_CHAR_RELIEF, + uno::makeAny( nIntValue ? awt::FontRelief::ENGRAVED : awt::FontRelief::NONE )); + break; +// case 0x0856: break; // sprmCFObj +// case 0xCA57: break; // sprmCPropRMark +// case 0x2859: break; // sprmCSfxText +// case 0x085A: break; // sprmCFBiDi +// case 0x085B: break; // sprmCFDiacColor +// case 0x4A60: break; // sprmCIcoBi +// case 0xCA62: break; // sprmCDispFldRMark +// case 0x4863: break; // sprmCIbstRMarkDel +// case 0x6864: break; // sprmCDttmRMarkDel +// case 0x6865: break; // sprmCBrc +// case 0x4866: break; // sprmCShd +// case 0x4867: break; // sprmCIdslRMarkDel +// case 0x0868: break; // sprmCFUsePgsuSettings +// case 0x486B: break; // sprmCCpg + case 0x485F: // sprmCLidBi language complex + case 0x486D: // sprmCRgLid0 language Western + case 0x486E: // sprmCRgLid1 language Asian + { + lang::Locale aLocale; + MsLangId::convertLanguageToLocale( (LanguageType)nIntValue, aLocale ); + rContext->Insert(0x486D == nId ? PROP_CHAR_LOCALE : + 0x486E == nId ? PROP_CHAR_LOCALE_ASIAN : PROP_CHAR_LOCALE_COMPLEX, + uno::makeAny( aLocale ) ); + } + break; + + case 0x286F: // sprmCIdctHint + //list table - text offset??? + break; +// case 0x2E00: break; // sprmPicBrcl +// case 0xCE01: break; // sprmPicScale +// case 0x6C02: break; // sprmPicBrcTop +// case 0x6C03: break; // sprmPicBrcLeft +// case 0x6C04: break; // sprmPicBrcBottom +// case 0x6C05: break; // sprmPicBrcRight +// case 0x3000: break; // sprmScnsPgn +// case 0x3001: break; // sprmSiHeadingPgn +// case 0xD202: break; // sprmSOlstAnm +// case 0xF203: break; // sprmSDxaColWidth +// case 0xF204: break; // sprmSDxaColSpacing +// case 0x3005: break; // sprmSFEvenlySpaced +// case 0x3006: break; // sprmSFProtected +// case 0x5007: break; // sprmSDmBinFirst +// case 0x5008: break; // sprmSDmBinOther + case 0x3009: // sprmSBkc + //break type + /* + 0 - No break + 1 - New Colunn + 2 - New page + 3 - Even page + 4 - odd page + ->get the related page style name and apply it at the current paragraph + */ + OSL_ASSERT("TODO: not handled yet"); + break; + case 0x300A: // sprmSFTitlePage + OSL_ASSERT("TODO: not handled yet"); //section has title page + break; +// case 0x500B: break; // sprmSCcolumns + case 0x900C: // sprmSDxaColumns + OSL_ASSERT("TODO: not handled yet"); //column distance? 0x2c4 + break; +// case 0x300D: break; // sprmSFAutoPgn +// case 0x300E: break; // sprmSNfcPgn +// case 0xB00F: break; // sprmSDyaPgn +// case 0xB010: break; // sprmSDxaPgn +// case 0x3011: break; // sprmSFPgnRestart +// case 0x3012: break; // sprmSFEndnote +// case 0x3013: break; // sprmSLnc +// case 0x3014: break; // sprmSGprfIhdt +// case 0x5015: break; // sprmSNLnnMod +// case 0x9016: break; // sprmSDxaLnn + case 0xB017: // sprmSDyaHdrTop + case 0xB018: // sprmSDyaHdrBottom + OSL_ASSERT("TODO: not handled yet"); //header top/bottom distance 0x2c5 == 0,5in + break; +// case 0x3019: break; // sprmSLBetween +// case 0x301A: break; // sprmSVjc +// case 0x501B: break; // sprmSLnnMin +// case 0x501C: break; // sprmSPgnStart +// case 0x301D: break; // sprmSBOrientation +// case 0x301E: break; // sprmSBCustomize + case 0xB020: // sprmSYaPage + case 0xB01F: // sprmSXaPage + OSL_ASSERT("TODO: not handled yet"); //paper width 0x2fd0 =0 8,5 in, height 3de0 == 11 in + + break; + case 0xB021: // sprmSDxaLeft + case 0xB022: // sprmSDxaRight + case 0x9023: // sprmSDyaTop + case 0x9024: // sprmSDyaBottom + OSL_ASSERT("TODO: not handled yet"); //page margins 0x705/0x705 == 1,25 in and 0x5a0 == 1 in + break; + case 0xB025: // sprmSDzaGutter + OSL_ASSERT("TODO: not handled yet"); // gutter is added to one of the margins of a section depending on RTL, can be placed on top either + break; + case 0x5026: // sprmSDmPaperReq + OSL_ASSERT("TODO: not handled yet"); //paper code + break; +// case 0xD227: break; // sprmSPropRMark +// case 0x3228: break; // sprmSFBiDi +// case 0x3229: break; // sprmSFFacingCol +// case 0x322A: break; // sprmSFRTLGutter + case 0x702B: // sprmSBrcTop + case 0x702C: // sprmSBrcLeft + case 0x702D: // sprmSBrcBottom + case 0x702E: // sprmSBrcRight + { + table::BorderLine aBorderLine; + sal_Int32 nLineDistance = ConversionHelper::MakeBorderLine( nIntValue, aBorderLine ); + PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_SECTION); + SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() ); + if(pSectionContext) + { + static const SectionPropertyMap::BorderPosition aPositions[4] = + { + SectionPropertyMap::BORDER_TOP, + SectionPropertyMap::BORDER_LEFT, + SectionPropertyMap::BORDER_BOTTOM, + SectionPropertyMap::BORDER_RIGHT + }; + pSectionContext->SetBorder( aPositions[nId - 0x702B], nLineDistance, aBorderLine ); + } + } + break; + + case 0x522F: // sprmSPgbProp + { + PropertyMapPtr pContext = m_pImpl->GetTopContextOfType(CONTEXT_SECTION); + SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() ); + if(pSectionContext) + { + pSectionContext->ApplyBorderToPageStyles( m_pImpl->GetPageStyles(), nIntValue ); + } + } + break; +// case 0x7030: break; // sprmSDxtCharSpace + case 0x9031: // sprmSDyaLinePitch + OSL_ASSERT("TODO: not handled yet"); //line pitch of grid + break; + case 0x703a: //undocumented, grid related? + OSL_ASSERT("TODO: not handled yet"); //nIntValue like 0x008a2373 ? + break; +// case 0x5032: break; // sprmSClm +// case 0x5033: break; // sprmSTextFlow +// case 0x5400: break; // sprmTJc +// case 0x9601: break; // sprmTDxaLeft +// case 0x9602: break; // sprmTDxaGapHalf +// case 0x3403: break; // sprmTFCantSplit +// case 0x3404: break; // sprmTTableHeader +// case 0xD605: break; // sprmTTableBorders +// case 0xD606: break; // sprmTDefTable10 +// case 0x9407: break; // sprmTDyaRowHeight +// case 0xD608: break; // sprmTDefTable +// case 0xD609: break; // sprmTDefTableShd +// case 0x740A: break; // sprmTTlp +// case 0x560B: break; // sprmTFBiDi +// case 0x740C: break; // sprmTHTMLProps +// case 0xD620: break; // sprmTSetBrc +// case 0x7621: break; // sprmTInsert +// case 0x5622: break; // sprmTDelete +// case 0x7623: break; // sprmTDxaCol +// case 0x5624: break; // sprmTMerge +// case 0x5625: break; // sprmTSplit +// case 0xD626: break; // sprmTSetBrc10 +// case 0x7627: break; // sprmTSetShd +// case 0x7628: break; // sprmTSetShdOdd +// case 0x7629: break; // sprmTTextFlow +// case 0xD62A: break; // sprmTDiagLine +// case 0xD62B: break; // sprmTVertMerge +// case 0xD62C: break; // sprmTVertAlign + // the following are not part of the official documentation + case 0x6870: //TxtForeColor + { + //contains a color as 0xTTRRGGBB while SO uses 0xTTRRGGBB + sal_Int32 nColor = lcl_ConvertColor(nIntValue); + rContext->Insert(PROP_CHAR_COLOR, uno::makeAny( nColor ) ); + } + break; + case 0x4873: break; //sprmCRgLid - undocumented + case 0x4874: break; //seems to be a language id for Asian text - undocumented + case 0x6877: //underlining color + { + sal_Int32 nColor = lcl_ConvertColor(nIntValue); + rContext->Insert(PROP_CHAR_UNDERLINE_HAS_COLOR, uno::makeAny( true ) ); + rContext->Insert(PROP_CHAR_UNDERLINE_COLOR, uno::makeAny( nColor ) ); + } + break; + case 0x6815: break; //undocumented + case 0x6816: break; //undocumented + case 0x6467: break; //undocumented + case 0xF617: break; //undocumented + case 0xd634: break; //undocumented + case 0xf661: break; //undocumented + case 0x4888: + case 0x6887: + //properties of list levels - undocumented + break; + case 0xd234: + case 0xd235: + case 0xd236: + case 0xd237: + break;//undocumented section properties + default: + { + //doctok::Value::Pointer_t pValue_ = sprm_.getValue(); + } + } +} +/*-- 09.06.2006 09:52:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::entry(int /*pos*/, + doctok::Reference<Properties>::Pointer_t ref) +{ + ref->resolve(*this); +} +/*-- 09.06.2006 09:52:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::data(const sal_uInt8* /*buf*/, size_t /*len*/, + doctok::Reference<Properties>::Pointer_t /*ref*/) +{ +} +/*-- 09.06.2006 09:52:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::startSectionGroup() +{ + m_pImpl->PushProperties(CONTEXT_SECTION); +} +/*-- 09.06.2006 09:52:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::endSectionGroup() +{ + m_pImpl->PopProperties(CONTEXT_SECTION); +} +/*-- 09.06.2006 09:52:13--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::startParagraphGroup() +{ + m_pImpl->getTableManager().startParagraphGroup(); + m_pImpl->PushProperties(CONTEXT_PARAGRAPH); +} +/*-- 09.06.2006 09:52:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::endParagraphGroup() +{ + m_pImpl->PopProperties(CONTEXT_PARAGRAPH); + m_pImpl->getTableManager().endParagraphGroup(); +} +/*-- 09.06.2006 09:52:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::startCharacterGroup() +{ + m_pImpl->PushProperties(CONTEXT_CHARACTER); +} +/*-- 09.06.2006 09:52:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::endCharacterGroup() +{ + m_pImpl->PopProperties(CONTEXT_CHARACTER); +} +/*-- 09.06.2006 09:52:14--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::text(const sal_uInt8 * data_, size_t len) +{ + try + { + m_pImpl->getTableManager().text(data_, len); + + bool bContinue = true; + //TODO: Determine the right text encoding (FIB?) + ::rtl::OUString sText( (const sal_Char*) data_, len, RTL_TEXTENCODING_MS_1252 ); + if(len == 1) + { + bContinue = false; + switch(*data_) + { + case 0x07: + case 0x0d: + m_pImpl->finishParagraph(m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH)); break; + case 0x13: m_pImpl->SetFieldMode( true );break; + case 0x14: /* delimiter not necessarily available */ + case 0x15: /* end of field */ + m_pImpl->SetFieldMode( false ); + break; + default: bContinue = true; + } + } + if(bContinue) + { + if( m_pImpl->IsFieldMode()) + m_pImpl->CreateField( sText ); + else if( m_pImpl->IsFieldAvailable()) + /*depending on the success of the field insert operation this result will be + set at the field or directly inserted into the text*/ + m_pImpl->SetFieldResult( sText ); + else + { + PropertyMapPtr pContext = m_pImpl->GetTopContext(); + //--> debug + //sal_uInt32 nSize = pContext->size(); + //<-- + + m_pImpl->appendTextPortion( sText, pContext ); + } + } + } + catch( const uno::RuntimeException& ) + { + std::clog << __FILE__ << "(l" << __LINE__ << ")" << std::endl; + } +} +/*-- 09.06.2006 09:52:15--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::utext(const sal_uInt8 * data_, size_t len) +{ + try + { + m_pImpl->getTableManager().utext(data_, len); + + if(len == 1 && ((*data_) == 0x0d || (*data_) == 0x07)) + m_pImpl->finishParagraph(m_pImpl->GetTopContextOfType(CONTEXT_PARAGRAPH)); + else + { + PropertyMapPtr pContext = m_pImpl->GetTopContext(); + OUString sText; + OUStringBuffer aBuffer = OUStringBuffer(len); + aBuffer.append( (const sal_Unicode *) data_, len); + sText = aBuffer.makeStringAndClear(); + //--> debug + //sal_uInt32 nSize = pContext->size(); + //<-- + m_pImpl->appendTextPortion( sText, pContext ); + } + } + catch( const uno::RuntimeException& ) + { + } +} +/*-- 09.06.2006 09:52:15--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::props(doctok::Reference<Properties>::Pointer_t ref) +{ + ref->resolve(*this); +} +/*-- 09.06.2006 09:52:15--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::table(doctok::Id name, doctok::Reference<Table>::Pointer_t ref) +{ + switch(name) + { + case NS_rtf::LN_FONTTABLE: + { + // create a font table object that listens to the attributes + // each entry call inserts a new font entry + ref->resolve( *m_pImpl->GetFontTable() ); + } + break; + case NS_rtf::LN_STYLESHEET: + //same as above to import style sheets + m_pImpl->SetStyleSheetImport( true ); + ref->resolve( *m_pImpl->GetStyleSheetTable() ); + m_pImpl->GetStyleSheetTable()->ApplyStyleSheets(m_pImpl->GetTextDocument()); + m_pImpl->SetStyleSheetImport( false ); + break; + case NS_rtf::LN_LISTTABLE: + //the same for list tables + ref->resolve( *m_pImpl->GetListTable() ); + break; + case NS_rtf::LN_LFOTABLE: + ref->resolve( *m_pImpl->GetLFOTable() ); + break; + default: + OSL_ASSERT("which table is to be filled here?"); + } +} +/*-- 09.06.2006 09:52:16--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::substream(doctok::Id name, ::doctok::Reference<Stream>::Pointer_t ref) +{ + m_pImpl->getTableManager().startLevel(); + + //->debug + //string sName = (*doctok::QNameToString::Instance())(name); + //--<debug + //import of page header/footer + switch( name ) + { + case NS_rtf::LN_headerl: + m_pImpl->PushPageHeader(SectionPropertyMap::PAGE_LEFT); + break; + case NS_rtf::LN_headerr: + m_pImpl->PushPageHeader(SectionPropertyMap::PAGE_RIGHT); + break; + case NS_rtf::LN_headerf: + m_pImpl->PushPageHeader(SectionPropertyMap::PAGE_FIRST); + break; + case NS_rtf::LN_footerl: + m_pImpl->PushPageFooter(SectionPropertyMap::PAGE_LEFT); + break; + case NS_rtf::LN_footerr: + m_pImpl->PushPageFooter(SectionPropertyMap::PAGE_RIGHT); + break; + case NS_rtf::LN_footerf: + m_pImpl->PushPageFooter(SectionPropertyMap::PAGE_FIRST); + break; + } + ref->resolve(*this); + switch( name ) + { + case NS_rtf::LN_headerl: + case NS_rtf::LN_headerr: + case NS_rtf::LN_headerf: + case NS_rtf::LN_footerl: + case NS_rtf::LN_footerr: + case NS_rtf::LN_footerf: + m_pImpl->PopPageHeaderFooter(); + break; + } + + m_pImpl->getTableManager().endLevel(); +} +/*-- 09.06.2006 09:52:16--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper::info(const string & /*info_*/) +{ +} +} + diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx new file mode 100644 index 000000000000..373124a297f2 --- /dev/null +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -0,0 +1,114 @@ +#include <iostream> +#include <DomainMapperTableHandler.hxx> + +namespace dmapper { + +using namespace ::com::sun::star; +using namespace ::std; + +void DomainMapperTableHandler::startTable(unsigned int nRows, + unsigned int /*nDepth*/, + PropertyMapPtr /*pProps*/) +{ + m_pHandleSeq3 = HandleSequence3Pointer_t(new HandleSequence3_t(nRows)); + m_nHandle3Index = 0; +} + +void DomainMapperTableHandler::endTable() +{ + PropertyValuesSeq2_t aCellProperties; + PropertyValuesSeq_t aRowProperties; + PropertyValues_t aTableProperties; + + sal_Int32 nRows = m_pHandleSeq3->getLength(); + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), "%ld", nRows); + + clog << "<table rows=\"" << sBuffer << "\">" << endl; + + for (sal_Int32 nRow = 0; nRow < nRows; ++nRow) + { + HandleSequence2_t aHandleSeq2 = (*m_pHandleSeq3)[nRow]; + + sal_Int32 nCells = aHandleSeq2.getLength(); + + snprintf(sBuffer, sizeof(sBuffer), "%ld", nCells); + + clog << "<table.row cells=\"" << sBuffer << "\">" << endl; + + for (sal_Int32 nCell = 0; nCell < nCells; ++nCell) + { + HandleSequence_t aHandleSeq = aHandleSeq2[nCell]; + + sal_Int32 nHandles = aHandleSeq.getLength(); + + snprintf(sBuffer, sizeof(sBuffer), "%ld", nHandles); + + clog << "<table.cell handles=\"" << sBuffer << "\">" << endl; + + for (sal_Int32 nHandle = 0; nHandle < nHandles; ++nHandle) + { + clog << "<table.text>" << endl; + + Handle_t aHandle = aHandleSeq[nHandle]; + + rtl::OUString aOUStr = aHandle->getString(); + rtl::OString aOStr(aOUStr.getStr(), RTL_TEXTENCODING_ASCII_US, + aOUStr.getLength()); + + clog << aOStr.getStr() << endl; + clog << "</table.text>" << endl; + } + + clog << "</table.cell>" << endl; + } + + clog << "</table.row>" << endl; + } + + clog << "</table>" << endl; + + if (m_pHandleSeq3->getLength() > 0) + { + try + { + m_xText->convertToTable(*m_pHandleSeq3, aCellProperties, + aRowProperties, + aTableProperties); + } + catch (lang::IllegalArgumentException e) + { + clog << "failed to import table!" << endl; + } + } +} + +void DomainMapperTableHandler::startRow(unsigned int nCells, + PropertyMapPtr /*pProps*/) +{ + m_pHandleSeq2 = HandleSequence2Pointer_t(new HandleSequence2_t(nCells)); + m_nHandle2Index = 0; +} + +void DomainMapperTableHandler::endRow() +{ + (*m_pHandleSeq3)[m_nHandle3Index] = *m_pHandleSeq2; + ++m_nHandle3Index; +} + +void DomainMapperTableHandler::startCell(const Handle_t & start, + PropertyMapPtr /*pProps*/) +{ + m_pHandleSeq = HandleSequencePointer_t(new HandleSequence_t(2)); + (*m_pHandleSeq)[0] = start->getStart(); +} + +void DomainMapperTableHandler::endCell(const Handle_t & end) +{ + (*m_pHandleSeq)[1] = end->getEnd(); + (*m_pHandleSeq2)[m_nHandle2Index] = *m_pHandleSeq; + ++m_nHandle2Index; +} + +} diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.hxx b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx new file mode 100644 index 000000000000..c229aa906c01 --- /dev/null +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx @@ -0,0 +1,61 @@ +#ifndef INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX +#define INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX + +#ifndef INCLUDED_TABLE_MANAGER_HXX +#include <doctok/TableManager.hxx> +#endif +#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +#include "PropertyMap.hxx" +#endif + +#include <com/sun/star/text/XTextAppendAndConvert.hpp> + +namespace dmapper { + +typedef ::com::sun::star::text::XTextRange TextRange_t; +typedef ::com::sun::star::uno::Reference< TextRange_t > Handle_t; +typedef ::com::sun::star::uno::Sequence< Handle_t> HandleSequence_t; +typedef boost::shared_ptr<HandleSequence_t> HandleSequencePointer_t; +typedef ::com::sun::star::uno::Sequence< HandleSequence_t> HandleSequence2_t; +typedef boost::shared_ptr<HandleSequence2_t> HandleSequence2Pointer_t; +typedef ::com::sun::star::uno::Sequence< HandleSequence2_t> HandleSequence3_t; +typedef boost::shared_ptr<HandleSequence3_t> HandleSequence3Pointer_t; +typedef ::com::sun::star::text::XTextAppendAndConvert Text_t; +typedef ::com::sun::star::uno::Reference<Text_t> TextReference_t; + +typedef ::com::sun::star::beans::PropertyValues PropertyValues_t; +typedef ::com::sun::star::uno::Sequence< PropertyValues_t > PropertyValuesSeq_t; +typedef ::com::sun::star::uno::Sequence< PropertyValuesSeq_t> +PropertyValuesSeq2_t; + +class DomainMapperTableHandler : public doctok::TableDataHandler<Handle_t , PropertyMapPtr > +{ + TextReference_t m_xText; + HandleSequencePointer_t m_pHandleSeq; + HandleSequence2Pointer_t m_pHandleSeq2; + HandleSequence3Pointer_t m_pHandleSeq3; + sal_Int32 m_nHandleIndex; + sal_Int32 m_nHandle2Index; + sal_Int32 m_nHandle3Index; + +public: + typedef boost::shared_ptr<DomainMapperTableHandler> Pointer_t; + + DomainMapperTableHandler(TextReference_t xText) + : m_xText(xText) + { + } + virtual ~DomainMapperTableHandler() {} + + virtual void startTable(unsigned int nRows, unsigned int nDepth, + PropertyMapPtr pProps); + virtual void endTable(); + virtual void startRow(unsigned int nRows, PropertyMapPtr pProps); + virtual void endRow(); + virtual void startCell(const Handle_t & start, PropertyMapPtr pProps); + virtual void endCell(const Handle_t & end); +}; + +} + +#endif // INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx new file mode 100644 index 000000000000..04b9be181420 --- /dev/null +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -0,0 +1,1545 @@ +#ifndef INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX +#include <DomainMapper_Impl.hxx> +#endif +#ifndef INCLUDED_DMAPPER_CONVERSIONHELPER_HXX +#include <ConversionHelper.hxx> +#endif +#ifndef INCLUDED_DOMAIN_MAPPER_TABLE_HANDLER_HXX +#include <DomainMapperTableHandler.hxx> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_DOCUMENT_XDOCUMENTINFOSUPPLIER_HPP_ +#include <com/sun/star/document/XDocumentInfoSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_HPP_ +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_NUMBERINGTYPE_HPP_ +#include <com/sun/star/style/NumberingType.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELD_HPP_ +#include <com/sun/star/text/XTextField.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELDSSUPPLIER_HPP_ +#include <com/sun/star/text/XTextFieldsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XDEPENDENTTEXTFIELD_HPP_ +#include <com/sun/star/text/XDependentTextField.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_PAGENUMBERTYPE_HPP_ +#include <com/sun/star/text/PageNumberType.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_FILENAMEDISPLAYFORMAT_HPP_ +#include <com/sun/star/text/FilenameDisplayFormat.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_USERDATAPART_HPP_ +#include <com/sun/star/text/UserDataPart.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_SETVARIABLETYPE_HPP_ +#include <com/sun/star/text/SetVariableType.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATSSUPPLIER_HPP_ +#include <com/sun/star/util/XNumberFormatsSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATS_HPP_ +#include <com/sun/star/util/XNumberFormats.hpp> +#endif +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif +#ifndef _RTL_STRING_H_ +#include <rtl/string.h> +#endif + + +#include <hash_map> + +using namespace ::com::sun::star; +using namespace ::rtl; +using namespace ::writerfilter; +namespace dmapper{ +/*-- 08.09.2006 09:39:50--------------------------------------------------- + + -----------------------------------------------------------------------*/ +//defaultswitch { Upper FirstCap Lower } +//Numberingswitch { Arabic, ALPHABETIC, ...} see lcl_ParseNumberingType +enum FieldId +{ + /* ADDRESSBLOCK \d \* MERGEFORMAT -> Addressblock completely unsupported*/ + FIELD_ADDRESSBLOCK + /* ADVANCE \d downvalue \l leftvalue \r rightvalue \u upvalue \x xvalue \y yvalue -> unsupported*/ + ,FIELD_ADVANCE + /* ASK bookmarkname "hint" \d defaultanswer \o \* MERGEFORMAT -> + the hint is not always quoted, inputfield with default answer, prompt before merge (\o) + */ + ,FIELD_ASK + /* AUTONUM \* Numberingswitch -> + mapped to sequence field "AutoNr" + */ + ,FIELD_AUTONUM + /* AUTONUMLGL \* Numberingswitch -> + mapped to sequence field "AutoNr" + */ + ,FIELD_AUTONUMLGL + /* AUTONUMOUT \* Numberingswitch -> + mapped to sequence field "AutoNr" + */ + ,FIELD_AUTONUMOUT + /* AUTHOR NewAuthor \* defaultswitch \* MERGEFORMAT -> + mapped to sequence field "AutoNr" + */ + ,FIELD_AUTHOR + /* COMMENTS "comment" \* MERGEFORMAT -> + Docinfo-Comments + */ + ,FIELD_COMMENTS + /* CREATEDATE \h \* MERGEFORMAT -> + docinfo-created-date + */ + ,FIELD_CREATEDATE + /* DATE \@ "number format" \s \* MERGEFORMAT -> + ww8filterimprovement: multiple languages now supported + */ + ,FIELD_DATE + /* DOCPROPERTY propertyname \* MERGEFORMAT -> + ww8filterimprovement: some fields imported as functionally equivalent fields if possible, + the others imported as UserField + */ + ,FIELD_DOCPROPERTY + /* DOCVARIABLE Name \* MERGEFORMAT -> + ww8filterimprovement: now imported as user fields + */ + ,FIELD_DOCVARIABLE + /* EDITTIME \# "displayformat" \* Numberingswitch \* MERGEFORMAT -> + DocInfo-Modified-Date + ww8filterimprovement: multiple languages now supported + */ + ,FIELD_EDITTIME + /* FILLIN "text to fill in" \d defaultanswer \o \* MERGEFORMAT -> + Function-InputField + */ + ,FIELD_FILLIN + /* FILENAME \p \* * MERGEFORMAT -> + file name (\p with path) + */ + ,FIELD_FILENAME + /* FILESIZE \* NumberingType \* MERGEFORMAT -> + not imported in old ww8 filter, see lcl_ParseNumberingType + todo find alternative field + */ + ,FIELD_FILESIZE + /* =formula \# "number format" + todo find alternative field + */ + ,FIELD_FORMULA + /* GOTOBUTTON text \* MERGEFORMAT -> + not imported in old ww8 filter + todo find alternative field + */ + ,FIELD_GOTOBUTTON + /* HYPERLINK "link" \* MERGEFORMAT -> + not imported in old ww8 filter + ww8filterimprovement: now imported as hyperlink + */ + ,FIELD_HYPERLINK + /* IF condition "then text" "else text" -> + not imported in old ww8 filter + ww8filterimprovement: now imported + todo: condition, if text, else text still missing + */ + ,FIELD_IF + /* INFO NameOfInfo \* MERGEFORMAT -> old + todo: filter imports wrong? + */ + ,FIELD_INFO + /* INCLUDEPICTURE path \* MERGEFORMAT-> + old filter imports an embedded picture + todo: not yet supported + */ + ,FIELD_INCLUDEPICTURE + /* KEYWORDS keyword \* defaultswitch \* Numberingswitch \* MERGEFORMAT -> + DocInfo Keywords + */ + ,FIELD_KEYWORDS + /* LASTSAVEDBY \* MERGEFORMAT -> + DocInfo-Modified-Author + */ + ,FIELD_LASTSAVEDBY + /* MACROBUTTON MacroName quick help text -> + Macro field + */ + ,FIELD_MACROBUTTON + /* MERGEFIELD ColumName \b prefix \f suffix \* MERGEFORMAT -> + ww8filterimprovement: column-only API now upporterd + */ + ,FIELD_MERGEFIELD + /* MERGEREC \* MERGEFORMAT -> + RecordNumber field, maybe without db name + todo: currently unchecked + */ + ,FIELD_MERGEREC + /* MERGESEQ \* MERGEFORMAT -> + not imported in old ww8 filter + ww8filterimprovement: now imported + todo: currently unchecked + */ + ,FIELD_MERGESEQ + /* NEXT text -> + Next record + todo: currently unchecked + */ + ,FIELD_NEXT + /* NEXTIF condition + todo: condition not imported + */ + ,FIELD_NEXTIF + /* PAGE \* Numberingswitch \* MERGEFORMAT -> + see lcl_ParseNumberingType + */ + ,FIELD_PAGE + /* REF targetbkm \f \* MERGEFORMAT -> + imports a ShowVariable (bookmarkname)? + todo: not imported yet + */ + ,FIELD_REF // + /* REVNUM \* Numberingswitch \* MERGEFORMAT -> + DocInfo-revision number + */ + ,FIELD_REVNUM + /* SAVEDATE \@ "NumberFormat"\* MERGEFORMAT -> + DocInfo-modified-date + */ + ,FIELD_SAVEDATE + /* SECTION \* NumberFormat \* MERGEFORMAT -> + not imported in old ww8 filter see lcl_ParseNumberingType + todo: find alternative + */ + ,FIELD_SECTION + /* SECTIONPAGES \* NumberFormat \* MERGEFORMAT -> + not imported in old ww8 filter see lcl_ParseNumberingType + todo: find alternative + */ + ,FIELD_SECTIONPAGES + /* SEQ sequencename \h \c \n \r \s \* MERGEFORMAT -> + number range name:sequencename value:sequencename+1 + todo: only partially implemented, switches unsupported + */ + ,FIELD_SEQ + /* SET bookmarkname newtext \* MERGEFORMAT -> + SetVariable bookmarkname = newtext + todo: not implemented yet + */ + ,FIELD_SET + /* SKIPIF condition \* MERGEFORMAT -> + ?? + todo: not implemented yet + */ + ,FIELD_SKIPIF + /* STYLEREF stylename \* MERGEFORMAT -> + not imported in old ww8 filter + todo: add an equivalent field type + */ + ,FIELD_STYLEREF + /* SUBJECT subject \* Defaultswitch \* MERGEFORMAT -> + DocInfo - subject + */ + ,FIELD_SUBJECT + /* SYMBOL symbolnumber \* MERGEFORMAT -> + inserts a special char (symbolnumber) + todo: find alternative + */ + ,FIELD_SYMBOL + /* TEMPLATE \* Defaultswitch \* MERGEFORMAT + TemplateName field + */ + ,FIELD_TEMPLATE + /* TIME \@ "number format" \* MERGEFORMAT + ww8filterimprovement: multiple languages now supported + */ + ,FIELD_TIME + /* TITLE \* Defaultswitch \* MERGEFORMAT -> + DocInfo-title + */ + ,FIELD_TITLE + /* USERINITIALS newinitials \* MERGEFORMAT -> + ExtendedUser field (SHORTCUT) + */ + ,FIELD_USERINITIALS + /* USERADDRESS \* MERGEFORMAT -> + not imported in old ww8 filter + todo: find alternative + */ + ,FIELD_USERADDRESS + /* USERNAME newusername \* MERGEFORMAT -> + not imported in old ww8 filter + todo: import as extended user field(s) + */ + ,FIELD_USERNAME +}; +struct FieldConversion +{ + ::rtl::OUString sWordCommand; + const sal_Char* cFieldServiceName; + const sal_Char* cFieldMasterServiceName; + FieldId eFieldId; +}; + +struct FieldConversionHash +{ + unsigned long operator()(const OUString& rKey) const + { + return static_cast<unsigned long>(rKey.hashCode()); + } +}; + +struct FieldConversionEq +{ + bool operator() (const OUString& rA, const OUString& rB) const + { + return rA == rB; + } +}; + +typedef ::std::hash_map< ::rtl::OUString, FieldConversion, FieldConversionHash, FieldConversionEq> + FieldConversionMap_t; + +/*-- 18.07.2006 08:56:55--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Int32 FIB::GetData( doctok::Id nName ) +{ + if( nName >= NS_rtf::LN_WIDENT && nName <= NS_rtf::LN_LCBSTTBFUSSR) + return aFIBData[nName - NS_rtf::LN_WIDENT]; + OSL_ASSERT("invalid index in FIB"); + return -1; +} +/*-- 18.07.2006 08:56:55--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FIB::SetData( doctok::Id nName, sal_Int32 nValue ) +{ + OSL_ENSURE( nName >= NS_rtf::LN_WIDENT && nName <= NS_rtf::LN_LCBSTTBFUSSR, "invalid index in FIB"); + if( nName >= NS_rtf::LN_WIDENT && nName <= NS_rtf::LN_LCBSTTBFUSSR) + aFIBData[nName - NS_rtf::LN_WIDENT] = nValue; +} +/*-- 01.09.2006 10:22:03--------------------------------------------------- + + -----------------------------------------------------------------------*/ +DomainMapper_Impl::DomainMapper_Impl( + DomainMapper& rDMapper, + uno::Reference< lang::XComponent > xModel ) : + m_rDMapper( rDMapper ), + m_xTextDocument( xModel, uno::UNO_QUERY ), + m_xTextFactory( xModel, uno::UNO_QUERY ), + m_bFieldMode( false ), + m_bSetUserFieldContent( false ), + m_nCurrentTabStopIndex( 0 ), + m_nCurrentParaStyleId( -1 ), + m_bInStyleSheetImport( false ) +{ + GetBodyText(); + uno::Reference< text::XTextAppendAndConvert > xBodyTextAppendAndConvert = uno::Reference< text::XTextAppendAndConvert >( m_xBodyText, uno::UNO_QUERY ); + m_aTextAppendStack.push(xBodyTextAppendAndConvert); + + TableDataHandler_t::Pointer_t pTableHandler + (new DomainMapperTableHandler(xBodyTextAppendAndConvert)); + m_TableManager.setHandler(pTableHandler); + + m_TableManager.startLevel(); +} +/*-- 01.09.2006 10:22:28--------------------------------------------------- + + -----------------------------------------------------------------------*/ +DomainMapper_Impl::~DomainMapper_Impl() +{ + m_TableManager.endLevel(); +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Reference< container::XNameContainer > DomainMapper_Impl::GetPageStyles() +{ + if(!m_xPageStyles.is()) + { + uno::Reference< style::XStyleFamiliesSupplier > xSupplier( m_xTextDocument, uno::UNO_QUERY ); + xSupplier->getStyleFamilies()->getByName(::rtl::OUString::createFromAscii("PageStyles")) >>= m_xPageStyles; + } + return m_xPageStyles; +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Reference< text::XText > DomainMapper_Impl::GetBodyText() +{ + if(!m_xBodyText.is() && m_xTextDocument.is()) + { + m_xBodyText = m_xTextDocument->getText(); + } + return m_xBodyText; +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::PushProperties(ContextType eId) +{ + PropertyMapPtr pInsert(eId == CONTEXT_SECTION ? new SectionPropertyMap : new PropertyMap); + m_aPropertyStacks[eId].push( pInsert ); + m_aContextStack.push(eId); + + m_pTopContext = m_aPropertyStacks[eId].top(); +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::PopProperties(ContextType eId) +{ + OSL_ENSURE(!m_aPropertyStacks[eId].empty(), "section stack already empty"); + m_aPropertyStacks[eId].pop(); + m_aContextStack.pop(); + if(!m_aContextStack.empty() && !m_aPropertyStacks[m_aContextStack.top()].empty()) + + m_pTopContext = m_aPropertyStacks[m_aContextStack.top()].top(); + else + { + OSL_ENSURE(eId == CONTEXT_SECTION, "this should happen at a section context end"); + m_pTopContext.reset(); + } +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +PropertyMapPtr DomainMapper_Impl::GetTopContextOfType(ContextType eId) +{ + PropertyMapPtr pRet; + OSL_ENSURE( !m_aPropertyStacks[eId].empty(), + "no context of this type available"); + if(!m_aPropertyStacks[eId].empty()) + pRet = m_aPropertyStacks[eId].top(); + return pRet; +} + +/*-- 17.07.2006 08:47:04--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::InitTabStopFromStyle( const uno::Sequence< style::TabStop >& rInitTabStops ) +{ + OSL_ENSURE(!m_aCurrentTabStops.size(), "tab stops already initialized"); + for( sal_Int32 nTab = 0; nTab < rInitTabStops.getLength(); ++nTab) + { + m_aCurrentTabStops.push_back( DeletableTabStop(rInitTabStops[nTab]) ); + } +} +/*-- 29.06.2006 13:35:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::ModifyCurrentTabStop( doctok::Id nId, sal_Int32 nValue) +{ + OSL_ENSURE(nId == NS_rtf::LN_dxaAdd || m_nCurrentTabStopIndex < m_aCurrentTabStops.size(), + "tab stop creation error"); + + if( nId != NS_rtf::LN_dxaAdd && m_nCurrentTabStopIndex >= m_aCurrentTabStops.size()) + return; + static const style::TabAlign aTabAlignFromWord[] = + { + style::TabAlign_LEFT, + style::TabAlign_CENTER, + style::TabAlign_RIGHT, + style::TabAlign_DECIMAL, + style::TabAlign_LEFT + }; + static const sal_Unicode aTabFillCharWord[] = + { + ' ', + '.', + '-', + '_', + '_', + 0xb7 + }; + + switch(nId) + { + case NS_rtf::LN_dxaAdd: //set tab + m_aCurrentTabStops.push_back( + DeletableTabStop(style::TabStop(lcl_convertToMM100(nValue), style::TabAlign_LEFT, ' ', ' '))); + break; + case NS_rtf::LN_dxaDel: //deleted tab + { + //mark the tab stop at the given position as deleted + ::std::vector<DeletableTabStop>::iterator aIt = m_aCurrentTabStops.begin(); + ::std::vector<DeletableTabStop>::iterator aEndIt = m_aCurrentTabStops.end(); + sal_Int32 nConverted = lcl_convertToMM100(nValue); + for( ; aIt != aEndIt; ++aIt) + { + if( aIt->Position == nConverted ) + { + aIt->bDeleted = true; + break; + } + } + } + break; + case NS_rtf::LN_TLC: //tab leading characters - for decimal tabs + // 0 - no leader, 1- dotted, 2 - hyphenated, 3 - single line, 4 - heavy line, 5 - middle dot + if( nValue >= 0 && nValue < sal::static_int_cast<sal_Int32>(sizeof(aTabFillCharWord) / sizeof (sal_Unicode))) + (m_aCurrentTabStops.begin() + m_nCurrentTabStopIndex)->FillChar = aTabFillCharWord[nValue]; + break; + case NS_rtf::LN_JC: //tab justification + //0 - left, 1 - centered, 2 - right, 3 - decimal 4 - bar + if( nValue >= 0 && nValue < sal::static_int_cast<sal_Int32>(sizeof(aTabAlignFromWord) / sizeof (style::TabAlign))) + (m_aCurrentTabStops.begin() + m_nCurrentTabStopIndex)->Alignment = aTabAlignFromWord[nValue]; + break; + } +} +/*-- 29.06.2006 13:35:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Sequence< style::TabStop > DomainMapper_Impl::GetCurrentTabStopAndClear() +{ + uno::Sequence< style::TabStop > aRet( m_aCurrentTabStops.size() ); + style::TabStop* pArray = aRet.getArray(); + ::std::vector<DeletableTabStop>::const_iterator aIt = m_aCurrentTabStops.begin(); + ::std::vector<DeletableTabStop>::const_iterator aEndIt = m_aCurrentTabStops.end(); + sal_Int32 nDeleted = 0; + for(sal_Int32 nIndex = 0; aIt != aEndIt; ++aIt) + { + if(!aIt->bDeleted) + pArray[nIndex++] = *aIt; + else + ++nDeleted; + } + m_aCurrentTabStops.clear(); + m_nCurrentTabStopIndex = 0; + if(nDeleted) + { + aRet.realloc( aRet.getLength() - nDeleted); + } + return aRet; +} + +/*-- 17.07.2006 09:08:26--------------------------------------------------- + returns a the value from the current paragraph style - if available + TODO: What about parent styles? + -----------------------------------------------------------------------*/ +uno::Any DomainMapper_Impl::GetPropertyFromStyleSheet(PropertyIds eId) +{ + const StyleSheetEntry* pEntry = 0; + if( m_bInStyleSheetImport ) + pEntry = GetStyleSheetTable()->FindParentStyleSheet(-1); + else + pEntry = + GetStyleSheetTable()->FindStyleSheetByISTD(GetCurrentParaStyleId()); + while(pEntry) + { + //is there a tab stop set? + if(pEntry->pProperties) + { + PropertyMap::const_iterator aPropertyIter = + pEntry->pProperties->find(PropertyNameSupplier::GetPropertyNameSupplier().GetName((eId))); + if( aPropertyIter != pEntry->pProperties->end()) + { + return aPropertyIter->second; + } + } + //search until the property is set or no parent is available + pEntry = GetStyleSheetTable()->FindParentStyleSheet(pEntry->nBaseStyleIdentifier); + } + return uno::Any(); +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +ListTablePtr DomainMapper_Impl::GetListTable() +{ + if(!m_pListTable) + m_pListTable.reset( + new ListTable( m_rDMapper, m_xTextFactory )); + return m_pListTable; +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::finishParagraph( PropertyMapPtr pPropertyMap ) +{ + uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top(); + if(xTextAppendAndConvert.is()) + { + try + { + uno::Reference< text::XTextRange > xTextRange = + xTextAppendAndConvert->finishParagraph + (pPropertyMap->GetPropertyValues()); + + m_TableManager.handle(xTextRange); + } + catch(const lang::IllegalArgumentException& ) + { + } + catch(const uno::Exception& ) + { + } + } +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::appendTextPortion( const ::rtl::OUString& rString, PropertyMapPtr pPropertyMap ) +{ + uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top(); + if(xTextAppendAndConvert.is()) + { + try + { + uno::Reference< text::XTextRange > xTextRange = + xTextAppendAndConvert->appendTextPortion + (rString, pPropertyMap->GetPropertyValues()); + + //m_TableManager.handle(xTextRange); + } + catch(const lang::IllegalArgumentException& ) + { + } + catch(const uno::Exception& ) + { + } + } +} +/*-- 24.07.2006 09:41:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +::rtl::OUString lcl_FindUnusedPageStyleName(const uno::Sequence< ::rtl::OUString >& rPageStyleNames) +{ + static const sal_Char cDefaultStyle[] = "Converted"; + //find the hightest number x in each style with the name "cDefaultStyle+x" and + //return an incremented name + sal_Int32 nMaxIndex = 0; + const sal_Int32 nDefaultLength = sizeof(cDefaultStyle)/sizeof(sal_Char) - 1; + const ::rtl::OUString sDefaultStyle( cDefaultStyle, nDefaultLength, RTL_TEXTENCODING_ASCII_US ); + + const ::rtl::OUString* pStyleNames = rPageStyleNames.getConstArray(); + for( sal_Int32 nStyle = 0; nStyle < rPageStyleNames.getLength(); ++nStyle) + { + if( pStyleNames[nStyle].getLength() > nDefaultLength && + !rtl_ustr_compare_WithLength( sDefaultStyle, nDefaultLength, pStyleNames[nStyle], nDefaultLength)) + { + sal_Int32 nIndex = pStyleNames[nStyle].copy( nDefaultLength ).toInt32(); + if( nIndex > nMaxIndex) + nMaxIndex = nIndex; + } + } + ::rtl::OUString sRet( sDefaultStyle ); + sRet += rtl::OUString::valueOf( nMaxIndex + 1); + return sRet; +} + +void DomainMapper_Impl::PushPageHeader(SectionPropertyMap::PageType eType) +{ + //get the section context + PropertyMapPtr pContext = DomainMapper_Impl::GetTopContextOfType(CONTEXT_SECTION); + //ask for the header name of the given type + SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() ); + if(pSectionContext) + { + ::rtl::OUString sPageStyleName = pSectionContext->GetPageStyleName( eType ); + //if there's none create one + try + { + uno::Reference< beans::XPropertySet > xPageStyle; + if(!sPageStyleName.getLength()) + { + uno::Sequence< ::rtl::OUString > aPageStyleNames = GetPageStyles()->getElementNames(); + sPageStyleName = lcl_FindUnusedPageStyleName(aPageStyleNames); + xPageStyle = uno::Reference< beans::XPropertySet > ( + m_xTextFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.PageStyle") )), + uno::UNO_QUERY); + GetPageStyles()->insertByName( sPageStyleName, uno::makeAny(xPageStyle) ); + pSectionContext->SetPageStyleName( eType, sPageStyleName ); + } + else + GetPageStyles()->getByName( sPageStyleName ) >>= xPageStyle; + //switch on header use + xPageStyle->setPropertyValue( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderIsOn")), + uno::makeAny(sal_True) ); + //set the interface + uno::Reference< text::XText > xHeaderText; + xPageStyle->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderText") )) >>= xHeaderText; + m_aTextAppendStack.push( uno::Reference< text::XTextAppendAndConvert >( xHeaderText, uno::UNO_QUERY_THROW)); + } + catch( uno::Exception& ) + { + } + } +} +/*-- 24.07.2006 09:41:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::PushPageFooter(SectionPropertyMap::PageType eType) +{ + //get the section context + PropertyMapPtr pContext = DomainMapper_Impl::GetTopContextOfType(CONTEXT_SECTION); + //ask for the footer name of the given type + SectionPropertyMap* pSectionContext = dynamic_cast< SectionPropertyMap* >( pContext.get() ); + if(pSectionContext) + { + ::rtl::OUString sPageStyleName = pSectionContext->GetPageStyleName( eType ); + //if there's none create one + try + { + uno::Reference< beans::XPropertySet > xPageStyle; + if(!sPageStyleName.getLength()) + { + uno::Sequence< ::rtl::OUString > aPageStyleNames = GetPageStyles()->getElementNames(); + sPageStyleName = lcl_FindUnusedPageStyleName(aPageStyleNames); + xPageStyle = uno::Reference< beans::XPropertySet >( + m_xTextFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.PageStyle") )), + uno::UNO_QUERY); + GetPageStyles()->insertByName( sPageStyleName, uno::makeAny(xPageStyle) ); + pSectionContext->SetPageStyleName( eType, sPageStyleName ); + } + else + GetPageStyles()->getByName( sPageStyleName ) >>= xPageStyle; + //switch on footer use + xPageStyle->setPropertyValue( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FooterIsOn")), + uno::makeAny(sal_True) ); + //set the interface + uno::Reference< text::XText > xFooterText; + xPageStyle->getPropertyValue(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FooterText") )) >>= xFooterText; + m_aTextAppendStack.push(uno::Reference< text::XTextAppendAndConvert >( xFooterText, uno::UNO_QUERY_THROW)); + } + catch( uno::Exception& ) + { + } + } +} +/*-- 24.07.2006 09:41:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::PopPageHeaderFooter() +{ + m_aTextAppendStack.pop(); +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Int32 lcl_convertToMM100(sal_Int32 _t) +{ + return TWIP_TO_MM100( _t ); +} +/*-- 12.09.2006 08:07:55--------------------------------------------------- + + -----------------------------------------------------------------------*/ +::rtl::OUString lcl_FindQuotedText( const ::rtl::OUString& rCommand, + const sal_Char* cStartQuote, const sal_Unicode uEndQuote ) +{ + ::rtl::OUString sRet; + ::rtl::OUString sStartQuote( ::rtl::OUString::createFromAscii(cStartQuote) ); + sal_Int32 nStartIndex = rCommand.indexOf( sStartQuote ); + if( nStartIndex >= 0 ) + { + sal_Int32 nStartLength = sStartQuote.getLength(); + sal_Int32 nEndIndex = rCommand.indexOf( uEndQuote, nStartIndex + nStartLength); + if( nEndIndex > nStartIndex ) + { + sRet = rCommand.copy( nStartIndex + nStartLength, nEndIndex - nStartIndex - nStartLength); + } + } + return sRet; + +} +/*-- 08.09.2006 14:05:17--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Int16 lcl_ParseNumberingType(::rtl::OUString& rCommand) +{ + sal_Int16 nRet = style::NumberingType::PAGE_DESCRIPTOR; + + // The command looks like: " PAGE \* Arabic " + ::rtl::OUString sNumber = lcl_FindQuotedText(rCommand, "\\* ", ' '); + + if( sNumber.getLength() ) + { + //todo: might make sense to hash this list, too + struct NumberingPairs + { + const sal_Char* cWordName; + sal_Int16 nType; + }; + static const NumberingPairs aNumberingPairs[] = + { + {"Arabic", style::NumberingType::ARABIC} + ,{"ROMAN", style::NumberingType::ROMAN_UPPER} + ,{"roman", style::NumberingType::ROMAN_LOWER} + ,{"ALPHABETIC", style::NumberingType::CHARS_UPPER_LETTER} + ,{"alphabetic", style::NumberingType::CHARS_LOWER_LETTER} + ,{"CircleNum", style::NumberingType::CIRCLE_NUMBER} + ,{"ThaiArabic", style::NumberingType::CHARS_THAI} + ,{"ThaiCardText", style::NumberingType::CHARS_THAI} + ,{"ThaiLetter", style::NumberingType::CHARS_THAI} +// ,{"SBCHAR", style::NumberingType::} +// ,{"DBCHAR", style::NumberingType::} +// ,{"DBNUM1", style::NumberingType::} +// ,{"DBNUM2", style::NumberingType::} +// ,{"DBNUM3", style::NumberingType::} +// ,{"DBNUM4", style::NumberingType::} + ,{"Aiueo", style::NumberingType::AIU_FULLWIDTH_JA} + ,{"Iroha", style::NumberingType::IROHA_FULLWIDTH_JA} +// ,{"ZODIAC1", style::NumberingType::} +// ,{"ZODIAC2", style::NumberingType::} +// ,{"ZODIAC3", style::NumberingType::} +// ,{"CHINESENUM1", style::NumberingType::} +// ,{"CHINESENUM2", style::NumberingType::} +// ,{"CHINESENUM3", style::NumberingType::} + ,{"ArabicAlpha", style::NumberingType::CHARS_ARABIC} + ,{"ArabicAbjad", style::NumberingType::FULLWIDTH_ARABIC} +/* possible values: +style::NumberingType:: + + CHARS_UPPER_LETTER_N + CHARS_LOWER_LETTER_N + TRANSLITERATION + NATIVE_NUMBERING + CIRCLE_NUMBER + NUMBER_LOWER_ZH + NUMBER_UPPER_ZH + NUMBER_UPPER_ZH_TW + TIAN_GAN_ZH + DI_ZI_ZH + NUMBER_TRADITIONAL_JA + AIU_HALFWIDTH_JA + IROHA_HALFWIDTH_JA + NUMBER_UPPER_KO + NUMBER_HANGUL_KO + HANGUL_JAMO_KO + HANGUL_SYLLABLE_KO + HANGUL_CIRCLED_JAMO_KO + HANGUL_CIRCLED_SYLLABLE_KO + CHARS_HEBREW + CHARS_NEPALI + CHARS_KHMER + CHARS_LAO + CHARS_TIBETAN + CHARS_CYRILLIC_UPPER_LETTER_BG + CHARS_CYRILLIC_LOWER_LETTER_BG + CHARS_CYRILLIC_UPPER_LETTER_N_BG + CHARS_CYRILLIC_LOWER_LETTER_N_BG + CHARS_CYRILLIC_UPPER_LETTER_RU + CHARS_CYRILLIC_LOWER_LETTER_RU + CHARS_CYRILLIC_UPPER_LETTER_N_RU + CHARS_CYRILLIC_LOWER_LETTER_N_RU*/ + + }; + for( sal_uInt32 nNum = 0; nNum < sizeof(aNumberingPairs)/sizeof( NumberingPairs ); ++nNum) + { + if( /*sCommand*/sNumber.equalsAscii(aNumberingPairs[nNum].cWordName )) + { + nRet = aNumberingPairs[nNum].nType; + break; + } + } + + } + return nRet; +} +/*-- 08.09.2006 13:52:09--------------------------------------------------- + + -----------------------------------------------------------------------*/ +OUString lcl_ParseFormat( const ::rtl::OUString& rCommand ) +{ + // The command looks like: " DATE \@ "dd MMMM yyyy" + return lcl_FindQuotedText(rCommand, "\\@ \"", '\"'); +} +/*-- 19.09.2006 10:01:20--------------------------------------------------- +extract a parameter (with or without quotes) between the command and the following backslash + -----------------------------------------------------------------------*/ +::rtl::OUString lcl_ExtractParameter(const ::rtl::OUString& rCommand, sal_Int32 nCommandLength ) +{ + sal_Int32 nStartIndex = nCommandLength; + sal_Int32 nEndIndex = 0; + sal_Int32 nQuoteIndex = rCommand.indexOf( '\"', nStartIndex); + if( nQuoteIndex >= 0) + { + nStartIndex = nQuoteIndex + 1; + nEndIndex = rCommand.indexOf( '\"', nStartIndex + 1) - 1; + } + else + { + nEndIndex = rCommand.indexOf( ::rtl::OUString::createFromAscii(" \\"), nStartIndex); + } + ::rtl::OUString sRet; + if( nEndIndex > nStartIndex + 1 ) + { + //remove spaces at start and end of the result + if(nQuoteIndex <= 0) + { + const sal_Unicode* pCommandStr = rCommand.getStr(); + while( nStartIndex < nEndIndex && pCommandStr[nStartIndex] == ' ') + ++nStartIndex; + while( nEndIndex > nStartIndex && pCommandStr[nEndIndex] == ' ') + --nEndIndex; + } + sRet = rCommand.copy( nStartIndex, nEndIndex - nStartIndex + 1); + } + return sRet; +} + +/*-- 15.09.2006 10:57:57--------------------------------------------------- + + -----------------------------------------------------------------------*/ +::rtl::OUString lcl_ExctractAskVariableAndHint( const ::rtl::OUString& rCommand, ::rtl::OUString& rHint ) +{ + // the first word after "ASK " is the variable + // the text after the variable and before a '\' is the hint + // if no hint is set the variable is used as hint + // the quotes of the hint have to be removed + sal_Int32 nIndex = rCommand.indexOf( ' ', 2);//find last space after 'ASK' + while(rCommand.getStr()[nIndex] == ' ') + ++nIndex; + ::rtl::OUString sShortCommand( rCommand.copy( nIndex ) ); //cut off the " ASK " + + nIndex = 0; + sShortCommand = sShortCommand.getToken( 0, '\\', nIndex); + nIndex = 0; + ::rtl::OUString sRet = sShortCommand.getToken( 0, ' ', nIndex); + if( nIndex > 0) + rHint = sShortCommand.copy( nIndex ); + if( !rHint.getLength() ) + rHint = sRet; + return sRet; +} +/*-- 01.09.2006 11:48:08--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::CreateField( ::rtl::OUString& rCommand ) +{ + static FieldConversionMap_t aFieldConversionMap; + static bool bFilled = false; + m_bSetUserFieldContent = false; + if(!bFilled) + { + static const FieldConversion aFields[] = + { +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADDRESSBLOCK")), "", "", FIELD_ADDRESSBLOCK }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ADVANCE")), "", "", FIELD_ADVANCE }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ASK")), "SetExpression", "SetExpression", FIELD_ASK }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTONUM")), "SetExpression", "SetExpression", FIELD_AUTONUM }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTONUMLGL")), "SetExpression", "SetExpression", FIELD_AUTONUMLGL }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTONUMOUT")), "SetExpression", "SetExpression", FIELD_AUTONUMOUT }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AUTHOR")), "Author", "", FIELD_AUTHOR }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DATE")), "DateTime", "", FIELD_DATE }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("COMMENTS")), "DocInfo.Description", "", FIELD_COMMENTS }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CREATEDATE")), "DocInfo.CreateDateTime", "", FIELD_CREATEDATE }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DOCPROPERTY")), "", "", FIELD_DOCPROPERTY }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DOCVARIABLE")), "User", "", FIELD_DOCVARIABLE }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EDITTIME")), "DocInfo.EditTime", "", FIELD_EDITTIME }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FILLIN")), "Input", "", FIELD_FILLIN }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FILENAME")), "FileName", "", FIELD_FILENAME }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FILESIZE")), "", "", FIELD_FILESIZE }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FORMULA")), "", "", FIELD_FORMULA +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("GOTOBUTTON")), "", "", FIELD_GOTOBUTTON }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HYPERLINK")), "", "", FIELD_HYPERLINK }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IF")), "ConditionalText", "", FIELD_IF }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INFO")), "","", FIELD_INFO }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("INCLUDEPICTURE")), "", "", FIELD_INCLUDEPICTURE}, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("KEYWORDS")), "DocInfo.KeyWords", "", FIELD_KEYWORDS }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LASTSAVEDBY")), "DocInfo.ChangeAuthor", "", FIELD_LASTSAVEDBY }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MACROBUTTON")), "Macro", "", FIELD_MACROBUTTON }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MERGEFIELD")), "Database", "Database", FIELD_MERGEFIELD}, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MERGEREC")), "DatabaseNumberOfSet", "", FIELD_MERGEREC }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MERGESEQ")), "", "", FIELD_MERGESEQ }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NEXT")), "DatabaseNextSet", "", FIELD_NEXT }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NEXTIF")), "DatabaseNextSet", "", FIELD_NEXTIF }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PAGE")), "PageNumber", "", FIELD_PAGE }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("REF")), "", "", FIELD_REF }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("REVNUM")), "DocInfo.Revision", "", FIELD_REVNUM }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SAVEDATE")), "DocInfo.Change", "", FIELD_SAVEDATE }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SECTION")), "", "", FIELD_SECTION }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SECTIONPAGES")), "", "", FIELD_SECTIONPAGES }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SEQ")), "SetExpression", "SetExpression", FIELD_SEQ }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SET")), "","", FIELD_SET }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SKIPIF")),"", "", FIELD_SKIPIF }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("STYLEREF")),"", "", FIELD_STYLEREF }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SUBJECT")), "DocInfo.Subject", "", FIELD_SUBJECT }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SYMBOL")),"", "", FIELD_SYMBOL }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TEMPLATE")), "TemplateName", "", FIELD_TEMPLATE}, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TIME")), "DateTime", "", FIELD_TIME }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TITLE")), "DocInfo.Title", "", FIELD_TITLE }, + {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("USERINITIALS")), "ExtendedUser", "", FIELD_USERINITIALS}, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("USERADDRESS")), "", "", FIELD_USERADDRESS }, +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("USERNAME")), "ExtendedUser", "", FIELD_USERNAME } + +// {::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("")), "", "", FIELD_}, + + }; + size_t nConversions = sizeof(aFields)/sizeof(FieldConversion); + for( size_t nConversion = 0; nConversion < nConversions; ++nConversion) + { + aFieldConversionMap.insert( FieldConversionMap_t::value_type( + aFields[nConversion].sWordCommand, + aFields[nConversion] )); + } + + bFilled = true; + } + try + { + uno::Reference< uno::XInterface > xFieldInterface; + //at first determine the field type - skip first space + ::rtl::OUString sCommand( rCommand.copy(rCommand.getLength() ? 1 : 0) ); + sal_Int32 nSpaceIndex = sCommand.indexOf( ' ' ); + if( 0 <= nSpaceIndex ) + sCommand = sCommand.copy( 0, nSpaceIndex ); + + FieldConversionMap_t::iterator aIt = aFieldConversionMap.find(sCommand); + if(aIt != aFieldConversionMap.end()) + { + uno::Reference< beans::XPropertySet > xFieldProperties; + if( FIELD_HYPERLINK != aIt->second.eFieldId && + FIELD_DOCPROPERTY != aIt->second.eFieldId) + { + //add the service prefix + OUString sServiceName(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextField.")); + sServiceName += ::rtl::OUString::createFromAscii(aIt->second.cFieldServiceName ); + xFieldInterface = m_xTextFactory->createInstance(sServiceName); + xFieldProperties = uno::Reference< beans::XPropertySet >( xFieldInterface, uno::UNO_QUERY_THROW); + } + PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); + switch( aIt->second.eFieldId ) + { + case FIELD_ADDRESSBLOCK: break; + case FIELD_ADVANCE : break; + case FIELD_ASK : + { + //doesn the command contain a variable name? + ::rtl::OUString sVariable, sHint; + + sVariable = lcl_ExctractAskVariableAndHint( rCommand, sHint ); + if(sVariable.getLength()) + { + // determine field master name + uno::Reference< beans::XPropertySet > xMaster = FindOrCreateFieldMaster( + "com.sun.star.text.FieldMaster.SetExpression", sVariable ); + + // attach the master to the field + uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW ); + xDependentField->attachTextFieldMaster( xMaster ); + + // set input flag at the field + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_IS_INPUT), uno::makeAny( true )); + // set the prompt + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_HINT), + uno::makeAny( sHint )); + } + else + { + //don't insert the field + //todo: maybe import a 'normal' input field here? + xFieldInterface = 0; + } + } + break; + case FIELD_AUTONUM : + case FIELD_AUTONUMLGL : + case FIELD_AUTONUMOUT : + { + //create a sequence field master "AutoNr" + uno::Reference< beans::XPropertySet > xMaster = FindOrCreateFieldMaster( + "com.sun.star.text.FieldMaster.SetExpression", + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AutoNr") )); + + xMaster->setPropertyValue( rPropNameSupplier.GetName(PROP_SUB_TYPE), + uno::makeAny(text::SetVariableType::SEQUENCE)); + + //apply the numbering type + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_NUMBERING_TYPE), + uno::makeAny( lcl_ParseNumberingType(rCommand) )); + // attach the master to the field + uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW ); + xDependentField->attachTextFieldMaster( xMaster ); + } + break; + case FIELD_AUTHOR : + { + xFieldProperties->setPropertyValue( rPropNameSupplier.GetName(PROP_FULL_NAME), uno::makeAny( true )); + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" AUTHOR") ); + if(sParam.getLength()) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true )); + //PROP_CURRENT_PRESENTATION is set later anyway + } + } + break; + case FIELD_DATE: + { + //not fixed, + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_IS_FIXED), + uno::makeAny( false )); + SetNumberFormat( rCommand, xFieldProperties ); + } + break; + case FIELD_COMMENTS : + { + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" COMMENTS") ); + if(sParam.getLength()) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true )); + //PROP_CURRENT_PRESENTATION is set later anyway + } + } + break; + case FIELD_CREATEDATE : + { + SetNumberFormat( rCommand, xFieldProperties ); + } + break; + case FIELD_DOCPROPERTY : + { + //some docproperties should be imported as document statistic fields, some as DocInfo fields + //others should be user fields + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" DOCPROPERTY") ); + if(sParam.getLength()) + { + #define SET_ARABIC 0x01 + #define SET_FULL_NAME 0x02 + struct DocPropertyMap + { + const sal_Char* pDocPropertyName; + const sal_Char* pServiceName; + sal_uInt8 nFlags; + }; + static const DocPropertyMap aDocProperties[] = + { + {"Author", "Author", SET_FULL_NAME}, + {"CreateTime", "DocInfo.CreateDateTime", 0}, + {"Characters", "CharacterCount", SET_ARABIC}, + {"Comments", "DocInfo.Description", 0}, + {"Keywords", "DocInfo.KeyWords", 0}, + {"LastPrinted", "DocInfo.PrintDateTime", 0}, + {"LastSavedBy", "DocInfo.ChangeAuthor", 0}, + {"LastSavedTime", "DocInfo.ChangeDateTime", 0}, + {"Paragraphs", "ParagraphCount", SET_ARABIC}, + {"RevisionNumber", "DocInfo.Revision", 0}, + {"Subject", "DocInfo.Subject", 0}, + {"Template", "TemplateName", 0}, + {"Title", "DocInfo.Title", 0}, + {"TotalEditingTime", "DocInfo.EditTime", 9}, + {"Words", "WordCount", SET_ARABIC} + + //other available DocProperties: + //Bytes, Category, CharactersWithSpaces, Company + //HyperlinkBase, + //Lines, Manager, NameofApplication, ODMADocId, Pages, + //Security, + }; + //search for a field mapping + ::rtl::OUString sFieldServiceName; + sal_uInt16 nMap = 0; + for( ; nMap < sizeof(aDocProperties) / sizeof(DocPropertyMap); ++nMap ) + { + if(sParam.equalsAscii(aDocProperties[nMap].pDocPropertyName)) + { + sFieldServiceName = ::rtl::OUString::createFromAscii(aDocProperties[nMap].pServiceName); + break; + } + } + ::rtl::OUString sServiceName(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.TextField.")); + if(sFieldServiceName.getLength()) + { + sServiceName += sFieldServiceName; + xFieldInterface = m_xTextFactory->createInstance(sServiceName); + xFieldProperties = uno::Reference< beans::XPropertySet >( xFieldInterface, uno::UNO_QUERY_THROW); + if(0 != (aDocProperties[nMap].nFlags & SET_ARABIC)) + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_NUMBERING_TYPE), + uno::makeAny( style::NumberingType::ARABIC )); + else if(0 != (aDocProperties[nMap].nFlags & SET_FULL_NAME)) + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_FULL_NAME), uno::makeAny( true )); + + } + else + { + //create a user field and type + uno::Reference< beans::XPropertySet > xMaster = + FindOrCreateFieldMaster( "com.sun.star.text.FieldMaster.User", sParam ); + sServiceName += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("User")); + xFieldInterface = m_xTextFactory->createInstance(sServiceName); + xFieldProperties = uno::Reference< beans::XPropertySet >( xFieldInterface, uno::UNO_QUERY_THROW); + uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW ); + xDependentField->attachTextFieldMaster( xMaster ); + m_bSetUserFieldContent = true; + } + } + } + #undef SET_ARABIC + #undef SET_FULL_NAME + break; + case FIELD_DOCVARIABLE : + { + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" DOCVARIABLE") ); + //create a user field and type + uno::Reference< beans::XPropertySet > xMaster = + FindOrCreateFieldMaster( "com.sun.star.text.FieldMaster.User", sParam ); + uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW ); + xDependentField->attachTextFieldMaster( xMaster ); + m_bSetUserFieldContent = true; + } + break; + case FIELD_EDITTIME : + //it's a numbering type, no number format! SetNumberFormat( rCommand, xFieldProperties ); + break; + case FIELD_FILLIN : + { + sal_Int32 nIndex = 0; + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_HINT), uno::makeAny( rCommand.getToken( 1, '\"', nIndex))); + } + break; + case FIELD_FILENAME: + { + sal_Int32 nNumberingTypeIndex = rCommand.indexOf( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\\p"))); + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_FILE_FORMAT), + uno::makeAny( nNumberingTypeIndex > 0 ? text::FilenameDisplayFormat::FULL : text::FilenameDisplayFormat::NAME )); + } + break; + case FIELD_FILESIZE : break; + case FIELD_FORMULA : break; + case FIELD_GOTOBUTTON : break; + case FIELD_HYPERLINK: + { + sal_Int32 nStartQuote = rCommand.indexOf( '\"' ); + sal_Int32 nEndQuote = nStartQuote < rCommand.getLength() + 1 ? rCommand.indexOf( '\"', nStartQuote + 1) : -1; + if( nEndQuote > 0) + m_sHyperlinkURL = rCommand.copy(nStartQuote + 1, nEndQuote - nStartQuote - 1); + } + break; + case FIELD_IF : break; + case FIELD_INFO : break; + case FIELD_INCLUDEPICTURE: break; + case FIELD_KEYWORDS : + { + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" KEYWORDS") ); + if(sParam.getLength()) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true )); + //PROP_CURRENT_PRESENTATION is set later anyway + } + } + break; + case FIELD_LASTSAVEDBY : break; + case FIELD_MACROBUTTON: + { + //extract macro name + sal_Int32 nIndex = sizeof(" MACROBUTTON "); + ::rtl::OUString sMacro = rCommand.getToken( 0, ' ', nIndex); + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_MACRO_NAME), uno::makeAny( sMacro )); + + //extract quick help text + if( rCommand.getLength() > nIndex + 1) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_HINT), + uno::makeAny( rCommand.copy( nIndex ))); + } + } + break; + case FIELD_MERGEFIELD : + { + //todo: create a database field and fieldmaster pointing to a column, only + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" MERGEFIELD") ); + //create a user field and type + uno::Reference< beans::XPropertySet > xMaster = + FindOrCreateFieldMaster( "com.sun.star.text.FieldMaster.Database", sParam ); + +/* xFieldProperties->setPropertyValue( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FieldCode")), + uno::makeAny( rCommand.copy( nIndex + 1 ))); +*/ + uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW ); + xDependentField->attachTextFieldMaster( xMaster ); + m_bSetUserFieldContent = true; + } + break; + case FIELD_MERGEREC : break; + case FIELD_MERGESEQ : break; + case FIELD_NEXT : break; + case FIELD_NEXTIF : break; + case FIELD_PAGE : + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_NUMBERING_TYPE), + uno::makeAny( lcl_ParseNumberingType(rCommand) )); + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_SUB_TYPE), + uno::makeAny( text::PageNumberType_CURRENT )); + + break; + case FIELD_REF : break; + case FIELD_REVNUM : break; + case FIELD_SAVEDATE : + SetNumberFormat( rCommand, xFieldProperties ); + break; + case FIELD_SECTION : break; + case FIELD_SECTIONPAGES : break; + case FIELD_SEQ : break; + case FIELD_SET : break; + case FIELD_SKIPIF : break; + case FIELD_STYLEREF : break; + case FIELD_SUBJECT : + { + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" SUBJECT") ); + if(sParam.getLength()) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true )); + //PROP_CURRENT_PRESENTATION is set later anyway + } + } + break; + case FIELD_SYMBOL : break; + case FIELD_TEMPLATE: break; + case FIELD_TIME : + SetNumberFormat( rCommand, xFieldProperties ); + break; + case FIELD_TITLE : + { + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" TITLE") ); + if(sParam.getLength()) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true )); + //PROP_CURRENT_PRESENTATION is set later anyway + } + } + break; + case FIELD_USERINITIALS: + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_USER_DATA_TYPE), uno::makeAny( text::UserDataPart::SHORTCUT )); + //todo: if initials are provided - set them as fixed content + ::rtl::OUString sParam = lcl_ExtractParameter(rCommand, sizeof(" USERINITIALS") ); + if(sParam.getLength()) + { + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName( PROP_IS_FIXED ), uno::makeAny( true )); + //PROP_CURRENT_PRESENTATION is set later anyway + } + } + break; + case FIELD_USERADDRESS : //todo: user address collects street, city ... + break; + case FIELD_USERNAME : //todo: user name is firstname + lastname + break; + } + } + m_xTextField = uno::Reference< text::XTextField >( xFieldInterface, uno::UNO_QUERY ); + } + catch( uno::Exception& ) + { + } +} +/*-- 01.09.2006 11:48:09--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::SetFieldResult( ::rtl::OUString& rResult ) +{ + try + { + PropertyNameSupplier& rPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); + OSL_ENSURE( m_xTextField.is()||m_sHyperlinkURL.getLength(), "DomainMapper_Impl::SetFieldResult: field not created" ); + if(m_xTextField.is()) + { + try + { + if( m_bSetUserFieldContent ) + { + // user field content has to be set at the field master + uno::Reference< text::XDependentTextField > xDependentField( m_xTextField, uno::UNO_QUERY_THROW ); + xDependentField->getTextFieldMaster()->setPropertyValue( + rPropNameSupplier.GetName(PROP_CONTENT), + uno::makeAny( rResult )); + } + else + { + uno::Reference< beans::XPropertySet > xFieldProperties( m_xTextField, uno::UNO_QUERY_THROW); + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_CURRENT_PRESENTATION), + uno::makeAny( rResult )); + } + } + catch( const beans::UnknownPropertyException& ) + { + //some fields don't have a CurrentPresentation (DateTime) + } + uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top(); + xTextAppendAndConvert->appendTextContent( uno::Reference<text::XTextContent>(m_xTextField, uno::UNO_QUERY) ); + } + else if(m_sHyperlinkURL.getLength()) + { + //insert the string and apply hyperlink attribute to it + uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert = m_aTextAppendStack.top(); + if(xTextAppendAndConvert.is()) + { + try + { + uno::Sequence< beans::PropertyValue> aLink(1); + aLink[0].Name = rPropNameSupplier.GetName(PROP_HYPER_LINK_U_R_L); + aLink[0].Value = uno::makeAny(m_sHyperlinkURL); + xTextAppendAndConvert->appendTextPortion(rResult, aLink); + } + catch(const lang::IllegalArgumentException& ) + { + } + catch(const uno::Exception& ) + { + } + } + } + } + catch( uno::Exception& ) + { + + } + m_xTextField = 0; + m_sHyperlinkURL = OUString(); +} + +/*-- 11.09.2006 13:16:35--------------------------------------------------- + + -----------------------------------------------------------------------*/ +bool DomainMapper_Impl::IsFieldAvailable() const +{ + return m_xTextField.is() || m_sHyperlinkURL.getLength(); +} +/*-- 14.09.2006 12:46:52--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::GetCurrentLocale(lang::Locale& rLocale) +{ + ::rtl::OUString sCharLocale = PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_CHAR_LOCALE); + PropertyMapPtr pTopContext = GetTopContext(); + PropertyMap::iterator aLocaleIter = pTopContext->find(sCharLocale); + if( aLocaleIter != pTopContext->end()) + aLocaleIter->second >>= rLocale; + else + { + PropertyMapPtr pParaContext = GetTopContextOfType(CONTEXT_PARAGRAPH); + aLocaleIter = pParaContext->find(sCharLocale); + if( aLocaleIter != pParaContext->end()) + { + aLocaleIter->second >>= rLocale; + } + } +} + +/*-- 14.09.2006 12:52:58--------------------------------------------------- + extract the number format from the command and apply the resulting number + format to the XPropertySet + -----------------------------------------------------------------------*/ +void DomainMapper_Impl::SetNumberFormat( const ::rtl::OUString& rCommand, + uno::Reference< beans::XPropertySet >& xPropertySet ) +{ + OUString sFormatString = lcl_ParseFormat( rCommand ); + // find \h - hijri/luna calendar todo: what about saka/era calendar? + bool bHijri = 0 < rCommand.indexOf( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\\h "))); + lang::Locale aUSLocale; + aUSLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")); + aUSLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")); + + //determine current locale - todo: is it necessary to initialize this locale? + lang::Locale aCurrentLocale = aUSLocale; + GetCurrentLocale( aCurrentLocale ); + ::rtl::OUString sFormat = ConversionHelper::ConvertMSFormatStringToSO( sFormatString, aCurrentLocale, bHijri); + + //get the number formatter and convert the string to a format value + try + { + uno::Reference< util::XNumberFormatsSupplier > xNumberSupplier( m_xTextDocument, uno::UNO_QUERY_THROW ); + long nKey = xNumberSupplier->getNumberFormats()->addNewConverted( sFormat, aUSLocale, aCurrentLocale ); + xPropertySet->setPropertyValue( + PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_NUMBER_FORMAT), + uno::makeAny( nKey )); + } + catch(const uno::Exception&) + { + } +} + +/*-- 15.09.2006 15:10:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Reference< beans::XPropertySet > DomainMapper_Impl::FindOrCreateFieldMaster( + const sal_Char* pFieldMasterService, const ::rtl::OUString& rFieldMasterName ) + throw(::com::sun::star::uno::Exception) +{ + // query master, create if not available + uno::Reference< text::XTextFieldsSupplier > xFieldsSupplier( GetTextDocument(), uno::UNO_QUERY ); + uno::Reference< container::XNameAccess > xFieldMasterAccess = xFieldsSupplier->getTextFieldMasters(); + uno::Reference< beans::XPropertySet > xMaster; + ::rtl::OUString sFieldMasterService( ::rtl::OUString::createFromAscii(pFieldMasterService) ); + ::rtl::OUStringBuffer aFieldMasterName; + aFieldMasterName.appendAscii( pFieldMasterService ); + aFieldMasterName.append(sal_Unicode('.')); + aFieldMasterName.append(rFieldMasterName); + ::rtl::OUString sFieldMasterName = aFieldMasterName.makeStringAndClear(); + if(xFieldMasterAccess->hasByName(sFieldMasterName)) + { + //get the master + xMaster = uno::Reference< beans::XPropertySet >(xFieldMasterAccess->getByName(sFieldMasterName), + uno::UNO_QUERY_THROW); + } + else + { + //create the master + xMaster = uno::Reference< beans::XPropertySet >( + m_xTextFactory->createInstance(sFieldMasterService), uno::UNO_QUERY_THROW); + //set the master's name +// sal_Int32 nIndex = rtl_str_indexOfStr( pFieldMasterService, "Database" ); +// if( nIndex < 0 ) + xMaster->setPropertyValue( + PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_NAME), + uno::makeAny(rFieldMasterName)); +// else +// { +// xMaster->setPropertyValue( +// PropertyNameSupplier::GetPropertyNameSupplier().GetName(PROP_DATA_COLUMN_NAME), +// uno::makeAny(rFieldMasterName)); +// } + } + return xMaster; +} + +/*-- 18.09.2006 15:47:09--------------------------------------------------- + the string _can_ be quoted or not be available at all + -----------------------------------------------------------------------*/ +//void DomainMapper_Impl::ExtractAndSetDocumentInfo( +// const ::rtl::OUString& rCommand, sal_Int32 nCommandLength, PropertyIds ePropId ) +//{ +// ::rtl::OUString sParam = lcl_ExtractParameter( rCommand, nCommandLength ); +// if( sParam.getLength() ) +// { +// uno::Reference< document::XDocumentInfoSupplier > xInfoSupplier( m_xTextDocument, uno::UNO_QUERY_THROW ); +// uno::Reference< beans::XPropertySet > xInfoPropSet( xInfoSupplier->getDocumentInfo(), uno::UNO_QUERY_THROW ); +// xInfoPropSet->setPropertyValue( +// PropertyNameSupplier::GetPropertyNameSupplier().GetName(ePropId), uno::makeAny( sParam )); +// } + +//} + + +} + diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx new file mode 100644 index 000000000000..5910b9f856fb --- /dev/null +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -0,0 +1,224 @@ +#ifndef INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX +#define INCLUDED_DMAPPER_DOMAINMAPPER_IMPL_HXX + +#include <com/sun/star/text/XTextDocument.hpp> +#include <com/sun/star/text/XTextCursor.hpp> +#include <com/sun/star/text/XTextAppendAndConvert.hpp> +#ifndef _COM_SUN_STAR_STYLE_TABSTOP_HPP_ +#include <com/sun/star/style/TabStop.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif +#include <vector> +#include <stack> + +#ifndef INCLUDED_RESOURCESIDS +#include <doctok/resourceids.hxx> +#endif +#ifndef INCLUDED_TABLE_MANAGER_HXX +#include <doctok/TableManager.hxx> +#endif +#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +#include <PropertyMap.hxx> +#endif +#ifndef INCLUDED_FONTTABLE_HXX +#include <FontTable.hxx> +#endif +#ifndef INCLUDED_LISTTABLE_HXX +#include <ListTable.hxx> +#endif +#ifndef INCLUDED_LFOTABLE_HXX +#include <LFOTable.hxx> +#endif +#ifndef INCLUDED_STYLESHEETTABLE_HXX +#include <StyleSheetTable.hxx> +#endif +namespace com{ namespace sun{ namespace star{ + namespace lang{ + class XMultiServiceFactory; + struct Locale; + } + namespace text{ class XTextField;} + namespace beans{ class XPropertySet;} +}}} + +namespace dmapper { + +using namespace writerfilter; +using namespace com::sun::star; + +#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L)) +sal_Int32 lcl_convertToMM100(sal_Int32 _t); + +/*-- 14.06.2006 07:42:52--------------------------------------------------- + property stack element + -----------------------------------------------------------------------*/ +enum ContextType +{ + CONTEXT_SECTION, + CONTEXT_PARAGRAPH, + CONTEXT_CHARACTER, + NUMBER_OF_CONTEXTS +}; +typedef std::stack<ContextType> ContextStack; +typedef std::stack<PropertyMapPtr> PropertyStack; +typedef boost::shared_ptr< StyleSheetTable > StyleSheetTablePtr; +typedef std::stack< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextAppendAndConvert > > + TextAppendStack; + +/*-- 18.07.2006 08:49:08--------------------------------------------------- + + -----------------------------------------------------------------------*/ +class FIB +{ + sal_Int32 aFIBData[ NS_rtf::LN_LCBSTTBFUSSR - NS_rtf::LN_WIDENT + 1]; + sal_Int32 nLNCHS; + public: + FIB() : + nLNCHS( 0 ) + { + memset(&aFIBData, 0x00, sizeof(aFIBData)); + } + + sal_Int32 GetLNCHS() const {return nLNCHS;} + void SetLNCHS(sal_Int32 nValue) {nLNCHS = nValue;} + sal_Int32 GetData( doctok::Id nName ); + void SetData( doctok::Id nName, sal_Int32 nValue ); +}; + +/*-- 17.07.2006 09:14:13--------------------------------------------------- + extended tab stop struct + -----------------------------------------------------------------------*/ +struct DeletableTabStop : public ::com::sun::star::style::TabStop +{ + bool bDeleted; + DeletableTabStop() : + bDeleted( false ){} + DeletableTabStop( const ::com::sun::star::style::TabStop& rTabStop ) : + TabStop( rTabStop ), + bDeleted( false ){} +}; +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +class DomainMapper; +class DomainMapper_Impl +{ +public: + typedef doctok::TableManager< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >, PropertyMapPtr > TableManager_t; + typedef doctok::TableDataHandler< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >, PropertyMapPtr > TableDataHandler_t; + +private: + DomainMapper& m_rDMapper; + ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextDocument > m_xTextDocument; + ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > m_xTextFactory; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xPageStyles; + ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > m_xBodyText; + + TextAppendStack m_aTextAppendStack; + + ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextField > m_xTextField; + ::rtl::OUString m_sHyperlinkURL; + bool m_bFieldMode; + bool m_bSetUserFieldContent; + + TableManager_t m_TableManager; + + //each context needs a stack of currently used attributes + FIB m_aFIB; + PropertyStack m_aPropertyStacks[NUMBER_OF_CONTEXTS]; + ContextStack m_aContextStack; + FontTablePtr m_pFontTable; + ListTablePtr m_pListTable; + LFOTablePtr m_pLFOTable; + StyleSheetTablePtr m_pStyleSheetTable; + + PropertyMapPtr m_pTopContext; + + ::std::vector<DeletableTabStop> m_aCurrentTabStops; + sal_uInt32 m_nCurrentTabStopIndex; + sal_Int32 m_nCurrentParaStyleId; + bool m_bInStyleSheetImport; + + void GetCurrentLocale(::com::sun::star::lang::Locale& rLocale); + void SetNumberFormat( const ::rtl::OUString& rCommand, + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xPropertySet ); + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > + FindOrCreateFieldMaster( const sal_Char* pFieldMasterService, + const ::rtl::OUString& rFieldMasterName ) + throw(::com::sun::star::uno::Exception); + +public: + DomainMapper_Impl( + DomainMapper& rDMapper, + uno::Reference< lang::XComponent > xModel ); + DomainMapper_Impl(); + virtual ~DomainMapper_Impl(); + + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > GetPageStyles(); + ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > GetBodyText(); + ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextDocument > GetTextDocument() + { + return m_xTextDocument; + } + void finishParagraph( PropertyMapPtr pPropertyMap ); + void appendTextPortion( const ::rtl::OUString& rString, PropertyMapPtr pPropertyMap ); + + FIB& GetFIB() {return m_aFIB;} + // push the new properties onto the stack and make it the 'current' property map + void PushProperties(ContextType eId); + void PopProperties(ContextType eId); + + PropertyMapPtr GetTopContext() + { + return m_pTopContext; + } + PropertyMapPtr GetTopContextOfType(ContextType eId); + FontTablePtr GetFontTable() + { + if(!m_pFontTable) + m_pFontTable.reset(new FontTable()); + return m_pFontTable; + } + StyleSheetTablePtr GetStyleSheetTable() + { + if(!m_pStyleSheetTable) + m_pStyleSheetTable.reset(new StyleSheetTable( m_rDMapper )); + return m_pStyleSheetTable; + } + ListTablePtr GetListTable(); + LFOTablePtr GetLFOTable() + { + if(!m_pLFOTable) + m_pLFOTable.reset( new LFOTable ); + return m_pLFOTable; + } + void InitTabStopFromStyle( const ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop >& rInitTabStops ); + void ModifyCurrentTabStop( doctok::Id nId, sal_Int32 nValue); + ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop > GetCurrentTabStopAndClear(); + void NextTabStop() {++m_nCurrentTabStopIndex;} + + void SetCurrentParaStyleId(sal_Int32 nIntValue) {m_nCurrentParaStyleId = nIntValue;} + sal_Int32 GetCurrentParaStyleId() const {return m_nCurrentParaStyleId;} + + ::com::sun::star::uno::Any GetPropertyFromStyleSheet(PropertyIds eId); + void SetStyleSheetImport( bool bSet ) { m_bInStyleSheetImport = bSet;} + + void PushPageHeader(SectionPropertyMap::PageType eType); + void PushPageFooter(SectionPropertyMap::PageType eType); + + void PopPageHeaderFooter(); + + //create a new field from the command string + void CreateField( ::rtl::OUString& rCommand ); + //set the field result in insert the field + void SetFieldMode( bool bSet ) { m_bFieldMode = bSet; } + bool IsFieldMode() const { return m_bFieldMode; } + void SetFieldResult( ::rtl::OUString& rResult ); + bool IsFieldAvailable() const; + + TableManager_t & getTableManager() { return m_TableManager; } +}; +} //namespace dmapper +#endif diff --git a/writerfilter/source/dmapper/FontTable.cxx b/writerfilter/source/dmapper/FontTable.cxx new file mode 100644 index 000000000000..cbd304586326 --- /dev/null +++ b/writerfilter/source/dmapper/FontTable.cxx @@ -0,0 +1,601 @@ +#ifndef INCLUDED_FONTTABLE_HXX +#include <FontTable.hxx> +#endif +#ifndef INCLUDED_RESOURCESIDS +#include <doctok/resourceids.hxx> +#endif +#include <vector> + +namespace dmapper +{ +using namespace writerfilter; + +struct FontTable_Impl +{ + std::vector< FontEntry > aFontEntries; + FontEntry* pCurrentEntry; + FontTable_Impl() : + pCurrentEntry(0){} +}; +/*-- 19.06.2006 12:04:32--------------------------------------------------- + + -----------------------------------------------------------------------*/ +FontTable::FontTable() : + m_pImpl( new FontTable_Impl ) +{ +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +FontTable::~FontTable() +{ + delete m_pImpl; +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::attribute(doctok::Id Name, doctok::Value & val) +{ + OSL_ENSURE( m_pImpl->pCurrentEntry, "current entry has to be set here"); + if(!m_pImpl->pCurrentEntry) + return ; + int nIntValue = val.getInt(); + switch(Name) + { +// case NS_rtf::LN_ISTD: break; +// case NS_rtf::LN_ISTARTAT: break; +// case NS_rtf::LN_NFC: break; +// case NS_rtf::LN_JC: break; +// case NS_rtf::LN_FLEGAL: break; +// case NS_rtf::LN_FNORESTART: break; +// case NS_rtf::LN_FPREV: break; +// case NS_rtf::LN_FPREVSPACE: break; +// case NS_rtf::LN_FWORD6: break; +// case NS_rtf::LN_UNUSED5_7: break; +// case NS_rtf::LN_RGBXCHNUMS: break; +// case NS_rtf::LN_IXCHFOLLOW: break; +// case NS_rtf::LN_DXASPACE: break; +// case NS_rtf::LN_DXAINDENT: break; +// case NS_rtf::LN_CBGRPPRLCHPX: break; +// case NS_rtf::LN_CBGRPPRLPAPX: break; +// case NS_rtf::LN_LSID: break; +// case NS_rtf::LN_TPLC: break; +// case NS_rtf::LN_RGISTD: break; +// case NS_rtf::LN_FSIMPLELIST: break; +// case NS_rtf::LN_FRESTARTHDN: break; +// case NS_rtf::LN_UNSIGNED26_2: break; +// case NS_rtf::LN_ILVL: break; +// case NS_rtf::LN_FSTARTAT: break; +// case NS_rtf::LN_FFORMATTING: break; +// case NS_rtf::LN_UNSIGNED4_6: break; +// case NS_rtf::LN_UNUSED4: break; +// case NS_rtf::LN_UNUSED8: break; +// case NS_rtf::LN_CLFOLVL: break; + case NS_rtf::LN_CBFFNM1: + m_pImpl->pCurrentEntry->sFontName1 = val.getString(); + break; + case NS_rtf::LN_PRQ: + m_pImpl->pCurrentEntry->nPitchRequest = static_cast<sal_Int16>( nIntValue ); + break; + case NS_rtf::LN_FTRUETYPE: + m_pImpl->pCurrentEntry->bTrueType = nIntValue == 1 ? true : false; + break; + case NS_rtf::LN_UNUSED1_3: //unused + case NS_rtf::LN_FF: //unused + case NS_rtf::LN_UNUSED1_7: //unused + break; + case NS_rtf::LN_WWEIGHT: + m_pImpl->pCurrentEntry->nBaseWeight = nIntValue; + break; + case NS_rtf::LN_CHS: + m_pImpl->pCurrentEntry->nTextEncoding = nIntValue; + break; + case NS_rtf::LN_IXCHSZALT: + break; + case NS_rtf::LN_PANOSE: + m_pImpl->pCurrentEntry->sPanose += val.getString(); + break; + case NS_rtf::LN_FS: + m_pImpl->pCurrentEntry->sFontSignature += val.getString(); + break; +// case NS_rtf::LN_STI: break; +// case NS_rtf::LN_FSCRATCH: break; +// case NS_rtf::LN_FINVALHEIGHT: break; +// case NS_rtf::LN_FHASUPE: break; +// case NS_rtf::LN_FMASSCOPY: break; +// case NS_rtf::LN_SGC: break; +// case NS_rtf::LN_ISTDBASE: break; +// case NS_rtf::LN_CUPX: break; +// case NS_rtf::LN_ISTDNEXT: break; +// case NS_rtf::LN_BCHUPE: break; +// case NS_rtf::LN_FAUTOREDEF: break; +// case NS_rtf::LN_FHIDDEN: break; +// case NS_rtf::LN_UNUSED8_3: break; +// case NS_rtf::LN_CSTD: break; +// case NS_rtf::LN_CBSTDBASEINFILE: break; +// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break; +// case NS_rtf::LN_UNUSED4_2: break; +// case NS_rtf::LN_STIMAXWHENSAVED: break; +// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break; +// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break; +// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break; +// case NS_rtf::LN_WIDENT: break; +// case NS_rtf::LN_NFIB: break; +// case NS_rtf::LN_NPRODUCT: break; +// case NS_rtf::LN_LID: break; +// case NS_rtf::LN_PNNEXT: break; +// case NS_rtf::LN_FDOT: break; +// case NS_rtf::LN_FGLSY: break; +// case NS_rtf::LN_FCOMPLEX: break; +// case NS_rtf::LN_FHASPIC: break; +// case NS_rtf::LN_CQUICKSAVES: break; +// case NS_rtf::LN_FENCRYPTED: break; +// case NS_rtf::LN_FWHICHTBLSTM: break; +// case NS_rtf::LN_FREADONLYRECOMMENDED: break; +// case NS_rtf::LN_FWRITERESERVATION: break; +// case NS_rtf::LN_FEXTCHAR: break; +// case NS_rtf::LN_FLOADOVERRIDE: break; +// case NS_rtf::LN_FFAREAST: break; +// case NS_rtf::LN_FCRYPTO: break; +// case NS_rtf::LN_NFIBBACK: break; +// case NS_rtf::LN_LKEY: break; +// case NS_rtf::LN_ENVR: break; +// case NS_rtf::LN_FMAC: break; +// case NS_rtf::LN_FEMPTYSPECIAL: break; +// case NS_rtf::LN_FLOADOVERRIDEPAGE: break; +// case NS_rtf::LN_FFUTURESAVEDUNDO: break; +// case NS_rtf::LN_FWORD97SAVED: break; +// case NS_rtf::LN_FSPARE0: break; +// case NS_rtf::LN_CHSTABLES: break; +// case NS_rtf::LN_FCMIN: break; +// case NS_rtf::LN_FCMAC: break; +// case NS_rtf::LN_CSW: break; +// case NS_rtf::LN_WMAGICCREATED: break; +// case NS_rtf::LN_WMAGICREVISED: break; +// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break; +// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break; +// case NS_rtf::LN_PNFBPCHPFIRST_W6: break; +// case NS_rtf::LN_PNCHPFIRST_W6: break; +// case NS_rtf::LN_CPNBTECHP_W6: break; +// case NS_rtf::LN_PNFBPPAPFIRST_W6: break; +// case NS_rtf::LN_PNPAPFIRST_W6: break; +// case NS_rtf::LN_CPNBTEPAP_W6: break; +// case NS_rtf::LN_PNFBPLVCFIRST_W6: break; +// case NS_rtf::LN_PNLVCFIRST_W6: break; +// case NS_rtf::LN_CPNBTELVC_W6: break; +// case NS_rtf::LN_LIDFE: break; +// case NS_rtf::LN_CLW: break; +// case NS_rtf::LN_CBMAC: break; +// case NS_rtf::LN_LPRODUCTCREATED: break; +// case NS_rtf::LN_LPRODUCTREVISED: break; +// case NS_rtf::LN_CCPTEXT: break; +// case NS_rtf::LN_CCPFTN: break; +// case NS_rtf::LN_CCPHDD: break; +// case NS_rtf::LN_CCPMCR: break; +// case NS_rtf::LN_CCPATN: break; +// case NS_rtf::LN_CCPEDN: break; +// case NS_rtf::LN_CCPTXBX: break; +// case NS_rtf::LN_CCPHDRTXBX: break; +// case NS_rtf::LN_PNFBPCHPFIRST: break; +// case NS_rtf::LN_PNCHPFIRST: break; +// case NS_rtf::LN_CPNBTECHP: break; +// case NS_rtf::LN_PNFBPPAPFIRST: break; +// case NS_rtf::LN_PNPAPFIRST: break; +// case NS_rtf::LN_CPNBTEPAP: break; +// case NS_rtf::LN_PNFBPLVCFIRST: break; +// case NS_rtf::LN_PNLVCFIRST: break; +// case NS_rtf::LN_CPNBTELVC: break; +// case NS_rtf::LN_FCISLANDFIRST: break; +// case NS_rtf::LN_FCISLANDLIM: break; +// case NS_rtf::LN_CFCLCB: break; +// case NS_rtf::LN_FCSTSHFORIG: break; +// case NS_rtf::LN_LCBSTSHFORIG: break; +// case NS_rtf::LN_FCSTSHF: break; +// case NS_rtf::LN_LCBSTSHF: break; +// case NS_rtf::LN_FCPLCFFNDREF: break; +// case NS_rtf::LN_LCBPLCFFNDREF: break; +// case NS_rtf::LN_FCPLCFFNDTXT: break; +// case NS_rtf::LN_LCBPLCFFNDTXT: break; +// case NS_rtf::LN_FCPLCFANDREF: break; +// case NS_rtf::LN_LCBPLCFANDREF: break; +// case NS_rtf::LN_FCPLCFANDTXT: break; +// case NS_rtf::LN_LCBPLCFANDTXT: break; +// case NS_rtf::LN_FCPLCFSED: break; +// case NS_rtf::LN_LCBPLCFSED: break; +// case NS_rtf::LN_FCPLCFPAD: break; +// case NS_rtf::LN_LCBPLCFPAD: break; +// case NS_rtf::LN_FCPLCFPHE: break; +// case NS_rtf::LN_LCBPLCFPHE: break; +// case NS_rtf::LN_FCSTTBFGLSY: break; +// case NS_rtf::LN_LCBSTTBFGLSY: break; +// case NS_rtf::LN_FCPLCFGLSY: break; +// case NS_rtf::LN_LCBPLCFGLSY: break; +// case NS_rtf::LN_FCPLCFHDD: break; +// case NS_rtf::LN_LCBPLCFHDD: break; +// case NS_rtf::LN_FCPLCFBTECHPX: break; +// case NS_rtf::LN_LCBPLCFBTECHPX: break; +// case NS_rtf::LN_FCPLCFBTEPAPX: break; +// case NS_rtf::LN_LCBPLCFBTEPAPX: break; +// case NS_rtf::LN_FCPLCFSEA: break; +// case NS_rtf::LN_LCBPLCFSEA: break; +// case NS_rtf::LN_FCSTTBFFFN: break; +// case NS_rtf::LN_LCBSTTBFFFN: break; +// case NS_rtf::LN_FCPLCFFLDMOM: break; +// case NS_rtf::LN_LCBPLCFFLDMOM: break; +// case NS_rtf::LN_FCPLCFFLDHDR: break; +// case NS_rtf::LN_LCBPLCFFLDHDR: break; +// case NS_rtf::LN_FCPLCFFLDFTN: break; +// case NS_rtf::LN_LCBPLCFFLDFTN: break; +// case NS_rtf::LN_FCPLCFFLDATN: break; +// case NS_rtf::LN_LCBPLCFFLDATN: break; +// case NS_rtf::LN_FCPLCFFLDMCR: break; +// case NS_rtf::LN_LCBPLCFFLDMCR: break; +// case NS_rtf::LN_FCSTTBFBKMK: break; +// case NS_rtf::LN_LCBSTTBFBKMK: break; +// case NS_rtf::LN_FCPLCFBKF: break; +// case NS_rtf::LN_LCBPLCFBKF: break; +// case NS_rtf::LN_FCPLCFBKL: break; +// case NS_rtf::LN_LCBPLCFBKL: break; +// case NS_rtf::LN_FCCMDS: break; +// case NS_rtf::LN_LCBCMDS: break; +// case NS_rtf::LN_FCPLCMCR: break; +// case NS_rtf::LN_LCBPLCMCR: break; +// case NS_rtf::LN_FCSTTBFMCR: break; +// case NS_rtf::LN_LCBSTTBFMCR: break; +// case NS_rtf::LN_FCPRDRVR: break; +// case NS_rtf::LN_LCBPRDRVR: break; +// case NS_rtf::LN_FCPRENVPORT: break; +// case NS_rtf::LN_LCBPRENVPORT: break; +// case NS_rtf::LN_FCPRENVLAND: break; +// case NS_rtf::LN_LCBPRENVLAND: break; +// case NS_rtf::LN_FCWSS: break; +// case NS_rtf::LN_LCBWSS: break; +// case NS_rtf::LN_FCDOP: break; +// case NS_rtf::LN_LCBDOP: break; +// case NS_rtf::LN_FCSTTBFASSOC: break; +// case NS_rtf::LN_LCBSTTBFASSOC: break; +// case NS_rtf::LN_FCCLX: break; +// case NS_rtf::LN_LCBCLX: break; +// case NS_rtf::LN_FCPLCFPGDFTN: break; +// case NS_rtf::LN_LCBPLCFPGDFTN: break; +// case NS_rtf::LN_FCAUTOSAVESOURCE: break; +// case NS_rtf::LN_LCBAUTOSAVESOURCE: break; +// case NS_rtf::LN_FCGRPXSTATNOWNERS: break; +// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break; +// case NS_rtf::LN_FCSTTBFATNBKMK: break; +// case NS_rtf::LN_LCBSTTBFATNBKMK: break; +// case NS_rtf::LN_FCPLCDOAMOM: break; +// case NS_rtf::LN_LCBPLCDOAMOM: break; +// case NS_rtf::LN_FCPLCDOAHDR: break; +// case NS_rtf::LN_LCBPLCDOAHDR: break; +// case NS_rtf::LN_FCPLCSPAMOM: break; +// case NS_rtf::LN_LCBPLCSPAMOM: break; +// case NS_rtf::LN_FCPLCSPAHDR: break; +// case NS_rtf::LN_LCBPLCSPAHDR: break; +// case NS_rtf::LN_FCPLCFATNBKF: break; +// case NS_rtf::LN_LCBPLCFATNBKF: break; +// case NS_rtf::LN_FCPLCFATNBKL: break; +// case NS_rtf::LN_LCBPLCFATNBKL: break; +// case NS_rtf::LN_FCPMS: break; +// case NS_rtf::LN_LCBPMS: break; +// case NS_rtf::LN_FCFORMFLDSTTBF: break; +// case NS_rtf::LN_LCBFORMFLDSTTBF: break; +// case NS_rtf::LN_FCPLCFENDREF: break; +// case NS_rtf::LN_LCBPLCFENDREF: break; +// case NS_rtf::LN_FCPLCFENDTXT: break; +// case NS_rtf::LN_LCBPLCFENDTXT: break; +// case NS_rtf::LN_FCPLCFFLDEDN: break; +// case NS_rtf::LN_LCBPLCFFLDEDN: break; +// case NS_rtf::LN_FCPLCFPGDEDN: break; +// case NS_rtf::LN_LCBPLCFPGDEDN: break; +// case NS_rtf::LN_FCDGGINFO: break; +// case NS_rtf::LN_LCBDGGINFO: break; +// case NS_rtf::LN_FCSTTBFRMARK: break; +// case NS_rtf::LN_LCBSTTBFRMARK: break; +// case NS_rtf::LN_FCSTTBFCAPTION: break; +// case NS_rtf::LN_LCBSTTBFCAPTION: break; +// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_FCPLCFWKB: break; +// case NS_rtf::LN_LCBPLCFWKB: break; +// case NS_rtf::LN_FCPLCFSPL: break; +// case NS_rtf::LN_LCBPLCFSPL: break; +// case NS_rtf::LN_FCPLCFTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDTXBX: break; +// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_FCSTWUSER: break; +// case NS_rtf::LN_LCBSTWUSER: break; +// case NS_rtf::LN_FCSTTBTTMBD: break; +// case NS_rtf::LN_LCBSTTBTTMBD: break; +// case NS_rtf::LN_FCUNUSED: break; +// case NS_rtf::LN_LCBUNUSED: break; +// case NS_rtf::LN_FCPGDMOTHER: break; +// case NS_rtf::LN_LCBPGDMOTHER: break; +// case NS_rtf::LN_FCBKDMOTHER: break; +// case NS_rtf::LN_LCBBKDMOTHER: break; +// case NS_rtf::LN_FCPGDFTN: break; +// case NS_rtf::LN_LCBPGDFTN: break; +// case NS_rtf::LN_FCBKDFTN: break; +// case NS_rtf::LN_LCBBKDFTN: break; +// case NS_rtf::LN_FCPGDEDN: break; +// case NS_rtf::LN_LCBPGDEDN: break; +// case NS_rtf::LN_FCBKDEDN: break; +// case NS_rtf::LN_LCBBKDEDN: break; +// case NS_rtf::LN_FCSTTBFINTLFLD: break; +// case NS_rtf::LN_LCBSTTBFINTLFLD: break; +// case NS_rtf::LN_FCROUTESLIP: break; +// case NS_rtf::LN_LCBROUTESLIP: break; +// case NS_rtf::LN_FCSTTBSAVEDBY: break; +// case NS_rtf::LN_LCBSTTBSAVEDBY: break; +// case NS_rtf::LN_FCSTTBFNM: break; +// case NS_rtf::LN_LCBSTTBFNM: break; +// case NS_rtf::LN_FCPLCFLST: break; +// case NS_rtf::LN_LCBPLCFLST: break; +// case NS_rtf::LN_FCPLFLFO: break; +// case NS_rtf::LN_LCBPLFLFO: break; +// case NS_rtf::LN_FCPLCFTXBXBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXBKD: break; +// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_FCDOCUNDO: break; +// case NS_rtf::LN_LCBDOCUNDO: break; +// case NS_rtf::LN_FCRGBUSE: break; +// case NS_rtf::LN_LCBRGBUSE: break; +// case NS_rtf::LN_FCUSP: break; +// case NS_rtf::LN_LCBUSP: break; +// case NS_rtf::LN_FCUSKF: break; +// case NS_rtf::LN_LCBUSKF: break; +// case NS_rtf::LN_FCPLCUPCRGBUSE: break; +// case NS_rtf::LN_LCBPLCUPCRGBUSE: break; +// case NS_rtf::LN_FCPLCUPCUSP: break; +// case NS_rtf::LN_LCBPLCUPCUSP: break; +// case NS_rtf::LN_FCSTTBGLSYSTYLE: break; +// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break; +// case NS_rtf::LN_FCPLGOSL: break; +// case NS_rtf::LN_LCBPLGOSL: break; +// case NS_rtf::LN_FCPLCOCX: break; +// case NS_rtf::LN_LCBPLCOCX: break; +// case NS_rtf::LN_FCPLCFBTELVC: break; +// case NS_rtf::LN_LCBPLCFBTELVC: break; +// case NS_rtf::LN_DWLOWDATETIME: break; +// case NS_rtf::LN_DWHIGHDATETIME: break; +// case NS_rtf::LN_FCPLCFLVC: break; +// case NS_rtf::LN_LCBPLCFLVC: break; +// case NS_rtf::LN_FCPLCASUMY: break; +// case NS_rtf::LN_LCBPLCASUMY: break; +// case NS_rtf::LN_FCPLCFGRAM: break; +// case NS_rtf::LN_LCBPLCFGRAM: break; +// case NS_rtf::LN_FCSTTBLISTNAMES: break; +// case NS_rtf::LN_LCBSTTBLISTNAMES: break; +// case NS_rtf::LN_FCSTTBFUSSR: break; +// case NS_rtf::LN_LCBSTTBFUSSR: break; +// case NS_rtf::LN_FN: break; +// case NS_rtf::LN_FCSEPX: break; +// case NS_rtf::LN_FNMPR: break; +// case NS_rtf::LN_FCMPR: break; +// case NS_rtf::LN_ICOFORE: break; +// case NS_rtf::LN_ICOBACK: break; +// case NS_rtf::LN_IPAT: break; +// case NS_rtf::LN_SHDFORECOLOR: break; +// case NS_rtf::LN_SHDBACKCOLOR: break; +// case NS_rtf::LN_SHDPATTERN: break; +// case NS_rtf::LN_DPTLINEWIDTH: break; +// case NS_rtf::LN_BRCTYPE: break; +// case NS_rtf::LN_ICO: break; +// case NS_rtf::LN_DPTSPACE: break; +// case NS_rtf::LN_FSHADOW: break; +// case NS_rtf::LN_FFRAME: break; +// case NS_rtf::LN_UNUSED2_15: break; +// case NS_rtf::LN_FFIRSTMERGED: break; +// case NS_rtf::LN_FMERGED: break; +// case NS_rtf::LN_FVERTICAL: break; +// case NS_rtf::LN_FBACKWARD: break; +// case NS_rtf::LN_FROTATEFONT: break; +// case NS_rtf::LN_FVERTMERGE: break; +// case NS_rtf::LN_FVERTRESTART: break; +// case NS_rtf::LN_VERTALIGN: break; +// case NS_rtf::LN_FUNUSED: break; +// case NS_rtf::LN_WUNUSED: break; +// case NS_rtf::LN_BRCTOP: break; +// case NS_rtf::LN_BRCLEFT: break; +// case NS_rtf::LN_BRCBOTTOM: break; +// case NS_rtf::LN_BRCRIGHT: break; +// case NS_rtf::LN_IBKL: break; +// case NS_rtf::LN_ITCFIRST: break; +// case NS_rtf::LN_FPUB: break; +// case NS_rtf::LN_ITCLIM: break; +// case NS_rtf::LN_FCOL: break; +// case NS_rtf::LN_LINECOLOR: break; +// case NS_rtf::LN_LINEWIDTH: break; +// case NS_rtf::LN_LINETYPE: break; +// case NS_rtf::LN_MM: break; +// case NS_rtf::LN_XEXT: break; +// case NS_rtf::LN_YEXT: break; +// case NS_rtf::LN_HMF: break; +// case NS_rtf::LN_LCB: break; +// case NS_rtf::LN_CBHEADER: break; +// case NS_rtf::LN_MFP: break; +// case NS_rtf::LN_BM_RCWINMF: break; +// case NS_rtf::LN_DXAGOAL: break; +// case NS_rtf::LN_DYAGOAL: break; +// case NS_rtf::LN_MX: break; +// case NS_rtf::LN_MY: break; +// case NS_rtf::LN_DXACROPLEFT: break; +// case NS_rtf::LN_DYACROPTOP: break; +// case NS_rtf::LN_DXACROPRIGHT: break; +// case NS_rtf::LN_DYACROPBOTTOM: break; +// case NS_rtf::LN_BRCL: break; +// case NS_rtf::LN_FFRAMEEMPTY: break; +// case NS_rtf::LN_FBITMAP: break; +// case NS_rtf::LN_FDRAWHATCH: break; +// case NS_rtf::LN_FERROR: break; +// case NS_rtf::LN_BPP: break; +// case NS_rtf::LN_DXAORIGIN: break; +// case NS_rtf::LN_DYAORIGIN: break; +// case NS_rtf::LN_CPROPS: break; +// case NS_rtf::LN_LINEPROPSTOP: break; +// case NS_rtf::LN_LINEPROPSLEFT: break; +// case NS_rtf::LN_LINEPROPSBOTTOM: break; +// case NS_rtf::LN_LINEPROPSRIGHT: break; +// case NS_rtf::LN_LINEPROPSHORIZONTAL: break; +// case NS_rtf::LN_LINEPROPSVERTICAL: break; +// case NS_rtf::LN_headerr: break; +// case NS_rtf::LN_footerr: break; +// case NS_rtf::LN_endnote: break; +// case NS_rtf::LN_BOOKMARKNAME: break; + +// case NS_rtf::LN_LISTLEVEL: break; +// case NS_rtf::LN_LFO: break; + case NS_rtf::LN_F: + break; + case NS_rtf::LN_ALTFONTNAME: + m_pImpl->pCurrentEntry->sAlternativeFont = val.getString(); + break; + case NS_rtf::LN_XSZFFN: + m_pImpl->pCurrentEntry->sFontName = val.getString(); + break; +// case NS_rtf::LN_XSTZNAME: break; +// case NS_rtf::LN_XSTZNAME1: break; +// case NS_rtf::LN_UPXSTART: break; +// case NS_rtf::LN_UPX: break; +// case NS_rtf::LN_sed: break; +// case NS_rtf::LN_picf: break; +// case NS_rtf::LN_rgbrc: break; +// case NS_rtf::LN_shd: break; +// case NS_rtf::LN_cellShd: break; +// case NS_rtf::LN_cellTopColor: break; +// case NS_rtf::LN_cellLeftColor: break; +// case NS_rtf::LN_cellBottomColor: break; +// case NS_rtf::LN_cellRightColor: break; + +// case NS_rtf::LN_LISTTABLE: break; +// case NS_rtf::LN_LFOTABLE: break; +// case NS_rtf::LN_FONTTABLE: break; +// case NS_rtf::LN_STYLESHEET: break; + default: + { + //----> debug + int nVal = val.getInt(); + ++nVal; + //<---- debug + } + } +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::sprm(doctok::Sprm&) +{ +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::entry(int /*pos*/, doctok::Reference<Properties>::Pointer_t ref) +{ + //create a new font entry + OSL_ENSURE( !m_pImpl->pCurrentEntry, "current entry has to be NULL here"); + m_pImpl->pCurrentEntry = new FontEntry ; + ref->resolve(*this); + //append it to the table + m_pImpl->aFontEntries.push_back( *m_pImpl->pCurrentEntry ); + m_pImpl->pCurrentEntry = 0; +} +/*-- 19.06.2006 12:04:34--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::startSectionGroup() +{ +} +/*-- 19.06.2006 12:04:35--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::endSectionGroup() +{ +} +/*-- 19.06.2006 12:04:35--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::startParagraphGroup() +{ +} +/*-- 19.06.2006 12:04:35--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::endParagraphGroup() +{ +} +/*-- 19.06.2006 12:04:35--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::startCharacterGroup() +{ +} +/*-- 19.06.2006 12:04:35--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::endCharacterGroup() +{ +} +/*-- 19.06.2006 12:04:36--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::text(const sal_uInt8*, size_t ) +{ +} +/*-- 19.06.2006 12:04:36--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::utext(const sal_uInt8* , size_t) +{ +} +/*-- 19.06.2006 12:04:37--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::props(doctok::Reference<Properties>::Pointer_t) +{ +} +/*-- 19.06.2006 12:04:37--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::table(doctok::Id, doctok::Reference<Table>::Pointer_t) +{ +} +/*-- 19.06.2006 12:04:38--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::substream(doctok::Id, ::doctok::Reference<Stream>::Pointer_t) +{ +} +/*-- 19.06.2006 12:04:39--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void FontTable::info(const string& ) +{ +} +/*-- 21.06.2006 11:21:38--------------------------------------------------- + + -----------------------------------------------------------------------*/ +const FontEntry* FontTable::getFontEntry(sal_uInt32 nIndex) +{ + const FontEntry* pRet = 0; + if(m_pImpl->aFontEntries.size() > nIndex) + { + pRet = &m_pImpl->aFontEntries[nIndex]; + } + return pRet; +} +/*-- 21.06.2006 11:21:38--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_uInt32 FontTable::size() +{ + return m_pImpl->aFontEntries.size(); +} + +}//namespace dmapper + diff --git a/writerfilter/source/dmapper/FontTable.hxx b/writerfilter/source/dmapper/FontTable.hxx new file mode 100644 index 000000000000..01a771b9c161 --- /dev/null +++ b/writerfilter/source/dmapper/FontTable.hxx @@ -0,0 +1,79 @@ +#ifndef INCLUDED_FONTTABLE_HXX +#define INCLUDED_FONTTABLE_HXX + +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#include <WriterFilterDllApi.hxx> +#endif +#include <doctok/WW8ResourceModel.hxx> +#include <com/sun/star/lang/XComponent.hpp> + +namespace dmapper +{ +using namespace std; + +struct FontTable_Impl; +struct FontEntry +{ + ::rtl::OUString sFontName; + ::rtl::OUString sFontName1; + bool bTrueType; + sal_Int16 nPitchRequest; + sal_Int32 nTextEncoding; + sal_Int32 nFontFamilyId; + sal_Int32 nBaseWeight; + sal_Int32 nAltFontIndex; + ::rtl::OUString sPanose; + ::rtl::OUString sFontSignature; + ::rtl::OUString sAlternativeFont; + FontEntry() : + bTrueType(false), + nPitchRequest( 0 ), + nTextEncoding( 0 ), + nFontFamilyId( 0 ), + nBaseWeight( 0 ), + nAltFontIndex( 0 ) + {} +}; +class WRITERFILTER_DLLPRIVATE FontTable : public doctok::Properties, public doctok::Table + /*,public doctok::BinaryObj*/, public doctok::Stream +{ + FontTable_Impl *m_pImpl; + +public: + FontTable(); + virtual ~FontTable(); + + // Properties + virtual void attribute(doctok::Id Name, doctok::Value & val); + virtual void sprm(doctok::Sprm & sprm); + + // Table + virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref); + + // BinaryObj +// virtual void data(const sal_Int8* buf, size_t len, +// doctok::Reference<Properties>::Pointer_t ref); + + // Stream + virtual void startSectionGroup(); + virtual void endSectionGroup(); + virtual void startParagraphGroup(); + virtual void endParagraphGroup(); + virtual void startCharacterGroup(); + virtual void endCharacterGroup(); + virtual void text(const sal_uInt8 * data, size_t len); + virtual void utext(const sal_uInt8 * data, size_t len); + virtual void props(doctok::Reference<Properties>::Pointer_t ref); + virtual void table(doctok::Id name, + doctok::Reference<Table>::Pointer_t ref); + virtual void substream(doctok::Id name, + ::doctok::Reference<Stream>::Pointer_t ref); + virtual void info(const string & info); + + const FontEntry* getFontEntry(sal_uInt32 nIndex); + sal_uInt32 size(); +}; +typedef boost::shared_ptr< FontTable > FontTablePtr; +} + +#endif // diff --git a/writerfilter/source/dmapper/LFOTable.cxx b/writerfilter/source/dmapper/LFOTable.cxx new file mode 100644 index 000000000000..4b5f5a138ff7 --- /dev/null +++ b/writerfilter/source/dmapper/LFOTable.cxx @@ -0,0 +1,564 @@ +#ifndef INCLUDED_LFOTABLE_HXX +#include <LFOTable.hxx> +#endif +#ifndef INCLUDED_RESOURCESIDS +#include <doctok/resourceids.hxx> +#endif +#include <vector> + +namespace dmapper +{ +using namespace std; +using namespace writerfilter; + +struct LFOLevel +{ + sal_Int32 nIStartAt; + sal_Int32 nFStartAt; + sal_Int32 nFFormatting; + ::rtl::OUString sILevel; + + LFOLevel() : + nIStartAt(-1) + ,nFStartAt(-1) + ,nFFormatting(-1) + {} +}; +typedef ::boost::shared_ptr< LFOLevel > LFOLevelPtr; +struct LFOEntry +{ + sal_Int32 nListId; + sal_Int32 nCLFOLevel; + vector< LFOLevelPtr > aLFOLevels; //usually empty + + LFOEntry() : + nListId(-1) + ,nCLFOLevel(-1) + {} +}; +typedef ::boost::shared_ptr<LFOEntry> LFOEntryPtr; + +struct LFOTable_Impl +{ + ::std::vector< LFOEntryPtr > m_aLFOEntries; //properties of each level + LFOEntryPtr m_pCurrentEntry; + +}; +/*-- 27.06.2006 15:13:03--------------------------------------------------- + + -----------------------------------------------------------------------*/ +LFOTable::LFOTable() : + m_pImpl( new LFOTable_Impl ) +{ +} +/*-- 27.06.2006 15:13:03--------------------------------------------------- + + -----------------------------------------------------------------------*/ +LFOTable::~LFOTable() +{ +} +/*-- 27.06.2006 15:13:04--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void LFOTable::attribute(doctok::Id Name, doctok::Value & val) +{ + OSL_ENSURE(m_pImpl->m_pCurrentEntry, "no current entry to write to"); + if(!m_pImpl->m_pCurrentEntry) + return; + + int nIntValue = val.getInt(); + switch( Name ) + { +// case NS_rtf::LN_ISTD: break;//index of applied style + case NS_rtf::LN_ISTARTAT: + case NS_rtf::LN_ILVL: + case NS_rtf::LN_FSTARTAT: + case NS_rtf::LN_FFORMATTING: + if(m_pImpl->m_pCurrentEntry->aLFOLevels.size()) + { + vector< LFOLevelPtr >::reverse_iterator aEndIter = m_pImpl->m_pCurrentEntry->aLFOLevels.rbegin(); + switch( Name ) + { + case NS_rtf::LN_ISTARTAT: + (*aEndIter)->nIStartAt = nIntValue; + break; + case NS_rtf::LN_ILVL: + (*aEndIter)->sILevel = val.getString(); + break; + case NS_rtf::LN_FSTARTAT: + (*aEndIter)->nFStartAt = nIntValue; + break; + case NS_rtf::LN_FFORMATTING: + (*aEndIter)->nFFormatting = nIntValue; + break; + default:; + } + } + break; +// case NS_rtf::LN_NFC: break; +// case NS_rtf::LN_JC: break; +// case NS_rtf::LN_FLEGAL: break; +// case NS_rtf::LN_FNORESTART: break; +// case NS_rtf::LN_FPREV: break; +// case NS_rtf::LN_FPREVSPACE: break; +// case NS_rtf::LN_FWORD6: break; +// case NS_rtf::LN_UNUSED5_7: break; +// case NS_rtf::LN_RGBXCHNUMS: break; +// case NS_rtf::LN_IXCHFOLLOW: break; +// case NS_rtf::LN_DXASPACE: break; +// case NS_rtf::LN_DXAINDENT: break; +// case NS_rtf::LN_CBGRPPRLCHPX: break; +// case NS_rtf::LN_CBGRPPRLPAPX: break; + case NS_rtf::LN_LSID: + m_pImpl->m_pCurrentEntry->nListId = nIntValue; + break; +// case NS_rtf::LN_TPLC: break; +// case NS_rtf::LN_RGISTD: break; +// case NS_rtf::LN_FSIMPLELIST: break; +// case NS_rtf::LN_FRESTARTHDN: break; +// case NS_rtf::LN_UNSIGNED26_2: break; +// case NS_rtf::LN_UNSIGNED4_6: break; + case NS_rtf::LN_UNUSED4: + case NS_rtf::LN_UNUSED8: + // as the names state they are unused + break; + case NS_rtf::LN_CLFOLVL: + m_pImpl->m_pCurrentEntry->nCLFOLevel = nIntValue; + break; +// case NS_rtf::LN_CBFFNM1: break; +// case NS_rtf::LN_PRQ: break; +// case NS_rtf::LN_FTRUETYPE: break; +// case NS_rtf::LN_UNUSED1_3: break; +// case NS_rtf::LN_FF: break; +// case NS_rtf::LN_UNUSED1_7: break; +// case NS_rtf::LN_WWEIGHT: break; +// case NS_rtf::LN_CHS: break; +// case NS_rtf::LN_IXCHSZALT: break; +// case NS_rtf::LN_PANOSE: break; +// case NS_rtf::LN_FS: break; +// case NS_rtf::LN_STI: break; +// case NS_rtf::LN_FSCRATCH: break; +// case NS_rtf::LN_FINVALHEIGHT: break; +// case NS_rtf::LN_FHASUPE: break; +// case NS_rtf::LN_FMASSCOPY: break; +// case NS_rtf::LN_SGC: break; +// case NS_rtf::LN_ISTDBASE: break; +// case NS_rtf::LN_CUPX: break; +// case NS_rtf::LN_ISTDNEXT: break; +// case NS_rtf::LN_BCHUPE: break; +// case NS_rtf::LN_FAUTOREDEF: break; +// case NS_rtf::LN_FHIDDEN: break; +// case NS_rtf::LN_UNUSED8_3: break; +// case NS_rtf::LN_CSTD: break; +// case NS_rtf::LN_CBSTDBASEINFILE: break; +// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break; +// case NS_rtf::LN_UNUSED4_2: break; +// case NS_rtf::LN_STIMAXWHENSAVED: break; +// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break; +// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break; +// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break; +// case NS_rtf::LN_WIDENT: break; +// case NS_rtf::LN_NFIB: break; +// case NS_rtf::LN_NPRODUCT: break; +// case NS_rtf::LN_LID: break; +// case NS_rtf::LN_PNNEXT: break; +// case NS_rtf::LN_FDOT: break; +// case NS_rtf::LN_FGLSY: break; +// case NS_rtf::LN_FCOMPLEX: break; +// case NS_rtf::LN_FHASPIC: break; +// case NS_rtf::LN_CQUICKSAVES: break; +// case NS_rtf::LN_FENCRYPTED: break; +// case NS_rtf::LN_FWHICHTBLSTM: break; +// case NS_rtf::LN_FREADONLYRECOMMENDED: break; +// case NS_rtf::LN_FWRITERESERVATION: break; +// case NS_rtf::LN_FEXTCHAR: break; +// case NS_rtf::LN_FLOADOVERRIDE: break; +// case NS_rtf::LN_FFAREAST: break; +// case NS_rtf::LN_FCRYPTO: break; +// case NS_rtf::LN_NFIBBACK: break; +// case NS_rtf::LN_LKEY: break; +// case NS_rtf::LN_ENVR: break; +// case NS_rtf::LN_FMAC: break; +// case NS_rtf::LN_FEMPTYSPECIAL: break; +// case NS_rtf::LN_FLOADOVERRIDEPAGE: break; +// case NS_rtf::LN_FFUTURESAVEDUNDO: break; +// case NS_rtf::LN_FWORD97SAVED: break; +// case NS_rtf::LN_FSPARE0: break; +// case NS_rtf::LN_CHSTABLES: break; +// case NS_rtf::LN_FCMIN: break; +// case NS_rtf::LN_FCMAC: break; +// case NS_rtf::LN_CSW: break; +// case NS_rtf::LN_WMAGICCREATED: break; +// case NS_rtf::LN_WMAGICREVISED: break; +// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break; +// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break; +// case NS_rtf::LN_PNFBPCHPFIRST_W6: break; +// case NS_rtf::LN_PNCHPFIRST_W6: break; +// case NS_rtf::LN_CPNBTECHP_W6: break; +// case NS_rtf::LN_PNFBPPAPFIRST_W6: break; +// case NS_rtf::LN_PNPAPFIRST_W6: break; +// case NS_rtf::LN_CPNBTEPAP_W6: break; +// case NS_rtf::LN_PNFBPLVCFIRST_W6: break; +// case NS_rtf::LN_PNLVCFIRST_W6: break; +// case NS_rtf::LN_CPNBTELVC_W6: break; +// case NS_rtf::LN_LIDFE: break; +// case NS_rtf::LN_CLW: break; +// case NS_rtf::LN_CBMAC: break; +// case NS_rtf::LN_LPRODUCTCREATED: break; +// case NS_rtf::LN_LPRODUCTREVISED: break; +// case NS_rtf::LN_CCPTEXT: break; +// case NS_rtf::LN_CCPFTN: break; +// case NS_rtf::LN_CCPHDD: break; +// case NS_rtf::LN_CCPMCR: break; +// case NS_rtf::LN_CCPATN: break; +// case NS_rtf::LN_CCPEDN: break; +// case NS_rtf::LN_CCPTXBX: break; +// case NS_rtf::LN_CCPHDRTXBX: break; +// case NS_rtf::LN_PNFBPCHPFIRST: break; +// case NS_rtf::LN_PNCHPFIRST: break; +// case NS_rtf::LN_CPNBTECHP: break; +// case NS_rtf::LN_PNFBPPAPFIRST: break; +// case NS_rtf::LN_PNPAPFIRST: break; +// case NS_rtf::LN_CPNBTEPAP: break; +// case NS_rtf::LN_PNFBPLVCFIRST: break; +// case NS_rtf::LN_PNLVCFIRST: break; +// case NS_rtf::LN_CPNBTELVC: break; +// case NS_rtf::LN_FCISLANDFIRST: break; +// case NS_rtf::LN_FCISLANDLIM: break; +// case NS_rtf::LN_CFCLCB: break; +// case NS_rtf::LN_FCSTSHFORIG: break; +// case NS_rtf::LN_LCBSTSHFORIG: break; +// case NS_rtf::LN_FCSTSHF: break; +// case NS_rtf::LN_LCBSTSHF: break; +// case NS_rtf::LN_FCPLCFFNDREF: break; +// case NS_rtf::LN_LCBPLCFFNDREF: break; +// case NS_rtf::LN_FCPLCFFNDTXT: break; +// case NS_rtf::LN_LCBPLCFFNDTXT: break; +// case NS_rtf::LN_FCPLCFANDREF: break; +// case NS_rtf::LN_LCBPLCFANDREF: break; +// case NS_rtf::LN_FCPLCFANDTXT: break; +// case NS_rtf::LN_LCBPLCFANDTXT: break; +// case NS_rtf::LN_FCPLCFSED: break; +// case NS_rtf::LN_LCBPLCFSED: break; +// case NS_rtf::LN_FCPLCFPAD: break; +// case NS_rtf::LN_LCBPLCFPAD: break; +// case NS_rtf::LN_FCPLCFPHE: break; +// case NS_rtf::LN_LCBPLCFPHE: break; +// case NS_rtf::LN_FCSTTBFGLSY: break; +// case NS_rtf::LN_LCBSTTBFGLSY: break; +// case NS_rtf::LN_FCPLCFGLSY: break; +// case NS_rtf::LN_LCBPLCFGLSY: break; +// case NS_rtf::LN_FCPLCFHDD: break; +// case NS_rtf::LN_LCBPLCFHDD: break; +// case NS_rtf::LN_FCPLCFBTECHPX: break; +// case NS_rtf::LN_LCBPLCFBTECHPX: break; +// case NS_rtf::LN_FCPLCFBTEPAPX: break; +// case NS_rtf::LN_LCBPLCFBTEPAPX: break; +// case NS_rtf::LN_FCPLCFSEA: break; +// case NS_rtf::LN_LCBPLCFSEA: break; +// case NS_rtf::LN_FCSTTBFFFN: break; +// case NS_rtf::LN_LCBSTTBFFFN: break; +// case NS_rtf::LN_FCPLCFFLDMOM: break; +// case NS_rtf::LN_LCBPLCFFLDMOM: break; +// case NS_rtf::LN_FCPLCFFLDHDR: break; +// case NS_rtf::LN_LCBPLCFFLDHDR: break; +// case NS_rtf::LN_FCPLCFFLDFTN: break; +// case NS_rtf::LN_LCBPLCFFLDFTN: break; +// case NS_rtf::LN_FCPLCFFLDATN: break; +// case NS_rtf::LN_LCBPLCFFLDATN: break; +// case NS_rtf::LN_FCPLCFFLDMCR: break; +// case NS_rtf::LN_LCBPLCFFLDMCR: break; +// case NS_rtf::LN_FCSTTBFBKMK: break; +// case NS_rtf::LN_LCBSTTBFBKMK: break; +// case NS_rtf::LN_FCPLCFBKF: break; +// case NS_rtf::LN_LCBPLCFBKF: break; +// case NS_rtf::LN_FCPLCFBKL: break; +// case NS_rtf::LN_LCBPLCFBKL: break; +// case NS_rtf::LN_FCCMDS: break; +// case NS_rtf::LN_LCBCMDS: break; +// case NS_rtf::LN_FCPLCMCR: break; +// case NS_rtf::LN_LCBPLCMCR: break; +// case NS_rtf::LN_FCSTTBFMCR: break; +// case NS_rtf::LN_LCBSTTBFMCR: break; +// case NS_rtf::LN_FCPRDRVR: break; +// case NS_rtf::LN_LCBPRDRVR: break; +// case NS_rtf::LN_FCPRENVPORT: break; +// case NS_rtf::LN_LCBPRENVPORT: break; +// case NS_rtf::LN_FCPRENVLAND: break; +// case NS_rtf::LN_LCBPRENVLAND: break; +// case NS_rtf::LN_FCWSS: break; +// case NS_rtf::LN_LCBWSS: break; +// case NS_rtf::LN_FCDOP: break; +// case NS_rtf::LN_LCBDOP: break; +// case NS_rtf::LN_FCSTTBFASSOC: break; +// case NS_rtf::LN_LCBSTTBFASSOC: break; +// case NS_rtf::LN_FCCLX: break; +// case NS_rtf::LN_LCBCLX: break; +// case NS_rtf::LN_FCPLCFPGDFTN: break; +// case NS_rtf::LN_LCBPLCFPGDFTN: break; +// case NS_rtf::LN_FCAUTOSAVESOURCE: break; +// case NS_rtf::LN_LCBAUTOSAVESOURCE: break; +// case NS_rtf::LN_FCGRPXSTATNOWNERS: break; +// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break; +// case NS_rtf::LN_FCSTTBFATNBKMK: break; +// case NS_rtf::LN_LCBSTTBFATNBKMK: break; +// case NS_rtf::LN_FCPLCDOAMOM: break; +// case NS_rtf::LN_LCBPLCDOAMOM: break; +// case NS_rtf::LN_FCPLCDOAHDR: break; +// case NS_rtf::LN_LCBPLCDOAHDR: break; +// case NS_rtf::LN_FCPLCSPAMOM: break; +// case NS_rtf::LN_LCBPLCSPAMOM: break; +// case NS_rtf::LN_FCPLCSPAHDR: break; +// case NS_rtf::LN_LCBPLCSPAHDR: break; +// case NS_rtf::LN_FCPLCFATNBKF: break; +// case NS_rtf::LN_LCBPLCFATNBKF: break; +// case NS_rtf::LN_FCPLCFATNBKL: break; +// case NS_rtf::LN_LCBPLCFATNBKL: break; +// case NS_rtf::LN_FCPMS: break; +// case NS_rtf::LN_LCBPMS: break; +// case NS_rtf::LN_FCFORMFLDSTTBF: break; +// case NS_rtf::LN_LCBFORMFLDSTTBF: break; +// case NS_rtf::LN_FCPLCFENDREF: break; +// case NS_rtf::LN_LCBPLCFENDREF: break; +// case NS_rtf::LN_FCPLCFENDTXT: break; +// case NS_rtf::LN_LCBPLCFENDTXT: break; +// case NS_rtf::LN_FCPLCFFLDEDN: break; +// case NS_rtf::LN_LCBPLCFFLDEDN: break; +// case NS_rtf::LN_FCPLCFPGDEDN: break; +// case NS_rtf::LN_LCBPLCFPGDEDN: break; +// case NS_rtf::LN_FCDGGINFO: break; +// case NS_rtf::LN_LCBDGGINFO: break; +// case NS_rtf::LN_FCSTTBFRMARK: break; +// case NS_rtf::LN_LCBSTTBFRMARK: break; +// case NS_rtf::LN_FCSTTBFCAPTION: break; +// case NS_rtf::LN_LCBSTTBFCAPTION: break; +// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_FCPLCFWKB: break; +// case NS_rtf::LN_LCBPLCFWKB: break; +// case NS_rtf::LN_FCPLCFSPL: break; +// case NS_rtf::LN_LCBPLCFSPL: break; +// case NS_rtf::LN_FCPLCFTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDTXBX: break; +// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_FCSTWUSER: break; +// case NS_rtf::LN_LCBSTWUSER: break; +// case NS_rtf::LN_FCSTTBTTMBD: break; +// case NS_rtf::LN_LCBSTTBTTMBD: break; +// case NS_rtf::LN_FCUNUSED: break; +// case NS_rtf::LN_LCBUNUSED: break; +// case NS_rtf::LN_FCPGDMOTHER: break; +// case NS_rtf::LN_LCBPGDMOTHER: break; +// case NS_rtf::LN_FCBKDMOTHER: break; +// case NS_rtf::LN_LCBBKDMOTHER: break; +// case NS_rtf::LN_FCPGDFTN: break; +// case NS_rtf::LN_LCBPGDFTN: break; +// case NS_rtf::LN_FCBKDFTN: break; +// case NS_rtf::LN_LCBBKDFTN: break; +// case NS_rtf::LN_FCPGDEDN: break; +// case NS_rtf::LN_LCBPGDEDN: break; +// case NS_rtf::LN_FCBKDEDN: break; +// case NS_rtf::LN_LCBBKDEDN: break; +// case NS_rtf::LN_FCSTTBFINTLFLD: break; +// case NS_rtf::LN_LCBSTTBFINTLFLD: break; +// case NS_rtf::LN_FCROUTESLIP: break; +// case NS_rtf::LN_LCBROUTESLIP: break; +// case NS_rtf::LN_FCSTTBSAVEDBY: break; +// case NS_rtf::LN_LCBSTTBSAVEDBY: break; +// case NS_rtf::LN_FCSTTBFNM: break; +// case NS_rtf::LN_LCBSTTBFNM: break; +// case NS_rtf::LN_FCPLCFLST: break; +// case NS_rtf::LN_LCBPLCFLST: break; +// case NS_rtf::LN_FCPLFLFO: break; +// case NS_rtf::LN_LCBPLFLFO: break; +// case NS_rtf::LN_FCPLCFTXBXBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXBKD: break; +// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_FCDOCUNDO: break; +// case NS_rtf::LN_LCBDOCUNDO: break; +// case NS_rtf::LN_FCRGBUSE: break; +// case NS_rtf::LN_LCBRGBUSE: break; +// case NS_rtf::LN_FCUSP: break; +// case NS_rtf::LN_LCBUSP: break; +// case NS_rtf::LN_FCUSKF: break; +// case NS_rtf::LN_LCBUSKF: break; +// case NS_rtf::LN_FCPLCUPCRGBUSE: break; +// case NS_rtf::LN_LCBPLCUPCRGBUSE: break; +// case NS_rtf::LN_FCPLCUPCUSP: break; +// case NS_rtf::LN_LCBPLCUPCUSP: break; +// case NS_rtf::LN_FCSTTBGLSYSTYLE: break; +// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break; +// case NS_rtf::LN_FCPLGOSL: break; +// case NS_rtf::LN_LCBPLGOSL: break; +// case NS_rtf::LN_FCPLCOCX: break; +// case NS_rtf::LN_LCBPLCOCX: break; +// case NS_rtf::LN_FCPLCFBTELVC: break; +// case NS_rtf::LN_LCBPLCFBTELVC: break; +// case NS_rtf::LN_DWLOWDATETIME: break; +// case NS_rtf::LN_DWHIGHDATETIME: break; +// case NS_rtf::LN_FCPLCFLVC: break; +// case NS_rtf::LN_LCBPLCFLVC: break; +// case NS_rtf::LN_FCPLCASUMY: break; +// case NS_rtf::LN_LCBPLCASUMY: break; +// case NS_rtf::LN_FCPLCFGRAM: break; +// case NS_rtf::LN_LCBPLCFGRAM: break; +// case NS_rtf::LN_FCSTTBLISTNAMES: break; +// case NS_rtf::LN_LCBSTTBLISTNAMES: break; +// case NS_rtf::LN_FCSTTBFUSSR: break; +// case NS_rtf::LN_LCBSTTBFUSSR: break; +// case NS_rtf::LN_FN: break; +// case NS_rtf::LN_FCSEPX: break; +// case NS_rtf::LN_FNMPR: break; +// case NS_rtf::LN_FCMPR: break; +// case NS_rtf::LN_ICOFORE: break; +// case NS_rtf::LN_ICOBACK: break; +// case NS_rtf::LN_IPAT: break; +// case NS_rtf::LN_SHDFORECOLOR: break; +// case NS_rtf::LN_SHDBACKCOLOR: break; +// case NS_rtf::LN_SHDPATTERN: break; +// case NS_rtf::LN_DPTLINEWIDTH: break; +// case NS_rtf::LN_BRCTYPE: break; +// case NS_rtf::LN_ICO: break; +// case NS_rtf::LN_DPTSPACE: break; +// case NS_rtf::LN_FSHADOW: break; +// case NS_rtf::LN_FFRAME: break; +// case NS_rtf::LN_UNUSED2_15: break; +// case NS_rtf::LN_FFIRSTMERGED: break; +// case NS_rtf::LN_FMERGED: break; +// case NS_rtf::LN_FVERTICAL: break; +// case NS_rtf::LN_FBACKWARD: break; +// case NS_rtf::LN_FROTATEFONT: break; +// case NS_rtf::LN_FVERTMERGE: break; +// case NS_rtf::LN_FVERTRESTART: break; +// case NS_rtf::LN_VERTALIGN: break; +// case NS_rtf::LN_FUNUSED: break; +// case NS_rtf::LN_WUNUSED: break; +// case NS_rtf::LN_BRCTOP: break; +// case NS_rtf::LN_BRCLEFT: break; +// case NS_rtf::LN_BRCBOTTOM: break; +// case NS_rtf::LN_BRCRIGHT: break; +// case NS_rtf::LN_IBKL: break; +// case NS_rtf::LN_ITCFIRST: break; +// case NS_rtf::LN_FPUB: break; +// case NS_rtf::LN_ITCLIM: break; +// case NS_rtf::LN_FCOL: break; +// case NS_rtf::LN_LINECOLOR: break; +// case NS_rtf::LN_LINEWIDTH: break; +// case NS_rtf::LN_LINETYPE: break; +// case NS_rtf::LN_MM: break; +// case NS_rtf::LN_XEXT: break; +// case NS_rtf::LN_YEXT: break; +// case NS_rtf::LN_HMF: break; +// case NS_rtf::LN_LCB: break; +// case NS_rtf::LN_CBHEADER: break; +// case NS_rtf::LN_MFP: break; +// case NS_rtf::LN_BM_RCWINMF: break; +// case NS_rtf::LN_DXAGOAL: break; +// case NS_rtf::LN_DYAGOAL: break; +// case NS_rtf::LN_MX: break; +// case NS_rtf::LN_MY: break; +// case NS_rtf::LN_DXACROPLEFT: break; +// case NS_rtf::LN_DYACROPTOP: break; +// case NS_rtf::LN_DXACROPRIGHT: break; +// case NS_rtf::LN_DYACROPBOTTOM: break; +// case NS_rtf::LN_BRCL: break; +// case NS_rtf::LN_FFRAMEEMPTY: break; +// case NS_rtf::LN_FBITMAP: break; +// case NS_rtf::LN_FDRAWHATCH: break; +// case NS_rtf::LN_FERROR: break; +// case NS_rtf::LN_BPP: break; +// case NS_rtf::LN_DXAORIGIN: break; +// case NS_rtf::LN_DYAORIGIN: break; +// case NS_rtf::LN_CPROPS: break; +// case NS_rtf::LN_LINEPROPSTOP: break; +// case NS_rtf::LN_LINEPROPSLEFT: break; +// case NS_rtf::LN_LINEPROPSBOTTOM: break; +// case NS_rtf::LN_LINEPROPSRIGHT: break; +// case NS_rtf::LN_LINEPROPSHORIZONTAL: break; +// case NS_rtf::LN_LINEPROPSVERTICAL: break; +// case NS_rtf::LN_headerr: break; +// case NS_rtf::LN_footerr: break; +// case NS_rtf::LN_endnote: break; +// case NS_rtf::LN_BOOKMARKNAME: break; + +// case NS_rtf::LN_LISTLEVEL: break; + case NS_rtf::LN_LFO: + { + doctok::Reference<Properties>::Pointer_t pProperties; + if(m_pImpl->m_pCurrentEntry && (pProperties = val.getProperties()).get()) + { + LFOLevelPtr pLevel( new LFOLevel ); + m_pImpl->m_pCurrentEntry->aLFOLevels.push_back(pLevel); + } + } + break; +// case NS_rtf::LN_F: break; +// case NS_rtf::LN_ALTFONTNAME: break; +// case NS_rtf::LN_XSZFFN: break; +// case NS_rtf::LN_XSTZNAME: break; +// case NS_rtf::LN_XSTZNAME1: break; +// case NS_rtf::LN_UPXSTART: break; +// case NS_rtf::LN_UPX: break; +// case NS_rtf::LN_sed: break; +// case NS_rtf::LN_picf: break; +// case NS_rtf::LN_rgbrc: break; +// case NS_rtf::LN_shd: break; +// case NS_rtf::LN_cellShd: break; +// case NS_rtf::LN_cellTopColor: break; +// case NS_rtf::LN_cellLeftColor: break; +// case NS_rtf::LN_cellBottomColor: break; +// case NS_rtf::LN_cellRightColor: break; + +// case NS_rtf::LN_LISTTABLE: break; +// case NS_rtf::LN_LFOTABLE: break; +// case NS_rtf::LN_FONTTABLE: break; +// case NS_rtf::LN_STYLESHEET: break; + default: + { + OSL_ASSERT("LFOTable::attribute: default statement"); + //---->debug + int nVal = val.getInt(); + ++nVal; + //<----debug + } + } +} +/*-- 27.06.2006 15:13:04--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void LFOTable::sprm(doctok::Sprm& ) +{ + OSL_ASSERT("Which sprm should be handled here?"); +} +/*-- 27.06.2006 15:13:04--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void LFOTable::entry(int, doctok::Reference<Properties>::Pointer_t ref) +{ + //create a new LFO entry + OSL_ENSURE( !m_pImpl->m_pCurrentEntry.get(), "current entry has to be NULL here"); + m_pImpl->m_pCurrentEntry.reset( new LFOEntry ); + ref->resolve(*this); + //append it to the table + m_pImpl->m_aLFOEntries.push_back( m_pImpl->m_pCurrentEntry ); + m_pImpl->m_pCurrentEntry = LFOEntryPtr(); +} +/*-- 27.06.2006 15:13:05--------------------------------------------------- + 1 based access to the LFO table + -----------------------------------------------------------------------*/ +sal_Int32 LFOTable::GetListID(sal_uInt32 nLFO) +{ + sal_Int32 nRet = -1; + if( nLFO > 0 && nLFO <= m_pImpl->m_aLFOEntries.size()) + nRet = m_pImpl->m_aLFOEntries[nLFO - 1]->nListId; + return nRet; +} + +}//namespace dmapper + diff --git a/writerfilter/source/dmapper/LFOTable.hxx b/writerfilter/source/dmapper/LFOTable.hxx new file mode 100644 index 000000000000..5ccdfeecb057 --- /dev/null +++ b/writerfilter/source/dmapper/LFOTable.hxx @@ -0,0 +1,38 @@ +#ifndef INCLUDED_LFOTABLE_HXX +#define INCLUDED_LFOTABLE_HXX + +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#include <WriterFilterDllApi.hxx> +#endif +#include <doctok/WW8ResourceModel.hxx> +#include <com/sun/star/lang/XComponent.hpp> +//#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +//#include <PropertyMap.hxx> +//#endif +//#include <vector> + +namespace dmapper +{ + +struct LFOTable_Impl; +class WRITERFILTER_DLLPRIVATE LFOTable : public doctok::Properties, public doctok::Table +{ + LFOTable_Impl *m_pImpl; +public: + LFOTable(); + virtual ~LFOTable(); + + // Properties + virtual void attribute(doctok::Id Name, doctok::Value & val); + virtual void sprm(doctok::Sprm & sprm); + + // Table + virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref); + +// sal_uInt32 size(); + sal_Int32 GetListID(sal_uInt32 nLFO); +}; +typedef boost::shared_ptr< LFOTable > LFOTablePtr; +} + +#endif // diff --git a/writerfilter/source/dmapper/ListTable.cxx b/writerfilter/source/dmapper/ListTable.cxx new file mode 100644 index 000000000000..1ec20754d0fa --- /dev/null +++ b/writerfilter/source/dmapper/ListTable.cxx @@ -0,0 +1,809 @@ +#ifndef INCLUDED_LISTTABLE_HXX +#include <ListTable.hxx> +#endif +#ifndef INCLUDED_DOMAINMAPPER_HXX +#include <dmapper/DomainMapper.hxx> +#endif +#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX +#include <PropertyIds.hxx> +#endif +#ifndef INCLUDED_RESOURCESIDS +#include <doctok/resourceids.hxx> +#endif +#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX +#include <doctok/WW8ResourceModel.hxx> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_ +#include <com/sun/star/container/XIndexReplace.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_NUMBERINGTYPE_HPP_ +#include <com/sun/star/style/NumberingType.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_HORIORIENTATION_HPP_ +#include <com/sun/star/text/HoriOrientation.hpp> +#endif +#include <vector> + +#define NUMBERING_MAX_LEVELS 10 +namespace dmapper +{ +using namespace writerfilter; +using namespace com::sun::star; + +/*-- 26.06.2006 13:14:29--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Int16 lcl_ConvertNumberingType(sal_Int32 nNFC) +{ + sal_Int16 nRet; + switch(nNFC) + { + case 0: nRet = style::NumberingType::ARABIC; break; + case 1: nRet = style::NumberingType::ROMAN_UPPER; break; + case 2: nRet = style::NumberingType::ROMAN_LOWER; break; + case 3: nRet = style::NumberingType::CHARS_UPPER_LETTER_N; break; + case 4: nRet = style::NumberingType::CHARS_LOWER_LETTER_N; break; + case 5: nRet = style::NumberingType::ARABIC; break;//ORDINAL + case 23: + case 25: + nRet = style::NumberingType::CHAR_SPECIAL; + break; + case 255: nRet = style::NumberingType::NUMBER_NONE; break; + default: nRet = style::NumberingType::ARABIC; + } + return nRet; +} +/*-- 26.06.2006 13:14:29--------------------------------------------------- + + -----------------------------------------------------------------------*/ +class ListPropertyMap : public PropertyMap +{ + friend class ListTable; + + sal_Int32 nIStartAt; //LN_ISTARTAT + sal_Int32 nNFC; //LN_NFC + sal_Int32 nJC; //LN_JC + sal_Int32 nFLegal; //LN_FLEGAL + sal_Int32 nFNoRestart; //LN_FNORESTART + sal_Int32 nFPrev; //LN_FPREV + sal_Int32 nFPrevSpace; //LN_FPREVSPACE + sal_Int32 nFWord6; //LN_FWORD6 + ::rtl::OUString sRGBXchNums; //LN_RGBXCHNUMS + sal_Int32 nXChFollow; //LN_IXCHFOLLOW + PropertyMapPtr pProperties; //LN_LISTLEVEL +public: + ListPropertyMap() : + nIStartAt(-1) + ,nNFC(-1) + ,nJC(-1) + ,nFLegal(-1) + ,nFNoRestart(-1) + ,nFPrev(-1) + ,nFPrevSpace(-1) + ,nFWord6(-1) + ,nXChFollow(-1) + ,pProperties(new PropertyMap) + {} + ~ListPropertyMap(){} + + PropertyMapPtr GetProperties() { return pProperties; } + uno::Sequence< beans::PropertyValue > GetPropertyValues(); +}; +/*-- 26.06.2006 13:44:57--------------------------------------------------- + + -----------------------------------------------------------------------*/ +#define MAKE_PROPVAL(NameId, Value) \ + beans::PropertyValue(aPropNameSupplier.GetName(NameId), 0, uno::makeAny(Value), beans::PropertyState_DIRECT_VALUE ) + +uno::Sequence< beans::PropertyValue > ListPropertyMap::GetPropertyValues() +{ + const sal_Int16 aWWToUnoAdjust[] = + { + text::HoriOrientation::LEFT, + text::HoriOrientation::CENTER, + text::HoriOrientation::RIGHT, + }; + + PropertyNameSupplier& aPropNameSupplier = PropertyNameSupplier::GetPropertyNameSupplier(); + vector< beans::PropertyValue > aNumberingProperties; + + if( nIStartAt >= 0) + aNumberingProperties.push_back( MAKE_PROPVAL(PROP_START_WITH, (sal_Int16)nIStartAt) ); + + if( nNFC >= 0) + aNumberingProperties.push_back( MAKE_PROPVAL(PROP_NUMBERING_TYPE, lcl_ConvertNumberingType(nNFC))); + + if( nJC >= 0 && nJC <= sal::static_int_cast<sal_Int32>(sizeof(aWWToUnoAdjust) / sizeof(sal_Int16)) ) + aNumberingProperties.push_back( MAKE_PROPVAL(PROP_ADJUST, aWWToUnoAdjust[nJC])); + + //TODO: handling of nFLegal? + //TODO: nFNoRestart lower levels do not restart when higher levels are incremented, like: + //1. + //1.1 + //2.2 + //2.3 + //3.4 + // + + if( nFWord6 > 0) //Word 6 compatibility + { + if( nFPrev == 1) + aNumberingProperties.push_back( MAKE_PROPVAL( PROP_PARENT_NUMBERING, (sal_Int16) NUMBERING_MAX_LEVELS )); + //TODO: prefixing space nFPrevSpace; - has not been used in WW8 filter + } + +// TODO: sRGBXchNums; array of inherited numbers + +// TODO: nXChFollow; following character 0 - tab, 1 - space, 2 - nothing + if(pProperties) + { + + _PropertyMap::const_iterator aMapIter = pProperties->begin(); + _PropertyMap::const_iterator aEndIter = pProperties->end(); + for( ; aMapIter != aEndIter; ++aMapIter ) + { + aNumberingProperties.push_back( + beans::PropertyValue(aMapIter->first, 0, aMapIter->second, beans::PropertyState_DIRECT_VALUE )); + } + } + uno::Sequence< beans::PropertyValue > aRet(aNumberingProperties.size()); + beans::PropertyValue* pValues = aRet.getArray(); + vector< beans::PropertyValue >::const_iterator aIt = aNumberingProperties.begin(); + vector< beans::PropertyValue >::const_iterator aEndIt = aNumberingProperties.end(); + for(sal_uInt32 nIndex = 0; aIt != aEndIt; ++aIt,++nIndex) + { + pValues[nIndex] = *aIt; + } + return aRet; +} +typedef boost::shared_ptr<ListPropertyMap> ListPropertyMapPtr; + +struct ListEntry +{ + sal_Int32 nListId; //LN_LSID + sal_Int32 nTPLC; //LN_TPLC + ::rtl::OUString sRGISTD; //LN_RGISTD + sal_Int32 nSimpleList; //LN_FSIMPLELIST + sal_Int32 nRestart; //LN_FRESTARTHDN + sal_Int32 nUnsigned; //LN_UNSIGNED26_2 + + ::std::vector< ListPropertyMapPtr > aLevelProperties; //properties of each level + + ListPropertyMapPtr pCurrentProperties; + uno::Reference< container::XIndexReplace > m_xNumRules; + + ListEntry(); + +}; +typedef boost::shared_ptr<ListEntry> ListEntryPtr; +/*-- 23.06.2006 13:58:51--------------------------------------------------- + + -----------------------------------------------------------------------*/ +ListEntry::ListEntry() : + nListId(-1) + ,nTPLC(-1) + ,nSimpleList(-1) + ,nRestart(-1) + ,nUnsigned(-1) +{ +} +/*-- 23.06.2006 13:58:51--------------------------------------------------- + + -----------------------------------------------------------------------*/ +struct ListTable_Impl +{ + DomainMapper& m_rDMapper; + uno::Reference< lang::XMultiServiceFactory > m_xFactory; + + std::vector< ListEntryPtr > m_aListEntries; + ListEntryPtr m_pCurrentEntry; + + + ListTable_Impl(DomainMapper& rDMapper, uno::Reference< lang::XMultiServiceFactory > xFactory) : + m_rDMapper( rDMapper ) + ,m_xFactory( xFactory ) + {} + + void AddLevel(); +}; +/*-- 26.06.2006 14:23:19--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void ListTable_Impl::AddLevel() +{ + ListPropertyMapPtr pLevel( new ListPropertyMap ); + m_pCurrentEntry->pCurrentProperties = pLevel; + m_pCurrentEntry->aLevelProperties.push_back(pLevel); +} +/*-- 23.06.2006 12:04:32--------------------------------------------------- + + -----------------------------------------------------------------------*/ +ListTable::ListTable( + DomainMapper& rDMapper, + uno::Reference< lang::XMultiServiceFactory > xFactory) : + m_pImpl( new ListTable_Impl(rDMapper, xFactory) ) +{ +} +/*-- 23.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +ListTable::~ListTable() +{ + delete m_pImpl; +} +/*-- 23.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void ListTable::attribute(doctok::Id Name, doctok::Value & val) +{ + OSL_ENSURE( m_pImpl->m_pCurrentEntry.get(), "current entry has to be set here"); + if(!m_pImpl->m_pCurrentEntry.get()) + return ; + int nIntValue = val.getInt(); + switch(Name) + { +// case NS_rtf::LN_ISTD: break; + case NS_rtf::LN_ISTARTAT: + case NS_rtf::LN_NFC: + case NS_rtf::LN_JC: + case NS_rtf::LN_FLEGAL: + case NS_rtf::LN_FNORESTART: + case NS_rtf::LN_FPREV: + case NS_rtf::LN_FPREVSPACE: + case NS_rtf::LN_FWORD6: + case NS_rtf::LN_RGBXCHNUMS: + case NS_rtf::LN_IXCHFOLLOW: + if(m_pImpl->m_pCurrentEntry->pCurrentProperties.get()) + switch(Name) + { + case NS_rtf::LN_ISTARTAT: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nIStartAt = nIntValue; + break; + case NS_rtf::LN_NFC: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nNFC = nIntValue; + break; + case NS_rtf::LN_JC: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nJC = nIntValue; + break; + case NS_rtf::LN_FLEGAL: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nFLegal = nIntValue; + break; + case NS_rtf::LN_FNORESTART: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nFNoRestart = nIntValue; + break; + case NS_rtf::LN_FPREV: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nFPrev = nIntValue; + break; + case NS_rtf::LN_FPREVSPACE: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nFPrevSpace = nIntValue; + break; + case NS_rtf::LN_FWORD6: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nFWord6 = nIntValue; + break; + case NS_rtf::LN_RGBXCHNUMS: + m_pImpl->m_pCurrentEntry->pCurrentProperties->sRGBXchNums += val.getString(); + break; + case NS_rtf::LN_IXCHFOLLOW: + m_pImpl->m_pCurrentEntry->pCurrentProperties->nXChFollow = nIntValue; + break; + default: + OSL_ASSERT("this line should never be reached"); + } + break; + case NS_rtf::LN_UNUSED5_7: + //unused + break; +// case NS_rtf::LN_DXASPACE: break; +// case NS_rtf::LN_DXAINDENT: break; +// case NS_rtf::LN_CBGRPPRLCHPX: break; +// case NS_rtf::LN_CBGRPPRLPAPX: break; + case NS_rtf::LN_LSID: + m_pImpl->m_pCurrentEntry->nListId = nIntValue; + break; + case NS_rtf::LN_TPLC: + m_pImpl->m_pCurrentEntry->nTPLC = nIntValue; + break; + case NS_rtf::LN_RGISTD: + m_pImpl->m_pCurrentEntry->sRGISTD += val.getString(); + break; + case NS_rtf::LN_FSIMPLELIST: + m_pImpl->m_pCurrentEntry->nSimpleList = nIntValue; + break; + case NS_rtf::LN_FRESTARTHDN: + m_pImpl->m_pCurrentEntry->nRestart = nIntValue; + break; + case NS_rtf::LN_UNSIGNED26_2: + m_pImpl->m_pCurrentEntry->nUnsigned = nIntValue; + break; +// case NS_rtf::LN_ILVL: break; +// case NS_rtf::LN_FSTARTAT: break; +// case NS_rtf::LN_FFORMATTING: break; +// case NS_rtf::LN_UNSIGNED4_6: break; +// case NS_rtf::LN_UNUSED4: break; +// case NS_rtf::LN_UNUSED8: break; +// case NS_rtf::LN_CLFOLVL: break; +// case NS_rtf::LN_CBFFNM1: break; +// case NS_rtf::LN_PRQ: break; +// case NS_rtf::LN_FTRUETYPE: break; +// case NS_rtf::LN_UNUSED1_3: break; +// case NS_rtf::LN_FF: break; +// case NS_rtf::LN_UNUSED1_7: break; +// case NS_rtf::LN_WWEIGHT: break; +// case NS_rtf::LN_CHS: break; +// case NS_rtf::LN_IXCHSZALT: break; +// case NS_rtf::LN_PANOSE: break; +// case NS_rtf::LN_FS: break; +// case NS_rtf::LN_STI: break; +// case NS_rtf::LN_FSCRATCH: break; +// case NS_rtf::LN_FINVALHEIGHT: break; +// case NS_rtf::LN_FHASUPE: break; +// case NS_rtf::LN_FMASSCOPY: break; +// case NS_rtf::LN_SGC: break; +// case NS_rtf::LN_ISTDBASE: break; +// case NS_rtf::LN_CUPX: break; +// case NS_rtf::LN_ISTDNEXT: break; +// case NS_rtf::LN_BCHUPE: break; +// case NS_rtf::LN_FAUTOREDEF: break; +// case NS_rtf::LN_FHIDDEN: break; +// case NS_rtf::LN_UNUSED8_3: break; +// case NS_rtf::LN_CSTD: break; +// case NS_rtf::LN_CBSTDBASEINFILE: break; +// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break; +// case NS_rtf::LN_UNUSED4_2: break; +// case NS_rtf::LN_STIMAXWHENSAVED: break; +// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break; +// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break; +// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break; +// case NS_rtf::LN_WIDENT: break; +// case NS_rtf::LN_NFIB: break; +// case NS_rtf::LN_NPRODUCT: break; +// case NS_rtf::LN_LID: break; +// case NS_rtf::LN_PNNEXT: break; +// case NS_rtf::LN_FDOT: break; +// case NS_rtf::LN_FGLSY: break; +// case NS_rtf::LN_FCOMPLEX: break; +// case NS_rtf::LN_FHASPIC: break; +// case NS_rtf::LN_CQUICKSAVES: break; +// case NS_rtf::LN_FENCRYPTED: break; +// case NS_rtf::LN_FWHICHTBLSTM: break; +// case NS_rtf::LN_FREADONLYRECOMMENDED: break; +// case NS_rtf::LN_FWRITERESERVATION: break; +// case NS_rtf::LN_FEXTCHAR: break; +// case NS_rtf::LN_FLOADOVERRIDE: break; +// case NS_rtf::LN_FFAREAST: break; +// case NS_rtf::LN_FCRYPTO: break; +// case NS_rtf::LN_NFIBBACK: break; +// case NS_rtf::LN_LKEY: break; +// case NS_rtf::LN_ENVR: break; +// case NS_rtf::LN_FMAC: break; +// case NS_rtf::LN_FEMPTYSPECIAL: break; +// case NS_rtf::LN_FLOADOVERRIDEPAGE: break; +// case NS_rtf::LN_FFUTURESAVEDUNDO: break; +// case NS_rtf::LN_FWORD97SAVED: break; +// case NS_rtf::LN_FSPARE0: break; +// case NS_rtf::LN_CHSTABLES: break; +// case NS_rtf::LN_FCMIN: break; +// case NS_rtf::LN_FCMAC: break; +// case NS_rtf::LN_CSW: break; +// case NS_rtf::LN_WMAGICCREATED: break; +// case NS_rtf::LN_WMAGICREVISED: break; +// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break; +// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break; +// case NS_rtf::LN_PNFBPCHPFIRST_W6: break; +// case NS_rtf::LN_PNCHPFIRST_W6: break; +// case NS_rtf::LN_CPNBTECHP_W6: break; +// case NS_rtf::LN_PNFBPPAPFIRST_W6: break; +// case NS_rtf::LN_PNPAPFIRST_W6: break; +// case NS_rtf::LN_CPNBTEPAP_W6: break; +// case NS_rtf::LN_PNFBPLVCFIRST_W6: break; +// case NS_rtf::LN_PNLVCFIRST_W6: break; +// case NS_rtf::LN_CPNBTELVC_W6: break; +// case NS_rtf::LN_LIDFE: break; +// case NS_rtf::LN_CLW: break; +// case NS_rtf::LN_CBMAC: break; +// case NS_rtf::LN_LPRODUCTCREATED: break; +// case NS_rtf::LN_LPRODUCTREVISED: break; +// case NS_rtf::LN_CCPTEXT: break; +// case NS_rtf::LN_CCPFTN: break; +// case NS_rtf::LN_CCPHDD: break; +// case NS_rtf::LN_CCPMCR: break; +// case NS_rtf::LN_CCPATN: break; +// case NS_rtf::LN_CCPEDN: break; +// case NS_rtf::LN_CCPTXBX: break; +// case NS_rtf::LN_CCPHDRTXBX: break; +// case NS_rtf::LN_PNFBPCHPFIRST: break; +// case NS_rtf::LN_PNCHPFIRST: break; +// case NS_rtf::LN_CPNBTECHP: break; +// case NS_rtf::LN_PNFBPPAPFIRST: break; +// case NS_rtf::LN_PNPAPFIRST: break; +// case NS_rtf::LN_CPNBTEPAP: break; +// case NS_rtf::LN_PNFBPLVCFIRST: break; +// case NS_rtf::LN_PNLVCFIRST: break; +// case NS_rtf::LN_CPNBTELVC: break; +// case NS_rtf::LN_FCISLANDFIRST: break; +// case NS_rtf::LN_FCISLANDLIM: break; +// case NS_rtf::LN_CFCLCB: break; +// case NS_rtf::LN_FCSTSHFORIG: break; +// case NS_rtf::LN_LCBSTSHFORIG: break; +// case NS_rtf::LN_FCSTSHF: break; +// case NS_rtf::LN_LCBSTSHF: break; +// case NS_rtf::LN_FCPLCFFNDREF: break; +// case NS_rtf::LN_LCBPLCFFNDREF: break; +// case NS_rtf::LN_FCPLCFFNDTXT: break; +// case NS_rtf::LN_LCBPLCFFNDTXT: break; +// case NS_rtf::LN_FCPLCFANDREF: break; +// case NS_rtf::LN_LCBPLCFANDREF: break; +// case NS_rtf::LN_FCPLCFANDTXT: break; +// case NS_rtf::LN_LCBPLCFANDTXT: break; +// case NS_rtf::LN_FCPLCFSED: break; +// case NS_rtf::LN_LCBPLCFSED: break; +// case NS_rtf::LN_FCPLCFPAD: break; +// case NS_rtf::LN_LCBPLCFPAD: break; +// case NS_rtf::LN_FCPLCFPHE: break; +// case NS_rtf::LN_LCBPLCFPHE: break; +// case NS_rtf::LN_FCSTTBFGLSY: break; +// case NS_rtf::LN_LCBSTTBFGLSY: break; +// case NS_rtf::LN_FCPLCFGLSY: break; +// case NS_rtf::LN_LCBPLCFGLSY: break; +// case NS_rtf::LN_FCPLCFHDD: break; +// case NS_rtf::LN_LCBPLCFHDD: break; +// case NS_rtf::LN_FCPLCFBTECHPX: break; +// case NS_rtf::LN_LCBPLCFBTECHPX: break; +// case NS_rtf::LN_FCPLCFBTEPAPX: break; +// case NS_rtf::LN_LCBPLCFBTEPAPX: break; +// case NS_rtf::LN_FCPLCFSEA: break; +// case NS_rtf::LN_LCBPLCFSEA: break; +// case NS_rtf::LN_FCSTTBFFFN: break; +// case NS_rtf::LN_LCBSTTBFFFN: break; +// case NS_rtf::LN_FCPLCFFLDMOM: break; +// case NS_rtf::LN_LCBPLCFFLDMOM: break; +// case NS_rtf::LN_FCPLCFFLDHDR: break; +// case NS_rtf::LN_LCBPLCFFLDHDR: break; +// case NS_rtf::LN_FCPLCFFLDFTN: break; +// case NS_rtf::LN_LCBPLCFFLDFTN: break; +// case NS_rtf::LN_FCPLCFFLDATN: break; +// case NS_rtf::LN_LCBPLCFFLDATN: break; +// case NS_rtf::LN_FCPLCFFLDMCR: break; +// case NS_rtf::LN_LCBPLCFFLDMCR: break; +// case NS_rtf::LN_FCSTTBFBKMK: break; +// case NS_rtf::LN_LCBSTTBFBKMK: break; +// case NS_rtf::LN_FCPLCFBKF: break; +// case NS_rtf::LN_LCBPLCFBKF: break; +// case NS_rtf::LN_FCPLCFBKL: break; +// case NS_rtf::LN_LCBPLCFBKL: break; +// case NS_rtf::LN_FCCMDS: break; +// case NS_rtf::LN_LCBCMDS: break; +// case NS_rtf::LN_FCPLCMCR: break; +// case NS_rtf::LN_LCBPLCMCR: break; +// case NS_rtf::LN_FCSTTBFMCR: break; +// case NS_rtf::LN_LCBSTTBFMCR: break; +// case NS_rtf::LN_FCPRDRVR: break; +// case NS_rtf::LN_LCBPRDRVR: break; +// case NS_rtf::LN_FCPRENVPORT: break; +// case NS_rtf::LN_LCBPRENVPORT: break; +// case NS_rtf::LN_FCPRENVLAND: break; +// case NS_rtf::LN_LCBPRENVLAND: break; +// case NS_rtf::LN_FCWSS: break; +// case NS_rtf::LN_LCBWSS: break; +// case NS_rtf::LN_FCDOP: break; +// case NS_rtf::LN_LCBDOP: break; +// case NS_rtf::LN_FCSTTBFASSOC: break; +// case NS_rtf::LN_LCBSTTBFASSOC: break; +// case NS_rtf::LN_FCCLX: break; +// case NS_rtf::LN_LCBCLX: break; +// case NS_rtf::LN_FCPLCFPGDFTN: break; +// case NS_rtf::LN_LCBPLCFPGDFTN: break; +// case NS_rtf::LN_FCAUTOSAVESOURCE: break; +// case NS_rtf::LN_LCBAUTOSAVESOURCE: break; +// case NS_rtf::LN_FCGRPXSTATNOWNERS: break; +// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break; +// case NS_rtf::LN_FCSTTBFATNBKMK: break; +// case NS_rtf::LN_LCBSTTBFATNBKMK: break; +// case NS_rtf::LN_FCPLCDOAMOM: break; +// case NS_rtf::LN_LCBPLCDOAMOM: break; +// case NS_rtf::LN_FCPLCDOAHDR: break; +// case NS_rtf::LN_LCBPLCDOAHDR: break; +// case NS_rtf::LN_FCPLCSPAMOM: break; +// case NS_rtf::LN_LCBPLCSPAMOM: break; +// case NS_rtf::LN_FCPLCSPAHDR: break; +// case NS_rtf::LN_LCBPLCSPAHDR: break; +// case NS_rtf::LN_FCPLCFATNBKF: break; +// case NS_rtf::LN_LCBPLCFATNBKF: break; +// case NS_rtf::LN_FCPLCFATNBKL: break; +// case NS_rtf::LN_LCBPLCFATNBKL: break; +// case NS_rtf::LN_FCPMS: break; +// case NS_rtf::LN_LCBPMS: break; +// case NS_rtf::LN_FCFORMFLDSTTBF: break; +// case NS_rtf::LN_LCBFORMFLDSTTBF: break; +// case NS_rtf::LN_FCPLCFENDREF: break; +// case NS_rtf::LN_LCBPLCFENDREF: break; +// case NS_rtf::LN_FCPLCFENDTXT: break; +// case NS_rtf::LN_LCBPLCFENDTXT: break; +// case NS_rtf::LN_FCPLCFFLDEDN: break; +// case NS_rtf::LN_LCBPLCFFLDEDN: break; +// case NS_rtf::LN_FCPLCFPGDEDN: break; +// case NS_rtf::LN_LCBPLCFPGDEDN: break; +// case NS_rtf::LN_FCDGGINFO: break; +// case NS_rtf::LN_LCBDGGINFO: break; +// case NS_rtf::LN_FCSTTBFRMARK: break; +// case NS_rtf::LN_LCBSTTBFRMARK: break; +// case NS_rtf::LN_FCSTTBFCAPTION: break; +// case NS_rtf::LN_LCBSTTBFCAPTION: break; +// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_FCPLCFWKB: break; +// case NS_rtf::LN_LCBPLCFWKB: break; +// case NS_rtf::LN_FCPLCFSPL: break; +// case NS_rtf::LN_LCBPLCFSPL: break; +// case NS_rtf::LN_FCPLCFTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDTXBX: break; +// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_FCSTWUSER: break; +// case NS_rtf::LN_LCBSTWUSER: break; +// case NS_rtf::LN_FCSTTBTTMBD: break; +// case NS_rtf::LN_LCBSTTBTTMBD: break; +// case NS_rtf::LN_FCUNUSED: break; +// case NS_rtf::LN_LCBUNUSED: break; +// case NS_rtf::LN_FCPGDMOTHER: break; +// case NS_rtf::LN_LCBPGDMOTHER: break; +// case NS_rtf::LN_FCBKDMOTHER: break; +// case NS_rtf::LN_LCBBKDMOTHER: break; +// case NS_rtf::LN_FCPGDFTN: break; +// case NS_rtf::LN_LCBPGDFTN: break; +// case NS_rtf::LN_FCBKDFTN: break; +// case NS_rtf::LN_LCBBKDFTN: break; +// case NS_rtf::LN_FCPGDEDN: break; +// case NS_rtf::LN_LCBPGDEDN: break; +// case NS_rtf::LN_FCBKDEDN: break; +// case NS_rtf::LN_LCBBKDEDN: break; +// case NS_rtf::LN_FCSTTBFINTLFLD: break; +// case NS_rtf::LN_LCBSTTBFINTLFLD: break; +// case NS_rtf::LN_FCROUTESLIP: break; +// case NS_rtf::LN_LCBROUTESLIP: break; +// case NS_rtf::LN_FCSTTBSAVEDBY: break; +// case NS_rtf::LN_LCBSTTBSAVEDBY: break; +// case NS_rtf::LN_FCSTTBFNM: break; +// case NS_rtf::LN_LCBSTTBFNM: break; +// case NS_rtf::LN_FCPLCFLST: break; +// case NS_rtf::LN_LCBPLCFLST: break; +// case NS_rtf::LN_FCPLFLFO: break; +// case NS_rtf::LN_LCBPLFLFO: break; +// case NS_rtf::LN_FCPLCFTXBXBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXBKD: break; +// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_FCDOCUNDO: break; +// case NS_rtf::LN_LCBDOCUNDO: break; +// case NS_rtf::LN_FCRGBUSE: break; +// case NS_rtf::LN_LCBRGBUSE: break; +// case NS_rtf::LN_FCUSP: break; +// case NS_rtf::LN_LCBUSP: break; +// case NS_rtf::LN_FCUSKF: break; +// case NS_rtf::LN_LCBUSKF: break; +// case NS_rtf::LN_FCPLCUPCRGBUSE: break; +// case NS_rtf::LN_LCBPLCUPCRGBUSE: break; +// case NS_rtf::LN_FCPLCUPCUSP: break; +// case NS_rtf::LN_LCBPLCUPCUSP: break; +// case NS_rtf::LN_FCSTTBGLSYSTYLE: break; +// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break; +// case NS_rtf::LN_FCPLGOSL: break; +// case NS_rtf::LN_LCBPLGOSL: break; +// case NS_rtf::LN_FCPLCOCX: break; +// case NS_rtf::LN_LCBPLCOCX: break; +// case NS_rtf::LN_FCPLCFBTELVC: break; +// case NS_rtf::LN_LCBPLCFBTELVC: break; +// case NS_rtf::LN_DWLOWDATETIME: break; +// case NS_rtf::LN_DWHIGHDATETIME: break; +// case NS_rtf::LN_FCPLCFLVC: break; +// case NS_rtf::LN_LCBPLCFLVC: break; +// case NS_rtf::LN_FCPLCASUMY: break; +// case NS_rtf::LN_LCBPLCASUMY: break; +// case NS_rtf::LN_FCPLCFGRAM: break; +// case NS_rtf::LN_LCBPLCFGRAM: break; +// case NS_rtf::LN_FCSTTBLISTNAMES: break; +// case NS_rtf::LN_LCBSTTBLISTNAMES: break; +// case NS_rtf::LN_FCSTTBFUSSR: break; +// case NS_rtf::LN_LCBSTTBFUSSR: break; +// case NS_rtf::LN_FN: break; +// case NS_rtf::LN_FCSEPX: break; +// case NS_rtf::LN_FNMPR: break; +// case NS_rtf::LN_FCMPR: break; +// case NS_rtf::LN_ICOFORE: break; +// case NS_rtf::LN_ICOBACK: break; +// case NS_rtf::LN_IPAT: break; +// case NS_rtf::LN_SHDFORECOLOR: break; +// case NS_rtf::LN_SHDBACKCOLOR: break; +// case NS_rtf::LN_SHDPATTERN: break; +// case NS_rtf::LN_DPTLINEWIDTH: break; +// case NS_rtf::LN_BRCTYPE: break; +// case NS_rtf::LN_ICO: break; +// case NS_rtf::LN_DPTSPACE: break; +// case NS_rtf::LN_FSHADOW: break; +// case NS_rtf::LN_FFRAME: break; +// case NS_rtf::LN_UNUSED2_15: break; +// case NS_rtf::LN_FFIRSTMERGED: break; +// case NS_rtf::LN_FMERGED: break; +// case NS_rtf::LN_FVERTICAL: break; +// case NS_rtf::LN_FBACKWARD: break; +// case NS_rtf::LN_FROTATEFONT: break; +// case NS_rtf::LN_FVERTMERGE: break; +// case NS_rtf::LN_FVERTRESTART: break; +// case NS_rtf::LN_VERTALIGN: break; +// case NS_rtf::LN_FUNUSED: break; +// case NS_rtf::LN_WUNUSED: break; +// case NS_rtf::LN_BRCTOP: break; +// case NS_rtf::LN_BRCLEFT: break; +// case NS_rtf::LN_BRCBOTTOM: break; +// case NS_rtf::LN_BRCRIGHT: break; +// case NS_rtf::LN_IBKL: break; +// case NS_rtf::LN_ITCFIRST: break; +// case NS_rtf::LN_FPUB: break; +// case NS_rtf::LN_ITCLIM: break; +// case NS_rtf::LN_FCOL: break; +// case NS_rtf::LN_LINECOLOR: break; +// case NS_rtf::LN_LINEWIDTH: break; +// case NS_rtf::LN_LINETYPE: break; +// case NS_rtf::LN_MM: break; +// case NS_rtf::LN_XEXT: break; +// case NS_rtf::LN_YEXT: break; +// case NS_rtf::LN_HMF: break; +// case NS_rtf::LN_LCB: break; +// case NS_rtf::LN_CBHEADER: break; +// case NS_rtf::LN_MFP: break; +// case NS_rtf::LN_BM_RCWINMF: break; +// case NS_rtf::LN_DXAGOAL: break; +// case NS_rtf::LN_DYAGOAL: break; +// case NS_rtf::LN_MX: break; +// case NS_rtf::LN_MY: break; +// case NS_rtf::LN_DXACROPLEFT: break; +// case NS_rtf::LN_DYACROPTOP: break; +// case NS_rtf::LN_DXACROPRIGHT: break; +// case NS_rtf::LN_DYACROPBOTTOM: break; +// case NS_rtf::LN_BRCL: break; +// case NS_rtf::LN_FFRAMEEMPTY: break; +// case NS_rtf::LN_FBITMAP: break; +// case NS_rtf::LN_FDRAWHATCH: break; +// case NS_rtf::LN_FERROR: break; +// case NS_rtf::LN_BPP: break; +// case NS_rtf::LN_DXAORIGIN: break; +// case NS_rtf::LN_DYAORIGIN: break; +// case NS_rtf::LN_CPROPS: break; +// case NS_rtf::LN_LINEPROPSTOP: break; +// case NS_rtf::LN_LINEPROPSLEFT: break; +// case NS_rtf::LN_LINEPROPSBOTTOM: break; +// case NS_rtf::LN_LINEPROPSRIGHT: break; +// case NS_rtf::LN_LINEPROPSHORIZONTAL: break; +// case NS_rtf::LN_LINEPROPSVERTICAL: break; +// case NS_rtf::LN_headerr: break; +// case NS_rtf::LN_footerr: break; +// case NS_rtf::LN_endnote: break; +// case NS_rtf::LN_BOOKMARKNAME: break; + + case NS_rtf::LN_LISTLEVEL: + { + //add a new level to the level vector and make it the current one + m_pImpl->AddLevel(); + + doctok::Reference<Properties>::Pointer_t pProperties; + if((pProperties = val.getProperties()).get()) + pProperties->resolve(*this); + } + break; +// case NS_rtf::LN_LFO: break; +// case NS_rtf::LN_F: break; +// case NS_rtf::LN_ALTFONTNAME: break; +// case NS_rtf::LN_XSZFFN: break; +// case NS_rtf::LN_XSTZNAME: break; +// case NS_rtf::LN_XSTZNAME1: break; +// case NS_rtf::LN_UPXSTART: break; +// case NS_rtf::LN_UPX: break; +// case NS_rtf::LN_sed: break; +// case NS_rtf::LN_picf: break; +// case NS_rtf::LN_rgbrc: break; +// case NS_rtf::LN_shd: break; +// case NS_rtf::LN_cellShd: break; +// case NS_rtf::LN_cellTopColor: break; +// case NS_rtf::LN_cellLeftColor: break; +// case NS_rtf::LN_cellBottomColor: break; +// case NS_rtf::LN_cellRightColor: break; + +// case NS_rtf::LN_LISTTABLE: break; +// case NS_rtf::LN_LFOTABLE: break; +// case NS_rtf::LN_FONTTABLE: break; +// case NS_rtf::LN_STYLESHEET: break; + default: + { + //---->debug + int nVal = val.getInt(); + ++nVal; + //<----debug + } + } +} +/*-- 23.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void ListTable::sprm(doctok::Sprm & sprm_) +{ + //fill the attributes of the style sheet + if(m_pImpl->m_pCurrentEntry.get()) + { + m_pImpl->m_rDMapper.sprm( sprm_, + m_pImpl->m_pCurrentEntry->pCurrentProperties->GetProperties(), SPRM_LIST); + } +} +/*-- 23.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void ListTable::entry(int, doctok::Reference<Properties>::Pointer_t ref) +{ + //create a new list entry + OSL_ENSURE( !m_pImpl->m_pCurrentEntry.get(), "current entry has to be NULL here"); + m_pImpl->m_pCurrentEntry.reset( new ListEntry ); + ref->resolve(*this); + //append it to the table + m_pImpl->m_aListEntries.push_back( m_pImpl->m_pCurrentEntry ); + m_pImpl->m_pCurrentEntry = ListEntryPtr(); +} +/*-- 26.06.2006 10:27:55--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_uInt32 ListTable::size() +{ + return m_pImpl->m_aListEntries.size(); +} +/*-- 26.06.2006 10:33:56--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Reference< container::XIndexReplace > ListTable::GetNumberingRules(sal_Int32 nListId) +{ + uno::Reference< container::XIndexReplace > xRet; + std::vector< ListEntryPtr >::const_iterator aIt = m_pImpl->m_aListEntries.begin(); + std::vector< ListEntryPtr >::const_iterator aEndIt = m_pImpl->m_aListEntries.end(); + for(; aIt != aEndIt; ++aIt) + { + if((*aIt)->nListId == nListId) + { + if( !(*aIt)->m_xNumRules.is() && m_pImpl->m_xFactory.is()) + { + try + { + (*aIt)->m_xNumRules = uno::Reference< container::XIndexReplace >( + m_pImpl->m_xFactory->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.NumberingRules"))), + uno::UNO_QUERY_THROW); + + //now fill the numbering levels appropriately + ::std::vector< ListPropertyMapPtr >::const_iterator aIter = (*aIt)->aLevelProperties.begin(); + ::std::vector< ListPropertyMapPtr >::const_iterator aEnd = (*aIt)->aLevelProperties.end(); + sal_Int32 nLevel = 0; + while(aIter != aEnd) + { + uno::Sequence< beans::PropertyValue> aValues = (*aIter)->GetPropertyValues(); + (*aIt)->m_xNumRules->replaceByIndex(nLevel, uno::makeAny(aValues)); + + ++aIter; + ++nLevel; + } + + } + catch( const uno::Exception& ) + { + } + } + xRet = (*aIt)->m_xNumRules; + break; + } + } + return xRet; +} + +}//namespace dmapper + diff --git a/writerfilter/source/dmapper/ListTable.hxx b/writerfilter/source/dmapper/ListTable.hxx new file mode 100644 index 000000000000..10375e8165e6 --- /dev/null +++ b/writerfilter/source/dmapper/ListTable.hxx @@ -0,0 +1,57 @@ +#ifndef INCLUDED_LISTTABLE_HXX +#define INCLUDED_LISTTABLE_HXX + +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#include <WriterFilterDllApi.hxx> +#endif +#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +#include <PropertyMap.hxx> +#endif +#include <doctok/WW8ResourceModel.hxx> + +namespace com{ namespace sun { namespace star { + namespace text{ + class XTextDocument; + } + namespace container{ + class XIndexReplace; + } + namespace lang{ + class XMultiServiceFactory; + } +}}} +namespace dmapper +{ +class DomainMapper; +struct ListTable_Impl; +class WRITERFILTER_DLLPRIVATE ListTable : + public doctok::Properties, + public doctok::Table +{ + ListTable_Impl *m_pImpl; + +public: + ListTable( + DomainMapper& rDMapper, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory); + virtual ~ListTable(); + + // Properties + virtual void attribute(doctok::Id Name, doctok::Value & val); + virtual void sprm(doctok::Sprm & sprm); + + // Table + virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref); + + // BinaryObj +// virtual void data(const sal_Int8* buf, size_t len, +// doctok::Reference<Properties>::Pointer_t ref); + + sal_uInt32 size(); + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexReplace > + GetNumberingRules(sal_Int32 nListId); +}; +typedef boost::shared_ptr< ListTable > ListTablePtr; +} + +#endif // diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx new file mode 100644 index 000000000000..c9b00f623b9d --- /dev/null +++ b/writerfilter/source/dmapper/PropertyIds.cxx @@ -0,0 +1,176 @@ +#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX +#include <PropertyIds.hxx> +#endif +#include <rtl/ustring.hxx> +#include <hash_map> + +namespace dmapper{ + +struct OUStringHash +{ + unsigned long operator()(const PropertyIds& eId) const + { + return static_cast<unsigned long>(eId); + } +}; + +struct OUStringEq +{ + bool operator() (const PropertyIds& rA, const PropertyIds& rB) const + { + return rA == rB; + } +}; + +typedef ::std::hash_map< PropertyIds, ::rtl::OUString, OUStringHash, OUStringEq> PropertyNameMap_t; + + +//typedef std::map< PropertyIds, ::rtl::OUString > PropertyNameMap_t; +struct PropertyNameSupplier_Impl +{ + PropertyNameMap_t aNameMap; +}; + +/*-- 14.06.2006 11:01:31--------------------------------------------------- + + -----------------------------------------------------------------------*/ +PropertyNameSupplier::PropertyNameSupplier() : + m_pImpl(new PropertyNameSupplier_Impl) +{ +} +/*-- 14.06.2006 11:01:32--------------------------------------------------- + + -----------------------------------------------------------------------*/ +PropertyNameSupplier::~PropertyNameSupplier() +{ + delete m_pImpl; +} +/*-- 14.06.2006 11:01:32--------------------------------------------------- + + -----------------------------------------------------------------------*/ +const rtl::OUString& PropertyNameSupplier::GetName( PropertyIds eId ) +{ + PropertyNameMap_t::iterator aIt = m_pImpl->aNameMap.find(eId); + if(aIt == m_pImpl->aNameMap.end()) + { + ::rtl::OUString sName; + switch(eId) + { + case PROP_CHAR_WEIGHT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWeight")); break; + case PROP_CHAR_POSTURE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharPosture")); break; + case PROP_CHAR_STRIKEOUT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharStrikeout")); break; + case PROP_CHAR_CONTOURED: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharContoured")); break; + case PROP_CHAR_SHADOWED: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharShadowed")); break; + case PROP_CHAR_CASEMAP: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharCaseMap")); break; + case PROP_CHAR_COLOR: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharColor")); break; + case PROP_CHAR_RELIEF: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharRelief")); break; + case PROP_CHAR_UNDERLINE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderline")); break; + case PROP_CHAR_UNDERLINE_COLOR: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderlineColor")); break; + case PROP_CHAR_UNDERLINE_HAS_COLOR: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderlineHasColor")); break; + case PROP_CHAR_WORD_MODE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWordMode")); break; + case PROP_CHAR_ESCAPEMENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharEscapement")); break; + case PROP_CHAR_ESCAPEMENT_HEIGHT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharEscapementHeight")); break; + case PROP_CHAR_HEIGHT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHeight")); break; + case PROP_CHAR_HEIGHT_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHeightComplex")); break; + case PROP_CHAR_LOCALE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharLocale")); break; + case PROP_CHAR_LOCALE_ASIAN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharLocaleAsian")); break; + case PROP_CHAR_LOCALE_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharLocaleComplex")); break; + case PROP_CHAR_WEIGHT_COMPLEX : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWeightComplex")); break; + case PROP_CHAR_POSTURE_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharPostureComplex")); break; + case PROP_CHAR_CHAR_KERNING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharKerning")); break; + case PROP_CHAR_AUTO_KERNING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharAutoKerning")); break; + case PROP_CHAR_SCALE_WIDTH: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharScaleWidth")); break; + case PROP_CHAR_STYLE_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharStyleName")); break; + case PROP_CHAR_FONT_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontName")); break; + case PROP_CHAR_FONT_STYLE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontStyle")); break; + case PROP_CHAR_FONT_FAMILY: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontFamily")); break; + case PROP_CHAR_FONT_CHAR_SET: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontCharSet")); break; + case PROP_CHAR_FONT_PITCH: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontPitch")); break; + case PROP_CHAR_FONT_NAME_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontNameAsian")); break; + case PROP_CHAR_FONT_STYLE_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontStyleAsian")); break; + case PROP_CHAR_FONT_FAMILY_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontFamilyAsian")); break; + case PROP_CHAR_FONT_CHAR_SET_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontCharSetAsian")); break; + case PROP_CHAR_FONT_PITCH_ASIAN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontPitchAsian")); break; + case PROP_CHAR_FONT_NAME_COMPLEX : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontNameComplex")); break; + case PROP_CHAR_FONT_STYLE_COMPLEX : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontStyleComplex")); break; + case PROP_CHAR_FONT_FAMILY_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontFamilyComplex")); break; + case PROP_CHAR_FONT_CHAR_SET_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontCharSetComplex")); break; + case PROP_CHAR_FONT_PITCH_COMPLEX: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontPitchComplex")); break; + case PROP_CHAR_HIDDEN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHidden")); break; + +// case PROP_CHAR_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Char")); break; +// case PROP_CHAR_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Char")); break; +// case PROP_CHAR_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Char")); break; + + case PROP_PARA_STYLE_NAME: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaStyleName")); break; + case PROP_PARA_ADJUST: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaAdjust")); break; + case PROP_PARA_LAST_LINE_ADJUST: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLastLineAdjust")); break; + case PROP_PARA_RIGHT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLeftMargin")); break; + case PROP_PARA_LEFT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaRightMargin")); break; + case PROP_PARA_FIRST_LINE_INDENT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaFirstLineIndent")); break; + case PROP_PARA_KEEP_TOGETHER: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaKeepTogether")); break; + case PROP_PARA_TOP_MARGIN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaTopMargin")); break; + case PROP_PARA_BOTTOM_MARGIN: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaBottomMargin")); break; + case PROP_PARA_IS_HYPHENATION: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaIsHyphenation")); break; + case PROP_PARA_LINE_NUMBER_COUNT: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLineNumberCount")); break; + case PROP_PARA_IS_HANGING_PUNCTUATION: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaIsHangingPunctuation")); break; + case PROP_PARA_LINE_SPACING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaLineSpacing")); break; + case PROP_PARA_TAB_STOPS: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaTabStops")); break; +// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break; +// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break; +// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break; +// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break; +// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break; +// case PROP_PARA_: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Para")); break; + case PROP_NUMBERING_LEVEL: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingLevel")); break; + case PROP_NUMBERING_RULES: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingRules")); break; + case PROP_NUMBERING_TYPE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberingType")); break; + case PROP_START_WITH: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("StartWith")); break; + case PROP_ADJUST: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Adjust")); break; + case PROP_PARENT_NUMBERING: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParentNumbering")); break; + case PROP_RIGHT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RightMargin")); break; + case PROP_LEFT_MARGIN : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LeftMargin")); break; + case PROP_FIRST_LINE_OFFSET: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FirstLineOffset")); break; + case PROP_LEFT_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LeftBorder"));break; + case PROP_RIGHT_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RightBorder"));break; + case PROP_TOP_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TopBorder"));break; + case PROP_BOTTOM_BORDER : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BottomBorder"));break; + case PROP_LEFT_BORDER_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LeftBorderDistance")); break; + case PROP_RIGHT_BORDER_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("RightBorderDistance")); break; + case PROP_TOP_BORDER_DISTANCE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TopBorderDistance"));break; + case PROP_BOTTOM_BORDER_DISTANCE: sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BottomBorderDistance")); break; + case PROP_CURRENT_PRESENTATION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CurrentPresentation")); break; + case PROP_IS_FIXED : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsFixed")); break; + case PROP_SUB_TYPE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SubType")); break; + case PROP_FILE_FORMAT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FileFormat")); break; + case PROP_HYPER_LINK_U_R_L : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HyperLinkURL")); break; + case PROP_NUMBER_FORMAT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NumberFormat")); break; + case PROP_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Name")); break; + case PROP_IS_INPUT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IsInput")); break; + case PROP_HINT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Hint")); break; + case PROP_FULL_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FullName")); break; + case PROP_KEYWORDS : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Keywords")); break; + case PROP_DESCRIPTION : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Description")); break; + case PROP_MACRO_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("MacroName")); break; + case PROP_SUBJECT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Subject")); break; + case PROP_USER_DATA_TYPE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UserDataType")); break; + case PROP_TITLE : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); break; + case PROP_CONTENT : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Content")); break; + case PROP_DATA_COLUMN_NAME : sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DataColumnName")); break; + + + } + ::std::pair<PropertyNameMap_t::iterator,bool> aInsertIt = + m_pImpl->aNameMap.insert( PropertyNameMap_t::value_type( eId, sName )); + if(aInsertIt.second) + aIt = aInsertIt.first; + } + return aIt->second; +} +PropertyNameSupplier& PropertyNameSupplier::GetPropertyNameSupplier() +{ + static PropertyNameSupplier aNameSupplier; + return aNameSupplier; +} + +} //namespace dmapper diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx new file mode 100644 index 000000000000..f0b288b4057a --- /dev/null +++ b/writerfilter/source/dmapper/PropertyIds.hxx @@ -0,0 +1,120 @@ +#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX +#define INCLUDED_DMAPPER_PROPERTYIDS_HXX + +namespace rtl{ class OUString;} +namespace dmapper{ +enum PropertyIds +{ + PROP_ID_START = 1 + /* 1*/ ,PROP_CHAR_WEIGHT = PROP_ID_START + /* 2*/ ,PROP_CHAR_POSTURE + /* 3*/ ,PROP_CHAR_STRIKEOUT + /* 4*/ ,PROP_CHAR_CONTOURED + /* 5*/ ,PROP_CHAR_SHADOWED + /* 6*/ ,PROP_CHAR_CASEMAP + /* 7*/ ,PROP_CHAR_COLOR + /* 8*/ ,PROP_CHAR_RELIEF + /* 9*/ ,PROP_CHAR_UNDERLINE + /*10*/ ,PROP_CHAR_WORD_MODE + /*11*/ ,PROP_CHAR_ESCAPEMENT + /*12*/ ,PROP_CHAR_ESCAPEMENT_HEIGHT + /*13*/ ,PROP_CHAR_HEIGHT + /*14*/ ,PROP_CHAR_HEIGHT_COMPLEX + /*15*/ ,PROP_CHAR_LOCALE + /*16*/ ,PROP_CHAR_LOCALE_ASIAN + /*17*/ ,PROP_CHAR_WEIGHT_COMPLEX + /*18*/ ,PROP_CHAR_POSTURE_COMPLEX + /*19*/ ,PROP_CHAR_AUTO_KERNING + /*20*/ ,PROP_CHAR_CHAR_KERNING + /*21*/ ,PROP_CHAR_SCALE_WIDTH + /*22*/ ,PROP_CHAR_LOCALE_COMPLEX + /*23*/ ,PROP_CHAR_UNDERLINE_COLOR +/*24*/ , PROP_CHAR_UNDERLINE_HAS_COLOR +/*25*/ , PROP_CHAR_FONT_NAME +/*26*/ , PROP_CHAR_FONT_STYLE +/*27*/ , PROP_CHAR_FONT_FAMILY +/*28*/ , PROP_CHAR_FONT_CHAR_SET +/*29*/ , PROP_CHAR_FONT_PITCH +/*30*/ , PROP_CHAR_FONT_NAME_ASIAN +/*31*/ , PROP_CHAR_FONT_STYLE_ASIAN +/*32*/ , PROP_CHAR_FONT_FAMILY_ASIAN +/*33*/ , PROP_CHAR_FONT_CHAR_SET_ASIAN +/*34*/ , PROP_CHAR_FONT_PITCH_ASIAN +/*35*/ , PROP_CHAR_FONT_NAME_COMPLEX +/*36*/ , PROP_CHAR_FONT_STYLE_COMPLEX +/*37*/ , PROP_CHAR_FONT_FAMILY_COMPLEX +/*38*/ , PROP_CHAR_FONT_CHAR_SET_COMPLEX +/*39*/ , PROP_CHAR_FONT_PITCH_COMPLEX +/*40*/ , PROP_CHAR_HIDDEN +/*41*/ , PROP_PARA_STYLE_NAME +/*42*/ , PROP_CHAR_STYLE_NAME +/*43*/ , PROP_PARA_ADJUST +/*44*/ , PROP_PARA_LAST_LINE_ADJUST +/*45*/ , PROP_PARA_RIGHT_MARGIN +/*46*/ , PROP_PARA_LEFT_MARGIN +/*47*/ , PROP_PARA_FIRST_LINE_INDENT +/*48*/ , PROP_PARA_KEEP_TOGETHER +/*49*/ , PROP_PARA_TOP_MARGIN +/*50*/ , PROP_PARA_BOTTOM_MARGIN +/*51*/ , PROP_PARA_IS_HYPHENATION +/*52*/ , PROP_PARA_LINE_NUMBER_COUNT +/*53*/ , PROP_PARA_IS_HANGING_PUNCTUATION +/*54*/ , PROP_PARA_LINE_SPACING +/*55*/ , PROP_PARA_TAB_STOPS +/*56*/ , PROP_NUMBERING_LEVEL +/*57*/ , PROP_NUMBERING_RULES +/*58*/ , PROP_NUMBERING_TYPE +/*59*/ , PROP_START_WITH +/*60*/ , PROP_ADJUST +/*61*/ , PROP_PARENT_NUMBERING +/*62*/ , PROP_LEFT_MARGIN +/*63*/ , PROP_RIGHT_MARGIN +/*64*/ , PROP_FIRST_LINE_OFFSET +/*65*/ , PROP_LEFT_BORDER +/*66*/ , PROP_RIGHT_BORDER +/*67*/ , PROP_TOP_BORDER +/*68*/ , PROP_BOTTOM_BORDER +/*69*/ , PROP_LEFT_BORDER_DISTANCE +/*70*/ , PROP_RIGHT_BORDER_DISTANCE +/*71*/ , PROP_TOP_BORDER_DISTANCE +/*72*/ , PROP_BOTTOM_BORDER_DISTANCE +/*73*/ , PROP_CURRENT_PRESENTATION +/*74*/ , PROP_IS_FIXED +/*75*/ , PROP_SUB_TYPE +/*76*/ , PROP_FILE_FORMAT +/*77*/ , PROP_HYPER_LINK_U_R_L +/*78*/ , PROP_NUMBER_FORMAT +/*79*/ , PROP_NAME +/*80*/ , PROP_IS_INPUT +/*81*/ , PROP_HINT +/*82*/ , PROP_FULL_NAME +/*83*/ , PROP_KEYWORDS +/*84*/ , PROP_DESCRIPTION +/*85*/ , PROP_MACRO_NAME +/*86*/ , PROP_SUBJECT +/*87*/ , PROP_USER_DATA_TYPE +/*88*/ , PROP_TITLE +/*89*/ , PROP_CONTENT +/*90*/ , PROP_DATA_COLUMN_NAME +///*91*/ , PROP_ +///*92*/ , PROP_ +///*93*/ , PROP_ +///*94*/ , PROP_ +///*95*/ , PROP_ +///*96*/ , PROP_ +///*97*/ , PROP_ + +}; +struct PropertyNameSupplier_Impl; +class PropertyNameSupplier +{ + PropertyNameSupplier_Impl* m_pImpl; +public: + PropertyNameSupplier(); + ~PropertyNameSupplier(); + const rtl::OUString& GetName( PropertyIds eId ); + + static PropertyNameSupplier& GetPropertyNameSupplier(); +}; +} //namespace dmapper +#endif diff --git a/writerfilter/source/dmapper/PropertyMap.cxx b/writerfilter/source/dmapper/PropertyMap.cxx new file mode 100644 index 000000000000..674cf1e138bb --- /dev/null +++ b/writerfilter/source/dmapper/PropertyMap.cxx @@ -0,0 +1,179 @@ +#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +#include <PropertyMap.hxx> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif +#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_ +#include <com/sun/star/table/BorderLine.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif + +using namespace ::com::sun::star; + +namespace dmapper{ + +/*-- 21.06.2006 09:30:56--------------------------------------------------- + + -----------------------------------------------------------------------*/ +PropertyMap::PropertyMap() +{ +} +/*-- 21.06.2006 09:30:56--------------------------------------------------- + + -----------------------------------------------------------------------*/ +PropertyMap::~PropertyMap() +{ +} +/*-- 20.06.2006 10:23:55--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Sequence< beans::PropertyValue > PropertyMap::GetPropertyValues() +{ + if(!m_aValues.getLength() && size()) + { + m_aValues.realloc( size() ); + ::com::sun::star::beans::PropertyValue* pValues = m_aValues.getArray(); + //style names have to be the first elements within the property sequence + //otherwise they will overwrite 'hard' attributes + sal_Int32 nValue = 0; + PropertyMap::iterator aParaStyleIter = find(::rtl::OUString::createFromAscii("ParaStyleName")); + if( aParaStyleIter != end()) + { + pValues[nValue].Name = aParaStyleIter->first; + pValues[nValue].Value = aParaStyleIter->second; + ++nValue; + } + PropertyMap::iterator aCharStyleIter = find(::rtl::OUString::createFromAscii("CharStyleName")); + if( aCharStyleIter != end()) + { + pValues[nValue].Name = aCharStyleIter->first; + pValues[nValue].Value = aCharStyleIter->second; + ++nValue; + } + PropertyMap::iterator aMapIter = begin(); + for( ; nValue < m_aValues.getLength(); ++aMapIter ) + { + if( aMapIter != aParaStyleIter && aMapIter != aCharStyleIter) + { + pValues[nValue].Name = aMapIter->first; + pValues[nValue].Value = aMapIter->second; + ++nValue; + } + } + } + return m_aValues; +} +/*------------------------------------------------------------------------- + + -----------------------------------------------------------------------*/ +void PropertyMap::Insert( PropertyIds eId, const uno::Any& rAny ) +{ + _PropertyMap::insert( PropertyMap::value_type + (PropertyNameSupplier:: + GetPropertyNameSupplier().GetName(eId), + rAny)); + Invalidate(); +} + + +void PropertyMap::insert( PropertyMapPtr pMap) +{ + _PropertyMap::insert(pMap->begin(), pMap->end()); +} + +/*-- 24.07.2006 08:29:01--------------------------------------------------- + + -----------------------------------------------------------------------*/ +SectionPropertyMap::SectionPropertyMap() +{ + memset(&pBorderLines, 0x00, sizeof(pBorderLines)); + memset(&nBorderDistances, 0x00, sizeof(nBorderDistances)); +} +/*-- 24.07.2006 08:29:02--------------------------------------------------- + + -----------------------------------------------------------------------*/ +SectionPropertyMap::~SectionPropertyMap() +{ + for( sal_Int16 ePos = BORDER_LEFT; ePos <= BORDER_BOTTOM; ++ePos) + delete pBorderLines[ePos]; +} +/*-- 24.07.2006 08:31:07--------------------------------------------------- + + -----------------------------------------------------------------------*/ +const ::rtl::OUString& SectionPropertyMap::GetPageStyleName( SectionPropertyMap::PageType eType) +{ + return sPageStyleNames[eType]; +} +/*-- 24.07.2006 08:31:07--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void SectionPropertyMap::SetPageStyleName( PageType eType, const ::rtl::OUString& rName) +{ + sPageStyleNames[eType] = rName; +} +/*-- 28.07.2006 13:00:43--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Reference< beans::XPropertySet > SectionPropertyMap::GetPageStyle( + const uno::Reference< container::XNameContainer >& xStyles, SectionPropertyMap::PageType eType) +{ + uno::Reference< beans::XPropertySet > xRet; + try + { + if(!aPageStyles[eType].is() && sPageStyleNames[eType].getLength()) + { + xStyles->getByName(sPageStyleNames[eType]) >>= aPageStyles[eType]; + } + xRet = aPageStyles[eType]; + } + catch( const uno::Exception& ) + { + } + + return xRet; +} +/*-- 28.07.2006 10:56:26--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void SectionPropertyMap::SetBorder( BorderPosition ePos, sal_Int32 nLineDistance, const table::BorderLine& rBorderLine ) +{ + delete pBorderLines[ePos]; + pBorderLines[ePos] = new table::BorderLine( rBorderLine ); + nBorderDistances[ePos] = nLineDistance; +} +/*-- 28.07.2006 10:56:27--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void SectionPropertyMap::ApplyBorderToPageStyles( + const uno::Reference< container::XNameContainer >& /*xStyles*/, + sal_Int32 nValue ) +{ + /* + page border applies to: + nIntValue & 0x07 -> + 0 all pages in this section + 1 first page in this section + 2 all pages in this section but first + 3 whole document (all sections) + nIntValue & 0x18 -> page border depth 0 - in front 1- in back + nIntValue & 0xe0 -> + page border offset from: + 0 offset from text + 1 offset from edge of page + */ + switch( nValue & 0x07) + { + case 0: /*all styles*/ break; + case 1: /*first page*/ break; + case 2: /*left and right*/ break; + case 3: //whole document? + break; + } +// uno::Reference< beans::XPropertySet > xStyle = GetPageStyle( ePageType ); + +} + +}//namespace dmapper diff --git a/writerfilter/source/dmapper/PropertyMap.hxx b/writerfilter/source/dmapper/PropertyMap.hxx new file mode 100644 index 000000000000..09f316c9ee54 --- /dev/null +++ b/writerfilter/source/dmapper/PropertyMap.hxx @@ -0,0 +1,115 @@ +#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +#define INCLUDED_DMAPPER_PROPERTYMAP_HXX + +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif +#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ +#include <com/sun/star/uno/Sequence.hxx> +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HXX_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include <com/sun/star/beans/XPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_UNO_ANY_H_ +#include <com/sun/star/uno/Any.h> +#endif +#ifndef INCLUDED_DMAPPER_PROPERTYIDS_HXX +#include <PropertyIds.hxx> +#endif +#include <boost/shared_ptr.hpp> +#include <map> +namespace com{namespace sun{namespace star{ + namespace beans{ + struct PropertyValue; + } + namespace table{ + struct BorderLine; + } + namespace container{ + class XNameAccess; + class XNameContainer; + } +}}} + +namespace dmapper{ +/*-- 15.06.2006 08:22:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +typedef std::map < ::rtl::OUString, ::com::sun::star::uno::Any > _PropertyMap; +class PropertyMap : public _PropertyMap +{ + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aValues; + + public: + PropertyMap(); + virtual ~PropertyMap(); + + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetPropertyValues(); + void PropertyMap::Insert( PropertyIds eId, const ::com::sun::star::uno::Any& rAny ); + + void insert(const boost::shared_ptr<PropertyMap> pMap); + + void Invalidate() + { + if(m_aValues.getLength()) + m_aValues.realloc( 0 ); + } +}; +typedef boost::shared_ptr<PropertyMap> PropertyMapPtr; + +/*-- 24.07.2006 08:26:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +class SectionPropertyMap : public PropertyMap +{ + //'temporarily' the section page settings are imported as page styles + // empty strings mark page settings as not yet imported + ::rtl::OUString sPageStyleNames[3]; + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aPageStyles[3]; +// ::rtl::OUString sFirstPage; +// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xFirstPage; +// ::rtl::OUString sRightPage; +// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xRightPage; +// ::rtl::OUString sLeftPage; +// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xLeftPage; + + ::com::sun::star::table::BorderLine* pBorderLines[4]; + sal_Int32 nBorderDistances[4]; + + public: + SectionPropertyMap(); + ~SectionPropertyMap(); + + enum PageType + { + PAGE_FIRST, + PAGE_LEFT, + PAGE_RIGHT + }; + enum BorderPosition + { + BORDER_LEFT, + BORDER_RIGHT, + BORDER_TOP, + BORDER_BOTTOM + }; + + const ::rtl::OUString& GetPageStyleName( PageType eType ); + void SetPageStyleName( PageType eType, const ::rtl::OUString& rName); + + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > GetPageStyle( + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xStyles, + PageType eType); + + void SetBorder( BorderPosition ePos, sal_Int32 nLineDistance, const ::com::sun::star::table::BorderLine& rBorderLine ); + //determine which style gets the borders + void ApplyBorderToPageStyles( + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xStyles, + sal_Int32 nValue ); +}; + +} //namespace dmapper +#endif diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx new file mode 100644 index 000000000000..86b1d34efd1f --- /dev/null +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -0,0 +1,779 @@ +#ifndef INCLUDED_STYLESHEETTABLE_HXX +#include <StyleSheetTable.hxx> +#endif +#ifndef INCLUDED_DOMAINMAPPER_HXX +#include <dmapper/DomainMapper.hxx> +#endif +#ifndef INCLUDED_RESOURCESIDS +#include <doctok/resourceids.hxx> +#endif +#include <vector> +#ifndef _COM_SUN_STAR_BEANS_XMULTIPROPERTYSET_HPP_ +#include <com/sun/star/beans/XMultiPropertySet.hpp> +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYVALUE_HPP_ +#include <com/sun/star/beans/PropertyValue.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif +#ifndef _COM_SUN_STAR_TEXT_XTEXTDOCUMENT_HPP_ +#include <com/sun/star/text/XTextDocument.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_HPP_ +#include <com/sun/star/style/XStyleFamiliesSupplier.hpp> +#endif +#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_ +#include <com/sun/star/style/XStyle.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +using namespace ::com::sun::star; +namespace dmapper +{ +using namespace writerfilter; + +/*-- 21.06.2006 07:34:44--------------------------------------------------- + + -----------------------------------------------------------------------*/ +StyleSheetEntry::StyleSheetEntry() : + nStyleIdentifierI(0) + ,nStyleIdentifierD(0) + ,bInvalidHeight(false) + ,bHasUPE(false) + ,nStyleTypeCode(STYLE_TYPE_UNKNOWN) + ,nBaseStyleIdentifier(0xfff) + ,nNextStyleIdentifier(-1) + ,pProperties(new PropertyMap) + ,nPropertyCalls(0) + { + } + +/*-- 19.06.2006 12:04:32--------------------------------------------------- + + -----------------------------------------------------------------------*/ +struct StyleSheetTable_Impl +{ + DomainMapper& m_rDMapper; + std::vector< StyleSheetEntry > m_aStyleSheetEntries; + StyleSheetEntry* m_pCurrentEntry; + StyleSheetTable_Impl(DomainMapper& rDMapper) : + m_rDMapper( rDMapper ), + m_pCurrentEntry(0){} +}; +/*-- 19.06.2006 12:04:32--------------------------------------------------- + + -----------------------------------------------------------------------*/ +StyleSheetTable::StyleSheetTable(DomainMapper& rDMapper) : + m_pImpl( new StyleSheetTable_Impl(rDMapper) ) +{ +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +StyleSheetTable::~StyleSheetTable() +{ + delete m_pImpl; +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void StyleSheetTable::attribute(doctok::Id Name, doctok::Value & val) +{ + OSL_ENSURE( m_pImpl->m_pCurrentEntry, "current entry has to be set here"); + if(!m_pImpl->m_pCurrentEntry) + return ; + int nIntValue = val.getInt(); + ::rtl::OUString sValue = val.getString(); + switch(Name) + { + case NS_rtf::LN_ISTD: + m_pImpl->m_pCurrentEntry->nStyleIdentifierD = nIntValue; + break; +// case NS_rtf::LN_ISTARTAT: break; +// case NS_rtf::LN_NFC: break; +// case NS_rtf::LN_JC: break; +// case NS_rtf::LN_FLEGAL: break; +// case NS_rtf::LN_FNORESTART: break; +// case NS_rtf::LN_FPREV: break; +// case NS_rtf::LN_FPREVSPACE: break; +// case NS_rtf::LN_FWORD6: break; +// case NS_rtf::LN_UNUSED5_7: break; +// case NS_rtf::LN_RGBXCHNUMS: break; +// case NS_rtf::LN_IXCHFOLLOW: break; +// case NS_rtf::LN_DXASPACE: break; +// case NS_rtf::LN_DXAINDENT: break; +// case NS_rtf::LN_CBGRPPRLCHPX: break; +// case NS_rtf::LN_CBGRPPRLPAPX: break; +// case NS_rtf::LN_LSID: break; +// case NS_rtf::LN_TPLC: break; +// case NS_rtf::LN_RGISTD: break; +// case NS_rtf::LN_FSIMPLELIST: break; +// case NS_rtf::LN_FRESTARTHDN: break; +// case NS_rtf::LN_UNSIGNED26_2: break; +// case NS_rtf::LN_ILVL: break; +// case NS_rtf::LN_FSTARTAT: break; +// case NS_rtf::LN_FFORMATTING: break; +// case NS_rtf::LN_UNSIGNED4_6: break; +// case NS_rtf::LN_UNUSED4: break; +// case NS_rtf::LN_UNUSED8: break; +// case NS_rtf::LN_CLFOLVL: break; +// case NS_rtf::LN_CBFFNM1: break; +// case NS_rtf::LN_PRQ: break; +// case NS_rtf::LN_FTRUETYPE: break; +// case NS_rtf::LN_UNUSED1_3: break; +// case NS_rtf::LN_FF: break; +// case NS_rtf::LN_UNUSED1_7: break; +// case NS_rtf::LN_WWEIGHT: break; +// case NS_rtf::LN_CHS: break; +// case NS_rtf::LN_IXCHSZALT: break; +// case NS_rtf::LN_PANOSE: break; +// case NS_rtf::LN_FS: break; + case NS_rtf::LN_STI: + m_pImpl->m_pCurrentEntry->nStyleIdentifierI = nIntValue; + break; + case NS_rtf::LN_SGC: + m_pImpl->m_pCurrentEntry->nStyleTypeCode = (StyleType)nIntValue; + break; + case NS_rtf::LN_ISTDBASE: + m_pImpl->m_pCurrentEntry->nBaseStyleIdentifier = nIntValue; + break; + case NS_rtf::LN_ISTDNEXT: + m_pImpl->m_pCurrentEntry->nNextStyleIdentifier = nIntValue; + break; + case NS_rtf::LN_FSCRATCH: + case NS_rtf::LN_FINVALHEIGHT: + case NS_rtf::LN_FHASUPE: + case NS_rtf::LN_FMASSCOPY: + case NS_rtf::LN_CUPX: + case NS_rtf::LN_BCHUPE: + case NS_rtf::LN_FAUTOREDEF: + case NS_rtf::LN_FHIDDEN: + case NS_rtf::LN_UNUSED8_3: + //noone seems to care about it + break; + break; +// case NS_rtf::LN_CSTD: break; +// case NS_rtf::LN_CBSTDBASEINFILE: break; +// case NS_rtf::LN_FSTDSTYLENAMESWRITTEN: break; +// case NS_rtf::LN_UNUSED4_2: break; +// case NS_rtf::LN_STIMAXWHENSAVED: break; +// case NS_rtf::LN_ISTDMAXFIXEDWHENSAVED: break; +// case NS_rtf::LN_NVERBUILTINNAMESWHENSAVED: break; +// case NS_rtf::LN_RGFTCSTANDARDCHPSTSH: break; +// case NS_rtf::LN_WIDENT: break; +// case NS_rtf::LN_NFIB: break; +// case NS_rtf::LN_NPRODUCT: break; +// case NS_rtf::LN_LID: break; +// case NS_rtf::LN_PNNEXT: break; +// case NS_rtf::LN_FDOT: break; +// case NS_rtf::LN_FGLSY: break; +// case NS_rtf::LN_FCOMPLEX: break; +// case NS_rtf::LN_FHASPIC: break; +// case NS_rtf::LN_CQUICKSAVES: break; +// case NS_rtf::LN_FENCRYPTED: break; +// case NS_rtf::LN_FWHICHTBLSTM: break; +// case NS_rtf::LN_FREADONLYRECOMMENDED: break; +// case NS_rtf::LN_FWRITERESERVATION: break; +// case NS_rtf::LN_FEXTCHAR: break; +// case NS_rtf::LN_FLOADOVERRIDE: break; +// case NS_rtf::LN_FFAREAST: break; +// case NS_rtf::LN_FCRYPTO: break; +// case NS_rtf::LN_NFIBBACK: break; +// case NS_rtf::LN_LKEY: break; +// case NS_rtf::LN_ENVR: break; +// case NS_rtf::LN_FMAC: break; +// case NS_rtf::LN_FEMPTYSPECIAL: break; +// case NS_rtf::LN_FLOADOVERRIDEPAGE: break; +// case NS_rtf::LN_FFUTURESAVEDUNDO: break; +// case NS_rtf::LN_FWORD97SAVED: break; +// case NS_rtf::LN_FSPARE0: break; +// case NS_rtf::LN_CHSTABLES: break; +// case NS_rtf::LN_FCMIN: break; +// case NS_rtf::LN_FCMAC: break; +// case NS_rtf::LN_CSW: break; +// case NS_rtf::LN_WMAGICCREATED: break; +// case NS_rtf::LN_WMAGICREVISED: break; +// case NS_rtf::LN_WMAGICCREATEDPRIVATE: break; +// case NS_rtf::LN_WMAGICREVISEDPRIVATE: break; +// case NS_rtf::LN_PNFBPCHPFIRST_W6: break; +// case NS_rtf::LN_PNCHPFIRST_W6: break; +// case NS_rtf::LN_CPNBTECHP_W6: break; +// case NS_rtf::LN_PNFBPPAPFIRST_W6: break; +// case NS_rtf::LN_PNPAPFIRST_W6: break; +// case NS_rtf::LN_CPNBTEPAP_W6: break; +// case NS_rtf::LN_PNFBPLVCFIRST_W6: break; +// case NS_rtf::LN_PNLVCFIRST_W6: break; +// case NS_rtf::LN_CPNBTELVC_W6: break; +// case NS_rtf::LN_LIDFE: break; +// case NS_rtf::LN_CLW: break; +// case NS_rtf::LN_CBMAC: break; +// case NS_rtf::LN_LPRODUCTCREATED: break; +// case NS_rtf::LN_LPRODUCTREVISED: break; +// case NS_rtf::LN_CCPTEXT: break; +// case NS_rtf::LN_CCPFTN: break; +// case NS_rtf::LN_CCPHDD: break; +// case NS_rtf::LN_CCPMCR: break; +// case NS_rtf::LN_CCPATN: break; +// case NS_rtf::LN_CCPEDN: break; +// case NS_rtf::LN_CCPTXBX: break; +// case NS_rtf::LN_CCPHDRTXBX: break; +// case NS_rtf::LN_PNFBPCHPFIRST: break; +// case NS_rtf::LN_PNCHPFIRST: break; +// case NS_rtf::LN_CPNBTECHP: break; +// case NS_rtf::LN_PNFBPPAPFIRST: break; +// case NS_rtf::LN_PNPAPFIRST: break; +// case NS_rtf::LN_CPNBTEPAP: break; +// case NS_rtf::LN_PNFBPLVCFIRST: break; +// case NS_rtf::LN_PNLVCFIRST: break; +// case NS_rtf::LN_CPNBTELVC: break; +// case NS_rtf::LN_FCISLANDFIRST: break; +// case NS_rtf::LN_FCISLANDLIM: break; +// case NS_rtf::LN_CFCLCB: break; +// case NS_rtf::LN_FCSTSHFORIG: break; +// case NS_rtf::LN_LCBSTSHFORIG: break; +// case NS_rtf::LN_FCSTSHF: break; +// case NS_rtf::LN_LCBSTSHF: break; +// case NS_rtf::LN_FCPLCFFNDREF: break; +// case NS_rtf::LN_LCBPLCFFNDREF: break; +// case NS_rtf::LN_FCPLCFFNDTXT: break; +// case NS_rtf::LN_LCBPLCFFNDTXT: break; +// case NS_rtf::LN_FCPLCFANDREF: break; +// case NS_rtf::LN_LCBPLCFANDREF: break; +// case NS_rtf::LN_FCPLCFANDTXT: break; +// case NS_rtf::LN_LCBPLCFANDTXT: break; +// case NS_rtf::LN_FCPLCFSED: break; +// case NS_rtf::LN_LCBPLCFSED: break; +// case NS_rtf::LN_FCPLCFPAD: break; +// case NS_rtf::LN_LCBPLCFPAD: break; +// case NS_rtf::LN_FCPLCFPHE: break; +// case NS_rtf::LN_LCBPLCFPHE: break; +// case NS_rtf::LN_FCSTTBFGLSY: break; +// case NS_rtf::LN_LCBSTTBFGLSY: break; +// case NS_rtf::LN_FCPLCFGLSY: break; +// case NS_rtf::LN_LCBPLCFGLSY: break; +// case NS_rtf::LN_FCPLCFHDD: break; +// case NS_rtf::LN_LCBPLCFHDD: break; +// case NS_rtf::LN_FCPLCFBTECHPX: break; +// case NS_rtf::LN_LCBPLCFBTECHPX: break; +// case NS_rtf::LN_FCPLCFBTEPAPX: break; +// case NS_rtf::LN_LCBPLCFBTEPAPX: break; +// case NS_rtf::LN_FCPLCFSEA: break; +// case NS_rtf::LN_LCBPLCFSEA: break; +// case NS_rtf::LN_FCSTTBFFFN: break; +// case NS_rtf::LN_LCBSTTBFFFN: break; +// case NS_rtf::LN_FCPLCFFLDMOM: break; +// case NS_rtf::LN_LCBPLCFFLDMOM: break; +// case NS_rtf::LN_FCPLCFFLDHDR: break; +// case NS_rtf::LN_LCBPLCFFLDHDR: break; +// case NS_rtf::LN_FCPLCFFLDFTN: break; +// case NS_rtf::LN_LCBPLCFFLDFTN: break; +// case NS_rtf::LN_FCPLCFFLDATN: break; +// case NS_rtf::LN_LCBPLCFFLDATN: break; +// case NS_rtf::LN_FCPLCFFLDMCR: break; +// case NS_rtf::LN_LCBPLCFFLDMCR: break; +// case NS_rtf::LN_FCSTTBFBKMK: break; +// case NS_rtf::LN_LCBSTTBFBKMK: break; +// case NS_rtf::LN_FCPLCFBKF: break; +// case NS_rtf::LN_LCBPLCFBKF: break; +// case NS_rtf::LN_FCPLCFBKL: break; +// case NS_rtf::LN_LCBPLCFBKL: break; +// case NS_rtf::LN_FCCMDS: break; +// case NS_rtf::LN_LCBCMDS: break; +// case NS_rtf::LN_FCPLCMCR: break; +// case NS_rtf::LN_LCBPLCMCR: break; +// case NS_rtf::LN_FCSTTBFMCR: break; +// case NS_rtf::LN_LCBSTTBFMCR: break; +// case NS_rtf::LN_FCPRDRVR: break; +// case NS_rtf::LN_LCBPRDRVR: break; +// case NS_rtf::LN_FCPRENVPORT: break; +// case NS_rtf::LN_LCBPRENVPORT: break; +// case NS_rtf::LN_FCPRENVLAND: break; +// case NS_rtf::LN_LCBPRENVLAND: break; +// case NS_rtf::LN_FCWSS: break; +// case NS_rtf::LN_LCBWSS: break; +// case NS_rtf::LN_FCDOP: break; +// case NS_rtf::LN_LCBDOP: break; +// case NS_rtf::LN_FCSTTBFASSOC: break; +// case NS_rtf::LN_LCBSTTBFASSOC: break; +// case NS_rtf::LN_FCCLX: break; +// case NS_rtf::LN_LCBCLX: break; +// case NS_rtf::LN_FCPLCFPGDFTN: break; +// case NS_rtf::LN_LCBPLCFPGDFTN: break; +// case NS_rtf::LN_FCAUTOSAVESOURCE: break; +// case NS_rtf::LN_LCBAUTOSAVESOURCE: break; +// case NS_rtf::LN_FCGRPXSTATNOWNERS: break; +// case NS_rtf::LN_LCBGRPXSTATNOWNERS: break; +// case NS_rtf::LN_FCSTTBFATNBKMK: break; +// case NS_rtf::LN_LCBSTTBFATNBKMK: break; +// case NS_rtf::LN_FCPLCDOAMOM: break; +// case NS_rtf::LN_LCBPLCDOAMOM: break; +// case NS_rtf::LN_FCPLCDOAHDR: break; +// case NS_rtf::LN_LCBPLCDOAHDR: break; +// case NS_rtf::LN_FCPLCSPAMOM: break; +// case NS_rtf::LN_LCBPLCSPAMOM: break; +// case NS_rtf::LN_FCPLCSPAHDR: break; +// case NS_rtf::LN_LCBPLCSPAHDR: break; +// case NS_rtf::LN_FCPLCFATNBKF: break; +// case NS_rtf::LN_LCBPLCFATNBKF: break; +// case NS_rtf::LN_FCPLCFATNBKL: break; +// case NS_rtf::LN_LCBPLCFATNBKL: break; +// case NS_rtf::LN_FCPMS: break; +// case NS_rtf::LN_LCBPMS: break; +// case NS_rtf::LN_FCFORMFLDSTTBF: break; +// case NS_rtf::LN_LCBFORMFLDSTTBF: break; +// case NS_rtf::LN_FCPLCFENDREF: break; +// case NS_rtf::LN_LCBPLCFENDREF: break; +// case NS_rtf::LN_FCPLCFENDTXT: break; +// case NS_rtf::LN_LCBPLCFENDTXT: break; +// case NS_rtf::LN_FCPLCFFLDEDN: break; +// case NS_rtf::LN_LCBPLCFFLDEDN: break; +// case NS_rtf::LN_FCPLCFPGDEDN: break; +// case NS_rtf::LN_LCBPLCFPGDEDN: break; +// case NS_rtf::LN_FCDGGINFO: break; +// case NS_rtf::LN_LCBDGGINFO: break; +// case NS_rtf::LN_FCSTTBFRMARK: break; +// case NS_rtf::LN_LCBSTTBFRMARK: break; +// case NS_rtf::LN_FCSTTBFCAPTION: break; +// case NS_rtf::LN_LCBSTTBFCAPTION: break; +// case NS_rtf::LN_FCSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_LCBSTTBFAUTOCAPTION: break; +// case NS_rtf::LN_FCPLCFWKB: break; +// case NS_rtf::LN_LCBPLCFWKB: break; +// case NS_rtf::LN_FCPLCFSPL: break; +// case NS_rtf::LN_LCBPLCFSPL: break; +// case NS_rtf::LN_FCPLCFTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDTXBX: break; +// case NS_rtf::LN_FCPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_LCBPLCFHDRTXBXTXT: break; +// case NS_rtf::LN_FCPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_LCBPLCFFLDHDRTXBX: break; +// case NS_rtf::LN_FCSTWUSER: break; +// case NS_rtf::LN_LCBSTWUSER: break; +// case NS_rtf::LN_FCSTTBTTMBD: break; +// case NS_rtf::LN_LCBSTTBTTMBD: break; +// case NS_rtf::LN_FCUNUSED: break; +// case NS_rtf::LN_LCBUNUSED: break; +// case NS_rtf::LN_FCPGDMOTHER: break; +// case NS_rtf::LN_LCBPGDMOTHER: break; +// case NS_rtf::LN_FCBKDMOTHER: break; +// case NS_rtf::LN_LCBBKDMOTHER: break; +// case NS_rtf::LN_FCPGDFTN: break; +// case NS_rtf::LN_LCBPGDFTN: break; +// case NS_rtf::LN_FCBKDFTN: break; +// case NS_rtf::LN_LCBBKDFTN: break; +// case NS_rtf::LN_FCPGDEDN: break; +// case NS_rtf::LN_LCBPGDEDN: break; +// case NS_rtf::LN_FCBKDEDN: break; +// case NS_rtf::LN_LCBBKDEDN: break; +// case NS_rtf::LN_FCSTTBFINTLFLD: break; +// case NS_rtf::LN_LCBSTTBFINTLFLD: break; +// case NS_rtf::LN_FCROUTESLIP: break; +// case NS_rtf::LN_LCBROUTESLIP: break; +// case NS_rtf::LN_FCSTTBSAVEDBY: break; +// case NS_rtf::LN_LCBSTTBSAVEDBY: break; +// case NS_rtf::LN_FCSTTBFNM: break; +// case NS_rtf::LN_LCBSTTBFNM: break; +// case NS_rtf::LN_FCPLCFLST: break; +// case NS_rtf::LN_LCBPLCFLST: break; +// case NS_rtf::LN_FCPLFLFO: break; +// case NS_rtf::LN_LCBPLFLFO: break; +// case NS_rtf::LN_FCPLCFTXBXBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXBKD: break; +// case NS_rtf::LN_FCPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_LCBPLCFTXBXHDRBKD: break; +// case NS_rtf::LN_FCDOCUNDO: break; +// case NS_rtf::LN_LCBDOCUNDO: break; +// case NS_rtf::LN_FCRGBUSE: break; +// case NS_rtf::LN_LCBRGBUSE: break; +// case NS_rtf::LN_FCUSP: break; +// case NS_rtf::LN_LCBUSP: break; +// case NS_rtf::LN_FCUSKF: break; +// case NS_rtf::LN_LCBUSKF: break; +// case NS_rtf::LN_FCPLCUPCRGBUSE: break; +// case NS_rtf::LN_LCBPLCUPCRGBUSE: break; +// case NS_rtf::LN_FCPLCUPCUSP: break; +// case NS_rtf::LN_LCBPLCUPCUSP: break; +// case NS_rtf::LN_FCSTTBGLSYSTYLE: break; +// case NS_rtf::LN_LCBSTTBGLSYSTYLE: break; +// case NS_rtf::LN_FCPLGOSL: break; +// case NS_rtf::LN_LCBPLGOSL: break; +// case NS_rtf::LN_FCPLCOCX: break; +// case NS_rtf::LN_LCBPLCOCX: break; +// case NS_rtf::LN_FCPLCFBTELVC: break; +// case NS_rtf::LN_LCBPLCFBTELVC: break; +// case NS_rtf::LN_DWLOWDATETIME: break; +// case NS_rtf::LN_DWHIGHDATETIME: break; +// case NS_rtf::LN_FCPLCFLVC: break; +// case NS_rtf::LN_LCBPLCFLVC: break; +// case NS_rtf::LN_FCPLCASUMY: break; +// case NS_rtf::LN_LCBPLCASUMY: break; +// case NS_rtf::LN_FCPLCFGRAM: break; +// case NS_rtf::LN_LCBPLCFGRAM: break; +// case NS_rtf::LN_FCSTTBLISTNAMES: break; +// case NS_rtf::LN_LCBSTTBLISTNAMES: break; +// case NS_rtf::LN_FCSTTBFUSSR: break; +// case NS_rtf::LN_LCBSTTBFUSSR: break; +// case NS_rtf::LN_FN: break; +// case NS_rtf::LN_FCSEPX: break; +// case NS_rtf::LN_FNMPR: break; +// case NS_rtf::LN_FCMPR: break; +// case NS_rtf::LN_ICOFORE: break; +// case NS_rtf::LN_ICOBACK: break; +// case NS_rtf::LN_IPAT: break; +// case NS_rtf::LN_SHDFORECOLOR: break; +// case NS_rtf::LN_SHDBACKCOLOR: break; +// case NS_rtf::LN_SHDPATTERN: break; +// case NS_rtf::LN_DPTLINEWIDTH: break; +// case NS_rtf::LN_BRCTYPE: break; +// case NS_rtf::LN_ICO: break; +// case NS_rtf::LN_DPTSPACE: break; +// case NS_rtf::LN_FSHADOW: break; +// case NS_rtf::LN_FFRAME: break; +// case NS_rtf::LN_UNUSED2_15: break; +// case NS_rtf::LN_FFIRSTMERGED: break; +// case NS_rtf::LN_FMERGED: break; +// case NS_rtf::LN_FVERTICAL: break; +// case NS_rtf::LN_FBACKWARD: break; +// case NS_rtf::LN_FROTATEFONT: break; +// case NS_rtf::LN_FVERTMERGE: break; +// case NS_rtf::LN_FVERTRESTART: break; +// case NS_rtf::LN_VERTALIGN: break; +// case NS_rtf::LN_FUNUSED: break; +// case NS_rtf::LN_WUNUSED: break; +// case NS_rtf::LN_BRCTOP: break; +// case NS_rtf::LN_BRCLEFT: break; +// case NS_rtf::LN_BRCBOTTOM: break; +// case NS_rtf::LN_BRCRIGHT: break; +// case NS_rtf::LN_IBKL: break; +// case NS_rtf::LN_ITCFIRST: break; +// case NS_rtf::LN_FPUB: break; +// case NS_rtf::LN_ITCLIM: break; +// case NS_rtf::LN_FCOL: break; +// case NS_rtf::LN_LINECOLOR: break; +// case NS_rtf::LN_LINEWIDTH: break; +// case NS_rtf::LN_LINETYPE: break; +// case NS_rtf::LN_MM: break; +// case NS_rtf::LN_XEXT: break; +// case NS_rtf::LN_YEXT: break; +// case NS_rtf::LN_HMF: break; +// case NS_rtf::LN_LCB: break; +// case NS_rtf::LN_CBHEADER: break; +// case NS_rtf::LN_MFP: break; +// case NS_rtf::LN_BM_RCWINMF: break; +// case NS_rtf::LN_DXAGOAL: break; +// case NS_rtf::LN_DYAGOAL: break; +// case NS_rtf::LN_MX: break; +// case NS_rtf::LN_MY: break; +// case NS_rtf::LN_DXACROPLEFT: break; +// case NS_rtf::LN_DYACROPTOP: break; +// case NS_rtf::LN_DXACROPRIGHT: break; +// case NS_rtf::LN_DYACROPBOTTOM: break; +// case NS_rtf::LN_BRCL: break; +// case NS_rtf::LN_FFRAMEEMPTY: break; +// case NS_rtf::LN_FBITMAP: break; +// case NS_rtf::LN_FDRAWHATCH: break; +// case NS_rtf::LN_FERROR: break; +// case NS_rtf::LN_BPP: break; +// case NS_rtf::LN_DXAORIGIN: break; +// case NS_rtf::LN_DYAORIGIN: break; +// case NS_rtf::LN_CPROPS: break; +// case NS_rtf::LN_LINEPROPSTOP: break; +// case NS_rtf::LN_LINEPROPSLEFT: break; +// case NS_rtf::LN_LINEPROPSBOTTOM: break; +// case NS_rtf::LN_LINEPROPSRIGHT: break; +// case NS_rtf::LN_LINEPROPSHORIZONTAL: break; +// case NS_rtf::LN_LINEPROPSVERTICAL: break; +// case NS_rtf::LN_headerr: break; +// case NS_rtf::LN_footerr: break; +// case NS_rtf::LN_endnote: break; +// case NS_rtf::LN_BOOKMARKNAME: break; + +// case NS_rtf::LN_LISTLEVEL: break; +// case NS_rtf::LN_LFO: break; +// case NS_rtf::LN_F: break; +// case NS_rtf::LN_ALTFONTNAME: break; +// case NS_rtf::LN_XSZFFN: break; + case NS_rtf::LN_XSTZNAME: + m_pImpl->m_pCurrentEntry->sStyleName1 = sValue; + break; + case NS_rtf::LN_XSTZNAME1: + m_pImpl->m_pCurrentEntry->sStyleName = sValue; + break; +// case NS_rtf::LN_UPXSTART: break; + case NS_rtf::LN_UPX: + { + doctok::Reference<Properties>::Pointer_t pProperties; + ++m_pImpl->m_pCurrentEntry->nPropertyCalls; + if((pProperties = val.getProperties()).get()) + pProperties->resolve(*this); + } + break; +// case NS_rtf::LN_sed: break; +// case NS_rtf::LN_picf: break; +// case NS_rtf::LN_rgbrc: break; +// case NS_rtf::LN_shd: break; +// case NS_rtf::LN_cellShd: break; +// case NS_rtf::LN_cellTopColor: break; +// case NS_rtf::LN_cellLeftColor: break; +// case NS_rtf::LN_cellBottomColor: break; +// case NS_rtf::LN_cellRightColor: break; + +// case NS_rtf::LN_LISTTABLE: break; +// case NS_rtf::LN_LFOTABLE: break; +// case NS_rtf::LN_StyleSheetTable: break; +// case NS_rtf::LN_STYLESHEET: break; + default: + { + //----> debug + int nVal = val.getInt(); + ++nVal; + //<---- debug + } + } +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void StyleSheetTable::sprm(doctok::Sprm & sprm_) +{ + //fill the attributes of the style sheet + if(m_pImpl->m_pCurrentEntry) + { + m_pImpl->m_rDMapper.sprm( sprm_, m_pImpl->m_pCurrentEntry->pProperties ); + } + +} +/*-- 19.06.2006 12:04:33--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void StyleSheetTable::entry(int /*pos*/, doctok::Reference<Properties>::Pointer_t ref) +{ + //create a new font entry + OSL_ENSURE( !m_pImpl->m_pCurrentEntry, "current entry has to be NULL here"); + m_pImpl->m_pCurrentEntry = new StyleSheetEntry ; + ref->resolve(*this); + //append it to the table + m_pImpl->m_aStyleSheetEntries.push_back( *m_pImpl->m_pCurrentEntry ); + m_pImpl->m_pCurrentEntry = 0; +} +/*-- 21.06.2006 15:34:49--------------------------------------------------- + sorting helper + -----------------------------------------------------------------------*/ +typedef std::vector< beans::PropertyValue > _PropValVector; +class PropValVector : public _PropValVector +{ +public: + PropValVector(){} + + void Insert( beans::PropertyValue aVal ); + uno::Sequence< uno::Any > getValues(); + uno::Sequence< ::rtl::OUString > getNames(); +}; +void PropValVector::Insert( beans::PropertyValue aVal ) +{ + _PropValVector::iterator aIt = begin(); + while(aIt != end()) + { + if(aIt->Name > aVal.Name) + { + insert( aIt, aVal ); + return; + } + ++aIt; + } + push_back( aVal ); +} +uno::Sequence< uno::Any > PropValVector::getValues() +{ + uno::Sequence< uno::Any > aRet( size() ); + uno::Any* pValues = aRet.getArray(); + sal_Int32 nVal = 0; + _PropValVector::iterator aIt = begin(); + while(aIt != end()) + { + pValues[nVal++] = aIt->Value; + ++aIt; + } + return aRet; +} +uno::Sequence< ::rtl::OUString > PropValVector::getNames() +{ + uno::Sequence< ::rtl::OUString > aRet( size() ); + ::rtl::OUString* pNames = aRet.getArray(); + sal_Int32 nVal = 0; + _PropValVector::iterator aIt = begin(); + while(aIt != end()) + { + pNames[nVal++] = aIt->Name; + ++aIt; + } + return aRet; +} +/*-- 21.06.2006 13:35:48--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void StyleSheetTable::ApplyStyleSheets(uno::Reference< text::XTextDocument> xTextDocument) +{ + try + { + uno::Reference< style::XStyleFamiliesSupplier > xStylesSupplier( xTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< lang::XMultiServiceFactory > xDocFactory( xTextDocument, uno::UNO_QUERY_THROW ); + uno::Reference< container::XNameAccess > xStyleFamilies = xStylesSupplier->getStyleFamilies(); + uno::Reference<container::XNameContainer> xCharStyles; + uno::Reference<container::XNameContainer> xParaStyles; + + xStyleFamilies->getByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharacterStyles"))) >>= xCharStyles; + xStyleFamilies->getByName(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParagraphStyles"))) >>= xParaStyles; + if(xCharStyles.is() && xParaStyles.is()) + { + std::vector< StyleSheetEntry >::iterator aIt = m_pImpl->m_aStyleSheetEntries.begin(); + while( aIt != m_pImpl->m_aStyleSheetEntries.end() ) + { + bool bParaStyle = aIt->nPropertyCalls > 1; + bool bInsert = false; + uno::Reference< container::XNameContainer > xStyles = bParaStyle ? xParaStyles : xCharStyles; + uno::Reference< style::XStyle > xStyle; + if(xStyles->hasByName( aIt->sStyleName )) + xStyles->getByName( aIt->sStyleName ) >>= xStyle; + else + { + bInsert = true; + xStyle = uno::Reference< style::XStyle >(xDocFactory->createInstance( + bParaStyle ? + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.ParagraphStyle")) : + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.style.CharacterStyle"))), + uno::UNO_QUERY_THROW); + } + uno::Sequence< beans::PropertyValue > aPropValues = aIt->pProperties->GetPropertyValues(); + if(aIt->nBaseStyleIdentifier != 0xfff ) + { + //find the name of the base style + std::vector< StyleSheetEntry >::iterator aBaseStyleIt = m_pImpl->m_aStyleSheetEntries.begin(); + for( ; aBaseStyleIt != m_pImpl->m_aStyleSheetEntries.end(); ++aBaseStyleIt ) + if(aBaseStyleIt->nStyleIdentifierD == aIt->nBaseStyleIdentifier) + { + xStyle->setParentStyle(aBaseStyleIt->sStyleName); + break; + } + } + + bool bAddFollowStyle = false; + if(bParaStyle && aIt->nNextStyleIdentifier >= 0 ) + { + bAddFollowStyle = true; + } + if(bAddFollowStyle || aPropValues.getLength()) + { +// sal_Int32 nSetProperties = aPropValues.getLength(); +// if(bAddFollowStyle) +// ++nSetProperties; + +// uno::Sequence< ::rtl::OUString > aNames( nSetProperties ); +// ::rtl::OUString* pNames = aNames.getArray(); +// uno::Sequence< uno::Any > aValues( nSetProperties ); +// uno::Any* pValues = aValues.getArray(); + const beans::PropertyValue* pPropValues = aPropValues.getConstArray(); + PropValVector aSortedPropVals; + for( sal_Int32 nProp = 0; nProp < aPropValues.getLength(); ++nProp) + { + aSortedPropVals.Insert( pPropValues[nProp] ); + +// pNames[nProp] = pPropValues[nProp].Name; +// pValues[nProp] = pPropValues[nProp].Value; + } + if(bAddFollowStyle) + { + beans::PropertyValue aNew; + aNew.Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FollowStyle")); + //find the name of the Next style + std::vector< StyleSheetEntry >::iterator aNextStyleIt = m_pImpl->m_aStyleSheetEntries.begin(); + for( ; aNextStyleIt != m_pImpl->m_aStyleSheetEntries.end(); ++aNextStyleIt ) + if(aNextStyleIt->nStyleIdentifierD == aIt->nNextStyleIdentifier) + { + aNew.Value = uno::makeAny(aNextStyleIt->sStyleName); + break; + } + aSortedPropVals.Insert( aNew ); +// pNames[--nSetProperties] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FollowStyle")); +// pValues[nSetProperties] = uno::makeAny( +// m_pImpl->m_aStyleSheetEntries[aIt->nNextStyleIdentifier].sStyleName); + } + + uno::Reference< beans::XMultiPropertySet > xMultiPropertySet( xStyle, uno::UNO_QUERY_THROW ); +// xMultiPropertySet->setPropertyValues( aNames, aValues ); + xMultiPropertySet->setPropertyValues( aSortedPropVals.getNames(), aSortedPropVals.getValues() ); + } + if(bInsert) + xStyles->insertByName( aIt->sStyleName, uno::makeAny( xStyle) ); + + +/* +struct StyleSheetEntry +{ + sal_Int16 nStyleIdentifier; + bool bInvalidHeight; + bool bHasUPE; //universal property expansion + sal_uInt8 nStyleTypeCode; //sgc + sal_Int16 nBaseStyleIdentifier; + sal_Int16 nNextStyleIdentifier; + ::rtl::OUString sStyleName; + ::rtl::OUString sStyleName1; + PropertyMapPtr pProperties; + sal_Int16 nPropertyCalls; //determines paragraph (2)/character style(1) + StyleSheetEntry(); +}; + + */ + ++aIt; + } + } + } + catch( uno::Exception& ) + { + OSL_ASSERT("Styles could not be imported completely"); + } +} +/*-- 22.06.2006 15:56:56--------------------------------------------------- + + -----------------------------------------------------------------------*/ +const StyleSheetEntry* StyleSheetTable::FindStyleSheetByISTD(sal_Int32 nIndex) +{ + const StyleSheetEntry* pRet = 0; + for( sal_uInt32 nPos = 0; nPos < m_pImpl->m_aStyleSheetEntries.size(); ++nPos ) + { + if( m_pImpl->m_aStyleSheetEntries[nPos].nStyleIdentifierD == nIndex) + { + pRet = &m_pImpl->m_aStyleSheetEntries[nPos]; + break; + } + } + return pRet; +} + +/*-- 17.07.2006 11:47:00--------------------------------------------------- + + -----------------------------------------------------------------------*/ +const StyleSheetEntry* StyleSheetTable::FindParentStyleSheet(sal_Int32 nBaseStyle) +{ + if(nBaseStyle < 0 && m_pImpl->m_pCurrentEntry) + nBaseStyle = m_pImpl->m_pCurrentEntry->nBaseStyleIdentifier; + + const StyleSheetEntry* pRet = 0; + for( sal_uInt32 nPos = 0; nPos < m_pImpl->m_aStyleSheetEntries.size(); ++nPos ) + { + if( m_pImpl->m_aStyleSheetEntries[nPos].nStyleIdentifierD == nBaseStyle) + { + pRet = &m_pImpl->m_aStyleSheetEntries[nPos]; + break; + } + } + return pRet; +} + +}//namespace dmapper + diff --git a/writerfilter/source/dmapper/StyleSheetTable.hxx b/writerfilter/source/dmapper/StyleSheetTable.hxx new file mode 100644 index 000000000000..50739d26c3d9 --- /dev/null +++ b/writerfilter/source/dmapper/StyleSheetTable.hxx @@ -0,0 +1,70 @@ +#ifndef INCLUDED_STYLESHEETTABLE_HXX +#define INCLUDED_STYLESHEETTABLE_HXX + +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#include <WriterFilterDllApi.hxx> +#endif +#include <com/sun/star/lang/XComponent.hpp> +#ifndef INCLUDED_DMAPPER_PROPERTYMAP_HXX +#include <PropertyMap.hxx> +#endif +#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX +#include <doctok/WW8ResourceModel.hxx> +#endif + +namespace com{ namespace sun { namespace star { namespace text{ + class XTextDocument; +}}}} +namespace dmapper +{ +enum StyleType +{ + STYLE_TYPE_UNKNOWN, + STYLE_TYPE_PARA, + STYLE_TYPE_CHAR, + STYLE_TYPE_TABLE, + STYLE_LIST +}; + +struct StyleSheetTable_Impl; +struct StyleSheetEntry +{ + sal_Int32 nStyleIdentifierI; + sal_Int32 nStyleIdentifierD; + bool bInvalidHeight; + bool bHasUPE; //universal property expansion + StyleType nStyleTypeCode; //sgc + sal_Int32 nBaseStyleIdentifier; + sal_Int32 nNextStyleIdentifier; + ::rtl::OUString sStyleName; + ::rtl::OUString sStyleName1; + PropertyMapPtr pProperties; + sal_Int16 nPropertyCalls; //determines paragraph (2)/character style(1) + StyleSheetEntry(); +}; +class DomainMapper; +class WRITERFILTER_DLLPRIVATE StyleSheetTable : + public doctok::Properties, + public doctok::Table +{ + StyleSheetTable_Impl *m_pImpl; + +public: + StyleSheetTable( DomainMapper& rDMapper ); + virtual ~StyleSheetTable(); + + // Properties + virtual void attribute(doctok::Id Name, doctok::Value & val); + virtual void sprm(doctok::Sprm & sprm); + + // Table + virtual void entry(int pos, doctok::Reference<Properties>::Pointer_t ref); + + void ApplyStyleSheets(::com::sun::star::uno::Reference< ::com::sun::star::text::XTextDocument> xTextDocument); + const StyleSheetEntry* FindStyleSheetByISTD(sal_Int32 nIndex); + // returns the parent of the one with the given name - if empty the parent of the current style sheet is returned + const StyleSheetEntry* FindParentStyleSheet(sal_Int32 nBaseStyleIdentifier); +}; +} + +#endif // diff --git a/writerfilter/source/dmapper/makefile.mk b/writerfilter/source/dmapper/makefile.mk new file mode 100644 index 000000000000..18bd99d4bda1 --- /dev/null +++ b/writerfilter/source/dmapper/makefile.mk @@ -0,0 +1,31 @@ +PRJ=..$/.. +PRJNAME=writerfilter +TARGET=dmapper +GEN_HID=TRUE + +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ---------------------------------- + +.INCLUDE : settings.mk +CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION + +# --- Files ------------------------------------- + +SLOFILES= $(SLO)$/ConversionHelper.obj \ + $(SLO)$/DomainMapper.obj \ + $(SLO)$/DomainMapper_Impl.obj \ + $(SLO)$/DomainMapperTableHandler.obj \ + $(SLO)$/PropertyMap.obj \ + $(SLO)$/PropertyIds.obj \ + $(SLO)$/FontTable.obj \ + $(SLO)$/StyleSheetTable.obj \ + $(SLO)$/ListTable.obj \ + $(SLO)$/LFOTable.obj + +# --- Targets ---------------------------------- + +.INCLUDE : target.mk + + + diff --git a/writerfilter/source/doctok/Dff.cxx b/writerfilter/source/doctok/Dff.cxx new file mode 100644 index 000000000000..c0b5d151612b --- /dev/null +++ b/writerfilter/source/doctok/Dff.cxx @@ -0,0 +1,350 @@ +#include "Dff.hxx" +#include <doctok/resourceids.hxx> +#include "resources.hxx" + +namespace doctok { + +DffRecord::DffRecord(WW8Stream & rStream, sal_uInt32 nOffset, + sal_uInt32 nCount) +: WW8StructBase(rStream, nOffset, nCount), bInitialized(false) +{ +} + +DffRecord::DffRecord(WW8StructBase * pParent, sal_uInt32 nOffset, + sal_uInt32 nCount) +: WW8StructBase(pParent, nOffset, nCount), bInitialized(false) +{ +} + +Records_t::iterator DffRecord::begin() +{ + if (! bInitialized) + initChildren(); + + return mRecords.begin(); +} + +Records_t::iterator DffRecord::end() +{ + if (! bInitialized) + initChildren(); + + return mRecords.end(); +} + +bool DffRecord::isContainer() const +{ + return getVersion() == 0xf; +} + +sal_uInt32 DffRecord::calcSize() const +{ + sal_uInt32 nResult = 0; + + switch (getRecordType()) + { + case 0xf000: + case 0xf001: + case 0xf002: + case 0xf003: + case 0xf004: + nResult = getU32(0x4) + 8; + + break; + case 0xf700: + nResult = 8; + + break; + default: + nResult = getU32(0x4); + + if (! isContainer()) + nResult += 8; + break; + } + + return nResult; +} + +sal_uInt32 DffRecord::getVersion() const +{ + return getU8(0x0) & 0xf; +} + +sal_uInt32 DffRecord::getInstance() const +{ + return (getU16(0x0) & 0xfff0) >> 4; +} + +sal_uInt32 DffRecord::getRecordType() const +{ + return getU16(0x2); +} + +void DffRecord::initChildren() +{ + if (isContainer()) + { + sal_uInt32 nOffset = 8; + sal_uInt32 nCount = calcSize(); + + while (nCount - nOffset >= 8) + { + sal_uInt32 nSize = 0; + boost::shared_ptr<DffRecord> pRec + (createDffRecord(this, nOffset, &nSize)); + + mRecords.push_back(pRec); + + nOffset += nSize; + } + } + + bInitialized = true; +} + +Records_t DffRecord::findRecords(sal_uInt32 nType, bool bRecursive, bool bAny) +{ + Records_t aResult; + + findRecords(nType, aResult, bRecursive, bAny); + + return aResult; +} + +void DffRecord::findRecords +(sal_uInt32 nType, Records_t & rRecords, bool bRecursive, bool bAny) +{ + Records_t::iterator aIt = begin(); + + while (aIt != end()) + { + Pointer_t pPointer = *aIt; + if (bAny || pPointer->getRecordType() == nType) + rRecords.push_back(pPointer); + + if (bRecursive) + pPointer->findRecords(nType, rRecords, bRecursive, + bAny); + + ++aIt; + } +} + +void DffRecord::resolveChildren(Properties & rHandler) +{ + Records_t::iterator aIt; + for (aIt = begin(); aIt != end(); ++aIt) + { + rHandler.sprm(**aIt); + } +} + +void DffRecord::resolveLocal(Properties &) +{ +} + +void DffRecord::resolve(Properties & rHandler) +{ + WW8Value::Pointer_t pVal = createValue(getRecordType()); + rHandler.attribute(NS_rtf::LN_dfftype, *pVal); + + pVal = createValue(getInstance()); + rHandler.attribute(NS_rtf::LN_dffinstance, *pVal); + + pVal = createValue(getVersion()); + rHandler.attribute(NS_rtf::LN_dffversion, *pVal); + + if (isContainer()) + { + resolveChildren(rHandler); + } + else + { + resolveLocal(rHandler); + } +} + +string DffRecord::getType() const +{ + return "DffRecord"; +} + +Value::Pointer_t DffRecord::getValue() +{ + return Value::Pointer_t(); +} + +doctok::Reference<BinaryObj>::Pointer_t DffRecord::getBinary() +{ + return doctok::Reference<BinaryObj>::Pointer_t(); +} + +doctok::Reference<Stream>::Pointer_t DffRecord::getStream() +{ + return doctok::Reference<Stream>::Pointer_t(); +} + +doctok::Reference<Properties>::Pointer_t DffRecord::getProps() +{ + return doctok::Reference<Properties>::Pointer_t(this->clone()); +} + +string DffRecord::toString() const +{ + char sBuffer[1024]; + + snprintf(sBuffer, sizeof(sBuffer), + "<dffrecord type=\"%lx\" instance=\"%lx\" version=\"%lx\">\n", + getRecordType(), getInstance(), getVersion()); + string aResult = sBuffer; + + + if (!isContainer()) + aResult += mSequence.toString(); + else + { + WW8StructBase::Sequence aSeq(mSequence, 0, 8); + aResult += aSeq.toString(); + } + + aResult += "</dffrecord>"; + + return aResult; +} + +string DffRecord::getName() const +{ + return ""; +} + +DffBlock::DffBlock(WW8Stream & rStream, sal_uInt32 nOffset, + sal_uInt32 nCount, sal_uInt32 nPadding) +: WW8StructBase(rStream, nOffset, nCount), bInitialized(false), + mnPadding(nPadding) +{ +} + +DffBlock::DffBlock(WW8StructBase * pParent, sal_uInt32 nOffset, + sal_uInt32 nCount, sal_uInt32 nPadding) +: WW8StructBase(pParent, nOffset, nCount), bInitialized(false), + mnPadding(nPadding) +{ +} + +DffBlock::DffBlock(const DffBlock & rSrc) +: WW8StructBase(rSrc), doctok::Reference<Properties>(rSrc), + bInitialized(false), mnPadding(rSrc.mnPadding) +{ +} + +void DffBlock::initChildren() +{ + sal_uInt32 nOffset = 0; + sal_uInt32 nCount = getCount(); + + while (nOffset < nCount) + { + sal_uInt32 nSize = 0; + DffRecord::Pointer_t pDffRecord + (createDffRecord(this, nOffset, &nSize)); + + mRecords.push_back(pDffRecord); + + nOffset += nSize + mnPadding; + } + + bInitialized = true; +} + +Records_t DffBlock::findRecords(sal_uInt32 nType, bool bRecursive, bool bAny) +{ + Records_t aResult; + + findRecords(nType, aResult, bRecursive, bAny); + + return aResult; +} + +void DffBlock::findRecords +(sal_uInt32 nType, Records_t & rRecords, bool bRecursive, bool bAny) +{ + Records_t::iterator aIt = begin(); + + while (aIt != end()) + { + DffRecord::Pointer_t pPointer(*aIt); + + if (bAny || pPointer->getRecordType() == nType) + rRecords.push_back(pPointer); + + if (bRecursive) + pPointer->findRecords(nType, rRecords, bRecursive, + bAny); + + ++aIt; + } +} + +void DffBlock::resolve(Properties & rHandler) +{ + Records_t::iterator aIt; + + for (aIt = begin(); aIt != end(); ++aIt) + { + DffRecord * pDff = aIt->get(); + rHandler.sprm(*pDff); + } +} + +DffRecord::Pointer_t DffBlock::getShape(sal_uInt32 nSpid) +{ + DffRecord::Pointer_t pResult; + + Records_t aRecords = findRecords(0xf004); + Records_t::iterator aIt; + for (aIt = aRecords.begin(); aIt != aRecords.end(); ++aIt) + { + DffRecord::Pointer_t pPointer = *aIt; + + Records_t aFSPs = pPointer->findRecords(0xf00a); + Records_t::iterator aItFSP = aFSPs.begin(); + + if (aItFSP != aFSPs.end()) + { + DffFSP * pFSP = dynamic_cast<DffFSP *>((*aItFSP).get()); + + if (pFSP->get_shpid() == nSpid) + { + pResult = pPointer; + + break; + } + } + } + + return pResult; +} + +Records_t::iterator DffBlock::begin() +{ + if (! bInitialized) + initChildren(); + + return mRecords.begin(); +} + +Records_t::iterator DffBlock::end() +{ + if (! bInitialized) + initChildren(); + + return mRecords.end(); +} + +string DffBlock::getType() const +{ + return "DffBlock"; +} + +} diff --git a/writerfilter/source/doctok/Dff.hxx b/writerfilter/source/doctok/Dff.hxx new file mode 100644 index 000000000000..eb27305b5990 --- /dev/null +++ b/writerfilter/source/doctok/Dff.hxx @@ -0,0 +1,124 @@ +/******************************************************************* + * + * $RCSfile: Dff.hxx,v $ + * + * $Revision: 1.1 $ + * + * last change: $Author: hbrinkm $ $Date: 2006-10-24 09:27:16 $ + * + ******************************************************************/ + +#ifndef INCLUDED_DFF_HXX +#define INCLUDED_DFF_HXX + +#include <vector> +#include <WW8StructBase.hxx> +#include <WW8ResourceModelImpl.hxx> + +namespace doctok +{ +using std::vector; + +class DffBlock; + +class DffRecord : public WW8StructBase, public doctok::Reference<Properties>, + public Sprm +{ + bool bInitialized; +public: + typedef boost::shared_ptr<DffRecord> Pointer_t; + +protected: + typedef vector<Pointer_t> Records_t; + Records_t mRecords; + + void initChildren(); + +public: + + DffRecord(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount); + DffRecord(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount); + virtual ~DffRecord() {} + + bool isContainer() const; + sal_uInt32 calcSize() const; + + sal_uInt32 getVersion() const; + sal_uInt32 getInstance() const; + sal_uInt32 getRecordType() const; + + virtual DffRecord * clone() const { return new DffRecord(*this); } + + virtual void resolveLocal(Properties & rHandler); + virtual void resolveChildren(Properties & rHandler); + + Records_t findRecords(sal_uInt32 nType, bool bRecursive = true, + bool bAny = false); + + void findRecords + (sal_uInt32 nType, Records_t & rRecords, + bool bRecursive = true, bool bAny = false); + + Records_t::iterator begin(); + Records_t::iterator end(); + + /* Properties methods */ + virtual void resolve(Properties & rHandler); + virtual string getType() const; + + /* Sprm methods */ + virtual sal_uInt32 getId() const { return getRecordType(); } + virtual Value::Pointer_t getValue(); + virtual doctok::Reference<BinaryObj>::Pointer_t getBinary(); + virtual doctok::Reference<Stream>::Pointer_t getStream(); + virtual doctok::Reference<Properties>::Pointer_t getProps(); + + virtual string toString() const; + virtual string getName() const; + + friend class DffBlock; +}; + +typedef vector<DffRecord::Pointer_t> Records_t; + +class DffBlock : public WW8StructBase, public doctok::Reference<Properties> +{ + bool bInitialized; + sal_uInt32 mnPadding; + + Records_t mRecords; + +protected: + void initChildren(); + +public: + typedef boost::shared_ptr<DffBlock> Pointer_t; + + DffBlock(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount, sal_uInt32 nPadding); + DffBlock(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount, sal_uInt32 nPadding); + DffBlock(const DffBlock & rSrc); + virtual ~DffBlock() {} + + Records_t findRecords(sal_uInt32 nType, bool bRecursive = true, + bool bAny = false); + + void findRecords(sal_uInt32 nType, Records_t & rRecords, + bool bRecursive = true, bool bAny = false); + + DffRecord::Pointer_t getShape(sal_uInt32 nSpid); + + Records_t::iterator begin(); + Records_t::iterator end(); + + /* Properties methods */ + virtual void resolve(Properties & rHandler); + virtual string getType() const; +}; + +DffRecord * +createDffRecord(WW8StructBase * pParent, sal_uInt32 nOffset, + sal_uInt32 * nSize = NULL); + +} + +#endif diff --git a/writerfilter/source/doctok/DffImpl.cxx b/writerfilter/source/doctok/DffImpl.cxx new file mode 100644 index 000000000000..7fe9fd99896d --- /dev/null +++ b/writerfilter/source/doctok/DffImpl.cxx @@ -0,0 +1,352 @@ +#include "resources.hxx" + +namespace doctok +{ +class ShapeTypeToString +{ + typedef boost::shared_ptr<ShapeTypeToString> Pointer_t; + + static Pointer_t pInstance; + + typedef map<sal_uInt32, string> Map_t; + Map_t mMap; + +protected: + ShapeTypeToString(); + +public: + static Pointer_t Instance() + { + if (pInstance == NULL) + pInstance = Pointer_t(new ShapeTypeToString()); + + return pInstance; + } + + string operator()(sal_uInt32 nShapeType) + { + return mMap[nShapeType]; + } +}; + +ShapeTypeToString::Pointer_t ShapeTypeToString::pInstance; + +ShapeTypeToString::ShapeTypeToString() +{ + mMap[0]="NotPrimitive"; + mMap[1]="Rectangle"; + mMap[2]="RoundRectangle"; + mMap[3]="Ellipse"; + mMap[4]="Diamond"; + mMap[5]="IsocelesTriangle"; + mMap[6]="RightTriangle"; + mMap[7]="Parallelogram"; + mMap[8]="Trapezoid"; + mMap[9]="Hexagon"; + mMap[10]="Octagon"; + mMap[11]="Plus"; + mMap[12]="Star"; + mMap[13]="Arrow"; + mMap[14]="ThickArrow"; + mMap[15]="HomePlate"; + mMap[16]="Cube"; + mMap[17]="Balloon"; + mMap[18]="Seal"; + mMap[19]="Arc"; + mMap[20]="Line"; + mMap[21]="Plaque"; + mMap[22]="Can"; + mMap[23]="Donut"; + mMap[24]="TextSimple"; + mMap[25]="TextOctagon"; + mMap[26]="TextHexagon"; + mMap[27]="TextCurve"; + mMap[28]="TextWave"; + mMap[29]="TextRing"; + mMap[30]="TextOnCurve"; + mMap[31]="TextOnRing"; + mMap[32]="StraightConnector1"; + mMap[33]="BentConnector2"; + mMap[34]="BentConnector3"; + mMap[35]="BentConnector4"; + mMap[36]="BentConnector5"; + mMap[37]="CurvedConnector2"; + mMap[38]="CurvedConnector3"; + mMap[39]="CurvedConnector4"; + mMap[40]="CurvedConnector5"; + mMap[41]="Callout1"; + mMap[42]="Callout2"; + mMap[43]="Callout3"; + mMap[44]="AccentCallout1"; + mMap[45]="AccentCallout2"; + mMap[46]="AccentCallout3"; + mMap[47]="BorderCallout1"; + mMap[48]="BorderCallout2"; + mMap[49]="BorderCallout3"; + mMap[50]="AccentBorderCallout1"; + mMap[51]="AccentBorderCallout2"; + mMap[52]="AccentBorderCallout3"; + mMap[53]="Ribbon"; + mMap[54]="Ribbon2"; + mMap[55]="Chevron"; + mMap[56]="Pentagon"; + mMap[57]="NoSmoking"; + mMap[58]="Seal8"; + mMap[59]="Seal16"; + mMap[60]="Seal32"; + mMap[61]="WedgeRectCallout"; + mMap[62]="WedgeRRectCallout"; + mMap[63]="WedgeEllipseCallout"; + mMap[64]="Wave"; + mMap[65]="FoldedCorner"; + mMap[66]="LeftArrow"; + mMap[67]="DownArrow"; + mMap[68]="UpArrow"; + mMap[69]="LeftRightArrow"; + mMap[70]="UpDownArrow"; + mMap[71]="IrregularSeal1"; + mMap[72]="IrregularSeal2"; + mMap[73]="LightningBolt"; + mMap[74]="Heart"; + mMap[75]="PictureFrame"; + mMap[76]="QuadArrow"; + mMap[77]="LeftArrowCallout"; + mMap[78]="RightArrowCallout"; + mMap[79]="UpArrowCallout"; + mMap[80]="DownArrowCallout"; + mMap[81]="LeftRightArrowCallout"; + mMap[82]="UpDownArrowCallout"; + mMap[83]="QuadArrowCallout"; + mMap[84]="Bevel"; + mMap[85]="LeftBracket"; + mMap[86]="RightBracket"; + mMap[87]="LeftBrace"; + mMap[88]="RightBrace"; + mMap[89]="LeftUpArrow"; + mMap[90]="BentUpArrow"; + mMap[91]="BentArrow"; + mMap[92]="Seal24"; + mMap[93]="StripedRightArrow"; + mMap[94]="NotchedRightArrow"; + mMap[95]="BlockArc"; + mMap[96]="SmileyFace"; + mMap[97]="VerticalScroll"; + mMap[98]="HorizontalScroll"; + mMap[99]="CircularArrow"; + mMap[100]="NotchedCircularArrow"; + mMap[101]="UturnArrow"; + mMap[102]="CurvedRightArrow"; + mMap[103]="CurvedLeftArrow"; + mMap[104]="CurvedUpArrow"; + mMap[105]="CurvedDownArrow"; + mMap[106]="CloudCallout"; + mMap[107]="EllipseRibbon"; + mMap[108]="EllipseRibbon2"; + mMap[109]="FlowChartProcess"; + mMap[110]="FlowChartDecision"; + mMap[111]="FlowChartInputOutput"; + mMap[112]="FlowChartPredefinedProcess"; + mMap[113]="FlowChartInternalStorage"; + mMap[114]="FlowChartDocument"; + mMap[115]="FlowChartMultidocument"; + mMap[116]="FlowChartTerminator"; + mMap[117]="FlowChartPreparation"; + mMap[118]="FlowChartManualInput"; + mMap[119]="FlowChartManualOperation"; + mMap[120]="FlowChartConnector"; + mMap[121]="FlowChartPunchedCard"; + mMap[122]="FlowChartPunchedTape"; + mMap[123]="FlowChartSummingJunction"; + mMap[124]="FlowChartOr"; + mMap[125]="FlowChartCollate"; + mMap[126]="FlowChartSort"; + mMap[127]="FlowChartExtract"; + mMap[128]="FlowChartMerge"; + mMap[129]="FlowChartOfflineStorage"; + mMap[130]="FlowChartOnlineStorage"; + mMap[131]="FlowChartMagneticTape"; + mMap[132]="FlowChartMagneticDisk"; + mMap[133]="FlowChartMagneticDrum"; + mMap[134]="FlowChartDisplay"; + mMap[135]="FlowChartDelay"; + mMap[136]="TextPlainText"; + mMap[137]="TextStop"; + mMap[138]="TextTriangle"; + mMap[139]="TextTriangleInverted"; + mMap[140]="TextChevron"; + mMap[141]="TextChevronInverted"; + mMap[142]="TextRingInside"; + mMap[143]="TextRingOutside"; + mMap[144]="TextArchUpCurve"; + mMap[145]="TextArchDownCurve"; + mMap[146]="TextCircleCurve"; + mMap[147]="TextButtonCurve"; + mMap[148]="TextArchUpPour"; + mMap[149]="TextArchDownPour"; + mMap[150]="TextCirclePour"; + mMap[151]="TextButtonPour"; + mMap[152]="TextCurveUp"; + mMap[153]="TextCurveDown"; + mMap[154]="TextCascadeUp"; + mMap[155]="TextCascadeDown"; + mMap[156]="TextWave1"; + mMap[157]="TextWave2"; + mMap[158]="TextWave3"; + mMap[159]="TextWave4"; + mMap[160]="TextInflate"; + mMap[161]="TextDeflate"; + mMap[162]="TextInflateBottom"; + mMap[163]="TextDeflateBottom"; + mMap[164]="TextInflateTop"; + mMap[165]="TextDeflateTop"; + mMap[166]="TextDeflateInflate"; + mMap[167]="TextDeflateInflateDeflate"; + mMap[168]="TextFadeRight"; + mMap[169]="TextFadeLeft"; + mMap[170]="TextFadeUp"; + mMap[171]="TextFadeDown"; + mMap[172]="TextSlantUp"; + mMap[173]="TextSlantDown"; + mMap[174]="TextCanUp"; + mMap[175]="TextCanDown"; + mMap[176]="FlowChartAlternateProcess"; + mMap[177]="FlowChartOffpageConnector"; + mMap[178]="Callout90"; + mMap[179]="AccentCallout90"; + mMap[180]="BorderCallout90"; + mMap[181]="AccentBorderCallout90"; + mMap[182]="LeftRightUpArrow"; + mMap[183]="Sun"; + mMap[184]="Moon"; + mMap[185]="BracketPair"; + mMap[186]="BracePair"; + mMap[187]="Seal4"; + mMap[188]="DoubleWave"; + mMap[189]="ActionButtonBlank"; + mMap[190]="ActionButtonHome"; + mMap[191]="ActionButtonHelp"; + mMap[192]="ActionButtonInformation"; + mMap[193]="ActionButtonForwardNext"; + mMap[194]="ActionButtonBackPrevious"; + mMap[195]="ActionButtonEnd"; + mMap[196]="ActionButtonBeginning"; + mMap[197]="ActionButtonReturn"; + mMap[198]="ActionButtonDocument"; + mMap[199]="ActionButtonSound"; + mMap[200]="ActionButtonMovie"; + mMap[201]="HostControl"; + mMap[202]="TextBox"; +} + +// DffOPT + +sal_uInt32 DffOPT::get_property_count() +{ + return getInstance(); +} + +doctok::Reference<Properties>::Pointer_t +DffOPT::get_property(sal_uInt32 nPos) +{ + WW8FOPTE * pTmp = new WW8FOPTE(this, 0x8 + nPos * WW8FOPTE::getSize()); + pTmp->setIndex(nPos); + + return doctok::Reference<Properties>::Pointer_t(pTmp); +} + +sal_uInt32 DffOPT::get_extraoffset_count() +{ + return get_property_count(); +} + +sal_uInt32 DffOPT::get_extraoffset(sal_uInt32 pos) +{ + sal_uInt32 nResult; + sal_uInt32 nCount = get_property_count(); + + if (pos < nCount) + { + nResult = 0x8 + nCount * WW8FOPTE::getSize(); + + for (sal_uInt32 n = 0; n < pos; ++n) + { + WW8FOPTE aFOPTE(this, 0x8 + n * WW8FOPTE::getSize()); + + if (aFOPTE.get_fComplex()) + { + sal_uInt32 nValue = aFOPTE.get_op(); + nResult += nValue; + } + } + } + else + nResult = getCount(); + + return nResult; +} + +//DffDGG + +sal_uInt32 DffDGG::get_fidcl_count() +{ + return (getCount() - 0x18) / WW8FIDCL::getSize(); +} + +doctok::Reference<Properties>::Pointer_t +DffDGG::get_fidcl(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8FIDCL(this, 0x18 + pos * WW8FIDCL::getSize())); +} + + +// DffBSE + +rtl::OUString DffBSE::get_blipname() +{ + rtl::OUString sResult; + WW8FBSE aFBSE(this, 0x8); + + if (aFBSE.get_cbName() > 0) + sResult = getString(0x24, aFBSE.get_cbName()); + + return sResult; +} + +WW8BinaryObjReference::Pointer_t DffBSE::get_binary() +{ + return WW8BinaryObjReference::Pointer_t + (new WW8BinaryObjReference(this, WW8FBSE::getSize() + 0x8, + getCount() - WW8FBSE::getSize() - 0x8)); +} + +// WW8FOPTE +void WW8FOPTE::resolveNoAuto(Properties & rHandler) +{ + sal_uInt16 nId = get_pid() + 1; + sal_uInt32 nOp = get_op(); + sal_uInt32 nMask = 2; + + while (isBooleanDffOpt(nId)) + { + WW8Value::Pointer_t pVal = createValue(getDffOptName(nId)); + rHandler.attribute(NS_rtf::LN_shpname, *pVal); + + pVal = createValue((nOp & nMask) != 0); + rHandler.attribute(NS_rtf::LN_shpvalue, *pVal); + + --nId; + nMask = nMask << 1; + } +} + +// DffFSP + +rtl::OUString DffFSP::get_shptypename() +{ + string aName = (*ShapeTypeToString::Instance())(get_shptype()); + + return rtl::OUString::createFromAscii(aName.c_str()); +} + +} diff --git a/writerfilter/source/doctok/PLCF.hxx b/writerfilter/source/doctok/PLCF.hxx new file mode 100644 index 000000000000..f98b1db3cd29 --- /dev/null +++ b/writerfilter/source/doctok/PLCF.hxx @@ -0,0 +1,169 @@ +#ifndef INCLUDED_PLCF_HXX +#define INCLUDED_PLCF_HXX + +#include <boost/shared_ptr.hpp> +#ifndef INCLUDED_WW8_STRUCT_BASE_HXX +#include <WW8StructBase.hxx> +#endif + +namespace doctok +{ + +class Empty +{ +public: + typedef boost::shared_ptr<Empty> Pointer_t; + + Empty() {} + virtual ~Empty() {} + + sal_uInt32 getSize() { return 0; } +}; + +template <class T> +/** + Plex in File + + A PLCF is a concatenation of two arrays. The first array contains + file character positions. The second array contains elements of + type T. If the first array contains N elements, the second contains + N - 1 elements. The N-th element in the first array corresponds to + the N-th element of the second array. + + The second array is referred to as the payload. + */ +class PLCF : public WW8StructBase +{ + /// number of entries + sal_uInt32 nEntryCount; + + /// offset to payload + sal_uInt32 nPayloadOffset; + + /// internal method to calculate the number of entries + sal_uInt32 getEntryCount_() const; + +public: + typedef boost::shared_ptr< PLCF< T > > Pointer_t; + + PLCF(sal_uInt32 nLength) + : WW8StructBase(nLength), nEntryCount(getEntryCount_()), + nPayloadOffset((nEntryCount + 1) * 4) + { + } + + PLCF(WW8Stream & rStream, + sal_Int32 nOffset, sal_Int32 nCount) + : WW8StructBase(rStream, nOffset, nCount), + nEntryCount(getEntryCount_()), + nPayloadOffset((nEntryCount + 1) * 4) + { + } + + PLCF(const Sequence & rSequence) + : WW8StructBase(rSequence), nEntryCount(getEntryCount_()), + nPayloadOffset((nEntryCount + 1) * 4) + { + } + + /** + Return the number of elements in the PLCF- + */ + sal_uInt32 getEntryCount() const { return nEntryCount; } + + /** + Return the file character position of a certain element. + + @param nIndex the index of the element + */ + sal_uInt32 getFc(sal_uInt32 nIndex) const; + + /** + Return a C++ pointer to a certain payload entry. + + @param nIndex the index of the element + */ + T * getEntryPointer(sal_uInt32 nIndex) const; + + /** + Return a shared pointer to a certain payload element. + + @param nIndex the index of the element + */ + typename T::Pointer_t getEntry(sal_uInt32 nIndex) const; + + /** + Return a C++ pointer a certain payload element. + + @param nFc the file character position of the element + */ + T * getEntryByFc(sal_uInt32 nFc) const; + + virtual void dump(OutputWithDepth<string> & output) const; +}; + +template <class T> +sal_uInt32 PLCF<T>::getEntryCount_() const +{ + return (getCount() - 4) / (T::getSize() + 4); +} + +template <class T> +sal_uInt32 PLCF<T>::getFc(sal_uInt32 nIndex) const +{ + return getU32(nIndex * 4); +} + +template <class T> +T * PLCF<T>::getEntryPointer(sal_uInt32 nIndex) const +{ + return new T(mSequence, nPayloadOffset + nIndex * T::getSize(), + T::getSize()); +} + +template <class T> +typename T::Pointer_t PLCF<T>::getEntry(sal_uInt32 nIndex) const +{ + typename T::Pointer_t pResult(getEntryPointer(nIndex)); + + return pResult; +} + + +template <class T> +T * PLCF<T>::getEntryByFc(sal_uInt32 nFc) const +{ + T * pResult = NULL; + + sal_uInt32 n = getEntryCount(); + + while (getFc(n) > nFc) + n--; + + pResult = getEntryPointer(n); + + return pResult; +} + +template <class T> +void PLCF<T>::dump(OutputWithDepth<string> & output) const +{ + output.addItem("<plcf>"); + WW8StructBase::dump(output); + + sal_uInt32 nCount = getEntryCount(); + for (sal_uInt32 n = 0; n < nCount; ++n) + { + Fc aFc = getFc(n); + typename T::Pointer_t pT = getEntry(n); + + output.addItem("<plcfentry cpandfc=\"" + aFc.toString() + "\">"); + pT->dump(output); + output.addItem("</plcfentry>"); + } + output.addItem("</plcf>>"); +} + +} + +#endif // INCLUDED_PLCF_HXX diff --git a/writerfilter/source/doctok/WW8Annotation.cxx b/writerfilter/source/doctok/WW8Annotation.cxx new file mode 100644 index 000000000000..0545a6ef3dd5 --- /dev/null +++ b/writerfilter/source/doctok/WW8Annotation.cxx @@ -0,0 +1,9 @@ +#include <resources.hxx> + +namespace doctok +{ +rtl::OUString WW8ATRD::get_xstUsrInitl() +{ + return getString(0x0); +} +} diff --git a/writerfilter/source/doctok/WW8BinTable.hxx b/writerfilter/source/doctok/WW8BinTable.hxx new file mode 100644 index 000000000000..fb4074ea7b54 --- /dev/null +++ b/writerfilter/source/doctok/WW8BinTable.hxx @@ -0,0 +1,63 @@ +#ifndef INCLUDED_WW8_BIN_TABLE_HXX +#define INCLUDED_WW8_BIN_TABLE_HXX + +#include <boost/shared_ptr.hpp> +#include <string> + +#ifndef INCLUDED_WW8_FKP_HXX +#include <WW8FKP.hxx> +#endif + +namespace doctok +{ + +/** + A bintable. + + Word uses bintables to associate FC ranges with FKPs. A bintable + has a list of FCs. At each FC a range begins. The length of the + range is given by the distance of the according CPs. + */ +class WW8BinTable +{ +public: + virtual ~WW8BinTable() {}; + /** + Shared pointer to a bintable. + */ + typedef boost::shared_ptr<WW8BinTable> Pointer_t; + + /** + Return count of entries. + */ + virtual sal_uInt32 getEntryCount() const = 0; + + /** + Return FC from bintable. + + @param nIndex index in bintable to return FC from + */ + virtual Fc getFc(sal_uInt32 nIndex) const = 0; + + /** + Return page number. + + @param nIndex index in bintable to return page number from + */ + virtual sal_uInt32 getPageNumber(sal_uInt32 nIndex) const = 0; + + /** + Return page number associated with FC. + + @param rFc FC to return page number for + */ + virtual sal_uInt32 getPageNumber(const Fc & rFc) const = 0; + + /** + Return string representation of bintable. + */ + virtual string toString() const = 0; +}; +} + +#endif // INCLUDED_WW8_BIN_TABLE_HXX diff --git a/writerfilter/source/doctok/WW8BinTableImpl.cxx b/writerfilter/source/doctok/WW8BinTableImpl.cxx new file mode 100644 index 000000000000..f5b0f82f8667 --- /dev/null +++ b/writerfilter/source/doctok/WW8BinTableImpl.cxx @@ -0,0 +1,78 @@ +#include "WW8BinTableImpl.hxx" + +namespace doctok +{ +using namespace ::std; + +void PageNumber::dump(OutputWithDepth<string> & /*output*/) const +{ +} + +sal_uInt32 WW8BinTableImpl::getPageNumber(const Fc & rFc) const +{ + sal_uInt32 nResult = 0; + + if (mPageMap.find(rFc) == mPageMap.end()) + { +#if 0 + sal_uInt32 n = getEntryCount(); + + while (rFc < getFc(n)) + { + --n; + } + + nResult = getPageNumber(n); + mPageMap[rFc] = nResult; +#else + sal_uInt32 left = 0; + sal_uInt32 right = getEntryCount(); + + while (right - left > 1) + { + sal_uInt32 middle = (right + left) / 2; + + Fc aFc = getFc(middle); + + if (rFc < aFc) + right = middle; + else + left = middle; + + } + + nResult = getPageNumber(left); + mPageMap[rFc] = nResult; +#endif + + } + else + nResult = mPageMap[rFc]; + + return nResult; +} + +string WW8BinTableImpl::toString() const +{ + string aResult; + char sBuffer[255]; + + aResult += "("; + + for (sal_uInt32 n = 0; n < getEntryCount(); n++) + { + if (n > 0) + aResult += ", "; + + snprintf(sBuffer, 255, "%lx", getFc(n).get()); + aResult += sBuffer; + aResult += "->"; + snprintf(sBuffer, 255, "%lx", getPageNumber(n)); + aResult += sBuffer; + } + + aResult += ")"; + + return aResult; +} +} diff --git a/writerfilter/source/doctok/WW8BinTableImpl.hxx b/writerfilter/source/doctok/WW8BinTableImpl.hxx new file mode 100644 index 000000000000..a4357f904dd6 --- /dev/null +++ b/writerfilter/source/doctok/WW8BinTableImpl.hxx @@ -0,0 +1,74 @@ +#ifndef INCLUDED_WW8_BIN_TABLE_IMPL_HXX +#define INCLUDED_WW8_BIN_TABLE_IMPL_HXX + +#include <istream> +#ifndef INCLUDED_WW8_BIN_TABLE_HXX +#include <WW8BinTable.hxx> +#endif +#ifndef INCLUDED_PLCF_HXX +#include <PLCF.hxx> +#endif + +#include <hash_map> + +namespace doctok +{ +using namespace ::std; + +/** + A number of a FKP. + */ +class PageNumber +{ + /// the page number + sal_uInt32 mnPageNumber; + +public: + /// Pointer to a page number + typedef boost::shared_ptr<PageNumber> Pointer_t; + + /// get size of a page number + static size_t getSize() { return 4; } + + PageNumber(WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset, + sal_uInt32 /*nCount*/) + : mnPageNumber(getU32(rSeq, nOffset)) + { + } + + /// Return the page number + sal_uInt32 get() const { return mnPageNumber; } + + virtual void dump(OutputWithDepth<string> & output) const; +}; + +/** + Implementation class for a binary table + */ +class WW8BinTableImpl : public WW8BinTable +{ + /// PLCF containing the numbers of the FKPs of the binary table + PLCF<PageNumber> mData; + mutable hash_map<Fc, sal_uInt32, FcHash> mPageMap; + +public: + WW8BinTableImpl(WW8Stream & rStream, sal_uInt32 nOffset, + sal_uInt32 nCount) + : mData(rStream, nOffset, nCount) + + { + } + + virtual sal_uInt32 getEntryCount() const + { return mData.getEntryCount(); } + virtual Fc getFc(sal_uInt32 nIndex) const + { return mData.getFc(nIndex); } + virtual sal_uInt32 getPageNumber(sal_uInt32 nIndex) const + { return mData.getEntry(nIndex)->get(); } + virtual sal_uInt32 getPageNumber(const Fc & rFc) const; + virtual string toString() const; +}; + +} + +#endif // INCLUDED_WW8_BIN_TABLE_IMPL_HXX diff --git a/writerfilter/source/doctok/WW8Clx.cxx b/writerfilter/source/doctok/WW8Clx.cxx new file mode 100644 index 000000000000..8ecd0e6ab782 --- /dev/null +++ b/writerfilter/source/doctok/WW8Clx.cxx @@ -0,0 +1,56 @@ +#include <com/sun/star/io/XSeekable.hpp> +#include <WW8Clx.hxx> +#include <resources.hxx> + +namespace doctok +{ +WW8Clx::WW8Clx(WW8Stream & rStream, + sal_uInt32 nOffset, sal_uInt32 nCount) +: WW8StructBase(rStream, nOffset, nCount), nOffsetPieceTable(0) +{ + while (getU8(nOffsetPieceTable) != 2) + { + nOffsetPieceTable += getU16(nOffsetPieceTable + 1) + 3; + } +} + +sal_uInt32 WW8Clx::getPieceCount() const +{ + return (getU32(nOffsetPieceTable + 1) - 4) / 12; +} + +sal_uInt32 WW8Clx::getCp(sal_uInt32 nIndex) const +{ + return getU32(nOffsetPieceTable + 5 + nIndex * 4); +} + +sal_uInt32 WW8Clx::getFc(sal_uInt32 nIndex) const +{ + sal_uInt32 nResult = getU32(nOffsetPieceTable + 5 + + (getPieceCount() + 1) * 4 + + nIndex * 8 + 2); + + if (nResult & 0x40000000) + nResult = (nResult & ~0x40000000) / 2; + + return nResult; +} + +sal_Bool WW8Clx::isComplexFc(sal_uInt32 nIndex) const +{ + sal_Bool bResult = sal_False; + sal_uInt32 nTmp = getU32(nOffsetPieceTable + 5 + + (getPieceCount() + 1) * 4 + + nIndex * 8 + 2); + if (nTmp & 0x40000000) + bResult = sal_True; + + return bResult; +} + +void WW8Clx::dump(WW8OutputWithDepth & o) const +{ + WW8StructBase::dump(o); +} + +} diff --git a/writerfilter/source/doctok/WW8Clx.hxx b/writerfilter/source/doctok/WW8Clx.hxx new file mode 100644 index 000000000000..48a258f02b53 --- /dev/null +++ b/writerfilter/source/doctok/WW8Clx.hxx @@ -0,0 +1,67 @@ +#ifndef INCLUDED_WW8_CLX_HXX +#define INCLUDED_WW8_CLX_HXX + +#ifndef INCLUDED_RESOURCES_HXX +#include <resources.hxx> +#endif + +#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH_HXX +#include <WW8OutputWithDepth.hxx> +#endif + +namespace doctok +{ + +/** + Piece table as stored in a Word file. + + It contains character positions (CPs) and file character positions + (FCs). Each CP is correlated to one FC. + */ +class WW8Clx : public WW8StructBase +{ + /// Pointer to the file information block. + WW8Fib::Pointer_t pFib; + + /// Offset where FCs begin + sal_uInt32 nOffsetPieceTable; + +public: + /// Pointer to Clx. + typedef boost::shared_ptr<WW8Clx> Pointer_t; + + WW8Clx(WW8Stream & rStream, + sal_uInt32 nOffset, sal_uInt32 nCount); + + virtual void dump(WW8OutputWithDepth & o) const; + + /** + Return the number of pieces. + */ + sal_uInt32 getPieceCount() const; + + /** + Return a certain character position. + + @param nIndex index of the character position + */ + sal_uInt32 getCp(sal_uInt32 nIndex) const; + + /** + Return a certain file character position. + + @param nIndex index of the file character position + */ + sal_uInt32 getFc(sal_uInt32 nIndex) const; + + /** + Return if a certain FC is complex. + + @nIndex index of the FC + */ + sal_Bool isComplexFc(sal_uInt32 nIndex) const; + +}; +} + +#endif diff --git a/writerfilter/source/doctok/WW8CpAndFc.cxx b/writerfilter/source/doctok/WW8CpAndFc.cxx new file mode 100644 index 000000000000..a4b66293a865 --- /dev/null +++ b/writerfilter/source/doctok/WW8CpAndFc.cxx @@ -0,0 +1,96 @@ +#include <WW8CpAndFc.hxx> + +#include <iterator> +#include <algorithm> +#include <string> +#include <map> + +namespace doctok +{ +using namespace ::std; + +bool operator < (const Cp & rA, const Cp & rB) +{ + return rA.nCp < rB.nCp; +} + +bool operator == (const Cp & rA, const Cp & rB) +{ + return rA.nCp == rB.nCp; +} + +string Cp::toString() const +{ + char sBuffer[256]; + + snprintf(sBuffer, 255, "%lx", get()); + + return string(sBuffer); +} + +ostream & operator << (ostream & o, const Cp & rCp) +{ + return o << rCp.toString(); +} + +bool operator < (const Fc & rA, const Fc & rB) +{ + return rA.mnFc < rB.mnFc; +} + +bool operator == (const Fc & rA, const Fc & rB) +{ + return rA.mnFc == rB.mnFc; +} + +string Fc::toString() const +{ + char sBuffer[256]; + + snprintf(sBuffer, 255, "(%lx, %s)", static_cast<sal_uInt32>(get()), + isComplex() ? "true" : "false"); + + return string(sBuffer); +} + +ostream & operator << (ostream & o, const Fc & rFc) +{ + + return o << rFc.toString(); +} + +bool operator < (const CpAndFc & rA, const CpAndFc & rB) +{ + bool bResult = false; + + if (rA.mCp < rB.mCp) + bResult = true; + else if (rA.mCp == rB.mCp && rA.mType < rB.mType) + bResult = true; + + return bResult; +} + +bool operator == (const CpAndFc & rA, const CpAndFc & rB) +{ + return rA.mCp == rB.mCp; +} + +ostream & operator << (ostream & o, const CpAndFc & rCpAndFc) +{ + return o << rCpAndFc.toString(); +} + +ostream & operator << (ostream & o, const CpAndFcs & rCpAndFcs) +{ + copy(rCpAndFcs.begin(), rCpAndFcs.end(), + ostream_iterator<CpAndFc>(o, ", ")); + + char sBuffer[256]; + + snprintf(sBuffer, 255, "%d", rCpAndFcs.size()); + o << sBuffer; + + return o; +} +} diff --git a/writerfilter/source/doctok/WW8CpAndFc.hxx b/writerfilter/source/doctok/WW8CpAndFc.hxx new file mode 100644 index 000000000000..da6c6b2803a3 --- /dev/null +++ b/writerfilter/source/doctok/WW8CpAndFc.hxx @@ -0,0 +1,336 @@ +#ifndef INCLUDED_WW8_CP_AND_FC_HXX +#define INCLUDED_WW8_CP_AND_FC_HXX + +#ifndef _SAL_TYPES_H_ +#include <sal/types.h> +#endif +#ifndef INCLUDED_DOCUMENT_HXX +#include <doctok/WW8Document.hxx> +#endif +#include <set> +#include <hash_map> +#include <iostream> + +namespace doctok +{ +using namespace ::std; + +template <class T> +bool operator <= (const T & rA, const T & rB) +{ + return ! ( rB < rA ); +} + +/** + A character position. + + This is a wrapper to make the type for WW8 character position (CP) + distinct from WW8 file character positions (FC). +*/ +struct Cp +{ + sal_uInt32 nCp; // the WW8 character position + + Cp() : nCp(0) {} + + Cp(sal_uInt32 nCp_) : nCp(nCp_) {} + + /** + Returns the WW8 character position. + + @return the WW8 character position + */ + sal_uInt32 get() const { return nCp; } + + /** + Sets the WW8 character position. + + @param nCp_ the WW8 character position to set + */ + void set(sal_uInt32 nCp_) { nCp = nCp_; } + + /** + Calculate CP moved backward. + + None of the involved CPs is changed. + + @param n amount of movement + + @return CP moved @n steps backward + */ + sal_uInt32 operator - (const Cp & rCp) const + { return nCp - rCp.nCp; } + + /** + Calculate CP moved forward. + + None of the involved CPs is changed. + + @param n amount of movement + + @return CP moved @n steps forward + */ + Cp operator + (sal_uInt32 n) const + { return Cp(nCp + n); } + + /** + Advance CP forward. + + @attention The CP is altered. + + @param n amount of movement + + @return CP moved @n steps forward + */ + Cp & operator += (sal_uInt32 n) + { + nCp += n; + + return *this; + } + + /** + Return string representation of CP. + */ + string toString() const; + + friend bool operator < (const Cp & rA, const Cp & rB); + friend bool operator == (const Cp & rA, const Cp & rB); + friend ostream & operator << (ostream & o, const Cp & rCp); +}; + +/** + A file character position. + + This is a wrapper to make the type for WW8 character position (CP) + distinct from WW8 file character positions (FC). + + \see{Cp} +*/ +struct Fc +{ + sal_uInt32 mnFc; // the WW8 character position + bool mbComplex; + + Fc() : mnFc(0), mbComplex(false) {} + + Fc(sal_uInt32 nFc, bool bComplex = true) + : mnFc(nFc), mbComplex(bComplex) + {} + + sal_uInt32 complexFactor() const { return mbComplex ? 1 : 2; } + + /** + Returns the WW8 character position. + + @return the WW8 character position + */ + sal_uInt32 get() const { return mnFc; } + + /** + Sets the WW8 file character position. + + @param nFc the WW8 file character position to set + */ + void set(sal_uInt32 nFc) { mnFc = nFc; } + + /** + Set if the FC is complex. + + @param bComplex true if FC is set to be complex + */ + void setComplex(bool bComplex) { mbComplex = bComplex; } + + /** + Return if FC is complex. + + @retval true FC is complex + @retval false else + */ + bool isComplex() const { return mbComplex; } + + /** + Distance of FCs. + + None of the involved FCs is changed. + + @param rFc FC to calculate distance to + + @return Distance from @a rFc to this FC + */ + sal_uInt32 operator - (const Fc & rFc) const + { return (mnFc - rFc.mnFc) / complexFactor(); } + + /** + Calculate FC moved backward. + + None of the involved FCs is changed. + + @param n amount of movement + + @return FC moved @n steps backward + */ + Fc operator - (sal_uInt32 n) const + { return Fc(mnFc - n * complexFactor(), mbComplex); } + + /** + Calculate FC moved forward. + + None of the involved FCs is changed. + + @param n amount of movement + + @return FC moved @n steps Forward + */ + Fc operator + (sal_uInt32 n) const + { return Fc(mnFc + n * complexFactor(), mbComplex); } + + /** + Return string representation of FC. + */ + string toString() const; + + friend bool operator < (const Fc & rA, const Fc & rB); + friend bool operator == (const Fc & rA, const Fc & rB); + friend ostream & operator << (ostream & o, const Fc & rFc); +}; + +/** + A character position and a corresponding file character position + paired. + */ +class CpAndFc +{ +private: + /** + character position + */ + Cp mCp; + + /** + file character position + */ + Fc mFc; + + /** + property type + */ + PropertyType mType; + +public: + CpAndFc() {} + CpAndFc(const Cp & rCp, const Fc & rFc, PropertyType eType_) + : mCp(rCp), mFc(rFc), mType(eType_) + { + } + + /** + Return character position. + */ + const Cp & getCp() const { return mCp; } + + /** + Return file character position. + */ + const Fc & getFc() const { return mFc; } + + /** + Return property type. + */ + PropertyType getType() const { return mType; } + + /** + Return if FC is complex. + + @retval true FC is complex + @retval false else + */ + bool isComplex() const { return mFc.isComplex(); } + + /** + Return the distance to other CpAndFc. + + @param rCpAndFc the other CpAndFc + + @return the distance from the CP in @a rCpAndFc to the CP in + CpAndFc. + */ + sal_uInt32 operator-(const CpAndFc & rCpAndFc) const + { return mCp - rCpAndFc.mCp; } + + /** + Return string representation of the CpAndFc. + */ + string toString() const; + + friend bool operator < (const CpAndFc & rA, const CpAndFc & rB); + friend bool operator == (const CpAndFc & rA, const CpAndFc & rB); + friend ostream & operator << (ostream & o, const CpAndFc & rCpAndFc); +}; + +struct CpAndFcLess +{ + CpAndFcLess() + { + } + + bool operator()(const CpAndFc & rA, const CpAndFc & rB) const + { + return rA < rB; + } + + bool operator()(const CpAndFc & rA, const Cp & rB) const + { + return rA.getCp() < rB; + } + + bool operator()(const Cp & rA, const CpAndFc & rB) const + { + return rA < rB.getCp(); + } +}; + + +typedef set<CpAndFc, CpAndFcLess> CpAndFcs; + +ostream & operator << (ostream & o, const CpAndFcs & rCpAndFcs); + +struct CpHash +{ + size_t operator()(const Cp & rCp) const + { + return rCp.get(); + } +}; + +struct FcHash +{ + size_t operator()(const Fc & rFc) const + { + return rFc.get(); + } +}; + +struct CpEq +{ + bool operator() (const Cp & rA, const Cp &rB) const + { + return rA == rB; + } +}; + +struct CpAndFcHash +{ + size_t operator()(const CpAndFc & rCpAndFc) const + { + CpHash aHash; + + return aHash(rCpAndFc.getCp()); + } +}; + +typedef hash_map<Cp, Fc, CpHash, CpEq> Cp2FcHashMap_t; + +} // namespace doctok + +#endif // INCLUDED_WW8_CP_AND_FC_HXX diff --git a/writerfilter/source/doctok/WW8DocumentImpl.cxx b/writerfilter/source/doctok/WW8DocumentImpl.cxx new file mode 100644 index 000000000000..07a7a0e6b523 --- /dev/null +++ b/writerfilter/source/doctok/WW8DocumentImpl.cxx @@ -0,0 +1,1930 @@ +#include <doctok/exceptions.hxx> +#include <WW8DocumentImpl.hxx> +#include <WW8FKPImpl.hxx> +#include <WW8PieceTableImpl.hxx> +#include <WW8BinTableImpl.hxx> +#include <WW8StreamImpl.hxx> +#include <WW8Sttbf.hxx> +#include <Dff.hxx> +#include <iterator> +#include <XNoteHelperImpl.hxx> +#include <WW8OutputWithDepth.hxx> + +namespace doctok +{ + +using namespace ::std; +// WW8DocumentIteratorImpl + +bool operator == (const WW8DocumentIterator & rA, + const WW8DocumentIterator & rB) +{ + return rA.equal(rB); +} + +WW8DocumentIterator::~WW8DocumentIterator() +{ +} + +WW8DocumentIteratorImpl::~WW8DocumentIteratorImpl() +{ +} + +WW8DocumentIterator & WW8DocumentIteratorImpl::operator++() +{ + mCpAndFc = mpDocument->getNextCp(mCpAndFc); + + return *this; +} + +WW8DocumentIterator & WW8DocumentIteratorImpl::operator--() +{ + mCpAndFc = mpDocument->getPrevCp(mCpAndFc); + + return *this; +} + +bool WW8DocumentIteratorImpl::equal(const WW8DocumentIterator & rIt_) const +{ + const WW8DocumentIteratorImpl & rIt = + dynamic_cast<const WW8DocumentIteratorImpl &>(rIt_); + + return mCpAndFc == rIt.mCpAndFc && mpDocument == rIt.mpDocument; +} + +doctok::Reference<Properties>::Pointer_t +WW8DocumentIteratorImpl::getProperties() const +{ + return mpDocument->getProperties(mCpAndFc); +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentIteratorImpl::getSubDocument() const +{ + return mpDocument->getSubDocument(mCpAndFc); +} + +WW8SED * WW8DocumentIteratorImpl::getSED() const +{ + return mpDocument->getSED(mCpAndFc); +} + +WW8Stream::Sequence WW8DocumentIteratorImpl::getText() +{ + return mpDocument->getText(mCpAndFc); +} + +doctok::Reference<Properties>::Pointer_t +WW8DocumentIteratorImpl::getShape() const +{ + return mpDocument->getShape(mCpAndFc); +} + +PropertyType WW8DocumentIteratorImpl::getPropertyType() const +{ + return mCpAndFc.getType(); +} + +bool WW8DocumentIteratorImpl::isComplex() const +{ + return mCpAndFc.isComplex(); +} + +void WW8DocumentIteratorImpl::dump(ostream & o) const +{ + o << mCpAndFc; +} + +string WW8DocumentIteratorImpl::toString() const +{ + return mCpAndFc.toString(); +} + +// WW8DocumentImpl + +WW8Document::~WW8Document() +{ +} + +WW8DocumentImpl::~WW8DocumentImpl() +{ +} + +WW8DocumentImpl::WW8DocumentImpl(WW8Stream::Pointer_t rpStream) +: bSubDocument(false), mfcPicLoc(0), mpStream(rpStream) +{ + mpDocStream = getSubStream(::rtl::OUString::createFromAscii + ("WordDocument")); + + try + { + mpDataStream = getSubStream(::rtl::OUString::createFromAscii + ("Data")); + } + catch (ExceptionNotFound e) + { + } + + mpCHPFKPCache = + WW8FKPCache::Pointer_t(new WW8CHPFKPCacheImpl(mpDocStream, 5)); + mpPAPFKPCache = + WW8FKPCache::Pointer_t(new WW8PAPFKPCacheImpl(mpDocStream, 5)); + + mpFib = WW8Fib::Pointer_t(new WW8Fib(*mpDocStream)); + + switch (mpFib->get_fWhichTblStm()) + { + case 0: + mpTableStream = getSubStream(::rtl::OUString::createFromAscii + ("0Table")); + + break; + + case 1: + mpTableStream = getSubStream(::rtl::OUString::createFromAscii + ("1Table")); + + break; + + default: + break; + } + + if (mpTableStream.get() == NULL) + throw ExceptionNotFound("Table stream not found."); + + mpPieceTable = + WW8PieceTable::Pointer_t + (new WW8PieceTableImpl(*mpTableStream, mpFib->get_fcClx(), + mpFib->get_lcbClx())); + + { + Cp aCp(mpPieceTable->getLastCp()); + Fc aFc(mpPieceTable->getLastFc()); + CpAndFc aCpAndFc(aCp, aFc, PROP_DOC); + mCpAndFcs.insert(aCpAndFc); + } + + { + Cp aCp(mpFib->get_ccpText()); + + mDocumentEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mDocumentEndCpAndFc); + + aCp += mpFib->get_ccpFtn(); + mFootnoteEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mFootnoteEndCpAndFc); + + aCp += mpFib->get_ccpHdd(); + mHeaderEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mHeaderEndCpAndFc); + + aCp += mpFib->get_ccpAtn(); + mAnnotationEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mAnnotationEndCpAndFc); + + aCp += mpFib->get_ccpEdn(); + mEndnoteEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mEndnoteEndCpAndFc); + + aCp += mpFib->get_ccpTxbx(); + mTextboxEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mTextboxEndCpAndFc); + + aCp += mpFib->get_ccpHdrTxbx(); + mTextboxHeaderEndCpAndFc = CpAndFc(aCp, mpPieceTable->cp2fc(aCp), + PROP_DOC); + mCpAndFcs.insert(mTextboxHeaderEndCpAndFc); + } + + mpBinTablePAPX = + WW8BinTable::Pointer_t(new WW8BinTableImpl + (*mpTableStream, + mpFib->get_fcPlcfbtePapx(), + mpFib->get_lcbPlcfbtePapx())); + + //clog << "BinTable(PAP):" << mpBinTablePAPX->toString(); + + parseBinTableCpAndFcs(*mpBinTablePAPX, PROP_PAP); + + mpBinTableCHPX = + WW8BinTable::Pointer_t(new WW8BinTableImpl + (*mpTableStream, + mpFib->get_fcPlcfbteChpx(), + mpFib->get_lcbPlcfbteChpx())); + + //clog << "BinTable(CHP):" << mpBinTableCHPX->toString(); + + parseBinTableCpAndFcs(*mpBinTableCHPX, PROP_CHP); + + mpSEDs = PLCF<WW8SED>::Pointer_t(new PLCF<WW8SED> + (*mpTableStream, + mpFib->get_fcPlcfsed(), + mpFib->get_lcbPlcfsed())); + + //mpSEDs->dump(clog); + + { + sal_uInt32 nSEDs = mpSEDs->getEntryCount(); + for (sal_uInt32 n = 0; n < nSEDs; ++n) + { + Cp aCp(mpSEDs->getFc(n)); + CpAndFc aCpAndFc(aCp, mpPieceTable->cp2fc(aCp), PROP_SEC); + + mCpAndFcs.insert(aCpAndFc); + } + } + + sal_uInt32 nHeaders = getHeaderCount(); + + if (nHeaders > 0) + { + mpHeaderOffsets = WW8StructBase::Pointer_t + (new WW8StructBase(*mpTableStream, + mpFib->get_fcPlcfhdd(), + mpFib->get_lcbPlcfhdd())); + + { + for (sal_uInt32 n = 0; n <= nHeaders; ++n) + { + CpAndFc aCpAndFc(getHeaderCpAndFc(n)); + + mCpAndFcs.insert(aCpAndFc); + } + } + } + + if (mpFib->get_lcbPlcffndTxt() > 0) + { + WW8StructBase::Pointer_t pCps + (new WW8StructBase(*mpTableStream, + mpFib->get_fcPlcffndTxt(), + mpFib->get_lcbPlcffndTxt())); + + PLCF<WW8FRD>::Pointer_t pRefs + (new PLCF<WW8FRD>(*mpTableStream, + mpFib->get_fcPlcffndRef(), + mpFib->get_lcbPlcffndRef())); + + mpFootnoteHelper = XNoteHelper<WW8FRD>::Pointer_t + (new XNoteHelper<WW8FRD>(pCps, pRefs, mpPieceTable, this, + PROP_FOOTNOTE, getDocumentEndCp())); + + mpFootnoteHelper->init(); + } + + if (mpFib->get_lcbPlcfendTxt() > 0) + { + WW8StructBase::Pointer_t pCps + (new WW8StructBase(*mpTableStream, + mpFib->get_fcPlcfendTxt(), + mpFib->get_lcbPlcfendTxt())); + + PLCF<WW8FRD>::Pointer_t pRefs + (new PLCF<WW8FRD>(*mpTableStream, + mpFib->get_fcPlcfendRef(), + mpFib->get_lcbPlcfendRef())); + + mpEndnoteHelper = XNoteHelper<WW8FRD>::Pointer_t + (new XNoteHelper<WW8FRD>(pCps, pRefs, mpPieceTable, this, + PROP_ENDNOTE, getAnnotationEndCp())); + + mpEndnoteHelper->init(); + } + + if (mpFib->get_lcbPlcfandTxt() > 0) + { + WW8StructBase::Pointer_t pCps + (new WW8StructBase(*mpTableStream, + mpFib->get_fcPlcfandTxt(), + mpFib->get_lcbPlcfandTxt())); + + PLCF<WW8ATRD>::Pointer_t pRefs + (new PLCF<WW8ATRD>(*mpTableStream, + mpFib->get_fcPlcfandRef(), + mpFib->get_lcbPlcfandRef())); + + mpAnnotationHelper = XNoteHelper<WW8ATRD>::Pointer_t + (new XNoteHelper<WW8ATRD>(pCps, pRefs, mpPieceTable, this, + PROP_ANNOTATION, getHeaderEndCp())); + + mpAnnotationHelper->init(); + } + + if (mpFib->get_lcbSttbfbkmk() > 0) + { + PLCF<WW8BKF>::Pointer_t pStartCps + (new PLCF<WW8BKF>(*mpTableStream, mpFib->get_fcPlcfbkf(), + mpFib->get_lcbPlcfbkf())); + + WW8StructBase::Pointer_t pEndCps + (new WW8StructBase(*mpTableStream, mpFib->get_fcPlcfbkl(), + mpFib->get_lcbPlcfbkl())); + + WW8Sttbf::Pointer_t pNames + (new WW8Sttbf(*mpTableStream, mpFib->get_fcSttbfbkmk(), + mpFib->get_lcbSttbfbkmk())); + + mpBookmarkHelper = BookmarkHelper::Pointer_t + (new BookmarkHelper(pStartCps, pEndCps, pNames, mpPieceTable, this)); + + mpBookmarkHelper->init(); + } + + { + PLCF<WW8FLD>::Pointer_t pPlcffldMom; + + if (mpFib->get_lcbPlcffldMom() > 0) + { + pPlcffldMom = PLCF<WW8FLD>::Pointer_t + (new PLCF<WW8FLD>(*mpTableStream, + mpFib->get_fcPlcffldMom(), + mpFib->get_lcbPlcffldMom())); + + mpFieldHelper = FieldHelper::Pointer_t + (new FieldHelper(pPlcffldMom, + this)); + + mpFieldHelper->init(); + } + } + + PLCF<WW8FSPA>::Pointer_t pPlcspaMom; + if (mpFib->get_lcbPlcspaMom() > 0) + { + pPlcspaMom = PLCF<WW8FSPA>::Pointer_t + (new PLCF<WW8FSPA> + (*mpTableStream, mpFib->get_fcPlcspaMom(), + mpFib->get_lcbPlcspaMom())); + } + + PLCF<WW8FSPA>::Pointer_t pPlcspaHdr; + if (mpFib->get_lcbPlcspaHdr() > 0) + { + pPlcspaHdr = PLCF<WW8FSPA>::Pointer_t + (new PLCF<WW8FSPA> + (*mpTableStream, mpFib->get_fcPlcspaHdr(), + mpFib->get_lcbPlcspaHdr())); + } + + if (mpFib->get_fcDggInfo() != 0 && mpFib->get_lcbDggInfo() > 0) + { + mpDffBlock = DffBlock::Pointer_t + (new DffBlock(*mpTableStream, mpFib->get_fcDggInfo(), + mpFib->get_lcbDggInfo(), 1)); + } + + mpShapeHelper = ShapeHelper::Pointer_t + (new ShapeHelper(pPlcspaMom, pPlcspaHdr, this)); + + mpShapeHelper->init(); + + if (mCpAndFcs.size() > 0) + { + mCpAndFcStart = *mCpAndFcs.begin(); + mCpAndFcEnd = getDocumentEndCp(); + } +} + +bool WW8DocumentImpl::isSpecial(sal_uInt32 nChar) +{ + bool bResult = false; + + if (nChar <= 8) + bResult = true; + else if (nChar >= 10) + { + if (nChar <= 16) + bResult = true; + else if (nChar >= 22) + { + if (nChar <= 30) + bResult = true; + else if (nChar >= 33) + { + if (nChar <= 39) + bResult = true; + else if (nChar == 41) + bResult = true; + } + } + } + + return bResult; +} + +WW8DocumentImpl::WW8DocumentImpl(const WW8DocumentImpl & rSrc, + const CpAndFc & rStart, const CpAndFc & rEnd) +: bSubDocument(true), mfcPicLoc(0) +{ + Assign(rSrc); + + mCpAndFcStart = rStart; + mCpAndFcEnd = rEnd; +} + +WW8DocumentImpl & WW8DocumentImpl::Assign(const WW8DocumentImpl & rSrc) +{ + mCpAndFcs = rSrc.mCpAndFcs; + + mpCHPFKPCache = rSrc.mpCHPFKPCache; + mpPAPFKPCache = rSrc.mpPAPFKPCache; + + mpStream = rSrc.mpStream; + mpTableStream = rSrc.mpTableStream; + mpDocStream = rSrc.mpDocStream; + + mpPieceTable = rSrc.mpPieceTable; + + mpBinTableCHPX = rSrc.mpBinTableCHPX; + mpBinTablePAPX = rSrc.mpBinTablePAPX; + + mpSEDs = rSrc.mpSEDs; + + mpFib = rSrc.mpFib; + + mpHeaderOffsets = rSrc.mpHeaderOffsets; + mpFootnoteHelper = rSrc.mpFootnoteHelper; + mpEndnoteHelper = rSrc.mpEndnoteHelper; + mpAnnotationHelper = rSrc.mpAnnotationHelper; + + mpBookmarkHelper = rSrc.mpBookmarkHelper; + + mpDffBlock = rSrc.mpDffBlock; + + mDocumentEndCpAndFc = rSrc.mDocumentEndCpAndFc; + mFootnoteEndCpAndFc = rSrc.mFootnoteEndCpAndFc; + + return *this; +} + +string WW8DocumentImpl::getType() const +{ + return "WW8DocumentImpl"; +} + +void WW8DocumentImpl::parseBinTableCpAndFcs(WW8BinTable & rTable, + PropertyType eType_) +{ + //clog << "<bintable type=\"" << propertyTypeToString(eType_) << "\">" << endl; + for (sal_uInt32 i = 0; i < rTable.getEntryCount(); i++) + { +#if 0 + char sBuffer[255]; + snprintf(sBuffer, 255, "%ld", i); + char sBufferPageNum[255]; + snprintf(sBufferPageNum, 255, "%ld", rTable.getPageNumber(i)); +#endif + Fc aFcFromTable(rTable.getFc(i)); + + if (aFcFromTable < mpPieceTable->getFirstFc()) + aFcFromTable = mpPieceTable->getFirstFc(); + + bool bComplex = mpPieceTable->isComplex(aFcFromTable); + aFcFromTable.setComplex(bComplex); + + //clog << "<entry fc=\"" << aFcFromTable.toString() << "\">" << endl; + + try + { + Cp aCpFromTable(mpPieceTable->fc2cp(aFcFromTable)); + CpAndFc aCpAndFcFromTable(aCpFromTable, aFcFromTable, eType_); + + mCpAndFcs.insert(aCpAndFcFromTable); + + WW8FKP::Pointer_t pFKP; + + switch (eType_) + { + case PROP_CHP: + pFKP = getFKPCHPX(rTable.getPageNumber(i), + aCpAndFcFromTable.isComplex()); + + break; + + case PROP_PAP: + pFKP = getFKPPAPX(rTable.getPageNumber(i), + aCpAndFcFromTable.isComplex()); + + break; + default: + break; + } + + for (sal_uInt32 n = 0; n < pFKP->getEntryCount(); n++) + { + Fc aFc = pFKP->getFc(n); + + if (aFc < mpPieceTable->getFirstFc()) + aFc = mpPieceTable->getFirstFc(); + + bool bComplexFKP = mpPieceTable->isComplex(aFc); + aFc.setComplex(bComplexFKP); + + //clog << "<fkpentry fc=\"" << aFc.toString() << "\"/>" << endl; + + try + { + Cp aCp = mpPieceTable->fc2cp(aFc); + + CpAndFc aCpAndFc(aCp, aFc, eType_); + + mCpAndFcs.insert(aCpAndFc); + + //clog << aCpAndFc << endl; + } + catch (ExceptionNotFound e) + { + clog << e.getText() << endl; + } + } + } + catch (ExceptionNotFound e) + { + clog << e.getText() << endl; + } + + //clog << "</entry>" << endl; + } + + //clog << "</bintable>" << endl; +} + +WW8Stream::Pointer_t WW8DocumentImpl::getSubStream +(const ::rtl::OUString & sId) const +{ + return mpStream->getSubStream(sId); +} + +WW8Document::Pointer_t WW8DocumentImpl::getSubDocument(SubDocumentId /*nId*/) +{ + return WW8Document::Pointer_t(new WW8DocumentImpl(*this)); +} + +WW8DocumentIterator::Pointer_t +WW8DocumentImpl::getIterator(const CpAndFc & rCpAndFc) +{ + return WW8DocumentIterator::Pointer_t + (new WW8DocumentIteratorImpl(this, rCpAndFc)); +} + +WW8DocumentIterator::Pointer_t WW8DocumentImpl::begin() +{ + return getIterator(getFirstCp()); +} + +WW8DocumentIterator::Pointer_t WW8DocumentImpl::end() +{ + return getIterator(getLastCp()); +} + +WW8Stream::Pointer_t WW8DocumentImpl::getDocStream() const +{ + return mpDocStream; +} + +WW8Stream::Pointer_t WW8DocumentImpl::getDataStream() const +{ + return mpDataStream; +} + +sal_uInt32 WW8DocumentImpl::getByteLength(const CpAndFc & rCpAndFc) const +{ + CpAndFc aEnd = getNextCp(rCpAndFc); + + sal_uInt32 nResult = 3; + + if (rCpAndFc < aEnd) + nResult = (aEnd - rCpAndFc) * + (mpPieceTable->isComplex(rCpAndFc.getCp()) ? 1 : 2); + + return nResult; +} + +WW8Stream::Sequence +WW8DocumentImpl::getText(const CpAndFc & rStart) +{ + return mpDocStream->get(rStart.getFc().get(), getByteLength(rStart)); +} + +const CpAndFc & WW8DocumentImpl::getFirstCp() const +{ + return mCpAndFcStart; +} + +const CpAndFc & WW8DocumentImpl::getLastCp() const +{ + return mCpAndFcEnd; +} + +CpAndFc WW8DocumentImpl::getDocumentEndCp() const +{ + return mDocumentEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getFootnodeEndCp() const +{ + return mFootnoteEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getHeaderEndCp() const +{ + return mHeaderEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getAnnotationEndCp() const +{ + return mAnnotationEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getEndnoteEndCp() const +{ + return mEndnoteEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getTextboxEndCp() const +{ + return mTextboxEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getTextboxHeaderEndCp() const +{ + return mTextboxHeaderEndCpAndFc; +} + +CpAndFc WW8DocumentImpl::getNextCp(const CpAndFc & rCpAndFc) const +{ + CpAndFc aResult = mCpAndFcEnd; + CpAndFcs::const_iterator aIt = mCpAndFcs.find(rCpAndFc); + + if (aIt != mCpAndFcs.end()) + { + aIt++; + + if (aIt != mCpAndFcs.end()) + aResult = *aIt; + } + else + throw ExceptionNotFound("getNextCp: " + rCpAndFc.toString()); + + return aResult; +} + +CpAndFc WW8DocumentImpl::getPrevCp(const CpAndFc & rCpAndFc) const +{ + CpAndFc aResult = mCpAndFcStart; + + CpAndFcs::const_iterator aIt = mCpAndFcs.find(CpAndFc(rCpAndFc)); + + if (aIt != mCpAndFcs.end() && aIt != mCpAndFcs.begin()) + { + aIt--; + + aResult = *aIt; + } + else + throw ExceptionNotFound("getPrevCp: " + rCpAndFc.toString()); + + return aResult; +} + +WW8FKP::Pointer_t WW8DocumentImpl::getFKP(const CpAndFc & rCpAndFc) +{ + WW8FKP::Pointer_t pResult; + + sal_uInt32 nPageNumber = 0; + + switch (rCpAndFc.getType()) + { + case PROP_PAP: + { + nPageNumber = + mpBinTablePAPX->getPageNumber(rCpAndFc.getFc()); + + pResult = getFKPPAPX(nPageNumber, rCpAndFc.isComplex()); + } + break; + case PROP_CHP: + { + nPageNumber = + mpBinTableCHPX->getPageNumber(rCpAndFc.getFc()); + + pResult = getFKPCHPX(nPageNumber, rCpAndFc.isComplex()); + } + break; + default: + break; + } + + if (pResult.get() != NULL) + pResult->setDocument(this); + + return pResult; +} + +WW8FKP::Pointer_t WW8DocumentImpl::getFKPCHPX(sal_uInt32 nIndex, + bool bComplex) +{ + return mpCHPFKPCache->get(nIndex, bComplex); +} + +WW8FKP::Pointer_t WW8DocumentImpl::getFKPPAPX(sal_uInt32 nIndex, + bool bComplex) +{ + return mpPAPFKPCache->get(nIndex, bComplex); +} + +doctok::Reference<Properties>::Pointer_t WW8DocumentImpl::getProperties +(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Properties>::Pointer_t pResult; + + switch (rCpAndFc.getType()) + { + case PROP_CHP: + case PROP_PAP: + { + try + { + WW8FKP::Pointer_t pFKP = getFKP(rCpAndFc); + + pResult = pFKP->getProperties(rCpAndFc.getFc()); + } + catch (ExceptionOutOfBounds e) + { + } + } + + break; + + case PROP_SEC: + { + pResult = doctok::Reference<Properties>::Pointer_t + (getSED(rCpAndFc)); + } + + break; + + case PROP_FOOTNOTE: + { + pResult = doctok::Reference<Properties>::Pointer_t + (mpFootnoteHelper->getRef(rCpAndFc)); + } + break; + + case PROP_ENDNOTE: + { + pResult = doctok::Reference<Properties>::Pointer_t + (mpEndnoteHelper->getRef(rCpAndFc)); + } + break; + + case PROP_ANNOTATION: + { + pResult = doctok::Reference<Properties>::Pointer_t + (mpAnnotationHelper->getRef(rCpAndFc)); + } + break; + + case PROP_BOOKMARKSTART: + case PROP_BOOKMARKEND: + { + pResult = getBookmark(rCpAndFc); + } + + break; + case PROP_FLD: + { + pResult = getField(rCpAndFc); + } + + break; + case PROP_SHP: + { + pResult = getShape(rCpAndFc); + } + default: + break; + } + + return pResult; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getSubDocument(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + switch (rCpAndFc.getType()) + { + case PROP_FOOTNOTE: + pResult = getFootnote(rCpAndFc); + break; + + case PROP_ENDNOTE: + pResult = getEndnote(rCpAndFc); + break; + + case PROP_ANNOTATION: + pResult = getAnnotation(rCpAndFc); + break; + + default: + break; + } + + return pResult; +} + +WW8SED * WW8DocumentImpl::getSED(const CpAndFc & rCpAndFc) const +{ + WW8SED * pResult = mpSEDs->getEntryByFc(rCpAndFc.getCp().get()); + + pResult->setDoc(const_cast<const WW8DocumentImpl *>(this)); + + return pResult; +} + +doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getListTable() const +{ + doctok::Reference<Table>::Pointer_t pResult; + + if (mpFib->get_fcPlcfLst() != 0 && mpFib->get_lcbPlcfLst() > 0) + { + WW8ListTable * pList = new WW8ListTable(*mpTableStream, + mpFib->get_fcPlcfLst(), + mpFib->get_fcPlfLfo() - + mpFib->get_fcPlcfLst()); + + pList->setPayloadOffset(mpFib->get_lcbPlcfLst()); + pList->initPayload(); + + pResult = doctok::Reference<Table>::Pointer_t(pList); + } + + return pResult; +} + +doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getLFOTable() const +{ + doctok::Reference<Table>::Pointer_t pResult; + + if (mpFib->get_fcPlfLfo() != 0 && mpFib->get_lcbPlfLfo() > 0) + { + try + { + WW8LFOTable * pLFOs = new WW8LFOTable(*mpTableStream, + mpFib->get_fcPlfLfo(), + mpFib->get_lcbPlfLfo()); + + pLFOs->setPayloadOffset(mpFib->get_lcbPlcfLst()); + pLFOs->initPayload(); + + pResult = doctok::Reference<Table>::Pointer_t(pLFOs); + } + catch (Exception e) + { + clog << e.getText() << endl; + } + } + + return pResult; +} + +doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getFontTable() const +{ + doctok::Reference<Table>::Pointer_t pResult; + + if (mpFib->get_fcSttbfffn() != 0 && mpFib->get_lcbSttbfffn() > 0) + { + WW8FontTable * pFonts = new WW8FontTable(*mpTableStream, + mpFib->get_fcSttbfffn(), + mpFib->get_lcbSttbfffn()); + + pFonts->initPayload(); + + pResult = doctok::Reference<Table>::Pointer_t(pFonts); + } + + return pResult; +} + +doctok::Reference<Table>::Pointer_t WW8DocumentImpl::getStyleSheet() const +{ + doctok::Reference<Table>::Pointer_t pResult; + + if (mpFib->get_lcbStshf() > 0) + { + WW8StyleSheet * pStyles = new WW8StyleSheet(*mpTableStream, + mpFib->get_fcStshf(), + mpFib->get_lcbStshf()); + + pStyles->initPayload(); + + pResult = doctok::Reference<Table>::Pointer_t(pStyles); + } + + return pResult; +} + +sal_uInt32 WW8DocumentImpl::getHeaderCount() const +{ + sal_uInt32 nResult = 0; + sal_uInt32 nLcbPlcfhdd = mpFib->get_lcbPlcfhdd(); + + if (nLcbPlcfhdd > 4) + nResult = (nLcbPlcfhdd / 4) - 1; + + return nResult; +} + +CpAndFc WW8DocumentImpl::getHeaderCpAndFc(sal_uInt32 nPos) +{ + sal_uInt32 nCount = getHeaderCount(); + + // There are getHeaderCount() + 1 entries in mpHeaderOffsets => greater + if (nPos > nCount) + throw ExceptionNotFound("getHeaderCpAndFc"); + + if (nPos == nCount) + return mHeaderEndCpAndFc; + else + { + Cp aCp(getFootnodeEndCp().getCp() + mpHeaderOffsets->getU32(nPos * 4)); + Fc aFc(mpPieceTable->cp2fc(aCp)); + CpAndFc aCpAndFc(aCp, aFc, PROP_DOC); + + return aCpAndFc; + } + + // never reached + return CpAndFc(); +} + +doctok::Reference<Stream>::Pointer_t WW8DocumentImpl::getHeader(sal_uInt32 nPos) +{ + // There are getHeaderCount() headers => greater or equal + if (nPos >= getHeaderCount()) + throw ExceptionNotFound("getHeader"); + + doctok::Reference<Stream>::Pointer_t pResult; + + CpAndFc aCpAndFcStart(getHeaderCpAndFc(nPos)); + CpAndFc aCpAndFcEnd(getHeaderCpAndFc(nPos + 1)); + + sal_uInt32 nEquals = 1; + while (aCpAndFcEnd == aCpAndFcStart && nPos + nEquals < getHeaderCount()) + { + ++nEquals; + + aCpAndFcEnd = getHeaderCpAndFc(nPos + nEquals); + } + + if (aCpAndFcStart < aCpAndFcEnd) + pResult = doctok::Reference<Stream>::Pointer_t + (new WW8DocumentImpl(*this, aCpAndFcStart, aCpAndFcEnd)); + + return pResult; +} + +sal_uInt32 WW8DocumentImpl::getFootnoteCount() const +{ + return (mpFootnoteHelper.get() != NULL) ? mpFootnoteHelper->getCount() : 0; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getFootnote(sal_uInt32 nPos) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + if (! bSubDocument) + pResult = mpFootnoteHelper->get(nPos); + + return pResult; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getFootnote(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + if (! bSubDocument) + pResult = mpFootnoteHelper->get(rCpAndFc); + + return pResult; +} + +sal_uInt32 WW8DocumentImpl::getEndnoteCount() const +{ + return mpEndnoteHelper.get() != NULL ? mpEndnoteHelper->getCount() : 0; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getEndnote(sal_uInt32 nPos) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + if (! bSubDocument) + pResult = mpEndnoteHelper->get(nPos); + + return pResult; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getEndnote(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + if (! bSubDocument) + pResult = mpEndnoteHelper->get(rCpAndFc); + + return pResult; +} + +sal_uInt32 WW8DocumentImpl::getAnnotationCount() const +{ + return mpAnnotationHelper.get() != NULL ? + mpAnnotationHelper->getCount() : 0; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getAnnotation(sal_uInt32 nPos) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + if (! bSubDocument) + pResult = mpAnnotationHelper->get(nPos); + + return pResult; +} + +doctok::Reference<Stream>::Pointer_t +WW8DocumentImpl::getAnnotation(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + if (! bSubDocument) + pResult = mpAnnotationHelper->get(rCpAndFc); + + return pResult; +} + +doctok::Reference<Properties>::Pointer_t +WW8DocumentImpl::getBookmark(const CpAndFc & rCpAndFc) const +{ + return mpBookmarkHelper->getBookmark(rCpAndFc); +} + +doctok::Reference<Properties>::Pointer_t +WW8DocumentImpl::getShape(const CpAndFc & rCpAndFc) const +{ + return mpShapeHelper->getShape(rCpAndFc); +} + +doctok::Reference<Properties>::Pointer_t +WW8DocumentImpl::getShape(sal_uInt32 nSpid) +{ + DffRecord * pTmp = new DffRecord(*mpDffBlock->getShape(nSpid)); + return doctok::Reference<Properties>::Pointer_t(pTmp); +} + +doctok::Reference<Properties>::Pointer_t +WW8DocumentImpl::getField(const CpAndFc & rCpAndFc) const +{ + return mpFieldHelper->getField(rCpAndFc); +} + +sal_uInt32 WW8DocumentImpl::getPicLocation() const +{ + return mfcPicLoc; +} + +void WW8DocumentImpl::setPicLocation(sal_uInt32 fcPicLoc) +{ + mfcPicLoc = fcPicLoc; +} + +QName_t lcl_headerQName(sal_uInt32 nIndex) +{ + QName_t qName = NS_rtf::LN_header; + + if (nIndex > 5) + { + switch ((nIndex - 6) % 6) + { + case 0: + qName = NS_rtf::LN_headerl; + + break; + case 1: + qName = NS_rtf::LN_headerr; + + break; + case 2: + qName = NS_rtf::LN_footerl; + + break; + case 3: + qName = NS_rtf::LN_footerr; + + break; + case 4: + qName = NS_rtf::LN_headerf; + + break; + case 5: + qName = NS_rtf::LN_footerf; + + break; + } + } + + return qName; +} + +Fc WW8DocumentImpl::cp2fc(const Cp & cp) const +{ + return mpPieceTable->cp2fc(cp); +} + +Cp WW8DocumentImpl::fc2cp(const Fc & fc) const +{ + return mpPieceTable->fc2cp(fc); +} + +CpAndFc WW8DocumentImpl::getCpAndFc(const Cp & cp, PropertyType type) const +{ + Fc aFc = cp2fc(cp); + + return CpAndFc(cp, aFc, type); +} + +CpAndFc WW8DocumentImpl::getCpAndFc(const Fc & fc, PropertyType type) const +{ + Cp aCp = fc2cp(fc); + + return CpAndFc(aCp, fc, type); +} + +void WW8DocumentImpl::resolvePicture(Stream & rStream) +{ + WW8Stream::Pointer_t pStream = getDataStream(); + + if (pStream.get() != NULL) + { + WW8StructBase aStruct(*pStream, mfcPicLoc, 4); + sal_uInt32 nCount = aStruct.getU32(0); + + doctok::Reference<Properties>::Pointer_t pPicf + (new WW8PICF(*pStream, mfcPicLoc, nCount)); + + rStream.props(pPicf); + } +} + +void WW8DocumentImpl::resolveText(WW8DocumentIterator::Pointer_t pIt, + Stream & rStream) +{ + WW8Stream::Sequence aSeq = pIt->getText(); + + sal_uInt32 nCount = aSeq.getCount(); + bool bComplex = pIt->isComplex(); + +#if 1 + /* + Assumption: Special characters are always at the end of a run. + */ + if (nCount > 0) + { + if (nCount == 1) + bComplex = true; + + sal_uInt32 nIndex = nCount - (bComplex ? 1 : 2); + sal_uInt32 nChar = aSeq[nIndex]; + + if (! bComplex) + nChar += aSeq[nIndex + 1] << 8; + + if (isSpecial(nChar)) + { + if (bComplex) + { + rStream.text(&aSeq[0], nIndex); + rStream.text(&aSeq[nIndex], 1); + } + else + { + rStream.utext(&aSeq[0], nIndex / 2); + rStream.utext(&aSeq[nIndex], 1); + } + + switch (nChar) + { + case 0x1: + resolvePicture(rStream); + break; + default: + break; + } + } + else + { + if (bComplex) + rStream.text(&aSeq[0], nCount); + else + rStream.utext(&aSeq[0], nCount/2); + + } + } +#else + sal_uInt32 nIndex = 0; + + while (nIndex < nCount) + { + sal_uInt32 nChar = aSeq[nIndex]; + + if (! bComplex) + nChar += aSeq[nIndex + 1] << 8; + + if (isSpecial(nChar)) + { + if (bComplex) + { + if (nStart < nIndex) + rStream.text(&aSeq[nStart], nIndex - nStart); + rStream.text(&aSeq[nIndex], 1); + } + else + { + if (nStart < nIndex) + rStream.utext(&aSeq[nStart], (nIndex - nStart) / 2); + + rStream.utext(&aSeq[nIndex], 1); + } + + nStart = nIndex + (bComplex ? 1 : 2); + } + + nIndex += bComplex ? 1 : 2; + } + + if (nStart < nCount) + { + if (bComplex) + rStream.text(&aSeq[nStart], nCount - nStart); + else + rStream.utext(&aSeq[nStart], (nCount - nStart) / 2); + } +#endif +} + +void WW8DocumentImpl::resolve(Stream & rStream) +{ + if (! bSubDocument) + { + //mpPieceTable->dump(clog); + + //copy(mCpAndFcs.begin(), mCpAndFcs.end(), ostream_iterator<CpAndFc>(clog, ", ")); + + doctok::Reference<Properties>::Pointer_t pFib + (new WW8Fib(*mpFib)); + rStream.props(pFib); + + if (mpFib->get_lcbPlcftxbxTxt() > 0) + { + WW8StructBase aStructBase(*mpTableStream, mpFib->get_fcPlcftxbxTxt(), + mpFib->get_lcbPlcftxbxTxt()); + + WW8OutputWithDepth output; + output.addItem("<textboxes>"); + aStructBase.dump(output); + output.addItem("</textboxes>"); + } + + if (mpFib->get_lcbPlcftxbxBkd() > 0) + { + PLCF<WW8BKD> aPLCF(*mpTableStream, + mpFib->get_fcPlcftxbxBkd(), + mpFib->get_lcbPlcftxbxBkd()); + + WW8OutputWithDepth output; + output.addItem("<textboxes.breaks>"); + aPLCF.dump(output); + output.addItem("</textboxes.breaks>"); + } + + if (mpDffBlock.get() != NULL) + { + DffBlock * pTmp = new DffBlock(*mpDffBlock); + //pTmp->dump(clog); + doctok::Reference<Properties>::Pointer_t pDffBlock = + doctok::Reference<Properties>::Pointer_t(pTmp); + + rStream.props(pDffBlock); + } + +#if 0 + { + sal_uInt32 nHeaderCount = getHeaderCount(); + for (sal_uInt32 n = 0; n < nHeaderCount; ++n) + { +#if 0 + clog << "<header num=\"" << n << "\" cp=\"" + << getHeaderCpAndFc(n) << "\"/>" << endl; +#endif + doctok::Reference<Stream>::Pointer_t pHeader(getHeader(n)); + + QName_t qName = lcl_headerQName(n); + + if (pHeader.get() != NULL) + rStream.substream(qName, pHeader); + } + } + + { + sal_uInt32 nFootnoteCount = getFootnoteCount(); + for (sal_uInt32 n = 0; n < nFootnoteCount; ++n) + { + //clog << "<footnote num=\"" << n << "\"/>" << endl; + + doctok::Reference<Stream>::Pointer_t pFootnote(getFootnote(n)); + + if (pFootnote.get() != NULL) + rStream.substream(NS_rtf::LN_footnote, pFootnote); + } + } + { + sal_uInt32 nEndnoteCount = getEndnoteCount(); + for (sal_uInt32 n = 0; n < nEndnoteCount; ++n) + { + //clog << "<endnote num=\"" << n << "\"/>" << endl; + + doctok::Reference<Stream>::Pointer_t pEndnote(getEndnote(n)); + + if (pEndnote.get() != NULL) + rStream.substream(NS_rtf::LN_endnote, pEndnote); + } + } +#endif + + + doctok::Reference<Table>::Pointer_t pListTable = getListTable(); + + if (pListTable.get() != NULL) + rStream.table(NS_rtf::LN_LISTTABLE, pListTable); + + doctok::Reference<Table>::Pointer_t pLFOTable = getLFOTable(); + + if (pLFOTable.get() != NULL) + rStream.table(NS_rtf::LN_LFOTABLE, pLFOTable); + + doctok::Reference<Table>::Pointer_t pFontTable = getFontTable(); + + if (pFontTable.get() != NULL) + rStream.table(NS_rtf::LN_FONTTABLE, pFontTable); + + try + { + doctok::Reference<Table>::Pointer_t pStyleSheet = getStyleSheet(); + + if (pStyleSheet.get() != NULL) + rStream.table(NS_rtf::LN_STYLESHEET, pStyleSheet); + } + catch (Exception e) + { + clog << e.getText() << endl; + } + } + + WW8DocumentIterator::Pointer_t pIt = begin(); + WW8DocumentIterator::Pointer_t pItEnd = end(); + + bool bInParagraphGroup = false; + bool bInCharacterGroup = false; + bool bInSection = false; + + sal_uInt32 nSectionIndex = 0; + + rStream.info(pIt->toString()); + rStream.info(pItEnd->toString()); + + while (! pIt->equal(*pItEnd)) + { + Reference<doctok::Properties>::Pointer_t + pProperties(pIt->getProperties()); + + switch (pIt->getPropertyType()) + { + case PROP_FOOTNOTE: + { + rStream.info(pIt->toString()); + doctok::Reference<Stream>::Pointer_t + pFootnote(pIt->getSubDocument()); + + if (pFootnote.get() != NULL) + rStream.substream(NS_rtf::LN_footnote, pFootnote); + } + break; + case PROP_ENDNOTE: + { + rStream.info(pIt->toString()); + doctok::Reference<Stream>::Pointer_t + pEndnote(pIt->getSubDocument()); + + if (pEndnote.get() != NULL) + rStream.substream(NS_rtf::LN_endnote, pEndnote); + } + break; + case PROP_ANNOTATION: + { + rStream.info(pIt->toString()); + doctok::Reference<Stream>::Pointer_t + pAnnotation(pIt->getSubDocument()); + + if (pAnnotation.get() != NULL) + rStream.substream(NS_rtf::LN_annotation, pAnnotation); + } + break; + case PROP_CHP: + { + if (bInCharacterGroup) + rStream.endCharacterGroup(); + + rStream.info(pIt->toString()); + rStream.startCharacterGroup(); + + bInCharacterGroup = true; + } + + break; + case PROP_PAP: + { + if (bInCharacterGroup) + { + rStream.endCharacterGroup(); + bInCharacterGroup = false; + } + + if (bInParagraphGroup) + rStream.endParagraphGroup(); + + rStream.info(pIt->toString()); + rStream.startParagraphGroup(); + + bInParagraphGroup = true; + } + + break; + case PROP_SEC: + { + if (bInCharacterGroup) + { + rStream.endCharacterGroup(); + bInCharacterGroup = false; + } + + if (bInParagraphGroup) + { + rStream.endParagraphGroup(); + bInParagraphGroup = false; + } + + if (bInSection) + rStream.endSectionGroup(); + + rStream.startSectionGroup(); + rStream.info(pIt->toString()); + + bInSection = true; + + sal_uInt32 nHeaderStartIndex = 6 + nSectionIndex * 6; + sal_uInt32 nHeaderEndIndex = nHeaderStartIndex + 6; + + if (nHeaderStartIndex >= getHeaderCount()) + nHeaderStartIndex = getHeaderCount(); + + if (nHeaderEndIndex >= getHeaderCount()) + nHeaderEndIndex = getHeaderCount(); + + for (sal_uInt32 n = nHeaderStartIndex; n < nHeaderEndIndex; ++n) + { + doctok::Reference<Stream>::Pointer_t + pHeader(getHeader(n)); + + QName_t qName = lcl_headerQName(n); + + if (pHeader.get() != NULL) + rStream.substream(qName, pHeader); + } + + ++nSectionIndex; + } + + break; + default: + rStream.info(pIt->toString()); + } + + if (pProperties.get() != NULL) + { + rStream.props(pProperties); + } + + resolveText(pIt, rStream); + + ++(*pIt); + } + + if (bInCharacterGroup) + rStream.endCharacterGroup(); + + if (bInParagraphGroup) + rStream.endParagraphGroup(); + + if (bInSection) + rStream.endSectionGroup(); + +} + +WW8Stream::Pointer_t +WW8DocumentFactory::createStream(uno::Reference<uno::XComponentContext> rContext, + uno::Reference<io::XInputStream> rStream) +{ + return WW8Stream::Pointer_t(new WW8StreamImpl(rContext, rStream)); +} + +WW8Document::Pointer_t +WW8DocumentFactory::createDocument(WW8Stream::Pointer_t rpStream) +{ + return WW8Document::Pointer_t(new WW8DocumentImpl(rpStream)); +} + +doctok::Reference<Properties>::Pointer_t +WW8SED::get_sepx() +{ + doctok::Reference<Properties>::Pointer_t pResult; + + if (get_fcSepx() != 0xffffffff) + { + WW8StructBase aTmp(*mpDoc->getDocStream(), get_fcSepx(), 2); + pResult = doctok::Reference<Properties>::Pointer_t + (new WW8PropertySetImpl + (*mpDoc->getDocStream(), get_fcSepx() + 2, + (sal_uInt32) aTmp.getU16(0), false)); + } + + return pResult; +} + +void WW8DocumentImpl::insertCpAndFc(const CpAndFc & rCpAndFc) +{ + mCpAndFcs.insert(rCpAndFc); +} + +string propertyTypeToString(PropertyType nType) +{ + string result; + + switch (nType) + { + case PROP_SHP: + result = "SHP"; + + break; + case PROP_FLD: + result = "FLD"; + + break; + case PROP_BOOKMARKSTART: + result = "BOOKMARKSTART"; + + break; + case PROP_BOOKMARKEND: + result = "BOOKMARKEND"; + + break; + case PROP_ENDNOTE: + result = "ENDNOTE"; + + break; + case PROP_FOOTNOTE: + result = "FOOTNOTE"; + + break; + case PROP_ANNOTATION: + result = "ANNOTATION"; + + break; + case PROP_DOC: + result = "DOC"; + + break; + + case PROP_SEC: + result = "SEC"; + + break; + + case PROP_PAP: + result = "PAP"; + + break; + + case PROP_CHP: + result = "CHP"; + + break; + default: + break; + } + + return result; +} + +string CpAndFc::toString() const +{ + string result; + + result += "("; + result += getCp().toString(); + result += ", "; + result += getFc().toString(); + result += ", "; + + result += propertyTypeToString(getType()); + + result += ")"; + + return result; +} + + +// Bookmark + +Bookmark::Bookmark(doctok::Reference<Properties>::Pointer_t pBKF, + rtl::OUString & rName) +: mpBKF(pBKF), mName(rName) +{ +} + +void Bookmark::resolve(Properties & rHandler) +{ + mpBKF->resolve(rHandler); + + WW8Value::Pointer_t pValue = createValue(mName); + rHandler.attribute(NS_rtf::LN_BOOKMARKNAME, *pValue); +} + +string Bookmark::getType() const +{ + return "Bookmark"; +} + +// BookmarkHelper + +CpAndFc BookmarkHelper::getStartCpAndFc(sal_uInt32 nPos) +{ + Cp aCp(mpStartCps->getFc(nPos)); + Fc aFc(mpPieceTable->cp2fc(aCp)); + CpAndFc aCpAndFc(aCp, aFc, PROP_BOOKMARKSTART); + + return aCpAndFc; +} + +CpAndFc BookmarkHelper::getEndCpAndFc(sal_uInt32 nPos) +{ + Cp aCp(mpEndCps->getU32(nPos * 4)); + Fc aFc(mpPieceTable->cp2fc(aCp)); + CpAndFc aCpAndFc(aCp, aFc, PROP_BOOKMARKEND); + + return aCpAndFc; +} + +rtl::OUString BookmarkHelper::getName(sal_uInt32 nPos) +{ + return mpNames->getEntry(nPos); +} + +sal_uInt32 BookmarkHelper::getIndex(const CpAndFc & rCpAndFc) +{ + sal_uInt32 nResult = mpStartCps->getEntryCount(); + + sal_uInt32 nCp = rCpAndFc.getCp().get(); + + sal_uInt32 n; + switch (rCpAndFc.getType()) + { + case PROP_BOOKMARKSTART: + { + sal_uInt32 nStartsCount = mpStartCps->getEntryCount(); + + for (n = 0; n < nStartsCount; ++n) + { + if (nCp == mpStartCps->getFc(n)) + { + nResult = n; + + break; + } + } + + if (n == nStartsCount) + throw ExceptionNotFound("BookmarkHelper::getIndex"); + } + + break; + + case PROP_BOOKMARKEND: + { + sal_uInt32 nEndsCount = mpEndCps->getCount() / 4; + sal_uInt32 nIndex = nEndsCount; + + for (n = 0; n < nEndsCount; ++n) + { + if (nCp == mpEndCps->getU16(n * 4)) + { + nIndex = n; + + break; + } + } + + if (n == nEndsCount) + throw ExceptionNotFound("BookmarkHelper::getIndex"); + + { + { + sal_uInt32 nStartsCount = mpStartCps->getEntryCount(); + for (n = 0; n < nStartsCount; ++n) + { + WW8BKF::Pointer_t pBKF(mpStartCps->getEntry(n)); + + if (pBKF->get_ibkl() == + sal::static_int_cast<sal_Int32>(nIndex)) + { + nResult = n; + + break; + } + } + + if (n == nStartsCount) + throw ExceptionNotFound("BookmarkHelper::getIndex"); + } + } + } + + break; + default: + break; + } + + return nResult; +} + +void BookmarkHelper::init() +{ + { + sal_uInt32 nStartsCount = mpStartCps->getEntryCount(); + + for (sal_uInt32 n = 0; n < nStartsCount; ++n) + mpDoc->insertCpAndFc(getStartCpAndFc(n)); + } + + { + sal_uInt32 nEndsCount = mpEndCps->getCount() / 4; + + for (sal_uInt32 n = 0; n < nEndsCount; ++n) + mpDoc->insertCpAndFc(getEndCpAndFc(n)); + } +} + +doctok::Reference<Properties>::Pointer_t +BookmarkHelper::getBKF(const CpAndFc & rCpAndFc) +{ + sal_uInt32 nIndex = getIndex(rCpAndFc); + + return doctok::Reference<Properties>::Pointer_t + (mpStartCps->getEntryPointer(nIndex)); +} + +doctok::Reference<Properties>::Pointer_t +BookmarkHelper::getBookmark(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Properties>::Pointer_t pResult; + + try + { + rtl::OUString aName = getName(rCpAndFc); + + pResult = doctok::Reference<Properties>::Pointer_t + (new Bookmark(getBKF(rCpAndFc), aName)); + } + catch (ExceptionNotFound e) + { + clog << e.getText() << endl; + } + + return pResult; +} + +rtl::OUString BookmarkHelper::getName(const CpAndFc & rCpAndFc) +{ + rtl::OUString sResult; + + sal_uInt32 nIndex = getIndex(rCpAndFc); + + sResult = getName(nIndex); + + return sResult; +} + +template <class T, class Helper> +struct ProcessPLCF2Map +{ + void process(typename PLCF<T>::Pointer_t pPlcf, + typename Helper::Map_t & rMap, + PropertyType type, + WW8DocumentImpl * pDoc) + { + if (pPlcf.get() != NULL) + { + sal_uInt32 nCount = pPlcf->getEntryCount(); + + for (sal_uInt32 n = 0; n < nCount; n++) + { + Cp aCp(pPlcf->getFc(n)); + CpAndFc aCpAndFc(pDoc->getCpAndFc(aCp, type)); + typename T::Pointer_t pT = pPlcf->getEntry(n); + + rMap[aCpAndFc] = pT; + } + } + } +}; + +FieldHelper::FieldHelper(PLCF<WW8FLD>::Pointer_t pPlcffldMom, + WW8DocumentImpl * pDoc) +: mpDoc(pDoc) +{ + ProcessPLCF2Map<WW8FLD, FieldHelper> process; + process.process(pPlcffldMom, mMap, PROP_FLD, pDoc); +} + +void FieldHelper::init() +{ + Map_t::iterator aIt; + + for (aIt = mMap.begin(); aIt != mMap.end(); aIt++) + { + mpDoc->insertCpAndFc(aIt->first); + } +} + +doctok::Reference<Properties>::Pointer_t +FieldHelper::getField(const CpAndFc & rCpAndFc) +{ + WW8FLD::Pointer_t pFLD = mMap[rCpAndFc]; + + return doctok::Reference<Properties>::Pointer_t + (new WW8FLD(*pFLD)); +} + +ShapeHelper::ShapeHelper(PLCF<WW8FSPA>::Pointer_t pPlcspaMom, + PLCF<WW8FSPA>::Pointer_t pPlcspaHdr, + WW8DocumentImpl * pDoc) +: mpDoc(pDoc) +{ + ProcessPLCF2Map<WW8FSPA, ShapeHelper> process; + process.process(pPlcspaMom, mMap, PROP_SHP, pDoc); + process.process(pPlcspaHdr, mMap, PROP_SHP, pDoc); +} + +void ShapeHelper::init() +{ + Map_t::iterator aIt; + + for (aIt = mMap.begin(); aIt != mMap.end(); aIt++) + { + mpDoc->insertCpAndFc(aIt->first); + aIt->second->setDocument(mpDoc); + } +} + +doctok::Reference<Properties>::Pointer_t +ShapeHelper::getShape(const CpAndFc & rCpAndFc) +{ + WW8FSPA::Pointer_t pFSPA = mMap[rCpAndFc]; + + return doctok::Reference<Properties>::Pointer_t + (new WW8FSPA(*pFSPA)); +} + + +} diff --git a/writerfilter/source/doctok/WW8DocumentImpl.hxx b/writerfilter/source/doctok/WW8DocumentImpl.hxx new file mode 100644 index 000000000000..28cdb40a40b6 --- /dev/null +++ b/writerfilter/source/doctok/WW8DocumentImpl.hxx @@ -0,0 +1,714 @@ +#ifndef INCLUDED_WW8_DOCUMENT_IMPL_HXX +#define INCLUDED_WW8_DOCUMENT_IMPL_HXX + +#include <set> +#ifndef INCLUDED_WW8_PIECE_TABLE_HXX +#include <WW8PieceTable.hxx> +#endif +#ifndef INCLUDED_WW8_BIN_TABLE_HXX +#include <WW8BinTable.hxx> +#endif +#ifndef INCLUDED_RESOURCES_HXX +#include <resources.hxx> +#endif +#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX +#include <doctok/WW8ResourceModel.hxx> +#endif +#ifndef INCLUDED_PLCF_HXX +#include <PLCF.hxx> +#endif +#ifndef INCLUDED_WW8_STTBF_HXX +#include <WW8Sttbf.hxx> +#endif +#ifndef INCLUDED_X_NOTE_HELPER_HXX +#include <XNoteHelper.hxx> +#endif + +namespace doctok +{ + +class WW8DocumentImpl; + +/** + A bookmark. +*/ +class Bookmark : public doctok::Reference<Properties> +{ + /// bookmark first descriptor + doctok::Reference<Properties>::Pointer_t mpBKF; + + /// name of bookmark + rtl::OUString mName; + +public: + Bookmark(doctok::Reference<Properties>::Pointer_t pBKF, + rtl::OUString & rName); + + /** + Resolve bookmark to handler. + + @param rHandler handler to send events to + */ + virtual void resolve(Properties & rHandler); + + virtual string getType() const; +}; + +/** + A helper for bookmarks. + */ +class BookmarkHelper +{ + /// PLCF containing Cps and BKFs for the bookmarks + PLCF<WW8BKF>::Pointer_t mpStartCps; + + /// Cps of the ends of bookmarks + WW8StructBase::Pointer_t mpEndCps; + + /// STTBF containing the names of bookmarks + WW8Sttbf::Pointer_t mpNames; + + /// piece table for converting CPs to FCs + WW8PieceTable::Pointer_t mpPieceTable; + + /// document to insert CpAndFcs to + WW8DocumentImpl * mpDoc; + + /** + Return start CpAndFc for a bookmark. + + @param nPos index of the bookmark + */ + CpAndFc getStartCpAndFc(sal_uInt32 nPos); + + /** + Return end CpAndFc for a bookmark. + + @param nPos index of the bookmark + */ + CpAndFc getEndCpAndFc(sal_uInt32 nPos); + + /** + Return the name of a bookmark. + + @param nPos index of the bookmark + */ + rtl::OUString getName(sal_uInt32 nPos); + + /** + Return index of a bookmark. + + @param rCpAndFc CpAndFc of the bookmark + */ + sal_uInt32 getIndex(const CpAndFc & rCpAndFc); + +public: + typedef boost::shared_ptr<BookmarkHelper> Pointer_t; + + BookmarkHelper(PLCF<WW8BKF>::Pointer_t pStartCps, + WW8StructBase::Pointer_t pEndCps, + WW8Sttbf::Pointer_t pNames, + WW8PieceTable::Pointer_t pPieceTable, + WW8DocumentImpl * pDoc) + : mpStartCps(pStartCps), mpEndCps(pEndCps), mpNames(pNames), + mpPieceTable(pPieceTable), mpDoc(pDoc) + { + } + + /** + Initialize. + + Inserts CpAndFcs for the bookmark starts and ends into the + document. + */ + void init(); + + /** + Return BKF of a bookmark. + + @param rCpAndFc CpAndFc of the bookmark + */ + doctok::Reference<Properties>::Pointer_t getBKF(const CpAndFc & rCpAndFc); + + /** + Return the name of a bookmark. + + @param rCpAndFc CpAndFc of the bookmark + */ + rtl::OUString getName(const CpAndFc & rCp); + + /** + Return bookmark. + @param rCpAndFc CpAndFc of the bookmark + */ + doctok::Reference<Properties>::Pointer_t + getBookmark(const CpAndFc & rCpAndFc); +}; + +/** + Helper for shapes. + */ +class ShapeHelper +{ +public: + typedef hash_map<CpAndFc, WW8FSPA::Pointer_t, CpAndFcHash> Map_t; + +private: + WW8DocumentImpl * mpDoc; + Map_t mMap; + +public: + typedef boost::shared_ptr<ShapeHelper> Pointer_t; + ShapeHelper(PLCF<WW8FSPA>::Pointer_t pPlcspaMom, + PLCF<WW8FSPA>::Pointer_t pPlcspaHdr, + WW8DocumentImpl * pDoc); + + void init(); + + doctok::Reference<Properties>::Pointer_t + getShape(const CpAndFc & rCpAndFc); + +}; + +/** + Helper for fields. + */ +class FieldHelper +{ +public: + typedef hash_map<CpAndFc, WW8FLD::Pointer_t, + CpAndFcHash> Map_t; + +private: + WW8DocumentImpl * mpDoc; + Map_t mMap; +public: + + typedef boost::shared_ptr<FieldHelper> Pointer_t; + FieldHelper(PLCF<WW8FLD>::Pointer_t pPlcffldMom, + WW8DocumentImpl * pDoc); + + void init(); + + doctok::Reference<Properties>::Pointer_t + getField(const CpAndFc & rCpAndFc); +}; + +/** + Implementation class for document. + */ +class WW8DocumentImpl : public WW8Document +{ + /// true if the document is contained in another document + bool bSubDocument; + + /// picture location + sal_uInt32 mfcPicLoc; + + /// CpAndFcs in the document where properties change + CpAndFcs mCpAndFcs; + + /// CpAndFc pointing to the start of the document + CpAndFc mCpAndFcStart; + + /// CpAndFc pointing to the end of the document + CpAndFc mCpAndFcEnd; + + /// pointer to the cache of FKPs containing character properties + WW8FKPCache::Pointer_t mpCHPFKPCache; + + /// pointer to the cache of FPKs containing paragraph properties + WW8FKPCache::Pointer_t mpPAPFKPCache; + + /// pointer to the stream containing the whole document + WW8Stream::Pointer_t mpStream; + + /// pointer to the substream of the document containing table like + /// structures + WW8Stream::Pointer_t mpTableStream; + + /// pointer to the substream of the document containing the + /// document contents and formatting information + WW8Stream::Pointer_t mpDocStream; + + /// pointer to the data stream of the document + WW8Stream::Pointer_t mpDataStream; + + /// pointer to the piece table + WW8PieceTable::Pointer_t mpPieceTable; + + /// pointer to the bin table for paragraph properties + WW8BinTable::Pointer_t mpBinTablePAPX; + + /// pointer to the bin table for character properties + WW8BinTable::Pointer_t mpBinTableCHPX; + + /// PLCF containing the section descriptions + PLCF<WW8SED>::Pointer_t mpSEDs; + + /// pointer to the file information block + WW8Fib::Pointer_t mpFib; + + /// pointer to the offsets of headers/footers + WW8StructBase::Pointer_t mpHeaderOffsets; + + /// pointer to the helper for footnotes + XNoteHelper<WW8FRD>::Pointer_t mpFootnoteHelper; + + /// pointer to the helper for endnotes + XNoteHelper<WW8FRD>::Pointer_t mpEndnoteHelper; + + /// pointer to the helper for annotations + XNoteHelper<WW8ATRD>::Pointer_t mpAnnotationHelper; + + /// pointer to the helper for bookmarks + BookmarkHelper::Pointer_t mpBookmarkHelper; + + /// pointer to the helper for fields + FieldHelper::Pointer_t mpFieldHelper; + + /// pointer to the helper for shapes + ShapeHelper::Pointer_t mpShapeHelper; + + + /// cache for the Cp where main text flow end + CpAndFc mDocumentEndCpAndFc; + + /// cache for the Cp where footnotes section ends + CpAndFc mFootnoteEndCpAndFc; + + /// cache for the Cp where header section ends + CpAndFc mHeaderEndCpAndFc; + + /// cache for the Cp where annotation section ends + CpAndFc mAnnotationEndCpAndFc; + + /// cache for the Cp where endnote section ends + CpAndFc mEndnoteEndCpAndFc; + + /// cache for the Cp where textbox section ends + CpAndFc mTextboxEndCpAndFc; + + /// cache for the Cp where textbox in header section ends + CpAndFc mTextboxHeaderEndCpAndFc; + + /// DffBlock of document + DffBlock::Pointer_t mpDffBlock; + + bool isSpecial(sal_uInt32 nChar); + + WW8Stream::Pointer_t getSubStream(const ::rtl::OUString & sId) const; + + /** + Parse bin table and create CpAndFcs for all points in the + document where properties of the given type change. + + @param rTable bin table to parse + @param eType_ type of CpAndFcs to create + */ + void parseBinTableCpAndFcs(WW8BinTable & rTable, PropertyType eType_); + +public: + WW8DocumentImpl(WW8Stream::Pointer_t rpStream); + WW8DocumentImpl(const WW8DocumentImpl & rSrc, + const CpAndFc & rStart, const CpAndFc & rEnd); + virtual ~WW8DocumentImpl(); + + virtual WW8DocumentImpl & Assign(const WW8DocumentImpl & rSrc); + + virtual string getType() const; + + virtual WW8Document::Pointer_t getSubDocument(SubDocumentId nId); + virtual WW8DocumentIterator::Pointer_t getIterator + (const CpAndFc & rCpAndFc); + virtual WW8DocumentIterator::Pointer_t begin(); + virtual WW8DocumentIterator::Pointer_t end(); + + virtual WW8Stream::Sequence getText(const CpAndFc & rStart); + + WW8Fib::Pointer_t getFib() const; + + /** + Returns the document stream. + */ + + WW8Stream::Pointer_t getDocStream() const; + + /** + Returns the data stream. + */ + WW8Stream::Pointer_t getDataStream() const; + + /** + Returns distance in bytes to next CpAndFc. + + @param rCpAndFc CpAndFc to start at + */ + sal_uInt32 getByteLength(const CpAndFc & rCpAndFc) const; + + /** + Returns first character position in document. + */ + const CpAndFc & getFirstCp() const; + + /** + Returns last character position in document. + */ + const CpAndFc & getLastCp() const; + + /** + Returns next character position with change in properties. + + @param rCpAndFc position to start at + */ + CpAndFc getNextCp(const CpAndFc & rCpAndFc) const; + + /** + Returns previous character position with change in properties. + + @param rCpAndFc position to start at + */ + CpAndFc getPrevCp(const CpAndFc & rCpAndFc) const; + + /** + Returns character position where main text flow ends. + */ + CpAndFc getDocumentEndCp() const; + + /** + Returns character position where footnotes end. + */ + CpAndFc getFootnodeEndCp() const; + + /** + Returns character position where headers end. + */ + CpAndFc getHeaderEndCp() const; + + /** + Returns character position where annatations end. + */ + CpAndFc getAnnotationEndCp() const; + + /** + Returns character position where endnotes end. + */ + CpAndFc getEndnoteEndCp() const; + + /** + Returns character position where textboxes end. + */ + CpAndFc getTextboxEndCp() const; + + /** + Returns character positoion where textboxes in headers end. + */ + CpAndFc getTextboxHeaderEndCp() const; + + /** + Insert CpAndFc to set of CpAndFcs. + + @param rCpAndFc CpAndFc to insert + */ + void insertCpAndFc(const CpAndFc & rCpAndFc); + + /** + Return FKP for certain CpAndFc. + + @param rCpAndFc CpAndFc for which the FKP is looked for + */ + WW8FKP::Pointer_t getFKP(const CpAndFc & rCpAndFc); + + /** + Return FKP containing character properties. + + @param nIndex index of FKP to return + @param bComplex true if FKP contains complex FCs + */ + WW8FKP::Pointer_t getFKPCHPX(sal_uInt32 nIndex, bool bComplex); + + /** + Return FKP containing paragraph properties. + + @param nIndex index of FKP to return + @param bComplex true if FKP contains complex FCs + */ + WW8FKP::Pointer_t getFKPPAPX(sal_uInt32 nIndex, bool bComplex); + + /** + Return property set valid at a certain CpAndFc. + + @param rCpAndFc CpAndFc to look at + */ + doctok::Reference<Properties>::Pointer_t + getProperties(const CpAndFc & rCpAndFc); + + /** + Return subdocument referenced at a certain point in document. + + @param rCpAndFc CpAndFc where subdocument is referenced + */ + doctok::Reference<Stream>::Pointer_t + getSubDocument(const CpAndFc & rCpAndFc); + + /** + Return section description at a certain CpAndFc. + + @param rCpAndFc CpAndFc to look at + */ + WW8SED * getSED(const CpAndFc & rCpAndFc) const; + + /** + Return reference to list table. + */ + doctok::Reference<Table>::Pointer_t getListTable() const; + + /** + Return reference to table of list level overrides. + */ + doctok::Reference<Table>::Pointer_t getLFOTable() const; + + /** + Return reference to font table. + */ + doctok::Reference<Table>::Pointer_t getFontTable() const; + + /** + Return reference to style sheet. + */ + doctok::Reference<Table>::Pointer_t getStyleSheet() const; + + /** + Return count of headers/footers. + */ + sal_uInt32 getHeaderCount() const; + + /** + Return CpAndFc for a header or footer. + + @param nPos index in the list of headers and footers + */ + CpAndFc getHeaderCpAndFc(sal_uInt32 nPos); + + /** + Return subdocument for header/footer. + + @param nPos index in the list of headers and footers + */ + doctok::Reference<Stream>::Pointer_t getHeader(sal_uInt32 nPos); + + /** + Return count of footnotes. + */ + sal_uInt32 getFootnoteCount() const; + + /** + Return subdocument for footnote. + + @param nPos index of the footnote + */ + doctok::Reference<Stream>::Pointer_t getFootnote(sal_uInt32 nPos); + + /** + Return subdocument for footnote at a certain position in document. + + @param rCpAndFc position in document + */ + doctok::Reference<Stream>::Pointer_t getFootnote(const CpAndFc & rCpAndFc); + + /** + Return count of endnotes. + */ + sal_uInt32 getEndnoteCount() const; + + /** + Return subdocument for an endnote. + + @param nPos index of the endnote + */ + doctok::Reference<Stream>::Pointer_t getEndnote(sal_uInt32 nPos); + + /** + Return subdocument for an endnote. + + @param rCpAndFc CpAndFc where endnote is referenced + */ + doctok::Reference<Stream>::Pointer_t getEndnote(const CpAndFc & rCpAndFc); + + /** + Return count of annotations. + */ + sal_uInt32 getAnnotationCount() const; + + /** + Return subdocument for an annotation. + + @param nPos index of the annotation + */ + doctok::Reference<Stream>::Pointer_t getAnnotation(sal_uInt32 nPos); + + /** + Return subdocument for an annotation. + + @param rCpAndFc CpAndFc where annotation is referenced + */ + doctok::Reference<Stream>::Pointer_t getAnnotation + (const CpAndFc & rCpAndFc); + + /** + Return bookmark. + + @param rCpAndFc CpAndFc where bookmark begins or ends + */ + doctok::Reference<Properties>::Pointer_t + getBookmark(const CpAndFc & rCpAndFc) const; + + /** + Return shape. + + @param rCpAndFc CpAndFc of the shape + */ + doctok::Reference<Properties>::Pointer_t + getShape(const CpAndFc & rCpAndFc) const; + + doctok::Reference<Properties>::Pointer_t + getShape(sal_uInt32 nSpid); + + /** + Return field. + + @param rCpAndFc CpAndFc of the field + */ + doctok::Reference<Properties>::Pointer_t + getField(const CpAndFc & rCpAndFc) const; + + /** + Return file character position according to a character + position. + + @param cp the character position + */ + Fc cp2fc(const Cp & cp) const; + + /** + Return the character position according to file character + position. + + @param fc the file character position + */ + Cp fc2cp(const Fc & fc) const; + + /** + Return CpAndFc related to character position. + + @param cp the character position + */ + CpAndFc getCpAndFc(const Cp & cp, PropertyType type = PROP_DOC) const; + + /** + Return CpAndFc related to file character position. + + @param fc the file character position + */ + CpAndFc getCpAndFc(const Fc & fc, PropertyType type = PROP_DOC) const; + + sal_uInt32 getPicLocation() const; + void setPicLocation(sal_uInt32 fcPicLoc); + + /** + Create events for the document. + + @param rHandler handler to send the events to + */ + void resolve(Stream & rHandler); + + /** + Resolve text. + + The text of the given iterator is split at special + characters. Each run of non-special characters is send as one + event. Each run of special characters is send as one event. + + @param pIt iterator whose text is to be resolved + @param rStream handler for the events + */ + void resolveText(WW8DocumentIterator::Pointer_t pIt, Stream & rStream); + + /** + Resolve the picture at mfcPicLoc. + + @param rStream + */ + void resolvePicture(Stream & rStream); +}; + +/** + Implentation class for an iterator in a document. + */ +class WW8DocumentIteratorImpl : public WW8DocumentIterator +{ + /// pointer to the document + WW8DocumentImpl * mpDocument; + + /// CpAndFc the iterator is pointing to + CpAndFc mCpAndFc; + +public: + WW8DocumentIteratorImpl(WW8DocumentImpl * pDocument, + const CpAndFc & rCpAndFc) + : mpDocument(pDocument), mCpAndFc(rCpAndFc) + { + } + + virtual ~WW8DocumentIteratorImpl(); + + /** + Increase the iterator to the next character position. + */ + WW8DocumentIterator & operator++(); + + /** + Decrease the iterator to the previous character position. + */ + WW8DocumentIterator & operator--(); + + virtual doctok::Reference<Properties>::Pointer_t getProperties() const; + //void setAttributes(const IAttributeSet & aAttributeSet); + + virtual doctok::Reference<Stream>::Pointer_t getSubDocument() const; + + /** Return if the text the iterator points to is complex. + + @attention The definition of a complex run of text in Word is + counter-intuitive: Complex runs use 8-bit encoding for characters, + non-complex ones use 16 bits. + */ + bool isComplex() const; + virtual PropertyType getPropertyType() const; + + virtual WW8Stream::Sequence getText(); + virtual bool equal(const WW8DocumentIterator & rIt) const; + + virtual string toString() const; + virtual void dump(ostream & o) const; + + /** + Return pointer to the shape at character position the iterator + is pointing to. + */ + virtual doctok::Reference<Properties>::Pointer_t getShape() const; + + /** + Return pointer to section description at character position the + iterator points to. + */ + WW8SED * getSED() const; +}; + +/** + Return string for property type. + */ +string propertyTypeToString(PropertyType nType); + +} +#endif // INCLUDED_WW8_DOCUMENT_IMPL_HXX diff --git a/writerfilter/source/doctok/WW8FKP.hxx b/writerfilter/source/doctok/WW8FKP.hxx new file mode 100644 index 000000000000..dc7633f10568 --- /dev/null +++ b/writerfilter/source/doctok/WW8FKP.hxx @@ -0,0 +1,105 @@ +#ifndef INCLUDED_WW8_FKP_HXX +#define INCLUDED_WW8_FKP_HXX + +#ifndef INCLUDES_WW8_CP_AND_FC_HXX +#include <WW8CpAndFc.hxx> +#endif +#ifndef INCLUDE_WW8_STRUCT_BASE_HXX +#include <WW8StructBase.hxx> +#endif + +namespace doctok +{ + +/** + A formated diskpage (FKP). + + Formatted diskpages are used by Word to store runs of SPRMs (single + property modifier). A FKP contains a list of file character + positions (FC). For each FC there is an entry containing the run of + SPRMs stored for that FC. + */ +class WW8FKP : public WW8StructBase +{ +public: + /** + Shared pointer to an FKP. + */ + typedef boost::shared_ptr<WW8FKP> Pointer_t; + + /** + Create FKP from stream. + + @param rStream stream to create FKP from + @param nOffset offset in stream where the FKP starts. + */ + WW8FKP(WW8Stream & rStream, sal_uInt32 nOffset) + : WW8StructBase(rStream, nOffset, 512) + { + } + + /** + Return count of entries. + */ + virtual sal_uInt32 getEntryCount() const = 0; + + /** + Return an FC. + + @param nIndex index of the FC to return + */ + virtual Fc getFc(sal_uInt32 nIndex) const = 0; + + /** + Returns the first FC of the FKP. + */ + virtual Fc getFirstFc() const = 0; + + /** + Returns the last FC of the FKP. + */ + virtual Fc getLastFc() const = 0; + + /** + Check if an FKP contains an FC. + + @param rFc FC to look for + + @retval true FKP contains FC + @retval false else + */ + virtual bool contains(const Fc & rFc) const = 0; + + /** + Return properties stored in an FKP for a FC. + + @param rFc FC to look for + */ + virtual doctok::Reference<Properties>::Pointer_t + getProperties(const Fc & rFc) + const = 0; +}; + +/** + Cache providing FKPs. + */ +class WW8FKPCache +{ +public: + /** + Shared pointer to cache. + */ + typedef boost::shared_ptr<WW8FKPCache> Pointer_t; + + virtual ~WW8FKPCache(); + + /** + Return FKP. + + @param nPageNumber number of page to return + */ + virtual WW8FKP::Pointer_t get(sal_uInt32 nPageNumber, bool bComplex) = 0; +}; +} + +#endif // INCLUDED_WW8_FKP_HXX diff --git a/writerfilter/source/doctok/WW8FKPImpl.cxx b/writerfilter/source/doctok/WW8FKPImpl.cxx new file mode 100644 index 000000000000..d4ab991e3fe9 --- /dev/null +++ b/writerfilter/source/doctok/WW8FKPImpl.cxx @@ -0,0 +1,213 @@ +#include "WW8FKPImpl.hxx" +#include "WW8PropertySetImpl.hxx" + +namespace doctok +{ +#if 0 +sal_uInt32 WW8FKPImpl::getIndex(const Fc & rFc) const +{ + sal_uInt32 nLeft = 0; + sal_uInt32 nRight = getEntryCount(); + + while (nRight - nLeft > 1) + { + sal_uInt32 nMiddle = (nLeft + nRight) / 2; + Fc aFcMiddle = getFc(nMiddle); + + if (! (rFc < aFcMiddle)) + { + nLeft = nMiddle; + } + else + { + nRight = nMiddle; + } + } + + return nLeft; +} +#else +sal_uInt32 WW8FKPImpl::getIndex(const Fc & rFc) const +{ + sal_uInt32 nResult = getEntryCount(); + + while (rFc < getFc(nResult)) + nResult--; + + return nResult; +} +#endif + + +doctok::Reference<Properties>::Pointer_t WW8CHPFKPImpl::getProperties(const Fc & rFc) const +{ + doctok::Reference<Properties>::Pointer_t pResult; + + sal_uInt32 n = getIndex(rFc); + + sal_uInt16 nOffset = 2 * getU8(getRgb() + n); + + if (nOffset > getRgb() + getEntryCount()) + { + sal_uInt16 nCbChpx = getU8(nOffset); + + if (nCbChpx > 1 && nOffset + nCbChpx + 1 <= 511) + { + pResult = doctok::Reference<Properties>::Pointer_t + (new WW8PropertySetImpl(*this, nOffset + 1, nCbChpx)); + } + } +#if 0 + else + { + clog << "outsider!!!" << endl; + } +#endif + + return pResult; +} + +void WW8CHPFKPImpl::dump(WW8OutputWithDepth & o) const +{ + o.addItem("<fkp type='CHP'>"); + + sal_uInt32 nCount = getEntryCount(); + for (sal_uInt32 n = 0; n < nCount; ++n) + { + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), + "<fkpentry fc='%lx' offsetInFkp='%x'/>", + getFc(n).get(), 2 * getU8(getRgb() + n)); + + o.addItem(sBuffer); + } + + WW8StructBase::dump(o); + o.addItem("</fkp>"); +} + +doctok::Reference<Properties>::Pointer_t +WW8PAPFKPImpl::getProperties(const Fc & rFc) const +{ + doctok::Reference<Properties>::Pointer_t pResult; + + sal_uInt32 n = getIndex(rFc); + + sal_uInt16 nOffset = 2 * getU8(getRgb() + n * 13); + + if (nOffset != 0) + { + if (nOffset > getRgb() + getEntryCount() * 13) + { + sal_uInt32 nOffsetIStd = nOffset + 1; + sal_uInt16 nCbPapx = getU8(nOffset) * 2; + + if (nCbPapx == 0) + { + nOffsetIStd = nOffset + 2; + nCbPapx = getU8(nOffset + 1) * 2 + 2; + } + + sal_uInt32 nOffsetEnd = nOffset + nCbPapx; + //sal_uInt32 nOffsetSprms = nOffsetIStd + 2; + + if (nCbPapx > 1 && nOffset + nCbPapx <= 511) + { + pResult = doctok::Reference<Properties>::Pointer_t + (new WW8PropertySetImpl(*this, nOffsetIStd, + nOffsetEnd - nOffsetIStd, + true)); + } + } +#if 0 + else + { + clog << "outsider!!!" << endl; + } +#endif + } + + return pResult; +} + +void WW8PAPFKPImpl::dump(WW8OutputWithDepth & o) const +{ + o.addItem("<fkp type='PAP'>"); + + sal_uInt32 nCount = getEntryCount(); + for (sal_uInt32 n = 0; n < nCount; ++n) + { + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), + "<fkpentry fc='%lx' offsetInFKP='%x'/>", + getFc(n).get(), 2 * getU8(getRgb() + n * 13)); + + o.addItem(sBuffer); + } + + WW8StructBase::dump(o); + + o.addItem("</fkp>"); +} + +bool operator < (const PageNumberAndFKP & rA, + const PageNumberAndFKP & rB) +{ + return rA.mnPageNumber < rB.mnPageNumber; +} + +WW8FKPCache::~WW8FKPCache() +{ +} + +WW8FKP::Pointer_t WW8FKPCacheImpl::get(sal_uInt32 nPageNumber, + bool bComplex) +{ + WW8FKP::Pointer_t pResult; + + PageNumbersAndFKPs::iterator aIt; + aIt = mPageNumbersAndFKPs.find + (PageNumberAndFKP(nPageNumber, WW8FKP::Pointer_t())); + + if (aIt != mPageNumbersAndFKPs.end()) + pResult = aIt->getFKP(); + else + { + if (mPageNumbersAndFKPs.size() > mnCacheSize) + { + PageNumbersAndFKPs::iterator aItDel = + mPageNumbersAndFKPs.find + (PageNumberAndFKP(mPageNumbers.front(), + WW8FKP::Pointer_t())); + + mPageNumbersAndFKPs.erase(aItDel); + mPageNumbers.pop_front(); + } + + pResult = createFKP(nPageNumber, bComplex); + + PageNumberAndFKP aPageNumberAndFKP(nPageNumber, pResult); + mPageNumbersAndFKPs.insert(aPageNumberAndFKP); + mPageNumbers.push_back(nPageNumber); + } + + return pResult; +} + +WW8FKP::Pointer_t WW8CHPFKPCacheImpl::createFKP(sal_uInt32 nPageNumber, + bool bComplex) +{ + return WW8FKP::Pointer_t(new WW8CHPFKPImpl + (*mpStream, nPageNumber, bComplex)); +} + +WW8FKP::Pointer_t WW8PAPFKPCacheImpl::createFKP(sal_uInt32 nPageNumber, + bool bComplex) +{ + return WW8FKP::Pointer_t(new WW8PAPFKPImpl + (*mpStream, nPageNumber, bComplex)); +} +} + diff --git a/writerfilter/source/doctok/WW8FKPImpl.hxx b/writerfilter/source/doctok/WW8FKPImpl.hxx new file mode 100644 index 000000000000..bd2465956c77 --- /dev/null +++ b/writerfilter/source/doctok/WW8FKPImpl.hxx @@ -0,0 +1,188 @@ +#ifndef INCLUDED_WW8_FKP_IMPL_HXX +#define INCLUDED_WW8_FKP_IMPL_HXX + +#include <set> +#include <deque> +#ifndef INCLUDED_WW8_FKP_HXX +#include <WW8FKP.hxx> +#endif + +#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH_HXX +#include <WW8OutputWithDepth.hxx> +#endif + +namespace doctok +{ +/** + Implementation class for formatted disk pages. + */ +class WW8FKPImpl : public WW8FKP +{ + sal_uInt32 mnPageNumber; + bool mbComplex; + +public: + WW8FKPImpl(WW8Stream & rStream, sal_uInt32 nPageNumber, bool bComplex) + : WW8FKP(rStream, nPageNumber * 512), mnPageNumber(nPageNumber), + mbComplex(bComplex) + { + } + + virtual sal_uInt32 getPageNumber() const { return mnPageNumber; } + + virtual sal_uInt32 getEntryCount() const { return getU8(511); } + virtual sal_uInt32 getRgb() const { return 4 * (getEntryCount() + 1); } + virtual Fc getFc(sal_uInt32 nIndex) const + { return Fc(getU32(nIndex * 4), mbComplex); } + virtual Fc getFirstFc() const { return getFc(0); } + virtual Fc getLastFc() const { return getFc(getEntryCount()); } + + virtual bool contains(const Fc & rFc) const + { return getFirstFc() <= rFc && rFc < getLastFc(); } + + virtual sal_uInt32 getIndex(const Fc & rFc) const; + + friend bool operator < (const WW8FKPImpl & rA, + const WW8FKPImpl & rB); +}; + +/** + Implementation class for formatted disk pages containing character + properties. + */ +class WW8CHPFKPImpl : public WW8FKPImpl +{ +public: + WW8CHPFKPImpl(WW8Stream & rStream, sal_uInt32 nPageNumber, + bool bComplex) + : WW8FKPImpl(rStream, nPageNumber, bComplex) + { + } + + virtual doctok::Reference<Properties>::Pointer_t + getProperties(const Fc & rFc) const; + + virtual void dump(WW8OutputWithDepth & o) const; +}; + +/** + Implementation class for formatted disk pages containing paragraph + properties. + */ +class WW8PAPFKPImpl : public WW8FKPImpl +{ +public: + WW8PAPFKPImpl(WW8Stream & rStream, sal_uInt32 nPageNumber, + bool bComplex) + : WW8FKPImpl(rStream, nPageNumber, bComplex) + { + } + + virtual doctok::Reference<Properties>::Pointer_t + getProperties(const Fc & rFc) const; + + virtual void dump(WW8OutputWithDepth & o) const; +}; + +/** + Tuple of page number and formattet disk page. + */ +class PageNumberAndFKP +{ + /// page number + sal_uInt32 mnPageNumber; + + /// pointer to formatted disk page + WW8FKP::Pointer_t mpFKP; + +public: + PageNumberAndFKP(sal_uInt32 nPageNumber, WW8FKP::Pointer_t pFKP) + : mnPageNumber(nPageNumber), mpFKP(pFKP) + { + } + + /** + Return page number. + */ + sal_uInt32 getPageNumber() const { return mnPageNumber; } + + /** + Return formatted disk page. + */ + const WW8FKP::Pointer_t getFKP() const { return mpFKP; } + + friend bool operator < (const PageNumberAndFKP & rA, + const PageNumberAndFKP & rB); +}; + +/** + Cache for formatted disk pages. + */ +class WW8FKPCacheImpl : public WW8FKPCache +{ + /// size of the cache + sal_uInt32 mnCacheSize; + + /// set of tuples of page number and FKP + typedef set<PageNumberAndFKP> PageNumbersAndFKPs; + + /// + typedef deque<sal_uInt32> PageNumbers; + + PageNumbers mPageNumbers; + PageNumbersAndFKPs mPageNumbersAndFKPs; + +protected: + WW8Stream::Pointer_t mpStream; + virtual WW8FKP::Pointer_t createFKP(sal_uInt32 nPageNumber, + bool bComplex) = 0; + +public: + WW8FKPCacheImpl(WW8Stream::Pointer_t rpStream, sal_uInt32 nCacheSize) + : mnCacheSize(nCacheSize), mpStream(rpStream) + { + } + + virtual ~WW8FKPCacheImpl() + { + } + + WW8FKP::Pointer_t get(sal_uInt32 nPageNumber, bool bComplex); +}; + +class WW8CHPFKPCacheImpl : public WW8FKPCacheImpl +{ + virtual WW8FKP::Pointer_t createFKP(sal_uInt32 nPageNumber, + bool bComplex); + +public: + WW8CHPFKPCacheImpl(WW8Stream::Pointer_t rpStream, + sal_uInt32 nCacheSize) + : WW8FKPCacheImpl(rpStream, nCacheSize) + { + } + + virtual ~WW8CHPFKPCacheImpl() + { + } +}; + +class WW8PAPFKPCacheImpl : public WW8FKPCacheImpl +{ + virtual WW8FKP::Pointer_t createFKP(sal_uInt32 nPageNumber, + bool bComplex); + +public: + WW8PAPFKPCacheImpl(WW8Stream::Pointer_t rpStream, + sal_uInt32 nCacheSize) + : WW8FKPCacheImpl(rpStream, nCacheSize) + { + } + + virtual ~WW8PAPFKPCacheImpl() + { + } +}; +} + +#endif // INCLUDED_WW8_FKP_IMPL_HXX diff --git a/writerfilter/source/doctok/WW8FontTable.cxx b/writerfilter/source/doctok/WW8FontTable.cxx new file mode 100644 index 000000000000..98559d81d9ff --- /dev/null +++ b/writerfilter/source/doctok/WW8FontTable.cxx @@ -0,0 +1,90 @@ +#include <resources.hxx> + +namespace doctok { + +void WW8FontTable::initPayload() +{ + sal_uInt32 nCount = getU8(0); + + sal_uInt32 nOffset = 1; + + while (nCount > 0) + { + entryOffsets.push_back(nOffset); + + sal_uInt32 nFFNSize = getU8(nOffset) + 1; + + if (nFFNSize > 1) + nCount--; + + nOffset += nFFNSize; + } + + entryOffsets.push_back(nOffset); + mnPlcfPayloadOffset = nOffset; +} + +sal_uInt32 WW8FontTable::calcPayloadOffset() +{ + return 0; +} + +sal_uInt32 WW8FontTable::getEntryCount() +{ + return entryOffsets.size() - 1; +} + +doctok::Reference<Properties>::Pointer_t +WW8FontTable::getEntry(sal_uInt32 nIndex) +{ + doctok::Reference<Properties>::Pointer_t pResult; + + sal_uInt32 nCount = entryOffsets[nIndex + 1] - entryOffsets[nIndex]; + + if (nCount > 1) + { + WW8Font * pFont = new WW8Font(this, + entryOffsets[nIndex], nCount); + + pFont->setIndex(nIndex); + + pResult = doctok::Reference<Properties>::Pointer_t(pFont); + } + + return pResult; +} + +sal_uInt32 WW8Font::get_f() +{ + return mnIndex; +} + +rtl::OUString WW8Font::get_xszFfn() +{ + sal_uInt32 nOffset = 0x28; + sal_uInt32 nCount = get_cbFfnM1() - nOffset; + + Sequence aSeq(mSequence, nOffset, nCount); + + rtl_uString * pNew = 0; + rtl_uString_newFromStr + (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0])); + + return rtl::OUString(pNew); +} + +rtl::OUString WW8Font::get_altName() +{ + sal_uInt32 nOffset = 0x28 + get_ixchSzAlt(); + sal_uInt32 nCount = get_cbFfnM1() - nOffset; + + Sequence aSeq(mSequence, nOffset, nCount); + + rtl_uString * pNew = 0; + rtl_uString_newFromStr + (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0])); + + return rtl::OUString(pNew); +} + +} diff --git a/writerfilter/source/doctok/WW8LFOLevel.cxx b/writerfilter/source/doctok/WW8LFOLevel.cxx new file mode 100644 index 000000000000..2113d53a4c25 --- /dev/null +++ b/writerfilter/source/doctok/WW8LFOLevel.cxx @@ -0,0 +1,24 @@ +/** + $RCSfile: WW8LFOLevel.cxx,v $ + + $Revision: 1.1 $ + + */ +#include "resources.hxx" + +sal_uInt32 WW8LFOLevel::calcSize() +{ + sal_uInt32 nResult = WW8LFOLevel::getSize(); + + if (get_fFormatting()) + { + WW8ListLevel aLevel(parent, mnOffsetInParent + nResult) + nResult += aLevel.calcSize(); + + sal_uInt32 nXstSize = parent->getU16(nOffset); + + nResult += (nXstSize + 1) * 2; + } + + return nResult; +} diff --git a/writerfilter/source/doctok/WW8LFOTable.cxx b/writerfilter/source/doctok/WW8LFOTable.cxx new file mode 100644 index 000000000000..5b126f2ff690 --- /dev/null +++ b/writerfilter/source/doctok/WW8LFOTable.cxx @@ -0,0 +1,108 @@ +/* + $RCSfile: WW8LFOTable.cxx,v $ + + $Revision: 1.1 $ + +*/ + +#include "resources.hxx" + +namespace doctok { + +void WW8LFOTable::initPayload() +{ + sal_uInt32 nCount = getEntryCount(); + + sal_uInt32 nOffset = 4; + sal_uInt32 nOffsetLevel = mnPlcfPayloadOffset; + + for (sal_uInt32 n = 0; n < nCount; ++n) + { + WW8LFO aLFO(this, nOffset); + + entryOffsets.push_back(nOffset); + payloadIndices.push_back(payloadOffsets.size()); + nOffset += WW8LFO::getSize(); + + sal_uInt32 nLvlCount = aLFO.get_lfolevel_count(); + + for (sal_uInt32 i = 0; i < nLvlCount; ++i) + { + WW8LFOLevel aLevel(this, nOffsetLevel); + + payloadOffsets.push_back(nOffsetLevel); + + nOffsetLevel += aLevel.calcSize(); + } + } + + entryOffsets.push_back(nOffset); + payloadOffsets.push_back(nOffsetLevel); +} + +sal_uInt32 WW8LFOTable::calcPayloadOffset() +{ + sal_uInt32 nResult = 4 + getEntryCount() * WW8LFO::getSize(); + + while (getU32(nResult) == 0xffffffff) + nResult += 4; + + return nResult; +} + +sal_uInt32 WW8LFOTable::getEntryCount() +{ + return getU32(0); +} + +doctok::Reference<Properties>::Pointer_t +WW8LFOTable::getEntry(sal_uInt32 nIndex) +{ + WW8LFO * pLFO = new WW8LFO(this, entryOffsets[nIndex]); + + pLFO->setIndex(nIndex); + + return doctok::Reference<Properties>::Pointer_t(pLFO); +} + +sal_uInt32 WW8LFO::get_lfolevel_count() +{ + return get_clfolvl(); +} + +doctok::Reference<Properties>::Pointer_t +WW8LFO::get_lfolevel(sal_uInt32 nIndex) +{ + WW8LFOTable * pLFOTable = dynamic_cast<WW8LFOTable *>(mpParent); + sal_uInt32 nPayloadIndex = pLFOTable->getPayloadIndex(mnIndex) + nIndex; + sal_uInt32 nPayloadOffset = pLFOTable->getPayloadOffset(nPayloadIndex); + sal_uInt32 nPayloadSize = pLFOTable->getPayloadSize(nPayloadIndex); + + return doctok::Reference<Properties>::Pointer_t + (new WW8LFOLevel(mpParent, nPayloadOffset, nPayloadSize)); +} + +void WW8LFOLevel::resolveNoAuto(Properties & /*rHandler*/) +{ + +} + +sal_uInt32 WW8LFOLevel::calcSize() +{ + sal_uInt32 nResult = WW8LFOLevel::getSize(); + + if (get_fFormatting()) + { + WW8ListLevel aLevel(mpParent, mnOffsetInParent + nResult); + + nResult += aLevel.calcSize(); + + sal_uInt32 nXstSize = mpParent->getU16(mnOffsetInParent + nResult); + + nResult += (nXstSize + 1) * 2; + } + + return nResult; +} + +} diff --git a/writerfilter/source/doctok/WW8ListTable.cxx b/writerfilter/source/doctok/WW8ListTable.cxx new file mode 100644 index 000000000000..5775685b64be --- /dev/null +++ b/writerfilter/source/doctok/WW8ListTable.cxx @@ -0,0 +1,125 @@ +#include <resources.hxx> + +namespace doctok { + +void WW8ListTable::initPayload() +{ + sal_uInt32 nCount = getEntryCount(); + + sal_uInt32 nOffset = 2; + sal_uInt32 nOffsetLevel = mnPlcfPayloadOffset; + for (sal_uInt32 n = 0; n < nCount; ++n) + { + WW8List aList(this, nOffset); + + entryOffsets.push_back(nOffset); + payloadIndices.push_back(payloadOffsets.size()); + nOffset += WW8List::getSize(); + + sal_uInt32 nLvlCount = aList.get_fSimpleList() ? 1 : 9; + + for (sal_uInt32 i = 0; i < nLvlCount; ++i) + { + WW8ListLevel aLevel(this, nOffsetLevel); + + payloadOffsets.push_back(nOffsetLevel); + + nOffsetLevel += aLevel.calcSize(); + + sal_uInt32 nXstSize = getU16(nOffsetLevel); + + nOffsetLevel += 2 + nXstSize * 2; + } + + if (nOffsetLevel > getCount()) + { + nOffsetLevel = getCount(); + + break; + } + } + + payloadOffsets.push_back(nOffsetLevel); + entryOffsets.push_back(nOffset); +} + +sal_uInt32 WW8ListTable::calcPayloadOffset() +{ + return 0; +} + +sal_uInt32 WW8ListTable::getEntryCount() +{ + return getU16(0); +} + +doctok::Reference<Properties>::Pointer_t +WW8ListTable::getEntry(sal_uInt32 nIndex) +{ + WW8List * pList = new WW8List(this, entryOffsets[nIndex]); + + pList->setIndex(nIndex); + + return doctok::Reference<Properties>::Pointer_t + (pList); +} + +sal_uInt32 WW8List::get_listlevel_count() +{ + if (get_fSimpleList()) + return 1; + + return 9; +} + +doctok::Reference<Properties>::Pointer_t +WW8List::get_listlevel(sal_uInt32 nIndex) +{ + WW8ListTable * pListTable = dynamic_cast<WW8ListTable *>(mpParent); + sal_uInt32 nPayloadIndex = pListTable->getPayloadIndex(mnIndex) + nIndex; + sal_uInt32 nPayloadOffset = pListTable->getPayloadOffset(nPayloadIndex); + sal_uInt32 nPayloadSize = pListTable->getPayloadSize(nPayloadIndex); + + return doctok::Reference<Properties>::Pointer_t + (new WW8ListLevel(mpParent, nPayloadOffset, nPayloadSize)); +} + +void WW8ListLevel::resolveNoAuto(Properties & rHandler) +{ + sal_uInt32 nOffset = getSize(); + + { + WW8PropertySet::Pointer_t pSet + (new WW8PropertySetImpl(*this, nOffset, get_cbGrpprlPapx())); + + WW8PropertiesReference aRef(pSet); + aRef.resolve(rHandler); + } + + nOffset += get_cbGrpprlPapx(); + + { + WW8PropertySet::Pointer_t pSet + (new WW8PropertySetImpl(*this, nOffset, get_cbGrpprlChpx())); + + WW8PropertiesReference aRef(pSet); + aRef.resolve(rHandler); + } + + nOffset += get_cbGrpprlChpx(); + + WW8StringValue aVal(getString(nOffset)); + + rHandler.attribute(0, aVal); +} + +sal_uInt32 WW8ListLevel::calcSize() +{ + sal_uInt32 nResult = WW8ListLevel::getSize(); + + nResult += get_cbGrpprlPapx(); + nResult += get_cbGrpprlChpx(); + + return nResult; +} +} diff --git a/writerfilter/source/doctok/WW8OutputWithDepth.cxx b/writerfilter/source/doctok/WW8OutputWithDepth.cxx new file mode 100644 index 000000000000..cdef7b6588d5 --- /dev/null +++ b/writerfilter/source/doctok/WW8OutputWithDepth.cxx @@ -0,0 +1,18 @@ +#include <iostream> +#include "WW8OutputWithDepth.hxx" + +namespace doctok +{ + +using namespace ::std; + +WW8OutputWithDepth::WW8OutputWithDepth() +: OutputWithDepth<string>("<tablegroup>", "</tablegroup>") +{ +} + +void WW8OutputWithDepth::output(const string & str) const +{ + cout << str << endl; +} +} diff --git a/writerfilter/source/doctok/WW8OutputWithDepth.hxx b/writerfilter/source/doctok/WW8OutputWithDepth.hxx new file mode 100644 index 000000000000..ad9702ca23b4 --- /dev/null +++ b/writerfilter/source/doctok/WW8OutputWithDepth.hxx @@ -0,0 +1,25 @@ +#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH +#define INCLUDED_WW8_OUTPUT_WITH_DEPTH + +#ifndef INCLUDED_OUTPUT_WITH_DEPTH +#include <doctok/OutputWithDepth.hxx> +#endif + +#include <string> + +using namespace ::std; + +namespace doctok +{ +class WW8OutputWithDepth : public OutputWithDepth<string> +{ +protected: + void output(const string & output) const; +public: + WW8OutputWithDepth(); + virtual ~WW8OutputWithDepth() { finalize(); } +}; + +} + +#endif // INCLUDED_WW8_OUTPUT_WITH_DEPTH diff --git a/writerfilter/source/doctok/WW8Picture.cxx b/writerfilter/source/doctok/WW8Picture.cxx new file mode 100644 index 000000000000..c62d16e9fe44 --- /dev/null +++ b/writerfilter/source/doctok/WW8Picture.cxx @@ -0,0 +1,20 @@ +#include <resources.hxx> +#include <WW8DocumentImpl.hxx> + +namespace doctok +{ + +doctok::Reference<Properties>::Pointer_t +WW8PICF::get_DffRecord() +{ + return doctok::Reference<Properties>::Pointer_t + (new DffBlock(this, get_cbHeader(), getCount() - get_cbHeader(), 0)); +} + +doctok::Reference<Properties>::Pointer_t +WW8FSPA::get_shape() +{ + return getDocument()->getShape(get_spid()); +} +} + diff --git a/writerfilter/source/doctok/WW8PieceTable.hxx b/writerfilter/source/doctok/WW8PieceTable.hxx new file mode 100644 index 000000000000..c8de7cb843df --- /dev/null +++ b/writerfilter/source/doctok/WW8PieceTable.hxx @@ -0,0 +1,128 @@ +#ifndef INCLUDED_WW8_PIECE_TABLE_HXX +#define INCLUDED_WW8_PIECE_TABLE_HXX + +#ifndef _SAL_TYPES_H_ +#include <sal/types.h> +#endif // _SAL_TYPES_H_ +#include <boost/shared_ptr.hpp> +#include <iostream> + +namespace doctok { + +using namespace ::std; + +struct Cp; +struct Fc; + +/** + The piece table of a Word document. + + The piece table associates character positions (CP) and File + character positions (FC). In a FC based view the piece table + defines intervals of FCs that contain consecutive text. + + CPs and FCs can be complex, i.e. the associated text is stored in + bytes. Otherwise the text encoding is UTF-16. + */ +class WW8PieceTable +{ +public: + virtual ~WW8PieceTable() {} + /** + Shared pointer to piece table + */ + typedef boost::shared_ptr<WW8PieceTable> Pointer_t; + + /** + Convert CP to FC. + + @param aCpIn CP to convert + + @return FC associated with CP + */ + virtual Fc cp2fc(const Cp & aCpIn) const = 0; + + /** + Convert FC to CP. + + @param aFcIn FC to convert + + @return CP associated with FC + */ + virtual Cp fc2cp(const Fc & aFcIn) const = 0; + + /** + Check if CP is complex. + + @param aCp CP to check + @retval true CP is complex + @retval false else + */ + virtual bool isComplex(const Cp & aCp) const = 0; + + /** + Check if FC is complex. + + @param aFc FC to check + @retval true FC is complex + @retval false else + */ + virtual bool isComplex(const Fc & aFc) const = 0; + + /** + Return number of entries. + */ + virtual sal_uInt32 getCount() const = 0; + + /** + Return first CP. + */ + virtual Cp getFirstCp() const = 0; + + /** + Return first FC. + */ + virtual Fc getFirstFc() const = 0; + + /** + Return last CP. + */ + virtual Cp getLastCp() const = 0; + + /** + Return last FC. + */ + virtual Fc getLastFc() const = 0; + + /** + Return CP at index. + + @param nIndex index of CP to return + */ + virtual Cp getCp(sal_uInt32 nIndex) const = 0; + + /** + Return FC at index. + + @param nIndex index of FC to return + */ + virtual Fc getFc(sal_uInt32 nIndex) const = 0; + + /** + Dump piece table. + + @param o stream to dump to + */ + virtual void dump(ostream & o) const = 0; +}; + +/** + Dump piece table. + + @param o stream to dump to + @param rPieceTable piece table to dump +*/ +ostream & operator << (ostream & o, const WW8PieceTable & rPieceTable); +} + +#endif // INCLUDED_WW8_PIECE_TABLE_HXX diff --git a/writerfilter/source/doctok/WW8PieceTableImpl.cxx b/writerfilter/source/doctok/WW8PieceTableImpl.cxx new file mode 100644 index 000000000000..1ab593df3ae5 --- /dev/null +++ b/writerfilter/source/doctok/WW8PieceTableImpl.cxx @@ -0,0 +1,263 @@ +#include <algorithm> +#include <iterator> + +#ifndef INCLUDED_DOCTOK_EXCEPTIONS +#include <doctok/exceptions.hxx> +#endif +#ifndef INCLUDED_WW8_PIECE_TABLE_IMPL_HXX +#include <WW8PieceTableImpl.hxx> +#endif +#ifndef INCLUDED_WW8_CLX_HXX +#include <WW8Clx.hxx> +#endif + +namespace doctok +{ +using namespace ::std; + +ostream & operator << (ostream & o, const WW8PieceTable & rPieceTable) +{ + rPieceTable.dump(o); + + return o; +} + +WW8PieceTableImpl::WW8PieceTableImpl(WW8Stream & rStream, + sal_uInt32 nOffset, + sal_uInt32 nCount) +{ + WW8Clx aClx(rStream, nOffset, nCount); + + sal_uInt32 nPieceCount = aClx.getPieceCount(); + + if (nPieceCount > 0) + { + for (sal_uInt32 n = 0; n < nPieceCount; n++) + { + Cp aCp(aClx.getCp(n)); + Fc aFc(aClx.getFc(n), aClx.isComplexFc(n)); + + CpAndFc aCpAndFc(aCp, aFc, PROP_DOC); + + mEntries.push_back(aCpAndFc); + } + + CpAndFc aBack = mEntries.back(); + Cp aCp(aClx.getCp(aClx.getPieceCount())); + Fc aFc(aBack.getFc() + (aCp - aBack.getCp())); + + CpAndFc aCpAndFc(aCp, aFc, PROP_DOC); + + mEntries.push_back(aCpAndFc); + } +} + +sal_uInt32 WW8PieceTableImpl::getCount() const +{ + return mEntries.size(); +} + +WW8PieceTableImpl::tEntries::const_iterator +WW8PieceTableImpl::findCp(const Cp & rCp) const +{ + tEntries::const_iterator aResult = mEntries.end(); + tEntries::const_iterator aEnd = mEntries.end(); + + for (tEntries::const_iterator aIt = mEntries.begin(); aIt != aEnd; + aIt++) + { + if (aIt->getCp() <= rCp) + { + aResult = aIt; + + //break; + } + } + + return aResult; +} + +WW8PieceTableImpl::tEntries::const_iterator +WW8PieceTableImpl::findFc(const Fc & rFc) const +{ + tEntries::const_iterator aResult = mEntries.end(); + tEntries::const_iterator aEnd = mEntries.end(); + + if (mEntries.size() > 0) + { + if (rFc < mEntries.begin()->getFc()) + aResult = mEntries.begin(); + else + { + for (tEntries::const_iterator aIt = mEntries.begin(); + aIt != aEnd; aIt++) + { + if (aIt->getFc() <= rFc) + { + tEntries::const_iterator aItNext = aIt; + aItNext++; + + if (aItNext != aEnd) + { + sal_uInt32 nOffset = rFc.get() - aIt->getFc().get(); + sal_uInt32 nLength = aItNext->getCp() - aIt->getCp(); + + if (! aIt->isComplex()) + nLength *= 2; + + if (nOffset < nLength) + { + aResult = aIt; + + break; + } + } + + } + } + } + } + + return aResult; +} + +Cp WW8PieceTableImpl::getFirstCp() const +{ + Cp aResult; + + if (getCount() > 0) + aResult = getCp(0); + else + throw ExceptionNotFound("WW8PieceTableImpl::getFirstCp"); + + return aResult; +} + +Fc WW8PieceTableImpl::getFirstFc() const +{ + Fc aResult; + + if (getCount() > 0) + aResult = getFc(0); + else + throw ExceptionNotFound(" WW8PieceTableImpl::getFirstFc"); + + return aResult; +} + +Cp WW8PieceTableImpl::getLastCp() const +{ + Cp aResult; + + if (getCount() > 0) + aResult = getCp(getCount() - 1); + else + throw ExceptionNotFound("WW8PieceTableImpl::getLastCp"); + + return aResult; +} + +Fc WW8PieceTableImpl::getLastFc() const +{ + Fc aResult; + + if (getCount() > 0) + aResult = getFc(getCount() - 1); + else + throw ExceptionNotFound("WW8PieceTableImpl::getLastFc"); + + return aResult; +} + +Cp WW8PieceTableImpl::getCp(sal_uInt32 nIndex) const +{ + return mEntries[nIndex].getCp(); +} + +Fc WW8PieceTableImpl::getFc(sal_uInt32 nIndex) const +{ + return mEntries[nIndex].getFc(); +} + +Cp WW8PieceTableImpl::fc2cp(const Fc & rFc) const +{ + Cp cpResult; + + if (mEntries.size() > 0) + { + Fc aFc; + + if (rFc < mEntries.begin()->getFc()) + aFc = mEntries.begin()->getFc(); + else + aFc = rFc; + + tEntries::const_iterator aIt = findFc(aFc); + + if (aIt != mEntries.end()) + { + cpResult = aIt->getCp() + (aFc - aIt->getFc()); + } + else + throw ExceptionNotFound("WW8PieceTableImpl::fc2cp: " + aFc.toString()); + } + + return cpResult; +} + +Fc WW8PieceTableImpl::cp2fc(const Cp & rCp) const +{ + Fc aResult; + + Cp2FcHashMap_t::iterator aItCp = mCp2FcCache.find(rCp); + + if (aItCp == mCp2FcCache.end()) + { + tEntries::const_iterator aIt = findCp(rCp); + + if (aIt != mEntries.end()) + { + aResult = aIt->getFc() + (rCp - aIt->getCp()); + mCp2FcCache[rCp] = aResult; + } + else + throw ExceptionNotFound + ("WW8PieceTableImpl::cp2fc: " + rCp.toString()); + } + else + aResult = mCp2FcCache[rCp]; + + return aResult; +} + +bool WW8PieceTableImpl::isComplex(const Cp & rCp) const +{ + bool bResult = false; + + tEntries::const_iterator aIt = findCp(rCp); + + if (aIt != mEntries.end()) + bResult = aIt->isComplex(); + + return bResult; +} + +bool WW8PieceTableImpl::isComplex(const Fc & rFc) const +{ + bool bResult = false; + + tEntries::const_iterator aIt = findFc(rFc); + + if (aIt != mEntries.end()) + bResult = aIt->isComplex(); + + return bResult; +} + +void WW8PieceTableImpl::dump(ostream & o) const +{ + o << "<piecetable>" << endl; + copy(mEntries.begin(), mEntries.end(), ostream_iterator<CpAndFc>(o, "\n")); + o << "</piecetable>" << endl; +} +} diff --git a/writerfilter/source/doctok/WW8PieceTableImpl.hxx b/writerfilter/source/doctok/WW8PieceTableImpl.hxx new file mode 100644 index 000000000000..73166b582491 --- /dev/null +++ b/writerfilter/source/doctok/WW8PieceTableImpl.hxx @@ -0,0 +1,47 @@ +#ifndef INCLUDED_WW8_PIECE_TABLE_IMPL_HXX +#define INCLUDED_WW8_PIECE_TABLE_IMPL_HXX + +#include <vector> +#ifndef INCLUDED_WW8_CP_AND_FC_HXX +#include <WW8CpAndFc.hxx> +#endif +#ifndef INCLUDE_WW8_PIECE_TABLE_HXX +#include <WW8PieceTable.hxx> +#endif + +namespace doctok +{ +using namespace ::std; + +class WW8PieceTableImpl : public WW8PieceTable +{ + typedef std::vector<CpAndFc> tEntries; + tEntries mEntries; + + tEntries::const_iterator findCp(const Cp & rCp) const; + tEntries::const_iterator findFc(const Fc & rFc) const; + + mutable Cp2FcHashMap_t mCp2FcCache; + +public: + WW8PieceTableImpl(WW8Stream & rStream, sal_uInt32 nOffset, + sal_uInt32 nCount); + + virtual Fc cp2fc(const Cp & aCpIn) const; + virtual Cp fc2cp(const Fc & aFcIn) const; + virtual bool isComplex(const Cp & aCp) const; + virtual bool isComplex(const Fc & aFc) const; + + virtual sal_uInt32 getCount() const; + virtual Cp getFirstCp() const; + virtual Fc getFirstFc() const; + virtual Cp getLastCp() const; + virtual Fc getLastFc() const; + virtual Cp getCp(sal_uInt32 nIndex) const; + virtual Fc getFc(sal_uInt32 nIndex) const; + + virtual void dump(ostream & o) const; +}; +} + +#endif // INCLUDED_WW8_PIECE_TABLE_IMPL_HXX diff --git a/writerfilter/source/doctok/WW8PropertySetImpl.cxx b/writerfilter/source/doctok/WW8PropertySetImpl.cxx new file mode 100644 index 000000000000..30ee729b594f --- /dev/null +++ b/writerfilter/source/doctok/WW8PropertySetImpl.cxx @@ -0,0 +1,382 @@ +#include "WW8DocumentImpl.hxx" +#include "WW8ResourceModelImpl.hxx" +#include <doctok/resourceids.hxx> + +namespace doctok +{ +bool operator != (const WW8PropertySetIterator & rA, + const WW8PropertySetIterator & rB) +{ + return ! (rA.equal(rB)); +} + +WW8Property::~WW8Property() +{ +} + +WW8PropertySet::~WW8PropertySet() +{ +} + +WW8PropertySetIterator::~WW8PropertySetIterator() +{ +} + +WW8PropertyImpl::WW8PropertyImpl(WW8Stream & rStream, + sal_uInt32 nOffset, sal_uInt32 nCount) +: WW8StructBase(rStream, nOffset, nCount) +{ +} + +WW8PropertyImpl::WW8PropertyImpl(const WW8StructBase & rBase, + sal_uInt32 nOffset, + sal_uInt32 nCount) +: WW8StructBase(rBase, nOffset, nCount) +{ +} + +WW8PropertyImpl::WW8PropertyImpl(WW8StructBase * pBase, + sal_uInt32 nOffset, + sal_uInt32 nCount) +: WW8StructBase(pBase, nOffset, nCount) +{ +} + +WW8PropertyImpl::~WW8PropertyImpl() +{ +} + +sal_uInt32 WW8PropertyImpl::getParam() const +{ + sal_uInt32 nResult = 0; + + switch (get_spra()) + { + case 0: + case 1: + nResult = getU8(2); + + break; + + case 2: + case 4: + case 5: + nResult = getU16(2); + + break; + + case 3: + nResult = getU32(2); + + break; + + case 7: + nResult = getU16(2) + (getU8(4) << 16); + + break; + + default: + break; + } + + return nResult; +} + +WW8Stream::Sequence WW8PropertyImpl::getParams() const +{ + return WW8Stream::Sequence(mSequence, 2, getCount() - 2); +} + +sal_uInt32 WW8PropertyImpl::getByteLength() const +{ + sal_uInt32 nParamSize = 0; + + switch (get_spra()) + { + case 0: + case 1: + nParamSize = 1; + + break; + + case 2: + case 4: + case 5: + nParamSize = 2; + + break; + + case 3: + nParamSize = 4; + + break; + + case 7: + nParamSize = 3; + + break; + default: + nParamSize = getU8(2) + 1; + + break; + } + + return nParamSize + 2; +} + +sal_uInt32 WW8PropertyImpl::getParamOffset() const +{ + sal_uInt32 nReturn = 0; + + if (get_spra() == 6) + nReturn = 1; + + switch (getId()) + { + case 0xd608: + case 0xd609: + nReturn = 3; + + break; + + default: + break; + } + + return nReturn; +} + +void WW8PropertyImpl::dump(OutputWithDepth<string> & o) const +{ + o.addItem(toString()); +} + +string WW8PropertyImpl::toString() const +{ + string aResult; + + aResult += "<sprmcommon"; + + char sBuffer[256]; + snprintf(sBuffer, sizeof(sBuffer), " id=\"%lx\"", getId()); + aResult += sBuffer; + aResult += " name=\""; + aResult += (*SprmIdToString::Instance())(getId()); + aResult += "\""; + snprintf(sBuffer, sizeof(sBuffer), " sgc=\"%x\"", get_sgc()); + aResult += sBuffer; + snprintf(sBuffer, sizeof(sBuffer), " spra=\"%x\"", get_spra()); + aResult += sBuffer; + snprintf(sBuffer, sizeof(sBuffer), " size=\"%lx\"", getByteLength()); + aResult += sBuffer; + snprintf(sBuffer, sizeof(sBuffer), " param=\"%lx\"", getParam()); + aResult += sBuffer; + aResult += ">\n"; + + aResult += mSequence.toString(); + + aResult += "</sprmcommon>"; + + return aResult; +} + +WW8PropertySetImpl::WW8PropertySetImpl(WW8Stream & rStream, + sal_uInt32 nOffset, + sal_uInt32 nCount, + bool bPap) +: WW8StructBase(rStream, nOffset, nCount), mbPap(bPap) +{ +} + +WW8PropertySetImpl::WW8PropertySetImpl(const WW8StructBase & rBase, + sal_uInt32 nOffset, + sal_uInt32 nCount, + bool bPap) +: WW8StructBase(rBase, nOffset, nCount), mbPap(bPap) +{ +} + +WW8PropertySetImpl::~WW8PropertySetImpl() +{ +} + +bool WW8PropertySetImpl::isPap() const +{ + return mbPap; +} + +sal_uInt32 WW8PropertySetImpl::get_istd() const +{ + sal_uInt32 nResult = 0; + + if (mbPap) + nResult = getU16(0); + + return nResult; +} + +WW8PropertySetIterator::Pointer_t WW8PropertySetImpl::begin() +{ + return WW8PropertySetIterator::Pointer_t + (new WW8PropertySetIteratorImpl(this, mbPap ? 2 : 0)); +} + +WW8PropertySetIterator::Pointer_t WW8PropertySetImpl::end() +{ + return WW8PropertySetIterator::Pointer_t + (new WW8PropertySetIteratorImpl(this, getCount())); +} + +WW8PropertySetIteratorImpl::~WW8PropertySetIteratorImpl() +{ +} + +WW8Property::Pointer_t +WW8PropertySetImpl::getAttribute(sal_uInt32 nOffset) const +{ + WW8PropertyImpl aTmpAttr(*this, nOffset, 3); + + sal_uInt32 nLength = aTmpAttr.getByteLength(); + + if (nOffset + nLength > getCount()) + nLength = getCount() - nOffset; + + return WW8Property::Pointer_t + (new WW8PropertyImpl(*this, nOffset, nLength)); +} + +void WW8PropertySetImpl::dump(OutputWithDepth<string> & o) const +{ + WW8StructBase::dump(o); + + WW8PropertySetIterator::Pointer_t pIt = + const_cast<WW8PropertySetImpl *>(this)->begin(); + WW8PropertySetIterator::Pointer_t pItEnd = + const_cast<WW8PropertySetImpl *>(this)->end(); + + while((*pIt) != (*pItEnd)) + { + WW8Property::Pointer_t pAttr = pIt->get(); + + pAttr->dump(o); + ++(*pIt); + } +} + +void WW8PropertySetImpl::dots(ostream & o) +{ + WW8PropertySetIterator::Pointer_t pIt = begin(); + WW8PropertySetIterator::Pointer_t pItEnd = end(); + + while((*pIt) != (*pItEnd)) + { + WW8Property::Pointer_t pAttr = pIt->get(); + + o << "." << endl; + + ++(*pIt); + } +} + +string WW8PropertySetImpl::getType() const +{ + return "WW8PropertySetImpl"; +} + +void WW8PropertySetImpl::resolveLocal(Sprm & sprm) +{ + switch (sprm.getId()) + { + case 0x6a03: + { + Value::Pointer_t pValue = sprm.getValue(); + getDocument()->setPicLocation(pValue->getInt()); + } + break; + default: + break; + } +} + +void WW8PropertySetImpl::resolve(Properties & rHandler) +{ + if (getCount() >= (isPap() ? 5U : 3U)) + { + WW8PropertySetIterator::Pointer_t pIt = begin(); + WW8PropertySetIterator::Pointer_t pItEnd = end(); + + if (isPap()) + { + WW8Value::Pointer_t pValue = createValue(getU16(0)); + rHandler.attribute(NS_rtf::LN_ISTD, *pValue); + } + + while((*pIt) != (*pItEnd)) + { + WW8Sprm aSprm(pIt->get()); + + rHandler.sprm(aSprm); + + resolveLocal(aSprm); + + ++(*pIt); + } + } +} + +WW8PropertySetIterator & WW8PropertySetIteratorImpl::operator++ () +{ + WW8Property::Pointer_t pTmpAttr = mpAttrSet->getAttribute(mnOffset); + + mnOffset += dynamic_cast<WW8PropertyImpl *>(pTmpAttr.get())-> + getByteLength(); + + if (mnOffset > mpAttrSet->getCount() || + mpAttrSet->getCount() - mnOffset < 3) + mnOffset = mpAttrSet->getCount(); + + return *this; +} + +WW8Property::Pointer_t WW8PropertySetIteratorImpl::get() const +{ + return mpAttrSet->getAttribute(mnOffset); +} + +bool WW8PropertySetIteratorImpl::equal +(const WW8PropertySetIterator & rIt) const +{ + const WW8PropertySetIteratorImpl & rMyIt = + dynamic_cast<const WW8PropertySetIteratorImpl &>(rIt); + + return mpAttrSet == rMyIt.mpAttrSet && mnOffset == rMyIt.mnOffset; +} + +string WW8PropertySetIteratorImpl::toString() const +{ + string sResult = ""; + + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), "(%ld)", mnOffset); + sResult += sBuffer; + + return sResult; +} + +SprmIdToString::Pointer_t SprmIdToString::pInstance; + +SprmIdToString::Pointer_t SprmIdToString::Instance() +{ + if (pInstance.get() == NULL) + pInstance = SprmIdToString::Pointer_t(new SprmIdToString()); + + return pInstance; +} + +string SprmIdToString::operator()(sal_uInt32 nId) +{ + return mMap[nId]; +} + +} diff --git a/writerfilter/source/doctok/WW8PropertySetImpl.hxx b/writerfilter/source/doctok/WW8PropertySetImpl.hxx new file mode 100644 index 000000000000..a1877c162a4b --- /dev/null +++ b/writerfilter/source/doctok/WW8PropertySetImpl.hxx @@ -0,0 +1,147 @@ +#ifndef INCLUDED_WW8_PROPERTY_SET_IMPL_HXX +#define INCLUDED_WW8_PROEPRTY_SET_IMPL_HXX + +#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX +#include <doctok/WW8ResourceModel.hxx> +#endif + +#ifndef INCLUDED_WW8_DOCUMENT_HXX +#include <doctok/WW8Document.hxx> +#endif + +#ifndef INCLUDED_WW8_STRUCT_BASE_HXX +#include <WW8StructBase.hxx> +#endif + +#ifndef INCLUDED_WW8_OUTPUT_WITH_DEPTH +#include <WW8OutputWithDepth.hxx> +#endif + +#include <map> + +namespace doctok +{ + +class WW8PropertyImpl : public WW8Property, public WW8StructBase +{ + sal_uInt8 get_ispmd() const + { return sal::static_int_cast<sal_uInt8>(getId() & 0xff); } + bool get_fSpec() const { return (getId() & 0x100) != 0; } + sal_uInt8 get_sgc() const + { return sal::static_int_cast<sal_uInt8>((getId() >> 10) & 0x7); } + sal_uInt8 get_spra() const + { return sal::static_int_cast<sal_uInt8>((getId() >> 13) & 0x7); } + +public: + WW8PropertyImpl(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount); + WW8PropertyImpl(const WW8StructBase & rBase, sal_uInt32 nOffset, + sal_uInt32 nCount); + + WW8PropertyImpl(WW8StructBase * pBase, sal_uInt32 nOffset, + sal_uInt32 nCount); + + virtual ~WW8PropertyImpl(); + + sal_uInt32 getId() const { return getU16(0); } + sal_uInt32 getParam() const; + WW8Stream::Sequence getParams() const; + + sal_uInt32 getByteLength() const; + sal_uInt32 getParamOffset() const; + + virtual void dump(OutputWithDepth<string> & o) const; + string toString() const; +}; + +class WW8PropertySetImpl : public WW8PropertySet, public WW8StructBase, + public ::doctok::Reference<Properties> +{ + bool mbPap; + +public: + typedef boost::shared_ptr<WW8PropertySet> Pointer_t; + + WW8PropertySetImpl(WW8Stream & rStream, sal_uInt32 nOffset, + sal_uInt32 nCount, bool bPap = false); + + WW8PropertySetImpl(const WW8StructBase & rBase, sal_uInt32 nOffset, + sal_uInt32 nCount, bool bPap = false); + + virtual ~WW8PropertySetImpl(); + + virtual WW8PropertySetIterator::Pointer_t begin(); + virtual WW8PropertySetIterator::Pointer_t end(); + + virtual void dump(OutputWithDepth<string> & o) const; + virtual void dots(ostream & o); + + virtual string getType() const; + + virtual WW8Property::Pointer_t getAttribute(sal_uInt32 nOffset) const; + + virtual bool isPap() const; + virtual sal_uInt32 get_istd() const; + + virtual void insert(WW8PropertySet::Pointer_t /*pSet*/) {} + + virtual void resolve(Properties & rHandler); + + /** + Get and distribute information from sprm that is used + internally by the document. + + @param rSprm sprm to process + */ + virtual void resolveLocal(Sprm & rSprm); +}; + +class WW8PropertySetIteratorImpl : public WW8PropertySetIterator +{ + WW8PropertySetImpl * mpAttrSet; + sal_uInt32 mnOffset; + +public: + WW8PropertySetIteratorImpl(WW8PropertySetImpl * pAttrSet, + sal_uInt32 nOffset) + : mpAttrSet(pAttrSet), mnOffset(nOffset) + { + } + + virtual ~WW8PropertySetIteratorImpl(); + + virtual WW8PropertySetIterator & operator++(); + + virtual WW8Property::Pointer_t get() const; + + virtual bool equal(const WW8PropertySetIterator & rIt) const; + + virtual string toString() const; +}; + + +class SprmIdToString +{ + typedef boost::shared_ptr<SprmIdToString> Pointer_t; + + static Pointer_t pInstance; + + map<sal_uInt32, string> mMap; + +protected: + /** + Generated automatically. + */ + SprmIdToString(); + +public: + static Pointer_t Instance(); + string operator()(sal_uInt32 nId); +}; + +::doctok::Reference<Properties>::Pointer_t createSprmProps +(WW8PropertyImpl & rProp); +::doctok::Reference<BinaryObj>::Pointer_t createSprmBinary +(WW8PropertyImpl & rProp); +} + +#endif // INCLUDED_WW8_PROPERTY_SET_IMPL_HXX diff --git a/writerfilter/source/doctok/WW8ResourceModelImpl.cxx b/writerfilter/source/doctok/WW8ResourceModelImpl.cxx new file mode 100644 index 000000000000..ee945b39d30f --- /dev/null +++ b/writerfilter/source/doctok/WW8ResourceModelImpl.cxx @@ -0,0 +1,761 @@ +#include <WW8ResourceModelImpl.hxx> +#include <WW8Analyzer.hxx> +#include <resources.hxx> +#include <util.hxx> +#include <WW8OutputWithDepth.hxx> +#include <doctok/TableManager.hxx> +#include <rtl/string.hxx> + +namespace doctok +{ +using namespace ::std; + +WW8OutputWithDepth output; +string gInfo = ""; + +typedef WW8PropertySet::Pointer_t TablePropsPointer_t; + +string xmlify(string str) +{ + string result = ""; + char sBuffer[16]; + + for (string::iterator aIt = str.begin(); aIt != str.end(); ++aIt) + { + char c = *aIt; + + if (isprint(c)) + result += c; + else + { + snprintf(sBuffer, sizeof(sBuffer), "\\%03d", c); + result += sBuffer; + } + } + + return result; +} + +// ------- WW8TableDataHandler --------- + +class WW8TableDataHandler : public TableDataHandler<string, + TablePropsPointer_t> +{ +public: + typedef boost::shared_ptr<WW8TableDataHandler> Pointer_t; + virtual void startTable(unsigned int nRows, unsigned int nDepth, + TablePropsPointer_t pProps); + virtual void endTable(); + virtual void startRow(unsigned int nCols, + TablePropsPointer_t pProps); + virtual void endRow(); + virtual void startCell(const string & start, TablePropsPointer_t pProps); + virtual void endCell(const string & end); +}; + +void WW8TableDataHandler::startTable(unsigned int nRows, unsigned int nDepth, + TablePropsPointer_t /*pProps*/) +{ + char sBuffer[256]; + + string tmpStr = "<tabledata.table rows=\""; + snprintf(sBuffer, sizeof(sBuffer), "%d", nRows); + tmpStr += sBuffer; + tmpStr += "\" depth=\""; + snprintf(sBuffer, sizeof(sBuffer), "%d", nDepth); + tmpStr += sBuffer; + tmpStr += "\">"; + + output.addItem(tmpStr); +} + +void WW8TableDataHandler::endTable() +{ + output.addItem("</tabledata.table>"); +} + +void WW8TableDataHandler::startRow +(unsigned int nCols, TablePropsPointer_t /*pProps*/) +{ + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), "%d", nCols); + string tmpStr = "<tabledata.row cells=\""; + tmpStr += sBuffer; + tmpStr += "\">"; + output.addItem(tmpStr); +} + +void WW8TableDataHandler::endRow() +{ + output.addItem("</tabledata.row>"); +} + +void WW8TableDataHandler::startCell(const string & start, + TablePropsPointer_t /*pProps*/) +{ + output.addItem("<tabledata.cell>"); + output.addItem(start); + output.addItem(", "); +} + +void WW8TableDataHandler::endCell(const string & end) +{ + output.addItem(end); + output.addItem("</tabledata.cell>"); +} + +// ----- WW8TableDataManager ------------------------------- + +class WW8TableManager : + public TableManager<string, TablePropsPointer_t> +{ + typedef TableDataHandler<string, TablePropsPointer_t> + TableDataHandlerPointer_t; + +public: + WW8TableManager(); + virtual ~WW8TableManager() {} + virtual void endParagraphGroup(); + virtual void sprm(Sprm & rSprm); +}; + +WW8TableManager::WW8TableManager() +{ + TableDataHandler<string, TablePropsPointer_t>::Pointer_t pHandler(new WW8TableDataHandler()); + setHandler(pHandler); +} + +void WW8TableManager::sprm(Sprm & rSprm) +{ + TableManager<string, TablePropsPointer_t>::sprm(rSprm); + output.setDepth(getTableDepthNew()); +} + +void WW8TableManager::endParagraphGroup() +{ + string tmpStr = "<tabledepth depth=\""; + char sBuffer[256]; + snprintf(sBuffer, sizeof(sBuffer), "%ld", getTableDepthNew()); + tmpStr += sBuffer; + tmpStr += "\"/>"; + output.addItem(tmpStr); + TableManager<string, TablePropsPointer_t>::endParagraphGroup(); +} + +WW8TableManager gTableManager; + +//-------- WW8TableReference ----------------------------------- + +void WW8TableReference::resolve(Table & /*rHandler*/) +{ + output.addItem("<table/>"); +} + +string WW8TableReference::getType() const +{ + return "WW8TableReference"; +} + +void WW8PropertiesReference::resolve(Properties & rHandler) +{ + if (mpPropSet != NULL) + { + //mpPropSet->dump(clog); + + if (mpPropSet->isPap()) + { + WW8IntValue aValue(mpPropSet->get_istd()); + + rHandler.attribute(NS_rtf::LN_ISTD, aValue); + } + + WW8PropertySetIterator::Pointer_t pIt = mpPropSet->begin(); + WW8PropertySetIterator::Pointer_t pItEnd = mpPropSet->end(); + + try + { + while (! pIt->equal(*pItEnd)) + { + WW8Sprm aSprm(pIt->get()); + rHandler.sprm(aSprm); + + ++(*pIt); + } + } + catch (ExceptionOutOfBounds e) + { + } + } +} + +string WW8PropertiesReference::getType() const +{ + return "WW8PropertiesReference"; +} + +WW8BinaryObjReference::WW8BinaryObjReference +(WW8StructBase & rParent, sal_uInt32 nOffset, sal_uInt32 nCount) +: WW8StructBase(rParent, nOffset, nCount) +{ +} + +WW8BinaryObjReference::WW8BinaryObjReference +(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount) +: WW8StructBase(pParent, nOffset, nCount) +{ +} + +doctok::Reference<BinaryObj>::Pointer_t +WW8BinaryObjReference::getBinary() +{ + return doctok::Reference<BinaryObj>::Pointer_t + (new WW8BinaryObjReference(*this)); +} + +void WW8BinaryObjReference::resolve(BinaryObj & rHandler) +{ + doctok::Reference<Properties>::Pointer_t pRef = + doctok::Reference<Properties>::Pointer_t(); + + if (getCount() > 0) + rHandler.data(get(0), getCount(), pRef); +} + +string WW8BinaryObjReference::getType() const +{ + return "WW8BinaryObjReference"; +} + +void WW8BinaryObjHandler::data +(const sal_uInt8 * /*buf*/, size_t /*length*/, + doctok::Reference<Properties>::Pointer_t /*pRef*/) +{ +#if 0 + SubSequence<sal_uInt8> aSeq(buf, length); + + aSeq.dump(output); +#endif +} + +sal_uInt32 WW8Sprm::getId() const +{ + sal_uInt32 nResult = 0; + + if (mpProperty.get() != NULL) + nResult = mpProperty->getId(); + else if (mpBinary.get() != NULL) + nResult = NS_rtf::LN_blob; + + return nResult; +} + +string WW8Sprm::toString() const +{ + string sResult = ""; + + if (mpProperty.get() != NULL) + sResult = mpProperty->toString(); + + return sResult; +} + +Value::Pointer_t WW8Sprm::getValue() +{ + Value::Pointer_t pResult; + + if (mpProperty.get() != NULL) + pResult = Value::Pointer_t(createValue(mpProperty->getParam())); + + return pResult; +} + +doctok::Reference<BinaryObj>::Pointer_t WW8Sprm::getBinary() +{ + doctok::Reference<BinaryObj>::Pointer_t pResult; + + if (mpBinary.get() != NULL) + pResult = doctok::Reference<BinaryObj>::Pointer_t(mpBinary->clone()); + else if (mpProperty.get() != NULL) + pResult = createSprmBinary + (dynamic_cast<WW8PropertyImpl &>(*(mpProperty.get()))); + + return pResult; +} + +doctok::Reference<Stream>::Pointer_t WW8Sprm::getStream() +{ + return doctok::Reference<Stream>::Pointer_t(); +} + +doctok::Reference<Properties>::Pointer_t WW8Sprm::getProps() +{ + doctok::Reference<Properties>::Pointer_t pResult; + + if (mpProperty.get() != NULL) + { + pResult = createSprmProps + (dynamic_cast<WW8PropertyImpl &>(*(mpProperty.get()))); + } + + return pResult; +} + +string WW8Sprm::getName() const +{ + return (*SprmIdToString::Instance())(getId()); +} + +int WW8Value::getInt() const +{ + return 0; +} + +uno::Any WW8Value::getAny() const +{ + return uno::Any(); +} + +::rtl::OUString WW8Value::getString() const +{ + return ::rtl::OUString(); +} + +string WW8Value::toString() const +{ + return string(); +} + +doctok::Reference<Properties>::Pointer_t WW8Value::getProperties() +{ + return doctok::Reference<Properties>::Pointer_t(); +} + +int WW8IntValue::getInt() const +{ + return mValue; +} + +::rtl::OUString WW8IntValue::getString() const +{ + return ::rtl::OUString::valueOf(static_cast<sal_Int32>(mValue)); +} + +uno::Any WW8IntValue::getAny() const +{ + uno::Any aResult; + + aResult <<= static_cast<sal_uInt32>(mValue); + + return aResult; +} + +string WW8IntValue::toString() const +{ + char sBuffer[255]; + + snprintf(sBuffer, sizeof(sBuffer), "%x", mValue); + + return string(sBuffer); +} + +WW8Value::Pointer_t createValue(int value) +{ + return WW8Value::Pointer_t(new WW8IntValue(value)); +} + +WW8Value::Pointer_t createValue(WW8Value::Pointer_t value) +{ + return value; +} + +int WW8StringValue::getInt() const +{ + return 0; +} + +::rtl::OUString WW8StringValue::getString() const +{ + return mString; +} + +uno::Any WW8StringValue::getAny() const +{ + uno::Any aResult; + + aResult <<= mString; + + return aResult; +} + +string WW8StringValue::toString() const +{ + string result; + + sal_uInt32 nCount = mString.getLength(); + for (sal_uInt32 n = 0; n < nCount; ++n) + { + if (mString[n] <= 0xff && isprint(mString[n])) + { + sal_Unicode nC = mString[n]; + + if (nC < 256) + result += sal::static_int_cast<char>(nC); + else + result += "."; + } + else + { + char sBuffer[64]; + + snprintf(sBuffer, sizeof(sBuffer), "\\u%04x", mString[n]); + result += sBuffer; + } + } + + return result; +} + +WW8Value::Pointer_t createValue(const rtl::OUString & rStr) +{ + return WW8Value::Pointer_t(new WW8StringValue(rStr)); +} + +doctok::Reference<Properties>::Pointer_t WW8PropertiesValue::getProperties() +{ + return mRef; +} + +string WW8PropertiesValue::toString() const +{ + return "properties"; +} + +WW8Value::Pointer_t createValue(doctok::Reference<Properties>::Pointer_t rRef) +{ + return WW8Value::Pointer_t(new WW8PropertiesValue(rRef)); +} + +WW8StreamHandler::WW8StreamHandler() +{ + output.addItem("<stream>"); + gTableManager.startLevel(); +} + +WW8StreamHandler::~WW8StreamHandler() +{ + gTableManager.endLevel(); + + output.addItem("</stream>"); + output.closeGroup(); +} + +void WW8StreamHandler::startSectionGroup() +{ + output.addItem("<section-group>"); +} + +void WW8StreamHandler::endSectionGroup() +{ + output.addItem("</section-group>"); +} + +void WW8StreamHandler::startParagraphGroup() +{ + output.openGroup(); + output.addItem("<paragraph-group>"); + + gTableManager.startParagraphGroup(); + gTableManager.handle(gInfo); +} + +void WW8StreamHandler::endParagraphGroup() +{ + gTableManager.endParagraphGroup(); + + output.addItem("</paragraph-group>"); + output.closeGroup(); + +} + +void WW8StreamHandler::startCharacterGroup() +{ + output.addItem("<character-group>"); +} + +void WW8StreamHandler::endCharacterGroup() +{ + output.addItem("</character-group>"); +} + +void WW8StreamHandler::text(const sal_uInt8 * data, size_t len) +{ + string tmpStr = "<text>"; + + for (unsigned int n = 0; n < len; ++n) + { + switch (static_cast<unsigned char>(data[n])) + { + case '<': + tmpStr += "<"; + + break; + case '>': + tmpStr += ">"; + + break; + + case '&': + tmpStr += "&"; + + break; + default: + if (isprint(data[n])) + tmpStr += static_cast<char>(data[n]); + else + { + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), "\\0x%02x", data[n]); + + tmpStr += sBuffer; + } + } + } + + tmpStr += "</text>"; + + output.addItem(tmpStr); + + gTableManager.text(data, len); +} + +void WW8StreamHandler::utext(const sal_uInt8 * data, size_t len) +{ + string tmpStr = "<utext>"; + + for (unsigned int n = 0; n < len; ++n) + { + sal_Unicode nChar = data[n * 2] + (data[n * 2 + 1] << 8); + if (nChar < 0xff && isprint(nChar)) + { + switch (nChar) + { + case '&': + tmpStr += "&"; + break; + case '<': + tmpStr += "<"; + break; + case '>': + tmpStr += ">"; + break; + default: + tmpStr += static_cast<char>(nChar); + } + } + else + { + char sBuffer[256]; + + snprintf(sBuffer, sizeof(sBuffer), "\\0x%04x", nChar); + + tmpStr += sBuffer; + } + } + + tmpStr += "</utext>"; + + output.addItem(tmpStr); + + gTableManager.utext(data, len); +} + +void WW8StreamHandler::props(doctok::Reference<Properties>::Pointer_t ref) +{ + WW8PropertiesHandler aHandler; + + output.addItem("<properties type=\"" + ref->getType() + "\">"); + ref->resolve(aHandler); + + //gTableManager.props(ref); + + output.addItem("</properties>"); +} + +void WW8StreamHandler::table(Id name, doctok::Reference<Table>::Pointer_t ref) +{ + WW8TableHandler aHandler; + + output.addItem("<table id=\"" + (*QNameToString::Instance())(name) + + "\">"); + + try + { + ref->resolve(aHandler); + } + catch (doctok::Exception e) + { + output.addItem("<exception>" + e.getText() + "</exception>"); + } + + output.addItem("</table>"); +} + +void WW8StreamHandler::substream(Id name, + doctok::Reference<Stream>::Pointer_t ref) +{ + output.addItem("<substream name=\"" + (*QNameToString::Instance())(name) + + "\">"); + + gTableManager.startLevel(); + + ref->resolve(*this); + + gTableManager.endLevel(); + + output.addItem("</substream>"); +} + +void WW8StreamHandler::info(const string & info_) +{ + gInfo = info_; + output.addItem("<info>" + info_ + "</info>"); +} + +void WW8PropertiesHandler::attribute(Id name, Value & val) +{ + doctok::Reference<Properties>::Pointer_t pProps = val.getProperties(); + + if (pProps.get() != NULL) + { + output.addItem("<properties name=\"" + + (*QNameToString::Instance())(name) + + "\" type=\"" + pProps->getType() + "\">"); + + try + { + pProps->resolve(*this); + } + catch (ExceptionOutOfBounds e) + { + } + + output.addItem("</properties>"); + } + else + { + boost::shared_ptr<rtl::OString> pStr(new ::rtl::OString()); + ::rtl::OUString aStr = val.getString(); + aStr.convertToString(pStr.get(), RTL_TEXTENCODING_ASCII_US, + OUSTRING_TO_OSTRING_CVTFLAGS); + string sXMLValue = xmlify(pStr->getStr()); + + output.addItem("<attribute name=\"" + + (*QNameToString::Instance())(name) + + "\" value=\"" + + sXMLValue + + + "\"/>"); + } +} + +void WW8PropertiesHandler::sprm(Sprm & sprm_) +{ + string tmpStr = "<sprm id=\""; + char buffer[256]; + snprintf(buffer, sizeof(buffer), "0x%lx", sprm_.getId()); + tmpStr += buffer; + tmpStr += "\" name=\""; + tmpStr += sprm_.getName(); + tmpStr += "\">"; + output.addItem(tmpStr); + output.addItem(sprm_.toString()); + + doctok::Reference<Properties>::Pointer_t pProps = sprm_.getProps(); + + if (pProps.get() != NULL) + { + output.addItem("<properties type=\"" + pProps->getType() + "\">"); + pProps->resolve(*this); + output.addItem("</properties>"); + } + + doctok::Reference<BinaryObj>::Pointer_t pBinObj = sprm_.getBinary(); + + if (pBinObj.get() != NULL) + { + output.addItem("<binary>"); + WW8BinaryObjHandler aHandler; + pBinObj->resolve(aHandler); + output.addItem("</binary>"); + } + + gTableManager.sprm(sprm_); + + output.addItem("</sprm>"); +} + +void WW8TableHandler::entry(int /*pos*/, doctok::Reference<Properties>::Pointer_t ref) +{ + output.addItem("<tableentry>"); + + WW8PropertiesHandler aHandler; + + try + { + ref->resolve(aHandler); + } + catch (doctok::Exception e) + { + output.addItem("<exception>" + e.getText() + "</exception>"); + output.addItem("</tableentry>"); + + throw e; + } + + output.addItem("</tableentry>"); +} + +Stream::Pointer_t createStreamHandler() +{ + return Stream::Pointer_t(new WW8StreamHandler()); +} + +Stream::Pointer_t createAnalyzer() +{ + return Stream::Pointer_t(new WW8Analyzer()); +} + +QNameToString::Pointer_t QNameToString::pInstance; + +QNameToString::Pointer_t QNameToString::Instance() +{ + if (pInstance.get() == NULL) + pInstance = QNameToString::Pointer_t(new QNameToString()); + + return pInstance; +} + +string QNameToString::operator()(writerfilter::QName_t qName) +{ + return mMap[qName]; +} + +void dump(OutputWithDepth<string> & /*o*/, const char * /*name*/, + doctok::Reference<Properties>::Pointer_t /*props*/) +{ +} + +void dump(OutputWithDepth<string> & o, const char * name, sal_uInt32 n) +{ + char sBuffer[256]; + snprintf(sBuffer, sizeof(sBuffer), "%ld", n); + string tmpStr = name; + tmpStr += "="; + tmpStr += sBuffer; + + o.addItem(tmpStr); +} + +} + diff --git a/writerfilter/source/doctok/WW8ResourceModelImpl.hxx b/writerfilter/source/doctok/WW8ResourceModelImpl.hxx new file mode 100644 index 000000000000..794a7fd594b3 --- /dev/null +++ b/writerfilter/source/doctok/WW8ResourceModelImpl.hxx @@ -0,0 +1,319 @@ +#ifndef INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX +#define INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX + +#ifndef INCLUDED_WW8_DOCUMENT_HXX +#include <doctok/WW8Document.hxx> +#endif + +#ifndef INCLUDED_WW8_RESOURCE_MODEL_HXX +#include <doctok/WW8ResourceModel.hxx> +#endif + +#ifndef INCLUDED_WW8_STRUCT_BASE_HXX +#include <WW8StructBase.hxx> +#endif + +#ifndef INCLUDED_OUTPUT_WITH_DEPTH_HXX +#include <doctok/OutputWithDepth.hxx> +#endif + +#include <odiapi/qname/QName.hxx> +#include <map> + +namespace doctok +{ +using namespace ::std; + +class WW8PropertiesReference : public doctok::Reference<Properties> +{ + WW8PropertySet::Pointer_t mpPropSet; + +public: + + WW8PropertiesReference(WW8PropertySet::Pointer_t pPropSet) + : mpPropSet(pPropSet) + { + } + + ~WW8PropertiesReference() + { + } + + virtual void resolve(Properties & rHandler); + + virtual string getType() const; +}; + +class WW8TableReference : public doctok::Reference<Table> +{ +public: + WW8TableReference() + { + } + + ~WW8TableReference() + { + } + + virtual void resolve(Table & rHandler); + + virtual string getType() const; +}; + +class WW8BinaryObjReference : public doctok::Reference<BinaryObj>, + public WW8StructBase +{ +public: + typedef boost::shared_ptr<WW8BinaryObjReference> Pointer_t; + WW8BinaryObjReference(WW8StructBase & rParent, sal_uInt32 nOffset, + sal_uInt32 nCount); + WW8BinaryObjReference(WW8StructBase * rParent, sal_uInt32 nOffset, + sal_uInt32 nCount); + + WW8BinaryObjReference() + : WW8StructBase(WW8StructBase::Sequence()) + { + } + + ~WW8BinaryObjReference() + { + } + + virtual doctok::Reference<BinaryObj>::Pointer_t getBinary(); + + virtual void resolve(BinaryObj & rHandler); + + virtual string getType() const; + + virtual WW8BinaryObjReference * clone() { return new WW8BinaryObjReference(*this); } +}; + +class WW8Sprm : public Sprm +{ + WW8Property::Pointer_t mpProperty; + WW8BinaryObjReference::Pointer_t mpBinary; + +public: + WW8Sprm(WW8Property::Pointer_t pProperty) + : mpProperty(pProperty) + { + } + + WW8Sprm(WW8BinaryObjReference::Pointer_t pBinary) + : mpBinary(pBinary) + { + } + + WW8Sprm() + { + } + + WW8Sprm(const WW8Sprm & rSprm) + : Sprm(rSprm), mpProperty(rSprm.mpProperty), mpBinary(rSprm.mpBinary) + { + } + + virtual ~WW8Sprm() + { + } + + virtual Value::Pointer_t getValue(); + virtual doctok::Reference<BinaryObj>::Pointer_t getBinary(); + virtual doctok::Reference<Stream>::Pointer_t getStream(); + virtual doctok::Reference<Properties>::Pointer_t getProps(); + + virtual sal_uInt32 getId() const; + virtual string toString() const; + virtual string getName() const; + + virtual WW8Sprm * clone() const { return new WW8Sprm(*this); } +}; + +class WW8Value : public Value +{ +public: + WW8Value() {} + virtual ~WW8Value() {} + + virtual string toString() const; + virtual int getInt() const; + virtual ::rtl::OUString getString() const; + virtual uno::Any getAny() const; + virtual doctok::Reference<Properties>::Pointer_t getProperties(); + virtual WW8Value * clone() const = 0; +}; + +class WW8IntValue : public WW8Value +{ + int mValue; +public: + WW8IntValue(int value) : mValue(value) {} + virtual ~WW8IntValue() {} + + virtual int getInt() const; + virtual ::rtl::OUString getString() const; + virtual uno::Any getAny() const; + + virtual string toString() const; + + virtual WW8Value * clone() const { return new WW8IntValue(*this); } +}; + +/** + Creates value from an integer. + + @param value integer to create value from. +*/ +WW8Value::Pointer_t createValue(int value); + +ostream & operator << (ostream & o, const WW8Value & rValue); + +class WW8StringValue : public WW8Value +{ + ::rtl::OUString mString; + +public: + WW8StringValue(::rtl::OUString string_) : mString(string_) {} + virtual ~WW8StringValue() {} + + virtual int getInt() const; + virtual ::rtl::OUString getString() const; + virtual uno::Any getAny() const; + + virtual string toString() const; + + virtual WW8Value * clone() const { return new WW8StringValue(*this); } +}; + +/** + Creates value from a string. + + @param rStr string to create value from. +*/ +WW8Value::Pointer_t createValue(const rtl::OUString & rStr); + +class WW8PropertiesValue : public WW8Value +{ + mutable doctok::Reference<Properties>::Pointer_t mRef; + +public: + WW8PropertiesValue(doctok::Reference<Properties>::Pointer_t rRef) + : mRef(rRef) + { + } + + virtual ~WW8PropertiesValue() + { + } + + virtual doctok::Reference<Properties>::Pointer_t getProperties(); + + virtual string toString() const; + + virtual WW8Value * clone() const { return new WW8PropertiesValue(mRef); } +}; + +/** + Creates value from a properties reference. + + @param rRef reference to create value from. +*/ +WW8Value::Pointer_t createValue(doctok::Reference<Properties>::Pointer_t rRef); + +WW8Value::Pointer_t createValue(WW8Value::Pointer_t value); + +class WW8StreamHandler : public Stream +{ + +public: + WW8StreamHandler(); + virtual ~WW8StreamHandler(); + + virtual void startSectionGroup(); + virtual void endSectionGroup(); + virtual void startParagraphGroup(); + virtual void endParagraphGroup(); + virtual void startCharacterGroup(); + virtual void endCharacterGroup(); + virtual void text(const sal_uInt8 * data, size_t len); + virtual void utext(const sal_uInt8 * data, size_t len); + + virtual void props(doctok::Reference<Properties>::Pointer_t ref); + virtual void table(Id name, + doctok::Reference<Table>::Pointer_t ref); + + virtual void substream(Id name, doctok::Reference<Stream>::Pointer_t ref); + + virtual void info(const string & info); +}; + +class WW8PropertiesHandler : public Properties +{ +public: + WW8PropertiesHandler() + { + } + + virtual ~WW8PropertiesHandler() + { + } + + virtual void attribute(Id name, Value & val); + virtual void sprm(Sprm & sprm); +}; + +class WW8BinaryObjHandler : public BinaryObj +{ +public: + WW8BinaryObjHandler() + { + } + + virtual ~WW8BinaryObjHandler() + { + } + + virtual void data(const sal_uInt8* buf, size_t len, + doctok::Reference<Properties>::Pointer_t ref); +}; + +class WW8TableHandler : public Table +{ +public: + WW8TableHandler() + { + } + + virtual ~WW8TableHandler() + { + } + + void entry(int pos, doctok::Reference<Properties>::Pointer_t ref); +}; + +class QNameToString +{ + typedef boost::shared_ptr<QNameToString> Pointer_t; + + static Pointer_t pInstance; + + map < writerfilter::QName_t, string > mMap; + +protected: + /** + Generated. + */ + QNameToString(); + +public: + static Pointer_t Instance(); + + string operator()(writerfilter::QName_t qName); +}; + +void dump(OutputWithDepth<string> & o, const char * name, doctok::Reference<Properties>::Pointer_t props); +void dump(OutputWithDepth<string> & o, const char * name, sal_uInt32 n); + +} + +#endif // INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX diff --git a/writerfilter/source/doctok/WW8StreamImpl.cxx b/writerfilter/source/doctok/WW8StreamImpl.cxx new file mode 100644 index 000000000000..fd4c33572af4 --- /dev/null +++ b/writerfilter/source/doctok/WW8StreamImpl.cxx @@ -0,0 +1,144 @@ +#include <WW8StreamImpl.hxx> + +#include <com/sun/star/uno/Reference.h> +#include <com/sun/star/io/XSeekable.hpp> +#include <com/sun/star/io/XStream.hpp> +#include <com/sun/star/lang/XMultiComponentFactory.hpp> + +namespace doctok +{ +using namespace ::com::sun::star; + +WW8StreamImpl::WW8StreamImpl(uno::Reference<uno::XComponentContext> rContext, + uno::Reference<io::XInputStream> rStream) +: mrComponentContext(rContext), mrStream(rStream) +{ + xFactory = uno::Reference<lang::XMultiComponentFactory> + (mrComponentContext->getServiceManager()); + + uno::Sequence<uno::Any> aArgs( 1 ); + aArgs[0] <<= mrStream; + + xOLESimpleStorage = uno::Reference<container::XNameContainer> + (xFactory->createInstanceWithArgumentsAndContext + (::rtl::OUString::createFromAscii + ("com.sun.star.embed.OLESimpleStorage"), + aArgs, mrComponentContext ), + uno::UNO_QUERY ); +} + +WW8Stream::Sequence WW8StreamImpl::get(sal_uInt32 nOffset, + sal_uInt32 nCount) const +{ + uno::Sequence<sal_Int8> aSequence; + + if (nCount > 0) + { + uno::Reference< io::XSeekable > xSeek( mrStream, uno::UNO_QUERY_THROW ); + + xSeek->seek(nOffset); + + sal_Int32 nRead = mrStream->readBytes(aSequence, nCount); + + Sequence aReturnSequence(const_cast<const sal_uInt8 *> + (reinterpret_cast<sal_uInt8 *> + (&(aSequence[0]))), nRead); + + return aReturnSequence; + } + + return WW8Stream::Sequence(); +} + +WW8Stream::Pointer_t WW8StreamImpl::getSubStream(const ::rtl::OUString & sId) +{ + WW8Stream::Pointer_t pResult; + + try + { + if (xOLESimpleStorage.is()) + { + if (xOLESimpleStorage->hasByName(sId)) + { + uno::Reference<io::XStream> xNewStream; + { + uno::Any aValue = xOLESimpleStorage->getByName(sId); + aValue >>= xNewStream; + } + + if (xNewStream.is()) + { + WW8Stream::Pointer_t + pNew(new WW8StreamImpl(mrComponentContext, + xNewStream->getInputStream())); + + pResult = pNew; + } + } + } + } + catch (...) + { + } + + if (pResult.get() == NULL) + throw ExceptionNotFound("Stream not found"); + + return pResult; +} + +string WW8StreamImpl::getSubStreamNames() const +{ + string sResult; + + if (xOLESimpleStorage.is()) + { + uno::Sequence<rtl::OUString> aSeq = xOLESimpleStorage->getElementNames(); + + for (sal_uInt32 n = 0; + n < sal::static_int_cast<sal_uInt32>(aSeq.getLength()); ++n) + { + rtl::OUString aOUStr = aSeq[n]; + + if (n > 0) + sResult += ", "; + +#if 0 + rtl::OString aOStr; + aOUStr.convertToString(&aOStr, RTL_TEXTENCODING_ASCII_US, + OUSTRING_TO_OSTRING_CVTFLAGS); + + + sResult += aOStr.getStr(); +#endif + char sBuffer[256]; + for (sal_uInt32 j = 0; + j < sal::static_int_cast<sal_uInt32>(aOUStr.getLength()); ++j) + { + if (isprint(aOUStr[j])) + { + sal_Unicode nC = aOUStr[j]; + + if (nC < 255) + sResult += sal::static_int_cast<char>(nC); + else + sResult += "."; + } + else + { + snprintf(sBuffer, sizeof(sBuffer), "\\u%x", aOUStr[j]); + sResult += sBuffer; + } + } + } + } + + return sResult; +} + +uno::Sequence<rtl::OUString> WW8StreamImpl::getSubStreamUNames() const +{ + return xOLESimpleStorage->getElementNames(); +} + +} diff --git a/writerfilter/source/doctok/WW8StreamImpl.hxx b/writerfilter/source/doctok/WW8StreamImpl.hxx new file mode 100644 index 000000000000..8210a6352513 --- /dev/null +++ b/writerfilter/source/doctok/WW8StreamImpl.hxx @@ -0,0 +1,40 @@ +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif +#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_ +#include <com/sun/star/io/XInputStream.hpp> +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include <com/sun/star/container/XNameContainer.hpp> +#endif +#ifndef INCLUDED_WW8_DOCUMENT_HXX +#include <doctok/WW8Document.hxx> +#endif + +namespace doctok +{ +using namespace ::com::sun::star; + +class WW8StreamImpl : public WW8Stream +{ + uno::Reference<uno::XComponentContext> mrComponentContext; + uno::Reference<io::XInputStream> mrStream; + uno::Reference<container::XNameContainer> xOLESimpleStorage; + uno::Reference<lang::XMultiComponentFactory> xFactory; + +public: + WW8StreamImpl(uno::Reference<uno::XComponentContext> rContext, + uno::Reference<io::XInputStream> rStream); + virtual ~WW8StreamImpl() {} + + virtual WW8Stream::Pointer_t getSubStream(const ::rtl::OUString & rId); + + virtual Sequence get(sal_uInt32 nOffset, sal_uInt32 nCount) + const; + + //virtual bool put(sal_uInt32 nOffset, const Sequence & rSeq); + + virtual string getSubStreamNames() const; + virtual uno::Sequence<rtl::OUString> getSubStreamUNames() const; +}; +} diff --git a/writerfilter/source/doctok/WW8StructBase.cxx b/writerfilter/source/doctok/WW8StructBase.cxx new file mode 100644 index 000000000000..0c65cbee8fc2 --- /dev/null +++ b/writerfilter/source/doctok/WW8StructBase.cxx @@ -0,0 +1,148 @@ +#include <WW8StructBase.hxx> +#include <util.hxx> + +namespace doctok { +using namespace ::com::sun::star; + +WW8StructBase::WW8StructBase(const WW8StructBase & rParent, + sal_uInt32 nOffset, sal_uInt32 nCount) +: mSequence(rParent.mSequence, nOffset, nCount), mpParent(0), + mpDocument(rParent.getDocument()) +{ + if (nOffset + nCount > rParent.getCount()) + { + throw ExceptionOutOfBounds("WW8StructBase"); + } +} + +WW8StructBase & WW8StructBase::Assign(const WW8StructBase & rSrc) +{ + mSequence = rSrc.mSequence; + mpDocument = rSrc.mpDocument; + + return *this; +} + +void WW8StructBase::setDocument(WW8DocumentImpl * pDocument) +{ + mpDocument = pDocument; +} + +WW8DocumentImpl * WW8StructBase::getDocument() const +{ + return mpDocument; +} + +sal_uInt8 WW8StructBase::getU8(sal_uInt32 nOffset) const +{ + return doctok::getU8(mSequence, nOffset); +} + +sal_uInt16 WW8StructBase::getU16(sal_uInt32 nOffset) const +{ + return doctok::getU16(mSequence, nOffset); +} + +sal_uInt32 WW8StructBase::getU32(sal_uInt32 nOffset) const +{ + return doctok::getU32(mSequence, nOffset); +} + +sal_Bool WW8StructBase::getBit(sal_uInt32 nValue, sal_uInt16 nBit) const +{ + return (nValue & (1 << nBit)) != 0; +} + +sal_uInt8 WW8StructBase::getNibble(sal_uInt32 nValue, + sal_uInt16 nShift) const +{ + return sal::static_int_cast<sal_uInt8>((nValue >> nShift) & 0xf); +} + +sal_uInt8 getU8(const WW8StructBase::Sequence & rSeq, + sal_uInt32 nOffset) +{ + return rSeq[nOffset]; +} + +sal_uInt16 getU16(const WW8StructBase::Sequence & rSeq, + sal_uInt32 nOffset) +{ + return getU8(rSeq, nOffset) | (getU8(rSeq, nOffset + 1) << 8); +} + +sal_uInt32 getU32(const WW8StructBase::Sequence & rSeq, + sal_uInt32 nOffset) +{ + sal_uInt32 nResult = getU8(rSeq, nOffset); + nResult |= (getU8(rSeq, nOffset + 1) << 8); + nResult |= (getU8(rSeq, nOffset + 2) << 16); + nResult |= (getU8(rSeq, nOffset + 3) << 24); + + return nResult; +} + +rtl::OUString WW8StructBase::getString(sal_uInt32 nOffset, sal_uInt32 nCount) + const +{ + rtl::OUString aResult; + + Sequence aSeq(mSequence, nOffset, nCount * 2); + + if (nCount > 0) + { + rtl_uString * pNew = 0; + rtl_uString_newFromStr_WithLength + (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0]), + nCount); + + aResult = rtl::OUString(pNew); + } + + return aResult; +} + +rtl::OUString WW8StructBase::getString(sal_uInt32 nOffset) const +{ + sal_uInt32 nCount = getU16(nOffset); + + return getString(nOffset + 2, nCount); +} + +WW8StructBaseTmpOffset::WW8StructBaseTmpOffset +(WW8StructBase * pStructBase) +: mnOffset(0), mpStructBase(pStructBase) +{ +} + +sal_uInt32 WW8StructBaseTmpOffset::set(sal_uInt32 nOffset) +{ + if (nOffset >= mpStructBase->getCount()) + throw ExceptionOutOfBounds("WW8StructBaseTmpOffset::set"); + + mnOffset = nOffset; + + return mnOffset; +} + +sal_uInt32 WW8StructBaseTmpOffset::get() const +{ + return mnOffset; +} + +sal_uInt32 WW8StructBaseTmpOffset::inc(sal_uInt32 nOffset) +{ + if (mpStructBase->getCount() - mnOffset < nOffset) + throw ExceptionOutOfBounds("WW8StructBaseTmpOffset::inc"); + + mnOffset += nOffset; + + return mnOffset; +} + +WW8StructBaseTmpOffset::operator sal_uInt32() const +{ + return mnOffset; +} + +} diff --git a/writerfilter/source/doctok/WW8StructBase.hxx b/writerfilter/source/doctok/WW8StructBase.hxx new file mode 100644 index 000000000000..945fc6c2857b --- /dev/null +++ b/writerfilter/source/doctok/WW8StructBase.hxx @@ -0,0 +1,287 @@ +#ifndef INCLUDED_WW8_STRUCT_BASE_HXX +#define INCLUDED_WW8_STRUCT_BASE_HXX + +#include <boost/shared_ptr.hpp> + +#ifndef INCLUDED_WW8_DOCUMENT_HXX +#include <doctok/WW8Document.hxx> +#endif + +#ifndef INCLUDED_OUTPUT_WITH_DEPTH +#include <OutputWithDepth.hxx> +#endif + +namespace doctok { + +class WW8DocumentImpl; + +/** + Part of a stream. + + A part can have a parent, meaning its sequence of data is a + subsequence of its parent's sequence of data. + */ +class WW8StructBase +{ +public: + typedef SubSequence<sal_uInt8> Sequence; + typedef boost::shared_ptr<WW8StructBase> Pointer_t; + +protected: + /** + Stream this part was created from. + */ + ::com::sun::star::uno::Reference<com::sun::star::io:: + XInputStream> mrStream; + + /** + The data. + */ + mutable Sequence mSequence; + + /** + This part's parent. + */ + WW8StructBase * mpParent; + + /** + This part's offset in parent. + */ + sal_uInt32 mnOffsetInParent; + + /** + The document of this struct. + */ + WW8DocumentImpl * mpDocument; + +public: + WW8StructBase(sal_Int32 nLength) + : mSequence(nLength) + { + } + + /** + Creates a part from a steam. + + @param rStream the stream + @param nOffset offset in @a rStream to start at + @param nCount count of bytes in the new part + */ + WW8StructBase(WW8Stream & rStream, + sal_Int32 nOffset, sal_Int32 nCount) + : mSequence(rStream.get(nOffset, nCount)), mpParent(0), mpDocument(0) + { + } + + /** + Creates a part from a sequence. + + @param rSequence the sequence + @param nOffset offset in @a rSequence to start at + @param nCount count of bytes in the new part + */ + WW8StructBase(const Sequence & rSequence, sal_uInt32 nOffset = 0, + sal_uInt32 nCount = 0) + : mSequence(rSequence, nOffset, nCount), mpParent(0), mpDocument(0) + { + } + + /** + Creates a part from a parent part. + + @param pParent the parent + @param nOffset offset in @a pParent to start at + @param nCount count of bytes in the new part + */ + WW8StructBase(const WW8StructBase & rParent, + sal_uInt32 nOffset, sal_uInt32 nCount); + + /** + Creates a part from a parent part. + + @param pParent the parent + @param nOffset offset in @a pParent to start at + @param nCount count of bytes in the new part + */ + WW8StructBase(WW8StructBase * pParent, + sal_uInt32 nOffset, sal_uInt32 nCount) + : mSequence(pParent->mSequence, nOffset, nCount), mpParent(pParent), + mnOffsetInParent(nOffset), mpDocument(pParent->getDocument()) + { + if (nOffset + nCount > pParent->mSequence.getCount()) + throw ExceptionOutOfBounds("WW8StructBase"); + } + + + virtual ~WW8StructBase() + { + } + + /** + Assign a part to this part. + + After assignment this part has the same content as the assigned + part. + + @param rSrc part to assign + + @return this part after assignment + */ + virtual WW8StructBase & Assign(const WW8StructBase & rSrc); + + /** + Set the document of this struct. + */ + void setDocument(WW8DocumentImpl * pDocument); + + /** + Return the document of this struct. + */ + WW8DocumentImpl * getDocument() const; + + /** + Return count of bytes in this part. + */ + sal_uInt32 getCount() const { return mSequence.getCount(); } + + /** + Return unsigned byte value at an offset. + + @param offset offset to get value from + */ + sal_uInt8 getU8(sal_uInt32 nOffset) const; + + /** + Return unsigned 16-bit value at an offset. + + @param offset offset to get value from + */ + sal_uInt16 getU16(sal_uInt32 nOffset) const; + + /** + Return unsigned 32-bit value at an offset. + + @param offset offset to get value from + */ + sal_uInt32 getU32(sal_uInt32 nOffset) const; + + /** + Return signed 8-bit value at an offset. + + @param offset offset to get value from + */ + sal_Int8 getS8(sal_uInt32 nOffset) const + { return (sal_Int8) getU8(nOffset); } + + /** + Return signed 16-bit value at an offset. + + @param offset offset to get value from + */ + sal_Int16 getS16(sal_uInt32 nOffset) const + {return (sal_Int16) getU16(nOffset); } + + /** + Return signed 32-bit value at an offset. + + @param offset offset to get value from + */ + sal_Int32 getS32(sal_uInt32 nOffset) const + { return (sal_Int32) getU32(nOffset); } + + /** + Return bit value from a 32-bit unsigned value. + + @param nValue value to retreive bit from + @param nBit number of bit to retreive (0 = least significant) + */ + sal_Bool getBit(sal_uInt32 nValue, sal_uInt16 nBit) const; + + /** + Return nibble from a 32-bit unsigned value. + + @param nValue value to retreive nibble from (most significant bit left) + @param nShift amount of bits to shift right before returning least significant nibble + */ + sal_uInt8 getNibble(sal_uInt32 nValue, sal_uInt16 nShift) const; + + /** + Returns byte at an index. + + @param nIndex index in this part of the byte to return + */ + const sal_uInt8 * get(sal_uInt32 nIndex) const + { return &((mSequence.getSequence())[nIndex + mSequence.getOffset()]); } + + /** + Returns two byte character string starting at an offset. + + The string has to be Pascal like, e.g. the first word contains + the lengthof the string in characters and is followed by the + string's characters. + + @param nOffset offset the string starts at + + @return the string + */ + rtl::OUString getString(sal_uInt32 nOffset) const; + + /** + Returns two byte character string starting at an offset with a + given length. + + @param nOffset offset the string starts at + @param nLength number of characters in the string + */ + rtl::OUString getString(sal_uInt32 nOffset, sal_uInt32) const; + + /** + Dump the part. + + @param o stream to dump to + */ + virtual void dump(OutputWithDepth<string> & o) const { mSequence.dump(o); } +}; + +class WW8StructBaseTmpOffset +{ + sal_uInt32 mnOffset; + WW8StructBase * mpStructBase; + +public: + WW8StructBaseTmpOffset(WW8StructBase * pStructBase); + + sal_uInt32 set(sal_uInt32 nOffset); + sal_uInt32 get() const; + sal_uInt32 inc(sal_uInt32 nOffset); + + operator sal_uInt32 () const; +}; + +/** + Return unsigned byte from a sequence. + + @param rSeq sequence to get value from + @param nOffset offset in sequence to get value from + */ +sal_uInt8 getU8(const WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset); + +/** + Return unsigned 16-bit value from a sequence. + + @param rSeq sequence to get value from + @param nOffset offset in sequence to get value from + */ +sal_uInt16 getU16(const WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset); + +/** + Return unsigned 32-bit value from a sequence. + + @param rSeq sequence to get value from + @param nOffset offset in sequence to get value from + */ +sal_uInt32 getU32(const WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset); + +} + +#endif // INCLUDED_WW8_STRUCT_BASE_HXX diff --git a/writerfilter/source/doctok/WW8Sttbf.cxx b/writerfilter/source/doctok/WW8Sttbf.cxx new file mode 100644 index 000000000000..baa71af1772c --- /dev/null +++ b/writerfilter/source/doctok/WW8Sttbf.cxx @@ -0,0 +1,61 @@ +#include <WW8Sttbf.hxx> + +namespace doctok +{ + +WW8Sttbf::WW8Sttbf(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount) +: WW8StructBase(rStream, nOffset, nCount) +{ + sal_uInt32 nComplexOffset = 0; + if (getU16(0) == 0xffff) + { + mbComplex = true; + nComplexOffset = 2; + } + + mnCount = getU16(nComplexOffset); + mnExtraDataCount = getU16(nComplexOffset + 2); + + nOffset = (mbComplex ? 2 : 0) + 4; + + for (sal_uInt32 n = 0; n < mnCount; ++n) + { + mEntryOffsets.push_back(nOffset); + + sal_uInt32 nStringLength = getU16(nOffset); + + nOffset += 2 + nStringLength * (mbComplex ? 2 : 1); + + mExtraOffsets.push_back(nOffset); + + nOffset += mnExtraDataCount; + } +} + +sal_uInt32 WW8Sttbf::getEntryOffset(sal_uInt32 nPos) const +{ + return mEntryOffsets[nPos]; +} + +sal_uInt32 WW8Sttbf::getExtraOffset(sal_uInt32 nPos) const +{ + return mExtraOffsets[nPos]; +} + +sal_uInt32 WW8Sttbf::getEntryCount() const +{ + return mnCount; +} + +rtl::OUString WW8Sttbf::getEntry(sal_uInt32 nPos) const +{ + return getString(getEntryOffset(nPos)); +} + +WW8StructBase::Pointer_t WW8Sttbf::getExtraData(sal_uInt32 nPos) +{ + return WW8StructBase::Pointer_t + (new WW8StructBase(*this, getExtraOffset(nPos), mnExtraDataCount)); +} + +} diff --git a/writerfilter/source/doctok/WW8Sttbf.hxx b/writerfilter/source/doctok/WW8Sttbf.hxx new file mode 100644 index 000000000000..6d73d6a55eab --- /dev/null +++ b/writerfilter/source/doctok/WW8Sttbf.hxx @@ -0,0 +1,77 @@ +#ifndef INCLUDED_WW8_STTBF_HXX +#define INCLUDED_WW8_STTBF_HXX + +#ifndef INCLUDED_WW8_STRUCT_BASE_HXX +#include <WW8StructBase.hxx> +#endif + +#include <boost/shared_ptr.hpp> +#include <vector> + +namespace doctok +{ + +using namespace ::std; + +/** + A string table in file. + + The string table contains strings that each can have extra data. + */ +class WW8Sttbf : public WW8StructBase +{ + /// true if strings contain two-byte characters + bool mbComplex; + + /// the number of entries + sal_uInt32 mnCount; + + /// the size of the extra data (per string) + sal_uInt32 mnExtraDataCount; + + /// offsets for the strings + vector<sal_uInt32> mEntryOffsets; + + /// offsets for the extra data + vector<sal_uInt32> mExtraOffsets; + + /** + Return offset of an entry. + + @param nPos the index of the entry + */ + sal_uInt32 getEntryOffset(sal_uInt32 nPos) const; + + /** + Return offset of extra data of an entry. + + @param nPos the index of the entry + */ + sal_uInt32 getExtraOffset(sal_uInt32 nPos) const; + +public: + typedef boost::shared_ptr<WW8Sttbf> Pointer_t; + + WW8Sttbf(WW8Stream & rStream, sal_uInt32 nOffset, sal_uInt32 nCount); + + /** + Return the number of entries. + */ + sal_uInt32 getEntryCount() const; + + /** + Return the string of an entry. + + @param nPos the index of the entry + */ + rtl::OUString getEntry(sal_uInt32 nPos) const; + + /** + Return the extra data of an entry. + + @param nPos the index of the entry + */ + WW8StructBase::Pointer_t getExtraData(sal_uInt32 nPos); +}; +} +#endif // INCLUDED_WW8_STTBF diff --git a/writerfilter/source/doctok/WW8StyleSheet.cxx b/writerfilter/source/doctok/WW8StyleSheet.cxx new file mode 100644 index 000000000000..3b43413bc8f9 --- /dev/null +++ b/writerfilter/source/doctok/WW8StyleSheet.cxx @@ -0,0 +1,182 @@ +#include <resources.hxx> + +namespace doctok { + +void WW8StyleSheet::initPayload() +{ + sal_uInt32 nCount = getEntryCount(); + + sal_uInt32 nOffset = get_size() + 2; + for (sal_uInt32 n = 0; n < nCount; ++n) + { + entryOffsets.push_back(nOffset); + + sal_uInt32 cbStd = getU16(nOffset); + nOffset += cbStd + 2; + } + + entryOffsets.push_back(nOffset); +} + +sal_uInt32 WW8StyleSheet::calcPayloadOffset() +{ + return 0; +} + +sal_uInt32 WW8StyleSheet::calcSize() +{ + return getCount(); +} + +sal_uInt32 WW8StyleSheet::getEntryCount() +{ + return get_cstd(); +} + +doctok::Reference<Properties>::Pointer_t +WW8StyleSheet::getEntry(sal_uInt32 nIndex) +{ + doctok::Reference<Properties>::Pointer_t pResult; + + sal_uInt32 nCount = entryOffsets[nIndex + 1] - entryOffsets[nIndex]; + + if (nCount > get_cbSTDBaseInFile() + 2U) + { + WW8Style * pStyle = new WW8Style(this, entryOffsets[nIndex], nCount); + + pStyle->setIndex(nIndex); + + pResult = doctok::Reference<Properties>::Pointer_t(pStyle); + } + + return pResult; +} + +rtl::OUString WW8Style::get_xstzName() +{ + sal_uInt32 nCount = getU8(0xc); + + if (nCount > 0) + { + Sequence aSeq(mSequence, 0xe, nCount * 2); + + rtl_uString * pNew = 0; + rtl_uString_newFromStr + (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0])); + + return rtl::OUString(pNew); + + } + + return rtl::OUString(); +} + +rtl::OUString WW8Style::get_xstzName1() +{ + WW8StyleSheet * pParentStyleSheet = dynamic_cast<WW8StyleSheet *>(mpParent); + + if (mpParent != NULL) + { + sal_uInt32 nOffset = pParentStyleSheet->get_cbSTDBaseInFile() + 2; + + if (nOffset < getCount()) + { + sal_uInt32 nCount = getU16(nOffset); + + if (nCount > 0) + { + Sequence aSeq(mSequence, nOffset + 2, nCount * 2); + + rtl_uString * pNew = 0; + rtl_uString_newFromStr + (&pNew, reinterpret_cast<const sal_Unicode *>(&aSeq[0])); + + return rtl::OUString(pNew); + + } + } + } + + return rtl::OUString(); +} + +sal_uInt32 WW8Style::get_upxstart() +{ + sal_uInt32 nResult = 0; + sal_uInt32 nCount = getU8(0xc); + + if (nCount > 0) + { + nResult = 0xc + 1 + nCount * 2; + + nResult += nResult % 2; + } + else + { + WW8StyleSheet * pParentStyleSheet = + dynamic_cast<WW8StyleSheet *>(mpParent); + + nResult = pParentStyleSheet->get_cbSTDBaseInFile() + 2; + + if (nResult < getCount()) + { + sal_uInt32 nCountTmp = getU16(nResult); + + nResult += 4 + nCountTmp * 2; + } + } + + return nResult; +} + +sal_uInt32 WW8Style::get_upx_count() +{ + return get_cupx(); +} + +doctok::Reference<Properties>::Pointer_t WW8Style::get_upx(sal_uInt32 nIndex) +{ + doctok::Reference<Properties>::Pointer_t pResult; + + WW8StructBaseTmpOffset aOffset(this); + + aOffset.set(get_upxstart()); + + if (aOffset.get() > 0 ) + { + sal_uInt32 nCount; + + for (sal_uInt32 n = 0; n < nIndex; ++n) + { + nCount = getU16(aOffset); + + aOffset.inc(nCount + 2); + aOffset.inc(aOffset.get() % 2); + } + + nCount = getU16(aOffset); + + if (nCount > 0) + { + aOffset.inc(2); + + bool bIsPap = get_cupx() == 2 && nIndex == 0; + WW8PropertySet::Pointer_t + pProps(new WW8PropertySetImpl(*this, aOffset.get(), nCount, + bIsPap)); + + WW8PropertiesReference * pRef = + new WW8PropertiesReference(pProps); + + pResult = doctok::Reference<Properties>::Pointer_t(pRef); + } + } + + return pResult; +} + +void WW8Style::resolveNoAuto(doctok::Properties & /*rHandler*/) +{ +} + +} diff --git a/writerfilter/source/doctok/WW8Table.cxx b/writerfilter/source/doctok/WW8Table.cxx new file mode 100644 index 000000000000..bcf210712858 --- /dev/null +++ b/writerfilter/source/doctok/WW8Table.cxx @@ -0,0 +1,176 @@ +#include <resources.hxx> + +namespace doctok { + +/* WW8sprmTDefTable */ + +sal_uInt32 WW8sprmTDefTable::get_cellx_count() +{ + return getU8(0x4) + 1; +} + +sal_uInt16 WW8sprmTDefTable::get_cellx(sal_uInt32 nIndex) +{ + return getU16(0x5 + nIndex * 2); +} + +sal_uInt32 WW8sprmTDefTable::get_tc_count() +{ + return get_cellx_count() - 1; +} + +doctok::Reference<Properties>::Pointer_t +WW8sprmTDefTable::get_tc(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8TC(this, + 0x5 + get_cellx_count() * 2 + pos * WW8TC::getSize())); +} + +/* WW8sprmTTableBorders */ + +sal_uInt32 WW8sprmTTableBorders::get_rgbbrc_count() +{ + return 6; +} + +doctok::Reference<Properties>::Pointer_t +WW8sprmTTableBorders::get_rgbbrc(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8BRC(*this, 0x3 + pos * WW8BRC::getSize())); +} + +/* WW8sprmTCellBottomColor */ + +sal_uInt32 WW8sprmTCellBottomColor::calcSize() +{ + return get_cellBottomColor_count() * 4 + 3; +} + +sal_uInt32 WW8sprmTCellBottomColor::get_cellBottomColor_count() +{ + return getU8(0x2) / 4; +} + +sal_uInt32 WW8sprmTCellBottomColor::get_cellBottomColor(sal_uInt32 pos) +{ + return getU32(0x3 + 4 * pos); +} + +/* WW8sprmTCellLeftColor */ + +sal_uInt32 WW8sprmTCellLeftColor::calcSize() +{ + return get_cellLeftColor_count() * 4 + 3; +} + +sal_uInt32 WW8sprmTCellLeftColor::get_cellLeftColor_count() +{ + return getU8(0x2) / 4; +} + +sal_uInt32 WW8sprmTCellLeftColor::get_cellLeftColor(sal_uInt32 pos) +{ + return getU32(0x3 + 4 * pos); +} + +/* WW8sprmTCellTopColor */ + +sal_uInt32 WW8sprmTCellTopColor::calcSize() +{ + return get_cellTopColor_count() * 4 + 3; +} + +sal_uInt32 WW8sprmTCellTopColor::get_cellTopColor_count() +{ + return getU8(0x2) / 4; +} + +sal_uInt32 WW8sprmTCellTopColor::get_cellTopColor(sal_uInt32 pos) +{ + return getU32(0x3 + 4 * pos); +} + +/* WW8sprmTCellRightColor */ + +sal_uInt32 WW8sprmTCellRightColor::calcSize() +{ + return get_cellRightColor_count() * 4 + 3; +} + +sal_uInt32 WW8sprmTCellRightColor::get_cellRightColor_count() +{ + return getU8(0x2) / 4; +} + +sal_uInt32 WW8sprmTCellRightColor::get_cellRightColor(sal_uInt32 pos) +{ + return getU32(0x3 + 4 * pos); +} + +/* WW8sprmTGridLineProps */ + +sal_uInt32 WW8sprmTGridLineProps::calcSize() +{ + return getSize(); +} + +/* WW8sprmTDefTableShd */ + +sal_uInt32 WW8sprmTDefTableShd::calcSize() +{ + return get_shd_count() * WW8SHD::getSize() + 3; +} + +sal_uInt32 WW8sprmTDefTableShd::get_shd_count() +{ + return getU8(0x2) / WW8SHD::getSize(); +} + +doctok::Reference<Properties>::Pointer_t +WW8sprmTDefTableShd::get_shd(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8SHD(*this, 0x3 + pos * WW8SHD::getSize())); +} + +/* WW8sprmTCellShd */ + +sal_uInt32 WW8sprmTCellShd::calcSize() +{ + return get_shd_count() * WW8CellShd::getSize(); +} + +sal_uInt32 WW8sprmTCellShd::get_shd_count() +{ + return getU8(0x2) / WW8CellShd::getSize(); +} + +doctok::Reference<Properties>::Pointer_t +WW8sprmTCellShd::get_shd(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8CellShd(*this, 0x3 + pos * WW8CellShd::getSize())); +} + +/* WW8sprmTCellShadow */ + +sal_uInt32 WW8sprmTCellShadow::calcSize() +{ + return get_cellShadow_count() * WW8CellShd::getSize(); +} + +sal_uInt32 WW8sprmTCellShadow::get_cellShadow_count() +{ + return getU8(0x2) / WW8CellShd::getSize(); +} + +doctok::Reference<Properties>::Pointer_t +WW8sprmTCellShadow::get_cellShadow(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8CellShd(*this, 0x3 + pos * WW8CellShd::getSize())); +} + +} diff --git a/writerfilter/source/doctok/WW8Text.cxx b/writerfilter/source/doctok/WW8Text.cxx new file mode 100644 index 000000000000..a0fbeec0a55a --- /dev/null +++ b/writerfilter/source/doctok/WW8Text.cxx @@ -0,0 +1,42 @@ +#include <resources.hxx> + +namespace doctok { +sal_uInt32 WW8sprmPChgTabsPapx::calcSize() +{ + return getS8(0x2) + 3; +} + +sal_uInt32 WW8sprmPChgTabsPapx::get_dxaDel_count() +{ + return getS8(0x3); +} + +sal_Int16 WW8sprmPChgTabsPapx::get_dxaDel(sal_uInt32 pos) +{ + return getS16(0x4 + pos * 2); +} + +sal_uInt32 WW8sprmPChgTabsPapx::get_dxaAdd_count() +{ + return getS8(0x4 + get_dxaDel_count() * 2); +} + +sal_Int16 WW8sprmPChgTabsPapx::get_dxaAdd(sal_uInt32 pos) +{ + return getS16(0x4 + get_dxaDel_count() * 2 + 1 + pos * 2); +} + +sal_uInt32 WW8sprmPChgTabsPapx::get_tbdAdd_count() +{ + return get_dxaAdd_count(); +} + +doctok::Reference<Properties>::Pointer_t +WW8sprmPChgTabsPapx::get_tbdAdd(sal_uInt32 pos) +{ + return doctok::Reference<Properties>::Pointer_t + (new WW8TBD(this, + 0x4 + get_dxaDel_count() * 2 + 1 + get_dxaAdd_count() * 2 + + pos, 1)); +} +} diff --git a/writerfilter/source/doctok/WW8inc.xsl b/writerfilter/source/doctok/WW8inc.xsl new file mode 100644 index 000000000000..0fea94892a00 --- /dev/null +++ b/writerfilter/source/doctok/WW8inc.xsl @@ -0,0 +1,79 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+<xsl:output method="text" encoding="iso-8859-1"/>
+
+<xsl:template match="/">
+<xsl:apply-templates select="//xhtml:body/xhtml:table"/>
+</xsl:template>
+
+<xsl:template match="xhtml:table">
+<xsl:apply-templates select="xhtml:tbody/xhtml:tr[2]"/>
+</xsl:template>
+
+<xsl:template name="handleTR">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:variable name="name"><xsl:value-of select="xhtml:td[3]"/></xsl:variable>
+<xsl:variable name="type"><xsl:value-of select="xhtml:td[4]"/></xsl:variable>
+<xsl:variable name="saltype">
+<xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:otherwise>void *</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name="bits"><xsl:value-of select="xhtml:td[5]"/></xsl:variable>
+<xsl:variable name="mask"><xsl:value-of select="xhtml:td[6]"/></xsl:variable>
+<xsl:variable name="comment"><xsl:value-of select="xhtml:td[7]"/></xsl:variable>
+/**
+<xsl:value-of select="$comment"/>
+
+offset : <xsl:value-of select="$offset"/>
+name : <xsl:value-of select="$name"/>
+type : <xsl:value-of select="$type"/>
+shift : <xsl:value-of select="concat($shift, '
')"/>
+*/
+
+<xsl:value-of select="$saltype"/> get_<xsl:value-of select="$name"/>() const<xsl:choose>
+<xsl:when test="$saltype='void *'">;
+</xsl:when>
+<xsl:otherwise> { return (get<xsl:value-of select="$type"/>(0x<xsl:value-of select="$offset"/>)<xsl:if test="string-length($mask)>0"> & 0x<xsl:value-of select="translate($mask, 'ABCDEF', 'abcdef')"/></xsl:if>)<xsl:if test="$shift>0"> >> <xsl:value-of select="$shift"/></xsl:if>; }
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[./xhtml:td[position()=1]/text()]">
+<xsl:variable name="offset"><xsl:value-of select="xhtml:td[2]"/></xsl:variable>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift">0</xsl:with-param>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[not(./xhtml:td[position()=1]/text())]">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift"/>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="$shift+substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*">
+<xsl:copy-of select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/WW8sprms.xsl b/writerfilter/source/doctok/WW8sprms.xsl new file mode 100644 index 000000000000..5e9c9df2d458 --- /dev/null +++ b/writerfilter/source/doctok/WW8sprms.xsl @@ -0,0 +1,39 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default" xmlns:xhtml="http://www.w3.org/1999/xhtml"> +<xsl:output method="xml" indent="yes"/> + +<xsl:template match="/"> +<out> +<xsl:apply-templates select=".//xhtml:tr[position() > 2]"/> +</out> +</xsl:template> + +<xsl:template match='xhtml:tr'> +<xsl:variable name='sprmname'><xsl:value-of select='xhtml:td[1]'/></xsl:variable> +<xsl:variable name='sprmid'><xsl:value-of select='xhtml:td[2]'/></xsl:variable> +<UML:Class> +<xsl:attribute name='xmi.id'><xsl:value-of select='$sprmname'/></xsl:attribute> +<xsl:attribute name='name'><xsl:value-of select='$sprmname'/></xsl:attribute> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="ww8sprm"/> +</UML:ModelElement.stereotype> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue><xsl:value-of select='$sprmid'/></UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="sprmcode"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>rtf:<xsl:value-of select='$sprmname'/></UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="sprmid"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +</UML:Class> +</xsl:template> + +</xsl:stylesheet>
\ No newline at end of file diff --git a/writerfilter/source/doctok/WW8xmi.xsl b/writerfilter/source/doctok/WW8xmi.xsl new file mode 100644 index 000000000000..39be35afce3c --- /dev/null +++ b/writerfilter/source/doctok/WW8xmi.xsl @@ -0,0 +1,155 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default" xmlns:xhtml="http://www.w3.org/1999/xhtml">
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="/">
+<UML:Class xmi.id="dummy" name="dummy">
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype xmi.idref='access'/>
+ </UML:ModelElement.stereotype>
+<xsl:apply-templates select="//xhtml:body/xhtml:table"/>
+</UML:Class>
+</xsl:template>
+
+<xsl:template match="xhtml:table">
+<xsl:apply-templates select="xhtml:tbody/xhtml:tr[2]"/>
+</xsl:template>
+
+<xsl:template name="handleTR">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:variable name="name"><xsl:value-of select="xhtml:td[3]"/></xsl:variable>
+<xsl:variable name="type">
+<xsl:choose>
+<xsl:when test='contains(xhtml:td[4], "[")'>
+<xsl:value-of select='substring-before(xhtml:td[4], "[")'/>
+</xsl:when>
+<xsl:otherwise>
+<xsl:value-of select="xhtml:td[4]"/>
+<xsl:variable name="stereotype">attribute</xsl:variable>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name='stereotype'>
+<xsl:choose>
+<xsl:when test='contains(xhtml:td[4], "[")'>array</xsl:when>
+<xsl:otherwise>attribute</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name="saltype">
+<xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:otherwise>void *</xsl:otherwise>
+</xsl:choose>
+</xsl:variable>
+<xsl:variable name="bits"><xsl:value-of select="xhtml:td[5]"/></xsl:variable>
+<xsl:variable name="mask"><xsl:value-of select="xhtml:td[6]"/></xsl:variable>
+<xsl:variable name="comment"><xsl:value-of select="xhtml:td[7]"/></xsl:variable>
+ <UML:Classifier.feature>
+ <UML:Attribute><xsl:attribute name="name"><xsl:value-of select="$name"/></xsl:attribute>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$comment"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'comment'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$offset"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'offset'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$shift"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'shift'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$mask"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'mask'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$bits"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'bits'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue>rtf:<xsl:value-of select='translate($name, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ")'/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'attrid'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+<xsl:if test='$stereotype = "array"'>
+<xsl:variable name='arraycount'><xsl:value-of select='substring-before(substring-after(xhtml:td[4], "["), "]")'/></xsl:variable>
+ <UML:ModelElement.taggedValue>
+ <UML:TaggedValue>
+ <UML:TaggedValue.dataValue><xsl:value-of select="$arraycount"/></UML:TaggedValue.dataValue>
+ <UML:TaggedValue.type>
+ <UML:TagDefinition xmi.idref = 'arraycount'/>
+ </UML:TaggedValue.type>
+ </UML:TaggedValue>
+ </UML:ModelElement.taggedValue>
+</xsl:if>
+ <UML:StructuralFeature.type>
+ <UML:DataType><xsl:attribute name="xmi.idref"><xsl:value-of select="$type"/></xsl:attribute></UML:DataType>
+ </UML:StructuralFeature.type>
+ <UML:ModelElement.stereotype>
+ <UML:Stereotype><xsl:attribute name="xmi.idref"><xsl:value-of select="$stereotype"/></xsl:attribute></UML:Stereotype>
+ </UML:ModelElement.stereotype>
+ </UML:Attribute>
+ </UML:Classifier.feature>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[./xhtml:td[position()=1]/text()]">
+<xsl:variable name="offset"><xsl:value-of select="xhtml:td[2]"/></xsl:variable>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift">0</xsl:with-param>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="xhtml:tr[not(./xhtml:td[position()=1]/text())]">
+<xsl:param name="offset"/>
+<xsl:param name="shift"/>
+<xsl:call-template name="handleTR">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift"/>
+</xsl:call-template>
+<xsl:variable name="shift1"><xsl:value-of select="$shift+substring-after(xhtml:td[5], ':')"/></xsl:variable>
+<xsl:apply-templates select="following-sibling::xhtml:tr[position()=1]">
+<xsl:with-param name="offset" select="$offset"/>
+<xsl:with-param name="shift" select="$shift1"/>
+</xsl:apply-templates>
+</xsl:template>
+
+<xsl:template match="*">
+<xsl:copy-of select="."/>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/XNoteHelper.hxx b/writerfilter/source/doctok/XNoteHelper.hxx new file mode 100644 index 000000000000..ca43a0a6b304 --- /dev/null +++ b/writerfilter/source/doctok/XNoteHelper.hxx @@ -0,0 +1,118 @@ +#ifndef INCLUDED_X_NOTE_HELPER_HXX +#define INCLUDED_X_NOTE_HELPER_HXX + +#ifndef INLCUED_PLCF_HXX +#include <PLCF.hxx> +#endif + +#ifndef INCLUDED_WW8_DOCUMENT_IMPL_HXX +#include <WW8DocumentImpl.hxx> +#endif + +namespace doctok +{ +/** + A helper class for footnotes and endnotes and annotations(aka X-notes). + */ +template <class T> +class XNoteHelper +{ + /// Character positions of X-notes in footnote document + WW8StructBase::Pointer_t mpCps; + + /// Character positions of references to X-notes + typename PLCF<T>::Pointer_t mpRefs; + + /// piece table for CP to FC conversion + WW8PieceTable::Pointer_t mpPieceTable; + + /// the document + WW8DocumentImpl * mpDocument; + + /// type of X-notes handled by this helper (PROP_FOOTNOTE, PROP_ENDNOTE) + PropertyType meType; + + /// offset in document where X-note subdocument starts + CpAndFc mCpAndFcOffset; + + /** + Return CpAndFc in document for X-note. + + @param nPos index of X-note + */ + CpAndFc getCpAndFc(sal_uInt32 nPos); + + /** + Return CpAndFc in document for reference to a certain X-note. + + @param nPos index of the X-note + */ + CpAndFc getRefCpAndFc(sal_uInt32 nPos); + +public: + typedef boost::shared_ptr<XNoteHelper> Pointer_t; + + XNoteHelper(WW8StructBase::Pointer_t pCps, + typename PLCF<T>::Pointer_t pRefs, + WW8PieceTable::Pointer_t pPieceTable, + WW8DocumentImpl * pDocument, + PropertyType eType, + CpAndFc cpAndFcOffset) + : mpCps(pCps), mpRefs(pRefs), mpPieceTable(pPieceTable), + mpDocument(pDocument), meType(eType), mCpAndFcOffset(cpAndFcOffset) + { + } + + /** + Initialize. + + Generates CpAndFcs in document for X-notes. + */ + void init(); + + /** + Return number of X-notes. + */ + sal_uInt32 getCount() const; + + /** + Return index of CpAndFc. + + @param rCpAndFc the CpAndFc to search + + @return the index of the rCpAndFc found or getCount() otherwise + */ + sal_uInt32 getIndexOfCpAndFc(const CpAndFc & rCpAndFc); + + /** + Return subdocument containing X-note. + + @param nIndex index of X-note. + */ + doctok::Reference<Stream>::Pointer_t get(sal_uInt32 nIndex); + + /** + Return subdocument containing X-note. + + @param rCpAndFc CpAndFc of the X-note's reference + */ + doctok::Reference<Stream>::Pointer_t get(const CpAndFc & rCpAndFc); + + /** + Return reference data structure of X-note. + + @param nIndex index of X-note + */ + T * getRef(sal_uInt32 nIndex); + + /** + Return reference data structure of X-note. + + @param rCpAndFc CpAndFc for the X-note's reference + */ + T * getRef(const CpAndFc & rCpAndFc); +}; + +} + +#endif // INCLUDED_X_NOTE_HELPER_HXX diff --git a/writerfilter/source/doctok/XNoteHelperImpl.hxx b/writerfilter/source/doctok/XNoteHelperImpl.hxx new file mode 100644 index 000000000000..00575dcd996b --- /dev/null +++ b/writerfilter/source/doctok/XNoteHelperImpl.hxx @@ -0,0 +1,136 @@ +#ifndef INCLUDED_X_NOTE_HELPER_IMPL_HXX +#define INCLUDED_X_NOTE_HELPER_IMPL_HXX + +namespace doctok +{ +template <class T> +sal_uInt32 XNoteHelper<T>::getCount() const +{ + sal_uInt32 nResult = 0; + + if (mpCps.get() != NULL && mpCps->getCount() > 8) + nResult = ( mpCps->getCount() / 4) - 2; + + return nResult; +} + +template <class T> +CpAndFc XNoteHelper<T>::getCpAndFc(sal_uInt32 nPos) +{ + // There are getCount() + 1 entries in mpOffsets => greater + if (nPos > getCount()) + throw ExceptionNotFound("getCpAndFc"); + + Cp aCp(mCpAndFcOffset.getCp() + mpCps->getU32(nPos * 4)); + Fc aFc(mpPieceTable->cp2fc(aCp)); + CpAndFc aCpAndFc(aCp, aFc, meType); + + return aCpAndFc; +} + +template <class T> +CpAndFc XNoteHelper<T>::getRefCpAndFc(sal_uInt32 nPos) +{ + // There are getCount() entries in mpRefs => greater or equal + if (nPos >= getCount()) + throw ExceptionNotFound(""); + + Cp aCp(mpRefs->getFc(nPos)); + Fc aFc(mpPieceTable->cp2fc(aCp)); + CpAndFc aCpAndFc(aCp, aFc, meType); + + return aCpAndFc; +} + +template <class T> +doctok::Reference<Stream>::Pointer_t +XNoteHelper<T>::get(sal_uInt32 nPos) +{ + // There are getCount() entries => greater or equal + if (nPos >= getCount()) + throw ExceptionNotFound("get"); + + doctok::Reference<Stream>::Pointer_t pResult; + + CpAndFc aCpAndFcStart(getCpAndFc(nPos)); + CpAndFc aCpAndFcEnd(getCpAndFc(nPos + 1)); + + if (aCpAndFcStart < aCpAndFcEnd) + pResult = doctok::Reference<Stream>::Pointer_t + (new WW8DocumentImpl(*mpDocument, aCpAndFcStart, aCpAndFcEnd)); + + return pResult; +} + +template <class T> +sal_uInt32 XNoteHelper<T>::getIndexOfCpAndFc(const CpAndFc & rCpAndFc) +{ + sal_uInt32 n = getCount(); + + if (n > 0) + { + --n; + + Cp aCp(mpRefs->getFc(n)); + Fc aFc(mpPieceTable->cp2fc(aCp)); + CpAndFc aCpAndFc(aCp, aFc, meType); + + while (n > 0 && rCpAndFc < aCpAndFc) + --n; + } + + return n; +} + +template <class T> +doctok::Reference<Stream>::Pointer_t +XNoteHelper<T>::get(const CpAndFc & rCpAndFc) +{ + doctok::Reference<Stream>::Pointer_t pResult; + + sal_uInt32 n = getIndexOfCpAndFc(rCpAndFc); + + if (n < getCount()) + pResult = get(n); + + return pResult; +} + +template <class T> +T * +XNoteHelper<T>::getRef(sal_uInt32 nIndex) +{ + return mpRefs->getEntryPointer(nIndex); +} + +template <class T> +T * +XNoteHelper<T>::getRef(const CpAndFc & rCpAndFc) +{ + T * pResult = NULL; + + sal_uInt32 n = getIndexOfCpAndFc(rCpAndFc); + + if (n < getCount()) + { + pResult = getRef(n); + } + + return pResult; +} + +template <class T> +void XNoteHelper<T>::init() +{ + for (sal_uInt32 n = 0; n < getCount(); ++n) + { + CpAndFc aCpAndFc(getCpAndFc(n)); + mpDocument->insertCpAndFc(aCpAndFc); + + CpAndFc aCpAndFcRef(getRefCpAndFc(n)); + mpDocument->insertCpAndFc(aCpAndFcRef); + } +} +} + +#endif // INCLUDED_X_NOTE_HELPER_IMPL_HXX diff --git a/writerfilter/source/doctok/doctokutil.cxx b/writerfilter/source/doctok/doctokutil.cxx new file mode 100644 index 000000000000..c39fe6678b89 --- /dev/null +++ b/writerfilter/source/doctok/doctokutil.cxx @@ -0,0 +1,26 @@ +#include <util.hxx> + +using namespace ::std; + +namespace doctok { +void util_assert(bool bTest) +{ + if (! bTest) + clog << "ASSERT!\n" << endl; +} + +void printBytes(ostream & o, const string & str) +{ + unsigned int nCount = str.size(); + for (unsigned int n = 0; n < nCount; ++n) + { + unsigned char c = static_cast<unsigned char>(str[n]); + if (c < 128 && isprint(c)) + o << str[n]; + else + o << "."; + } +} + +} + diff --git a/writerfilter/source/doctok/escher.html b/writerfilter/source/doctok/escher.html new file mode 100644 index 000000000000..7d82c773d54f --- /dev/null +++ b/writerfilter/source/doctok/escher.html @@ -0,0 +1,207 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> + <head> + <title></title> + </head> + + <body> + <h1></h1> + +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">rotation</font><p></p></td><td valign="top"><font face=" , " size="2">4</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">fixed point: 16.16 degrees<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockRotation</font><p></p></td><td valign="top"><font face=" , " size="2">119</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">No rotation</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAspectRatio</font><p></p></td><td valign="top"><font face=" , " size="2">120</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Don't allow changes in aspect ratio</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockPosition</font><p></p></td><td valign="top"><font face=" , " size="2">121</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Don't allow the shape to be moved</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAgainstSelect</font><p></p></td><td valign="top"><font face=" , " size="2">122</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Shape may not be selected</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockCropping</font><p></p></td><td valign="top"><font face=" , " size="2">123</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">No cropping this shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockVertices</font><p></p></td><td valign="top"><font face=" , " size="2">124</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Edit Points not allowed</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockText</font><p></p></td><td valign="top"><font face=" , " size="2">125</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not edit text</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAdjustHandles</font><p></p></td><td valign="top"><font face=" , " size="2">126</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not adjust</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockAgainstGrouping</font><p></p></td><td valign="top"><font face=" , " size="2">127</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not group this shape<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lTxid</font><p></p></td><td valign="top"><font face=" , " size="2">128</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">id for the text, value determined by the host</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxTextLeft</font><p></p></td><td valign="top"><font face=" , " size="2">129</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/10 inch</font><p></p></td><td valign="top"><font face=" , " size="2">margins relative to shape's inscribed text rectangle (in EMUs)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyTextTop</font><p></p></td><td valign="top"><font face=" , " size="2">130</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/20 inch</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxTextRight</font><p></p></td><td valign="top"><font face=" , " size="2">131</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/10 inch</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyTextBottom</font><p></p></td><td valign="top"><font face=" , " size="2">132</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/20 inch</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">WrapText</font><p></p></td><td valign="top"><font face=" , " size="2">133</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOWRAPMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Wrap text at shape margins</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">scaleText</font><p></p></td><td valign="top"><font face=" , " size="2">134</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Text zoom/scale (used if fFitTextToShape)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">anchorText</font><p></p></td><td valign="top"><font face=" , " size="2">135</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOANCHOR</b></font><p></p></td><td valign="top"><font face=" , " size="2">Top</font><p></p></td><td valign="top"><font face=" , " size="2">How to anchor the text</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">txflTextFlow</font><p></p></td><td valign="top"><font face=" , " size="2">136</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOTXFL</b></font><p></p></td><td valign="top"><font face=" , " size="2">HorzN</font><p></p></td><td valign="top"><font face=" , " size="2">Text flow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cdirFont</font><p></p></td><td valign="top"><font face=" , " size="2">137</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCDIR</b></font><p></p></td><td valign="top"><font face=" , " size="2">msocdir0</font><p></p></td><td valign="top"><font face=" , " size="2">Font rotation</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">hspNext</font><p></p></td><td valign="top"><font face=" , " size="2">138</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOHSP</b></font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">ID of the next shape (used by Word for linked textboxes)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">txdir</font><p></p></td><td valign="top"><font face=" , " size="2">139</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOTXDIR</b></font><p></p></td><td valign="top"><font face=" , " size="2">LTR</font><p></p></td><td valign="top"><font face=" , " size="2">Bi-Di Text direction</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fSelectText</font><p></p></td><td valign="top"><font face=" , " size="2">187</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE if single click selects text, FALSE if two clicks</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fAutoTextMargin</font><p></p></td><td valign="top"><font face=" , " size="2">188</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">use host's margin calculations</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fRotateText</font><p></p></td><td valign="top"><font face=" , " size="2">189</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Rotate text with shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fFitShapeToText</font><p></p></td><td valign="top"><font face=" , " size="2">190</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Size shape to fit text size</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fFitTextToShape</font><p></p></td><td valign="top"><font face=" , " size="2">191</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Size text to fit shape size<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextUNICODE</font><p></p></td><td valign="top"><font face=" , " size="2">192</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">UNICODE text string</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextRTF</font><p></p></td><td valign="top"><font face=" , " size="2">193</font><p></p></td><td valign="top"><font face=" , " size="2">char*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">RTF text string</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextAlign</font><p></p></td><td valign="top"><font face=" , " size="2">194</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOGEOTEXTALIGN</b></font><p></p></td><td valign="top"><font face=" , " size="2">Center</font><p></p></td><td valign="top"><font face=" , " size="2">alignment on curve</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextSize</font><p></p></td><td valign="top"><font face=" , " size="2">195</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">36<<16</font><p></p></td><td valign="top"><font face=" , " size="2">default point size</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextSpacing</font><p></p></td><td valign="top"><font face=" , " size="2">196</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2">fixed point 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFont</font><p></p></td><td valign="top"><font face=" , " size="2">197</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">font family name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFReverseRows</font><p></p></td><td valign="top"><font face=" , " size="2">240</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Reverse row order</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fGtext</font><p></p></td><td valign="top"><font face=" , " size="2">241</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Has text effect</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFVertical</font><p></p></td><td valign="top"><font face=" , " size="2">242</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Rotate characters</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFKern</font><p></p></td><td valign="top"><font face=" , " size="2">243</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Kern characters</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFTight</font><p></p></td><td valign="top"><font face=" , " size="2">244</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Tightening or tracking</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFStretch</font><p></p></td><td valign="top"><font face=" , " size="2">245</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Stretch to fit shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFShrinkFit</font><p></p></td><td valign="top"><font face=" , " size="2">246</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Char bounding box</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFBestFit</font><p></p></td><td valign="top"><font face=" , " size="2">247</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Scale text-on-path</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFNormalize</font><p></p></td><td valign="top"><font face=" , " size="2">248</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Stretch char height</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFDxMeasure</font><p></p></td><td valign="top"><font face=" , " size="2">249</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not measure along path</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFBold</font><p></p></td><td valign="top"><font face=" , " size="2">250</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Bold font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFItalic</font><p></p></td><td valign="top"><font face=" , " size="2">251</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Italic font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFUnderline</font><p></p></td><td valign="top"><font face=" , " size="2">252</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Underline font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFShadow</font><p></p></td><td valign="top"><font face=" , " size="2">253</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Shadow font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFSmallcaps</font><p></p></td><td valign="top"><font face=" , " size="2">254</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Small caps font</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">gtextFStrikethrough</font><p></p></td><td valign="top"><font face=" , " size="2">255</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Strike through font<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="7"><colgroup><col valign="top" width="96"><col valign="top" width="45"><col valign="top" width="49"><col valign="top" width="49"><col valign="top" width="0"><col valign="top" width="192"><col valign="top" width="1"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromTop</font><p></p></td><td valign="top"><font face=" , " size="2">256</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">16.16 fraction times total image width or height, as appropriate.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromBottom</font><p></p></td><td valign="top"><font face=" , " size="2">257</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromLeft</font><p></p></td><td valign="top"><font face=" , " size="2">258</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cropFromRight</font><p></p></td><td valign="top"><font face=" , " size="2">259</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pib</font><p></p></td><td valign="top"><font face=" , " size="2">260</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip to display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibName</font><p></p></td><td valign="top"><font face=" , " size="2">261</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibFlags</font><p></p></td><td valign="top"><font face=" , " size="2">262</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Comment</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureTransparent</font><p></p></td><td valign="top"><font face=" , " size="2">263</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">~0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">transparent color (none if ~0UL) </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureContrast</font><p></p></td><td valign="top"><font face=" , " size="2">264</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">contrast setting</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureBrightness</font><p></p></td><td valign="top"><font face=" , " size="2">265</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">brightness setting</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureGamma</font><p></p></td><td valign="top"><font face=" , " size="2">266</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">16.16 gamma</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureId</font><p></p></td><td valign="top"><font face=" , " size="2">267</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Host-defined ID for OLE objects (usually a pointer)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureDblCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">268</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">This</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Modification used if shape has double shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureFillCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">269</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureLineCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">270</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="3" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibPrint</font><p></p></td><td valign="top"><font face=" , " size="2">271</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip to display when printing</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibPrintName</font><p></p></td><td valign="top"><font face=" , " size="2">272</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pibPrintFlags</font><p></p></td><td valign="top"><font face=" , " size="2">273</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Comment</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fNoHitTestPicture</font><p></p></td><td valign="top"><font face=" , " size="2">316</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Do not hit test the picture</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureGray</font><p></p></td><td valign="top"><font face=" , " size="2">317</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">grayscale display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureBiLevel</font><p></p></td><td valign="top"><font face=" , " size="2">318</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">bi-level display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pictureActive</font><p></p></td><td valign="top"><font face=" , " size="2">319</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Server is active (OLE objects only)<p></p></font></td></tr></tbody></table> +<table border="1" cellpadding="1" cols="5">
+ <tbody><tr><td valign="top"><font face=" , " size="2">Property</font></td>
+ <td valign="top"><font face=" , " size="2">PID</font></td>
+ <td valign="top"><font face=" , " size="2">Type</font></td>
+ <td valign="top"><font face=" , " size="2">Default</font></td>
+ <td valign="top"><font face=" , " size="2">Description</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoLeft</font></td>
+ <td valign="top"><font face=" , " size="2">320</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">Defines the G (geometry) coordinate
+ space.</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoTop</font></td>
+ <td valign="top"><font face=" , " size="2">321</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoRight</font></td>
+ <td valign="top"><font face=" , " size="2">322</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">21600</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">geoBottom</font></td>
+ <td valign="top"><font face=" , " size="2">323</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">21600</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">shapePath</font></td>
+ <td valign="top"><font face=" , " size="2">324</font></td>
+ <td valign="top"><font face=" , " size="2"><b>MSOSHAPEPATH</b></font></td>
+ <td valign="top"><font face=" , " size="2">msoshapeLinesClosed</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">pVertices</font></td>
+ <td valign="top"><font face=" , " size="2">325</font></td>
+ <td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font></td>
+ <td valign="top"><font face=" , " size="2">NULL</font></td>
+ <td valign="top"><font face=" , " size="2">An array of points, in G units.</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">pSegmentInfo</font></td>
+ <td valign="top"><font face=" , " size="2">326</font></td>
+ <td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font></td>
+ <td valign="top"><font face=" , " size="2">NULL</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjustValue</font></td>
+ <td valign="top"><font face=" , " size="2">327</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2">Adjustment values corresponding to the
+ positions of the adjust handles of the shape. The number
+ of values used and their allowable ranges vary from shape
+ type to shape type.</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust2Value</font></td>
+ <td valign="top"><font face=" , " size="2">328</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust3Value</font></td>
+ <td valign="top"><font face=" , " size="2">329</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust4Value</font></td>
+ <td valign="top"><font face=" , " size="2">330</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust5Value</font></td>
+ <td valign="top"><font face=" , " size="2">331</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust6Value</font></td>
+ <td valign="top"><font face=" , " size="2">332</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust7Value</font></td>
+ <td valign="top"><font face=" , " size="2">333</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust8Value</font></td>
+ <td valign="top"><font face=" , " size="2">334</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust9Value</font></td>
+ <td valign="top"><font face=" , " size="2">335</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">adjust10Value</font></td>
+ <td valign="top"><font face=" , " size="2">336</font></td>
+ <td valign="top"><font face=" , " size="2">LONG</font></td>
+ <td valign="top"><font face=" , " size="2">0</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fShadowOK</font></td>
+ <td valign="top"><font face=" , " size="2">378</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">Shadow may be set</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">f3DOK</font></td>
+ <td valign="top"><font face=" , " size="2">379</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">3D may be set</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fLineOK</font></td>
+ <td valign="top"><font face=" , " size="2">380</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">Line style may be set</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fGtextOK</font></td>
+ <td valign="top"><font face=" , " size="2">381</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">FALSE</font></td>
+ <td valign="top"><font face=" , " size="2">Text effect (WordArt) supported</font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fFillShadeShapeOK</font></td>
+ <td valign="top"><font face=" , " size="2">382</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">FALSE</font></td>
+ <td valign="top"><font face=" , " size="2"> </font></td>
+ </tr>
+ <tr>
+ <td valign="top"><font face=" , " size="2">fFillOK</font></td>
+ <td valign="top"><font face=" , " size="2">383</font></td>
+ <td valign="top"><font face=" , " size="2">BOOL</font></td>
+ <td valign="top"><font face=" , " size="2">TRUE</font></td>
+ <td valign="top"><font face=" , " size="2">OK to fill the shape through the UI or
+ VBA?</font></td>
+ </tr>
+</tbody></table> +<table border="0" cellpadding="7" cols="6"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="0"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillType</font><p></p></td><td valign="top"><font face=" , " size="2">384</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOFILLTYPE</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Solid</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Type of fill</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillColor</font><p></p></td><td valign="top"><font face=" , " size="2">385</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">white</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Foreground color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">386</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fixed 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBackColor</font><p></p></td><td valign="top"><font face=" , " size="2">387</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">white</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Background color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBackOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">388</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Shades only</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">389</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBlip</font><p></p></td><td valign="top"><font face=" , " size="2">390</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Pattern/texture</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBlipName</font><p></p></td><td valign="top"><font face=" , " size="2">391</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillBlipFlags</font><p></p></td><td valign="top"><font face=" , " size="2">392</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Comment</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillWidth</font><p></p></td><td valign="top"><font face=" , " size="2">393</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">How big (A units) to make a metafile texture.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillHeight</font><p></p></td><td valign="top"><font face=" , " size="2">394</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillAngle</font><p></p></td><td valign="top"><font face=" , " size="2">395</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fade angle - degrees in 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillFocus</font><p></p></td><td valign="top"><font face=" , " size="2">396</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Linear shaded fill focus percent</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToLeft</font><p></p></td><td valign="top"><font face=" , " size="2">397</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToTop</font><p></p></td><td valign="top"><font face=" , " size="2">398</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToRight</font><p></p></td><td valign="top"><font face=" , " size="2">399</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillToBottom</font><p></p></td><td valign="top"><font face=" , " size="2">400</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fraction 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectLeft</font><p></p></td><td valign="top"><font face=" , " size="2">401</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">For shaded fills, use the specified rectangle instead of the shape's bounding rect to define how large the fade is going to be.</font><p></p>
+<p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectTop</font><p></p></td><td valign="top"><font face=" , " size="2">402</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectRight</font><p></p></td><td valign="top"><font face=" , " size="2">403</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillRectBottom</font><p></p></td><td valign="top"><font face=" , " size="2">404</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillDztype</font><p></p></td><td valign="top"><font face=" , " size="2">405</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSODZTYPE</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShadePreset</font><p></p></td><td valign="top"><font face=" , " size="2">406</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Special shades</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShadeColors</font><p></p></td><td valign="top"><font face=" , " size="2">407</font><p></p></td><td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">a preset array of colors</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">408</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">409</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShapeOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">410</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShapeOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">411</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShadeType</font><p></p></td><td valign="top"><font face=" , " size="2">412</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSHADETYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Type of shading, if a shaded (gradient) fill.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fFilled</font><p></p></td><td valign="top"><font face=" , " size="2">443</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Is shape filled?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fHitTestFill</font><p></p></td><td valign="top"><font face=" , " size="2">444</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Should we hit test fill? </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillShape</font><p></p></td><td valign="top"><font face=" , " size="2">445</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Register pattern on shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fillUseRect</font><p></p></td><td valign="top"><font face=" , " size="2">446</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Use the large rect?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fNoFillHitTest</font><p></p></td><td valign="top"><font face=" , " size="2">447</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Hit test a shape as though filled<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineColor</font><p></p></td><td valign="top"><font face=" , " size="2">448</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">black</font><p></p></td><td valign="top"><font face=" , " size="2">Color of line</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">449</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2">Not implemented</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineBackColor</font><p></p></td><td valign="top"><font face=" , " size="2">450</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">white</font><p></p></td><td valign="top"><font face=" , " size="2">Background color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">451</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineType</font><p></p></td><td valign="top"><font face=" , " size="2">452</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINETYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Solid</font><p></p></td><td valign="top"><font face=" , " size="2">Type of line</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillBlip</font><p></p></td><td valign="top"><font face=" , " size="2">453</font><p></p></td><td valign="top"><font face=" , " size="2">IMsoBlip*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">Pattern/texture</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillBlipName</font><p></p></td><td valign="top"><font face=" , " size="2">454</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">Blip file name</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillBlipFlags</font><p></p></td><td valign="top"><font face=" , " size="2">455</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBLIPFLAGS</b></font><p></p></td><td valign="top"><font face=" , " size="2">Comment</font><p></p></td><td valign="top"><font face=" , " size="2">Blip flags</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillWidth</font><p></p></td><td valign="top"><font face=" , " size="2">456</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">How big (A units) to make a metafile texture.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillHeight</font><p></p></td><td valign="top"><font face=" , " size="2">457</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillDztype</font><p></p></td><td valign="top"><font face=" , " size="2">458</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSODZTYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">How to interpret fillWidth/Height numbers.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineWidth</font><p></p></td><td valign="top"><font face=" , " size="2">459</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">9525</font><p></p></td><td valign="top"><font face=" , " size="2">A units; 1pt == 12700 EMUs</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineMiterLimit</font><p></p></td><td valign="top"><font face=" , " size="2">460</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">8<<16</font><p></p></td><td valign="top"><font face=" , " size="2">ratio (16.16) of width</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStyle</font><p></p></td><td valign="top"><font face=" , " size="2">461</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINESTYLE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Simple</font><p></p></td><td valign="top"><font face=" , " size="2">Draw parallel lines?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineDashing</font><p></p></td><td valign="top"><font face=" , " size="2">462</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEDASHING</b></font><p></p></td><td valign="top"><font face=" , " size="2">Solid</font><p></p></td><td valign="top"><font face=" , " size="2">Can be overridden by:</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineDashStyle</font><p></p></td><td valign="top"><font face=" , " size="2">463</font><p></p></td><td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">As Win32 ExtCreatePen</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStartArrowhead</font><p></p></td><td valign="top"><font face=" , " size="2">464</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEEND</b></font><p></p></td><td valign="top"><font face=" , " size="2">NoEnd</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at start</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndArrowhead</font><p></p></td><td valign="top"><font face=" , " size="2">465</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEEND</b></font><p></p></td><td valign="top"><font face=" , " size="2">NoEnd</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at end</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStartArrowWidth</font><p></p></td><td valign="top"><font face=" , " size="2">466</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDWIDTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumWidthArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at start</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineStartArrowLength</font><p></p></td><td valign="top"><font face=" , " size="2">467</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDLENGTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumLenArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at end</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndArrowWidth</font><p></p></td><td valign="top"><font face=" , " size="2">468</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDWIDTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumWidthArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at start</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndArrowLength</font><p></p></td><td valign="top"><font face=" , " size="2">469</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEENDLENGTH</b></font><p></p></td><td valign="top"><font face=" , " size="2">MediumLenArrow</font><p></p></td><td valign="top"><font face=" , " size="2">Arrow at end</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineJoinStyle</font><p></p></td><td valign="top"><font face=" , " size="2">470</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINEJOIN</b></font><p></p></td><td valign="top"><font face=" , " size="2">JoinRound</font><p></p></td><td valign="top"><font face=" , " size="2">How to join lines</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineEndCapStyle</font><p></p></td><td valign="top"><font face=" , " size="2">471</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOLINECAP</b></font><p></p></td><td valign="top"><font face=" , " size="2">EndCapFlat</font><p></p></td><td valign="top"><font face=" , " size="2">How to end lines</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fArrowheadsOK</font><p></p></td><td valign="top"><font face=" , " size="2">507</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Allow arrowheads if prop. is set</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLine</font><p></p></td><td valign="top"><font face=" , " size="2">508</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Any line?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fHitTestLine</font><p></p></td><td valign="top"><font face=" , " size="2">509</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Should we hit test lines? </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lineFillShape</font><p></p></td><td valign="top"><font face=" , " size="2">510</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Register pattern on shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fNoLineDrawDash</font><p></p></td><td valign="top"><font face=" , " size="2">511</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Draw a dashed line if no line<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowType</font><p></p></td><td valign="top"><font face=" , " size="2">512</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSHADOWTYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Offset</font><p></p></td><td valign="top"><font face=" , " size="2">Type of effect</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowColor</font><p></p></td><td valign="top"><font face=" , " size="2">513</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">0x808080</font><p></p></td><td valign="top"><font face=" , " size="2">Foreground color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowHighlight</font><p></p></td><td valign="top"><font face=" , " size="2">514</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">0xCBCBCB</font><p></p></td><td valign="top"><font face=" , " size="2">Embossed color</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">515</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">undefined</font><p></p></td><td valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOpacity</font><p></p></td><td valign="top"><font face=" , " size="2">516</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOffsetX</font><p></p></td><td valign="top"><font face=" , " size="2">517</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">25400</font><p></p></td><td valign="top"><font face=" , " size="2">Offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOffsetY</font><p></p></td><td valign="top"><font face=" , " size="2">518</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">25400</font><p></p></td><td valign="top"><font face=" , " size="2">Offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowSecondOffsetX</font><p></p></td><td valign="top"><font face=" , " size="2">519</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Double offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowSecondOffsetY</font><p></p></td><td valign="top"><font face=" , " size="2">520</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Double offset shadow</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleXToX</font><p></p></td><td valign="top"><font face=" , " size="2">521</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleYToX</font><p></p></td><td valign="top"><font face=" , " size="2">522</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleXToY</font><p></p></td><td valign="top"><font face=" , " size="2">523</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowScaleYToY</font><p></p></td><td valign="top"><font face=" , " size="2">524</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2">16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowPerspectiveX</font><p></p></td><td valign="top"><font face=" , " size="2">525</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16 / weight</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowPerspectiveY</font><p></p></td><td valign="top"><font face=" , " size="2">526</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">16.16 / weight</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowWeight</font><p></p></td><td valign="top"><font face=" , " size="2">527</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<8</font><p></p></td><td valign="top"><font face=" , " size="2">scaling factor</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">528</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">shadowOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">529</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fShadow</font><p></p></td><td valign="top"><font face=" , " size="2">574</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Any shadow?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fshadowObscured</font><p></p></td><td valign="top"><font face=" , " size="2">575</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Excel5-style shadow<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveType</font><p></p></td><td valign="top"><font face=" , " size="2">576</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOXFORMTYPE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Shape</font><p></p></td><td valign="top"><font face=" , " size="2">Where transform applies</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOffsetX</font><p></p></td><td valign="top"><font face=" , " size="2">577</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">The LONG values define a transformation matrix, effectively, each value is scaled by the perspectiveWeight parameter.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOffsetY</font><p></p></td><td valign="top"><font face=" , " size="2">578</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleXToX</font><p></p></td><td valign="top"><font face=" , " size="2">579</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleYToX</font><p></p></td><td valign="top"><font face=" , " size="2">580</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleXToY</font><p></p></td><td valign="top"><font face=" , " size="2">581</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveScaleYToY</font><p></p></td><td valign="top"><font face=" , " size="2">582</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<16</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectivePerspectiveX</font><p></p></td><td valign="top"><font face=" , " size="2">583</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectivePerspectiveY</font><p></p></td><td valign="top"><font face=" , " size="2">584</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveWeight</font><p></p></td><td valign="top"><font face=" , " size="2">585</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<8</font><p></p></td><td valign="top"><font face=" , " size="2">Scaling factor</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">586</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<15</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">perspectiveOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">587</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1<<15</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fPerspective</font><p></p></td><td valign="top"><font face=" , " size="2">639</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">On/off<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="6"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="0"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DSpecularAmt</font><p></p></td><td valign="top"><font face=" , " size="2">640</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fixed-point 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DDiffuseAmt</font><p></p></td><td valign="top"><font face=" , " size="2">641</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">65536</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Fixed-point 16.16</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DShininess</font><p></p></td><td valign="top"><font face=" , " size="2">642</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">5</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default gives OK results</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DEdgeThickness</font><p></p></td><td valign="top"><font face=" , " size="2">643</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">12700</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Specular edge thickness</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrudeForward</font><p></p></td><td valign="top"><font face=" , " size="2">644</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Distance of extrusion in EMUs</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrudeBackward</font><p></p></td><td valign="top"><font face=" , " size="2">645</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">457200</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrudePlane</font><p></p></td><td valign="top"><font face=" , " size="2">646</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Extrusion direction</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DExtrusionColor</font><p></p></td><td valign="top"><font face=" , " size="2">647</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td valign="top"><font face=" , " size="2">FillThenLine</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Basic color of extruded part of shape; the lighting model used will determine the exact shades used when rendering. </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DCrMod</font><p></p></td><td valign="top"><font face=" , " size="2">648</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCLR</b></font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">undefined</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Modification for BW views</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">f3D</font><p></p></td><td valign="top"><font face=" , " size="2">700</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Does this shape have a 3D effect?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DMetallic</font><p></p></td><td valign="top"><font face=" , " size="2">701</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">0</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Use metallic specularity?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DUseExtrusionColor</font><p></p></td><td valign="top"><font face=" , " size="2">702</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DLightFace</font><p></p></td><td valign="top"><font face=" , " size="2">703</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"><p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DYRotationAngle</font><p></p></td><td valign="top"><font face=" , " size="2">704</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">degrees (16.16) about y axis</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DXRotationAngle</font><p></p></td><td valign="top"><font face=" , " size="2">705</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">degrees (16.16) about x axis</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAxisX</font><p></p></td><td valign="top"><font face=" , " size="2">706</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">100</font><p></p></td><td valign="top"><font face=" , " size="2">These specify the rotation axis; only their relative magnitudes matter.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAxisY</font><p></p></td><td valign="top"><font face=" , " size="2">707</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAxisZ</font><p></p></td><td valign="top"><font face=" , " size="2">708</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationAngle</font><p></p></td><td valign="top"><font face=" , " size="2">709</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">degrees (16.16) about axis</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationCenterX</font><p></p></td><td valign="top"><font face=" , " size="2">710</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">rotation center x (16.16 or g-units)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationCenterY</font><p></p></td><td valign="top"><font face=" , " size="2">711</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">rotation center y (16.16 or g-units)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRotationCenterZ</font><p></p></td><td valign="top"><font face=" , " size="2">712</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">rotation center z (absolute (emus))</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DRenderMode</font><p></p></td><td valign="top"><font face=" , " size="2">713</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSO3DRENDERMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">FullRender</font><p></p></td><td valign="top"><font face=" , " size="2">Full,wireframe, or bcube</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DTolerance</font><p></p></td><td valign="top"><font face=" , " size="2">714</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">30000</font><p></p></td><td valign="top"><font face=" , " size="2">pixels (16.16)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DXViewpoint</font><p></p></td><td valign="top"><font face=" , " size="2">715</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1250000</font><p></p></td><td valign="top"><font face=" , " size="2">X view point (emus)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DYViewpoint</font><p></p></td><td valign="top"><font face=" , " size="2">716</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-1250000</font><p></p></td><td valign="top"><font face=" , " size="2">Y view point (emus)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DZViewpoint</font><p></p></td><td valign="top"><font face=" , " size="2">717</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">9000000</font><p></p></td><td valign="top"><font face=" , " size="2">Z view distance (emus)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DOriginX</font><p></p></td><td valign="top"><font face=" , " size="2">718</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">32768</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DOriginY</font><p></p></td><td valign="top"><font face=" , " size="2">719</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-32768</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DSkewAngle</font><p></p></td><td valign="top"><font face=" , " size="2">720</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-8847360</font><p></p></td><td valign="top"><font face=" , " size="2">degree (16.16) skew angle</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DSkewAmount</font><p></p></td><td valign="top"><font face=" , " size="2">721</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">50</font><p></p></td><td valign="top"><font face=" , " size="2">Percentage skew amount</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DAmbientIntensity</font><p></p></td><td valign="top"><font face=" , " size="2">722</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">20000</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed point intensity</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyX</font><p></p></td><td valign="top"><font face=" , " size="2">723</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">50000</font><p></p></td><td valign="top"><font face=" , " size="2">Key light source direc-</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyY</font><p></p></td><td valign="top"><font face=" , " size="2">724</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">tion; only their relative</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyZ</font><p></p></td><td valign="top"><font face=" , " size="2">725</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">10000</font><p></p></td><td valign="top"><font face=" , " size="2">magnitudes matter</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DKeyIntensity</font><p></p></td><td valign="top"><font face=" , " size="2">726</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">38000</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed point intensity</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillX</font><p></p></td><td valign="top"><font face=" , " size="2">727</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">-50000</font><p></p></td><td valign="top"><font face=" , " size="2">Fill light source direc-</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillY</font><p></p></td><td valign="top"><font face=" , " size="2">728</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">tion; only their relative</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillZ</font><p></p></td><td valign="top"><font face=" , " size="2">729</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">10000</font><p></p></td><td valign="top"><font face=" , " size="2">magnitudes matter</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">c3DFillIntensity</font><p></p></td><td valign="top"><font face=" , " size="2">730</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">38000</font><p></p></td><td valign="top"><font face=" , " size="2">Fixed point intensity</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DConstrainRotation</font><p></p></td><td valign="top"><font face=" , " size="2">763</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DRotationCenterAuto</font><p></p></td><td valign="top"><font face=" , " size="2">764</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DParallel</font><p></p></td><td valign="top"><font face=" , " size="2">765</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">1</font><p></p></td><td valign="top"><font face=" , " size="2">Parallel projection?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DKeyHarsh</font><p></p></td><td valign="top"><font face=" , " size="2">766</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">1</font><p></p></td><td valign="top"><font face=" , " size="2">Is key lighting harsh?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fc3DFillHarsh</font><p></p></td><td valign="top"><font face=" , " size="2">767</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Is fill lighting harsh?<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="6"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="0"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Default</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">hspMaster</font><p></p></td><td valign="top"><font face=" , " size="2">769</font><p></p></td><td valign="top"><font face=" , " size="2">MSOHSP</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">NULL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">master shape</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">cxstyle</font><p></p></td><td valign="top"><font face=" , " size="2">771</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOCXSTYLE</b></font><p></p></td><td valign="top"><font face=" , " size="2">None</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Type of connector</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">bWMode</font><p></p></td><td valign="top"><font face=" , " size="2">772</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBWMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Automatic</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Settings for modifications to be made when in different forms of black-and-white mode.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">bWModePureBW</font><p></p></td><td valign="top"><font face=" , " size="2">773</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBWMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Automatic</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">bWModeBW</font><p></p></td><td valign="top"><font face=" , " size="2">774</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOBWMODE</b></font><p></p></td><td valign="top"><font face=" , " size="2">Automatic</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fOleIcon</font><p></p></td><td valign="top"><font face=" , " size="2">826</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">For OLE objects, whether the object is in icon form</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fPreferRelativeResize</font><p></p></td><td valign="top"><font face=" , " size="2">827</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">For UI only. Prefer relative resizing. </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fLockShapeType</font><p></p></td><td valign="top"><font face=" , " size="2">828</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">Lock the shape type (don't allow Change Shape)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fDeleteAttachedObject</font><p></p></td><td valign="top"><font face=" , " size="2">830</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fBackground</font><p></p></td><td valign="top"><font face=" , " size="2">831</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td colspan="2" valign="top"><font face=" , " size="2">If TRUE, this is the background shape.<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">spcot</font><p></p></td><td valign="top"><font face=" , " size="2">832</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSPCOT</b></font><p></p></td><td valign="top"><font face=" , " size="2">TwoSegment</font><p></p></td><td valign="top"><font face=" , " size="2">Callout type</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxyCalloutGap</font><p></p></td><td valign="top"><font face=" , " size="2">833</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/12 inch</font><p></p></td><td valign="top"><font face=" , " size="2">Distance from box to first point.(EMUs)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">spcoa</font><p></p></td><td valign="top"><font face=" , " size="2">834</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSPCOA</b></font><p></p></td><td valign="top"><font face=" , " size="2">Any</font><p></p></td><td valign="top"><font face=" , " size="2">Callout angle</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">spcod</font><p></p></td><td valign="top"><font face=" , " size="2">835</font><p></p></td><td valign="top"><font face=" , " size="2"><b>MSOSPCOD</b></font><p></p></td><td valign="top"><font face=" , " size="2">Specified</font><p></p></td><td valign="top"><font face=" , " size="2">Callout drop type</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxyCalloutDropSpecified</font><p></p></td><td valign="top"><font face=" , " size="2">836</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">9 points</font><p></p></td><td valign="top"><font face=" , " size="2">if msospcodSpecified, the actual drop distance</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxyCalloutLengthSpecified</font><p></p></td><td valign="top"><font face=" , " size="2">837</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">if fCalloutLengthSpecified, the actual distance</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCallout</font><p></p></td><td valign="top"><font face=" , " size="2">889</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Is the shape a callout?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutAccentBar</font><p></p></td><td valign="top"><font face=" , " size="2">890</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">does callout have accent bar</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutTextBorder</font><p></p></td><td valign="top"><font face=" , " size="2">891</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">does callout have a text border</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutMinusX</font><p></p></td><td valign="top"><font face=" , " size="2">892</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutMinusY</font><p></p></td><td valign="top"><font face=" , " size="2">893</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2"></font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutDropAuto</font><p></p></td><td valign="top"><font face=" , " size="2">894</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">If true, then we occasionally invert the drop distance</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fCalloutLengthSpecified</font><p></p></td><td valign="top"><font face=" , " size="2">895</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">if true, we look at dxyCalloutLengthSpecified<p></p></font></td></tr></tbody></table> +<table border="0" cellpadding="7" cols="5"><colgroup><col valign="top" width="115"><col valign="top" width="21"><col valign="top" width="50"><col valign="top" width="50"><col valign="top" width="195"></colgroup><tbody><tr><td valign="top"><font face=" , " size="2">Property</font><p></p></td><td valign="top"><font face=" , " size="2">PID</font><p></p></td><td valign="top"><font face=" , " size="2">Type</font><p></p></td><td valign="top"><font face=" , " size="2">Default</font><p></p></td><td valign="top"><font face=" , " size="2">Description</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">wzName</font><p></p></td><td valign="top"><font face=" , " size="2">896</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">Shape Name (present only if explicitly set)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">wzDescription</font><p></p></td><td valign="top"><font face=" , " size="2">897</font><p></p></td><td valign="top"><font face=" , " size="2">WCHAR*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">alternate text</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pihlShape</font><p></p></td><td valign="top"><font face=" , " size="2">898</font><p></p></td><td valign="top"><font face=" , " size="2">IHlink*</font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">The hyperlink in the shape.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">pWrapPolygonVertices</font><p></p></td><td valign="top"><font face=" , " size="2">899</font><p></p></td><td valign="top"><font face=" , " size="2"><b>IMsoArray</b></font><p></p></td><td valign="top"><font face=" , " size="2">NULL</font><p></p></td><td valign="top"><font face=" , " size="2">The polygon that text will be wrapped around (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxWrapDistLeft</font><p></p></td><td valign="top"><font face=" , " size="2">900</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/8 inch</font><p></p></td><td valign="top"><font face=" , " size="2">Left wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyWrapDistTop</font><p></p></td><td valign="top"><font face=" , " size="2">901</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Top wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dxWrapDistRight</font><p></p></td><td valign="top"><font face=" , " size="2">902</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">1/8 inch</font><p></p></td><td valign="top"><font face=" , " size="2">Right wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">dyWrapDistBottom</font><p></p></td><td valign="top"><font face=" , " size="2">903</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Bottom wrapping distance from text (Word)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">lidRegroup</font><p></p></td><td valign="top"><font face=" , " size="2">904</font><p></p></td><td valign="top"><font face=" , " size="2">LONG</font><p></p></td><td valign="top"><font face=" , " size="2">0</font><p></p></td><td valign="top"><font face=" , " size="2">Regroup ID </font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fEditedWrap</font><p></p></td><td valign="top"><font face=" , " size="2">953</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Has the wrap polygon been edited?</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fBehindDocument</font><p></p></td><td valign="top"><font face=" , " size="2">954</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Word-only (shape is behind text)</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fOnDblClickNotify</font><p></p></td><td valign="top"><font face=" , " size="2">955</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Notify client on a double click</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fIsButton</font><p></p></td><td valign="top"><font face=" , " size="2">956</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">A button shape (i.e., clicking performs an action). Set for shapes with attached hyperlinks or macros.</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fOneD</font><p></p></td><td valign="top"><font face=" , " size="2">957</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">1D adjustment</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fHidden</font><p></p></td><td valign="top"><font face=" , " size="2">958</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">FALSE</font><p></p></td><td valign="top"><font face=" , " size="2">Do not display</font><p></p></td></tr><tr><td valign="top"><font face=" , " size="2">fPrint</font><p></p></td><td valign="top"><font face=" , " size="2">959</font><p></p></td><td valign="top"><font face=" , " size="2">BOOL</font><p></p></td><td valign="top"><font face=" , " size="2">TRUE</font><p></p></td><td valign="top"><font face=" , " size="2">Print this shape</font><p></p></td></tr></tbody></table> + + <hr> + <address><a href="mailto:Henning.Brinkmann@sun.com">Henning Brinkmann - Sun Germany - Software Engineer</a></address> +<!-- Created: Mon Jul 10 13:57:58 CEST 2006 --> +<!-- hhmts start --> +Last modified: Mon Jul 10 17:55:06 CEST 2006 +<!-- hhmts end --> + </body> +</html> diff --git a/writerfilter/source/doctok/escherdoc.xsl b/writerfilter/source/doctok/escherdoc.xsl new file mode 100644 index 000000000000..96f69467436e --- /dev/null +++ b/writerfilter/source/doctok/escherdoc.xsl @@ -0,0 +1,118 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default" xmlns:xhtml="http://www.w3.org/1999/xhtml"> +<xsl:output method="xml" indent="yes"/> + +<xsl:template match="/"> + <out> + <xsl:for-each select="//xhtml:table"> + <xsl:apply-templates select="." mode="eschertable"/> + </xsl:for-each> + </out> +</xsl:template> + +<xsl:template match="xhtml:table" mode="eschertable"> + <xsl:apply-templates select=".//xhtml:tr[position() > 1]" mode="eschertable"/> +</xsl:template> + +<xsl:template match="xhtml:tr" mode="eschertable"> + <xsl:variable name="name"> + <xsl:value-of select=".//xhtml:td[1]"/> + </xsl:variable> + <UML:Class> + <xsl:attribute name="xmi.id"> + <xsl:value-of select="$name"/> + </xsl:attribute> + <xsl:attribute name="name"> + <xsl:value-of select="$name"/> + </xsl:attribute> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt" /> + </UML:ModelElement.stereotype> + <xsl:apply-templates select=".//xhtml:td[1]" mode="optname"/> + <xsl:apply-templates select=".//xhtml:td[2]" mode="fopid"/> + <xsl:apply-templates select=".//xhtml:td[3]" mode="type"/> + <xsl:apply-templates select=".//xhtml:td[4]" mode="default"/> + <xsl:apply-templates select=".//xhtml:td[5]" mode="comment"/> + </UML:Class> +</xsl:template> + +<xsl:template match="xhtml:td" mode="optname"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shp<xsl:value-of select="."/></UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> +</xsl:template> + +<xsl:template match="xhtml:td" mode="fopid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue><xsl:value-of select="."/></UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> +</xsl:template> + +<xsl:template match="xhtml:td" mode="type"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> + <xsl:call-template name="saltype"> + <xsl:with-param name="type" select="."/> + </xsl:call-template> + </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <xsl:if test=".='BOOL'"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </xsl:if> +</xsl:template> + +<xsl:template match="xhtml:td" mode="default"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue><xsl:value-of select="."/></UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> +</xsl:template> + +<xsl:template match="xhtml:td" mode="comment"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue><xsl:value-of select="."/></UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> +</xsl:template> + +<xsl:template name="saltype"> + <xsl:param name="type"/> + <xsl:choose> + <xsl:when test="$type='LONG'">U32</xsl:when> + <xsl:when test="$type='BOOL'">U8</xsl:when> + <xsl:when test="$type='WCHAR*'">String</xsl:when> + <xsl:otherwise>unknown</xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet>
\ No newline at end of file diff --git a/writerfilter/source/doctok/makefile.mk b/writerfilter/source/doctok/makefile.mk new file mode 100644 index 000000000000..9de7caa0c286 --- /dev/null +++ b/writerfilter/source/doctok/makefile.mk @@ -0,0 +1,68 @@ +# +# Copyright 2005 Sun Microsystems, Inc. +# + +PRJ=..$/.. +PRJNAME=writerfilter +TARGET=doctok +#LIBTARGET=NO +ENABLE_EXCEPTIONS=TRUE +#USE_DEFFILE=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +#CFLAGS+=-DISOLATION_AWARE_ENABLED -DWIN32_LEAN_AND_MEAN -DXML_UNICODE -D_NTSDK -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501 +#CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820 +CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION #-DDEBUG_DOCTOK_DUMP + + +# --- Files -------------------------------------------------------- + +SLOFILES= \ + $(SLO)$/WW8Annotation.obj \ + $(SLO)$/WW8OutputWithDepth.obj \ + $(SLO)$/WW8Text.obj \ + $(SLO)$/DffImpl.obj \ + $(SLO)$/Dff.obj \ + $(SLO)$/WW8Analyzer.obj \ + $(SLO)$/WW8Picture.obj \ + $(SLO)$/WW8Sttbf.obj \ + $(SLO)$/WW8Table.obj \ + $(SLO)$/WW8StyleSheet.obj \ + $(SLO)$/WW8FontTable.obj \ + $(SLO)$/WW8LFOTable.obj \ + $(SLO)$/WW8ListTable.obj \ + $(SLO)$/resources.obj \ + $(SLO)$/doctokutil.obj \ + $(SLO)$/WW8CpAndFc.obj \ + $(SLO)$/WW8StructBase.obj \ + $(SLO)$/WW8Clx.obj \ + $(SLO)$/WW8FKPImpl.obj \ + $(SLO)$/WW8BinTableImpl.obj \ + $(SLO)$/WW8StreamImpl.obj \ + $(SLO)$/WW8PropertySetImpl.obj \ + $(SLO)$/WW8DocumentImpl.obj \ + $(SLO)$/WW8PieceTableImpl.obj \ + $(SLO)$/WW8ResourceModelImpl.obj + + +SHL1TARGET=$(TARGET) + +SHL1STDLIBS=$(SALLIB)\ + $(CPPULIB)\ + $(CPPUHELPERLIB) +SHL1IMPLIB=i$(SHL1TARGET) +#SHL1USE_EXPORTS=name +SHL1USE_EXPORTS=ordinal + +SHL1OBJS=$(SLOFILES) + +SHL1DEF=$(MISC)$/$(SHL1TARGET).def +DEF1NAME=$(SHL1TARGET) +DEFLIB1NAME=$(TARGET) + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk diff --git a/writerfilter/source/doctok/resourceidmapper.xsl b/writerfilter/source/doctok/resourceidmapper.xsl new file mode 100644 index 000000000000..b67b18af8920 --- /dev/null +++ b/writerfilter/source/doctok/resourceidmapper.xsl @@ -0,0 +1,101 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default"> + <xsl:output method="text" /> + + <!-- Key all attributes with the same name and same value --> + <xsl:key name="same-valued-tagged-data" + match="UML:TaggedValue.dataValue" use="." /> + + <xsl:template match="/"> + <out> + <xsl:text> +/* + + THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT! + + $RCSfile: resourceidmapper.xsl,v $ + + $Revision: 1.1 $ +*/ + +package analyze; + +import java.util.LinkedHashMap; + +/** + * + * @author hb137859 + */ +public class ResourceIdMap extends LinkedHashMap <String, Integer > { + + static ResourceIdMap mInstance = new ResourceIdMap(); + + /** Creates a new instance of ResourceIdMap */ + protected ResourceIdMap() { +/* Attributes */
</xsl:text> + <xsl:for-each select='.//UML:Attribute[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'> + <xsl:choose> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <!-- <xsl:when test='.//UML:TaggedValue.dataValue = preceding::*//UML:TaggedValue.dataValue'/>--> + <xsl:otherwise> + <xsl:text>put("</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text>", </xsl:text> + <xsl:value-of select='10000 + position()'/> + <xsl:text>);
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + +/* Operations */
</xsl:text> + <xsl:for-each select='.//UML:Operation[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'> + <xsl:choose> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <xsl:otherwise> + <xsl:text>put("</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text>", </xsl:text> + <xsl:value-of select='20000 + position()'/> + <xsl:text>); 
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + +/* Classes */
</xsl:text> + <xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref="noqname"]'/> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <xsl:otherwise> + <xsl:text>put("</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text>", </xsl:text> + <xsl:value-of select='30000 + position()'/> + <xsl:text>); 
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + } + + static ResourceIdMap instance() { + return mInstance; + } +}; +</xsl:text> +</out> +</xsl:template> + + <xsl:template name='idtoqname'> + <xsl:param name='id'/>rtf:<xsl:value-of select='substring-after($id, ":")'/> + </xsl:template> + +</xsl:stylesheet> diff --git a/writerfilter/source/doctok/resourceidmapperback.xsl b/writerfilter/source/doctok/resourceidmapperback.xsl new file mode 100644 index 000000000000..99778b5b0dc5 --- /dev/null +++ b/writerfilter/source/doctok/resourceidmapperback.xsl @@ -0,0 +1,101 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default"> + <xsl:output method="text" /> + + <!-- Key all attributes with the same name and same value --> + <xsl:key name="same-valued-tagged-data" + match="UML:TaggedValue.dataValue" use="." /> + + <xsl:template match="/"> + <out> + <xsl:text> +/* + + THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT! + + $RCSfile: resourceidmapperback.xsl,v $ + + $Revision: 1.1 $ +*/ + +package analyze; + +import java.util.LinkedHashMap; + +/** + * + * @author hb137859 + */ +public class ResourceIdMapBackwards extends LinkedHashMap <Integer, String > { + + static ResourceIdMapBackwards mInstance = new ResourceIdMapBackwards(); + + /** Creates a new instance of ResourceIdMapBackwards */ + protected ResourceIdMapBackwards() { +/* Attributes */
</xsl:text> + <xsl:for-each select='.//UML:Attribute[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'> + <xsl:choose> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <!-- <xsl:when test='.//UML:TaggedValue.dataValue = preceding::*//UML:TaggedValue.dataValue'/>--> + <xsl:otherwise> + <xsl:text>put(</xsl:text> + <xsl:value-of select='10000 + position()'/> + <xsl:text>, "</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text>");
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + +/* Operations */
</xsl:text> + <xsl:for-each select='.//UML:Operation[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'> + <xsl:choose> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <xsl:otherwise> + <xsl:text>put(</xsl:text> + <xsl:value-of select='20000 + position()'/> + <xsl:text>, "</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text>"); 
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + +/* Classes */
</xsl:text> + <xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref="noqname"]'/> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <xsl:otherwise> + <xsl:text>put(</xsl:text> + <xsl:value-of select='30000 + position()'/> + <xsl:text>, "</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text>"); 
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + } + + static ResourceIdMapBackwards instance() { + return mInstance; + } +}; +</xsl:text> +</out> +</xsl:template> + + <xsl:template name='idtoqname'> + <xsl:param name='id'/>rtf:<xsl:value-of select='substring-after($id, ":")'/> + </xsl:template> + +</xsl:stylesheet> diff --git a/writerfilter/source/doctok/resourceids.xsl b/writerfilter/source/doctok/resourceids.xsl new file mode 100644 index 000000000000..a2f3a3fdbff8 --- /dev/null +++ b/writerfilter/source/doctok/resourceids.xsl @@ -0,0 +1,97 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default"> + <xsl:output method="text" /> + + <!-- Key all attributes with the same name and same value --> + <xsl:key name="same-valued-tagged-data" + match="UML:TaggedValue.dataValue" use="." /> + + <xsl:template match="/"> + <out> + <xsl:text> +/* + + THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT! + + $RCSfile: resourceids.xsl,v $ + + $Revision: 1.1 $ +*/ +#ifndef INCLUDED_RESOURCESIDS +#define INCLUDED_RESOURCESIDS + +#ifndef INCLUDED_QNAME_HXX +#include <odiapi/qname/QName.hxx> +#endif + +namespace writerfilter { +using namespace ::std; + +namespace NS_rtf { + +/* Attributes */
</xsl:text> + <xsl:for-each select='.//UML:Attribute[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'> + <xsl:choose> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <!-- <xsl:when test='.//UML:TaggedValue.dataValue = preceding::*//UML:TaggedValue.dataValue'/>--> + <xsl:otherwise> + <xsl:text>const QName_t </xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text> = </xsl:text> + <xsl:value-of select='10000 + position()'/> + <xsl:text>;</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + +/* Operations */
</xsl:text> + <xsl:for-each select='.//UML:Operation[@name!="reserved"][count(.//UML:Stereotype[@xmi.idref="noqname"]) = 0]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'> + <xsl:choose> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <xsl:otherwise> + <xsl:text>const QName_t </xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text> = </xsl:text> + <xsl:value-of select='20000 + position()'/> + <xsl:text>; 
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> + +/* Classes */
</xsl:text> + <xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref="noqname"]'/> + <xsl:when test='generate-id(UML:TaggedValue.dataValue) != generate-id(key("same-valued-tagged-data", UML:TaggedValue.dataValue)[1])'/> + <xsl:otherwise> + <xsl:text>const QName_t </xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> + </xsl:call-template> + <xsl:text> = </xsl:text> + <xsl:value-of select='30000 + position()'/> + <xsl:text>; // </xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>
</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:text> +} +} +#endif // INCLUDED_RESOURCESIDS
</xsl:text></out> +</xsl:template> + + <xsl:template name='idtoqname'> + <xsl:param name='id'/>LN_<xsl:value-of select='substring-after($id, ":")'/> + </xsl:template> + +</xsl:stylesheet> diff --git a/writerfilter/source/doctok/resources.xmi b/writerfilter/source/doctok/resources.xmi new file mode 100644 index 000000000000..059eff0d59c0 --- /dev/null +++ b/writerfilter/source/doctok/resources.xmi @@ -0,0 +1,50823 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XMI xmlns:UML="org.omg.xmi.namespace.UML" xmi.version="1.2"> + <XMI.header> + <XMI.documentation/> + </XMI.header> + <XMI.content> + <UML:Model name="WW8Document"> + <UML:Namespace.ownedElement> + <!--Stereotypes --> + <UML:Stereotype xmi.id="access" name="access"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="plcf" name="plcf"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="withindex" name="withindex"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="withmembers" name="withmembers"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="resolvenoauto" name="resolvenoauto"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="initimpl" name="initimpl"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="resource" name="resource"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="ww8resource" name="ww8resource"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="ww8sprm" name="ww8sprm"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="ww8sprmbinary" name="ww8sprmbinary"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="debug" name="debug"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="reference" name="reference"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="attribute" name="attribute"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="noresolve" name="noresolve"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="noqname" name="noqname"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="array" name="array"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="string" name="string"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="binary" name="binary"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="dffrecord" name="dffrecord"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="dffopt" name="dffopt"> + <UML:Stereotype.baseClass>Class</UML:Stereotype.baseClass> + </UML:Stereotype> + <UML:Stereotype xmi.id="virtual" name="virtual"> + <UML:Stereotype.baseClass>Attribute</UML:Stereotype.baseClass> + </UML:Stereotype> + <!--Stereotypes--> + <!--Datatypes --> + <UML:DataType xmi.id="U8" name="U8"/> + <UML:DataType xmi.id="U16" name="U16"/> + <UML:DataType xmi.id="U32" name="U32"/> + <UML:DataType xmi.id="String" name="String"/> + <UML:DataType xmi.id="Value" name="Value"/> + <UML:DataType xmi.id="Sprm" name="Sprm"/> + <!--Datatypes--> + <!--Tag definitions --> + <UML:TagDefinition tagType="String" xmi.id="comment" name="comment"/> + <UML:TagDefinition tagType="String" xmi.id="offset" name="offset"/> + <UML:TagDefinition tagType="String" xmi.id="shift" name="shift"/> + <UML:TagDefinition tagType="String" xmi.id="mask" name="mask"/> + <UML:TagDefinition tagType="String" xmi.id="arraycount" name="arraycount"/> + <UML:TagDefinition tagType="String" xmi.id="bits" name="bits"/> + <UML:TagDefinition tagType="String" xmi.id="attrid" name="attrid"/> + <UML:TagDefinition tagType="String" xmi.id="opid" name="opid"/> + <UML:TagDefinition tagType="String" xmi.id="classid" name="opid"/> + <UML:TagDefinition tagType="String" xmi.id="size" name="size"/> + <UML:TagDefinition tagType="String" xmi.id="sprmcode" name="sprmcode"/> + <UML:TagDefinition tagType="String" xmi.id="sprmid" name="sprmid"/> + <UML:TagDefinition tagType="String" xmi.id="dffid" name="dffid"/> + <!--Tag definitions --> + <!--Classes without stereotype--> + <!--Class UPX--> + <UML:Class xmi.id="UPX" name="UPX"/> + <UML:Generalization isSpecification="false" xmi.id="UPX-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="UPX"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class UPX--> + <!--Class SEPX--> + <UML:Class xmi.id="SEPX" name="SEPX"/> + <UML:Generalization isSpecification="false" xmi.id="SEPX-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="SEPX"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class SEPX--> + <!--Class DffRecord--> + <UML:Class xmi.id="DffRecord" name="DffRecord"/> + <UML:Generalization isSpecification="false" xmi.id="DffRecord-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="DffRecord"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class DffRecord--> + <!--Class Papx--> + <UML:Class xmi.id="Papx" name="Papx"> + <UML:Classifier.feature> + <UML:Attribute name="istd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ISTD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <!--Class Papx--> + <!--Class dummy--> + <UML:Class xmi.id="dummy" name="dummy"> + <UML:Classifier.feature> + <UML:Attribute name="header"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:header</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="footer"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:footer</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="headerr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:headerr</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="headerl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:headerl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="footerr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:footerr</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="footerl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:footerl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="headerf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:headerf</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="footerf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:footerf</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="footnote"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:footnote</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="endnote"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:endnote</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="annotation"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:annotation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="bookmarkname"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BOOKMARKNAME</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dffrecord"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DffRecord</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dffattribute"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DffAttribute</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dfftype"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:dfftype</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="instance"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:dffinstance</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dffversion"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:dffversion</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="blob"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:blob</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <!--Class dummy--> + <!--Classes without stereotype--> + <!--Resources--> + <UML:Class xmi.id="Properties" name="Properties"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resource"/> + </UML:ModelElement.stereotype> + </UML:Class> + <UML:Class xmi.id="Table" name="Table"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resource"/> + </UML:ModelElement.stereotype> + </UML:Class> + <UML:Class xmi.id="Stream" name="Stream"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resource"/> + </UML:ModelElement.stereotype> + </UML:Class> + <UML:Class xmi.id="BinaryObj" name="BinaryObj"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resource"/> + </UML:ModelElement.stereotype> + </UML:Class> + <!--Resources--> + <!--WW8 resources--> + <!--Class ListLevel--> + <UML:Class xmi.id="ListLevel" name="ListLevel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resolvenoauto"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="iStartAt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>start at value for this list level</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ISTARTAT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="nfc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>number format code (see anld.nfc for a list of options)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:NFC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="jc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>alignment (left, right, or centered) of the paragraph + number.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x03</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:JC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fLegal"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>true (==1) if the level turns all inherited numbers to arabic, + false if it preserves their number format code (nfc)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FLEGAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fNoRestart"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>true if the level's number sequence is not restarted by higher + (more significant) levels in the list</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x08</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FNORESTART</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fPrev"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.fPrev (see + ANLD)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FPREV</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fPrevSpace"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.fPrevSpace (see + ANLD)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FPREVSPACE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fWord6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>true if this level was from a converted Word 6 document. If it + is true, all of the Word 6 compability options become valid; + otherwise they are ignored.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FWORD6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused5_7"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unused.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED5_7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="rgbxchNums"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>contains the character offsets into the LVL's XST of the + inherited numbers of previous levels. This array should be zero + terminated unless it is full (all 9 levels full). The XST contains + place holders for any paragraph numbers contained in the text of + the number, and the place holder contains the ilvl of the inherited + number, so lvl.xst[lvl.rgbxchNums[0]] == the level of the first + inherited number in this level.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x06</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RGBXCHNUMS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ixchFollow"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the type of character following the number text for the + paragraph: 0 == tab, 1 == space, 2 == nothing.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:IXCHFOLLOW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dxaSpace"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Word 6 compatibility option: equivalent to anld.dxaSpace (see + ANLD)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DXASPACE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dxaIndent"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Word 6 compatibility optino: equivalent to anld.dxaIndent (see + ANLD)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DXAINDENT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cbGrpprlChpx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length, in bytes, of the LVL's grpprlChpx</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x18</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CBGRPPRLCHPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cbGrpprlPapx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length, in bytes, of the LVL's grpprlPapx</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x19</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CBGRPPRLPAPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="reserved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0X1A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="ListLevel-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="ListLevel"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class ListLevel--> + <!--Class List--> + <UML:Class xmi.id="List" name="List"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="withindex"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="listlevel"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LISTLEVEL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="ListLevel"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Attribute name="lsid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Unique List ID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LSID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="tplc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Unique template code</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x04</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:TPLC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="rgistd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Array of shorts containing the istd's linked to each level of + the list, or istdNil (4095) if no style is linked.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x08</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>18</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RGISTD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fSimpleList"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>true if this is a simple (one-level) list; false if this is a + multilevel (nine-level) list.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x01</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FSIMPLELIST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fRestartHdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Word 6 compatibility option: true if the list should start + numbering over at the beginning of each section</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x02</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FRESTARTHDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unsigned26_2"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xFC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNSIGNED26_2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="reserved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="List-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="List"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class List--> + <!--Class ListTable--> + <UML:Class xmi.id="ListTable" name="ListTable"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="plcf"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LISTTABLE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="classid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="ListTable-Table"> + <UML:Generalization.child> + <UML:Class xmi.idref="ListTable"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Table"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class ListTable--> + <!--Class LFOLevel--> + <UML:Class xmi.id="LFOLevel" name="LFOLevel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resolvenoauto"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="iStartAt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>start-at value if fFormatting == false and fStartAt == true. + (if fFormatting == true, the start-at is stored in the LVL)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ISTARTAT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ilvl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the level to be overridden</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ILVL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fStartAt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>true if the start-at value is overridden</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FSTARTAT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fFormatting"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>true if the formatting is overriden (in which case the LFOLVL + should contain a pointer to a LVL)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FFORMATTING</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unsigned4_6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNSIGNED4_6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="reserved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="LFOLevel-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="LFOLevel"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class LFOLevel--> + <!--Class LFO--> + <UML:Class xmi.id="LFO" name="LFO"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="withindex"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="lfolevel"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LFO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="LFOLevel"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Attribute name="lsid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>List ID of corresponding LSTF (see LSTF)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LSID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused4"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused8"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="clfolvl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of levels whose format is overridden (see LFOLVL)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CLFOLVL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="reserved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RESERVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="LFO-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="LFO"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class LFO--> + <!--Class LFOTable--> + <UML:Class xmi.id="LFOTable" name="LFOTable"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="plcf"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LFOTABLE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="classid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="LFOTable-Table"> + <UML:Generalization.child> + <UML:Class xmi.idref="LFOTable"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Table"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class LFOTable--> + <!--Class FontTable--> + <UML:Class xmi.id="FontTable" name="FontTable"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="plcf"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FONTTABLE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="classid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FontTable-Table"> + <UML:Generalization.child> + <UML:Class xmi.idref="FontTable"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Table"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FontTable--> + <!--Class Font--> + <UML:Class xmi.id="Font" name="Font"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="withindex"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>40</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="f"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="altName"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ALTFONTNAME</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="xszFfn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:XSZFFN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>zero terminated string that records name of font. Possibly + followed by a second xsz which records the name of an alternate + font to use if the first named font does not exist on this system. + Maximal size of xszFfn is 65 characters.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Attribute name="cbFfnM1"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>total length of FFN - 1.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CBFFNM1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="prq"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>pitch request</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>03</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PRQ</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fTrueType"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when 1, font is a TrueType font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>04</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FTRUETYPE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused1_3"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>08</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED1_3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ff"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>font family id</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>70</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused1_7"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>80</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED1_7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wWeight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>base weight of font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WWEIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="chs"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>character set identifier</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CHS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ixchSzAlt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>index into ffn.szFfn to the name of the alternate font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:IXCHSZALT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="panose"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>? This is supposed to be of type PANOSE.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PANOSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fs"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>? This is supposed to be of type FONTSIGNATURE.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>24</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="Font-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="Font"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class Font--> + <!--Class Style--> + <UML:Class xmi.id="Style" name="Style"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resolvenoauto"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="withindex"/> + </UML:ModelElement.stereotype> + <UML:Classifier.feature> + <UML:Attribute name="sti"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>invariant style identifier</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0FFF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:STI</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fScratch"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>spare field for any temporary use, always reset back to + zero!</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FSCRATCH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fInvalHeight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>PHEs of all text with this style are wrong</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FINVALHEIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fHasUpe"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>UPEs have been generated</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FHASUPE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fMassCopy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>std has been mass-copied; if unused at save time, style should + be deleted</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FMASSCOPY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="sgc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>style type code</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:SGC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="istdBase"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>base style</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FFF0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ISTDBASE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cupx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue># of UPXs (and UPEs)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CUPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="istdNext"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>next style</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FFF0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ISTDNEXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="bchUpe"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset to end of upx's, start of upe's</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BCHUPE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fAutoRedef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>auto redefine style when appropriate</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FAUTOREDEF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fHidden"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>hidden from UI?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FHIDDEN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused8_3"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unused bits</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FFFC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED8_3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="xstzName"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:XSTZNAME</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="xstzName1"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:XSTZNAME1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="upxstart"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UPXSTART</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noresolve"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="upx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="UPX"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="Style-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="Style"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class Style--> + <!--Class StyleSheet--> + <UML:Class xmi.id="StyleSheet" name="StyleSheet"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="plcf"/> + </UML:ModelElement.stereotype> + <UML:Classifier.feature> + <UML:Attribute name="size"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Size of style sheet info</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CSTD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + <UML:Attribute name="cstd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Count of styles in stylesheet</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CSTD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cbSTDBaseInFile"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Length of STD Base as stored in a file</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CBSTDBASEINFILE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fStdStylenamesWritten"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Are built-in stylenames stored?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FSTDSTYLENAMESWRITTEN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused4_2"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Spare flags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FFFE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED4_2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="stiMaxWhenSaved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Max sti known when this file was written</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:STIMAXWHENSAVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="istdMaxFixedWhenSaved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How many fixed-index istds are there?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ISTDMAXFIXEDWHENSAVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="nVerBuiltInNamesWhenSaved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Current version of built-in stylenames</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:NVERBUILTINNAMESWHENSAVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="rgftcStandardChpStsh"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>ftc used by StandardChpStsh for this document</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:RGFTCSTANDARDCHPSTSH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:STYLESHEET</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="classid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="StyleSheet-Table"> + <UML:Generalization.child> + <UML:Class xmi.idref="StyleSheet"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Table"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class StyleSheet--> + <!--Class Fib--> + <UML:Class xmi.id="Fib" name="Fib"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="withmembers"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>898</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="wIdent"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>(fibh) FIBH Beginning of the FIB header magic number</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WIDENT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="nFib"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FIB version written. This will be >= 101 for all Word 6.0 + for Windows and after documents.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:NFIB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="nProduct"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>product version written by</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:NPRODUCT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>language stamp -- localized version + In pre-WinWord 2.0 files this value was the nLocale. If value is + < 999, then it is the nLocale, otherwise it is the lid.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0006</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnNext"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNNEXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fDot"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Set if this document is a template</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FDOT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fGlsy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Set if this document is a glossary</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FGLSY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fComplex"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when 1, file is in complex, fast-saved format.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCOMPLEX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fHasPic"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set if file contains 1 or more pictures</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FHASPIC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cQuickSaves"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of times file was quicksaved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00F0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CQUICKSAVES</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fEncrypted"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Set if file is encrypted</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0100</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FENCRYPTED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fWhichTblStm"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>When 0, this fib refers to the table stream named "0Table", + when 1, this fib refers to the table stream named "1Table". + Normally, a file will have only one table stream, but under unusual + circumstances a file may have table streams with both names. In + that case, this flag must be used to decide which table stream is + valid.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0200</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FWHICHTBLSTM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fReadOnlyRecommended"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Set when user has recommended that file be read read-only</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0400</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FREADONLYRECOMMENDED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fWriteReservation"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Set when file owner has made the file write reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>11</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0800</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FWRITERESERVATION</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fExtChar"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Set when using extended character set in file</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FEXTCHAR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fLoadOverride"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>REVIEW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FLOADOVERRIDE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fFarEast"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>REVIEW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FFAREAST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fCrypto"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>REVIEW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCRYPTO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="nFibBack"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>This file format it compatible with readers that understand + nFib at or above this value.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:NFIBBACK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lKey"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>File encrypted key, only valid if fEncrypted.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LKEY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="envr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>environment in which file was created + 0 created by Win Word + 1 created by Mac Word</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0012</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ENVR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fMac"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when 1, this file was last saved in the Mac environment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FMAC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fEmptySpecial"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FEMPTYSPECIAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fLoadOverridePage"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>04</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FLOADOVERRIDEPAGE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fFutureSavedUndo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>08</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FFUTURESAVEDUNDO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fWord97Saved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FWORD97SAVED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fSpare0"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FSPARE0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="chs"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Default extended character set id for text in document stream. + (overridden by chp.chse) + 0 by default characters in doc stream should be interpreted using + the ANSI character set used by Windows + 256 characters in doc stream should be interpreted using the + Macintosh character set.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0014</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CHS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="chsTables"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Default extended character set id for text in internal data + structures + 0 by default characters stored in internal data structures should + be interpreted using the ANSI character set used by Windows + 256 characters stored in internal data structures should be + interpreted using the Macintosh character set.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0016</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CHSTABLES</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcMin"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>file offset of first character of text. In non-complex + files a CP can be transformed into an FC by the + following transformation: + fc = cp + fib.fcMin.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0018</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCMIN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcMac"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>file offset of last character of text in document text stream + + 1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>001C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCMAC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="csw"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Count of fields in the array of "shorts"</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CSW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wMagicCreated"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>[Beginning of the array of shorts, rgls] + Unique number Identifying the File's creator 6A62 is the creator ID + for Word and is reserved. Other creators should choose a different + value.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0022</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WMAGICCREATED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wMagicRevised"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>identifies the File's last modifier</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0024</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WMAGICREVISED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wMagicCreatedPrivate"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>private data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0026</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WMAGICCREATEDPRIVATE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wMagicRevisedPrivate"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>private data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0028</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WMAGICREVISEDPRIVATE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnFbpChpFirst_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>002A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNFBPCHPFIRST_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnChpFirst_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>002C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNCHPFIRST_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cpnBteChp_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>002E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPNBTECHP_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnFbpPapFirst_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0030</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNFBPPAPFIRST_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnPapFirst_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0032</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNPAPFIRST_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cpnBtePap_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0034</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPNBTEPAP_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnFbpLvcFirst_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0036</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNFBPLVCFIRST_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnLvcFirst_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0038</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNLVCFIRST_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cpnBteLvc_W6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>003A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPNBTELVC_W6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lidFE"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Language id if document was written by Far East version of Word + (i.e. FIB.fFarEast is on)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>003C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LIDFE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="clw"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Number of fields in the array of longs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>003E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CLW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cbMac"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>[Beginning of the array of longs, rglw] + file offset of last byte written to file + 1.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CBMAC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lProductCreated"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>contains the build date of the creator. 10695 indicates the + creator program was compiled on Jan 6, 1995</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0044</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LPRODUCTCREATED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lProductRevised"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>contains the build date of the File's last modifier</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0048</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LPRODUCTREVISED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpText"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of main document text stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>004C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPTEXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of footnote subdocument text stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0050</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpHdd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of header subdocument text stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0054</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPHDD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpMcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of macro subdocument text stream, which should now + always be 0.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0058</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpAtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of annotation subdocument text stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>005C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPATN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of endnote subdocument text stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0060</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of textbox subdocument text stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0064</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ccpHdrTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of header textbox subdocument text stream.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0068</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CCPHDRTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnFbpChpFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when there was insufficient memory for Word to expand the + plcfbte at save time, the plcfbte is written to the file in a + linked list of 512-byte pieces starting with this pn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>006C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNFBPCHPFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnChpFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the page number of the lowest numbered page in the document + that records CHPX FKP information</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0070</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNCHPFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cpnBteChp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of CHPX FKPs recorded in file. In non-complex files if + the number of entries in the plcfbteChpx is less than this, the + plcfbteChpx is incomplete.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0074</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPNBTECHP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnFbpPapFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when there was insufficient memory for Word to expand the + plcfbte at save time, the plcfbte is written to the file in a + linked list of 512-byte pieces starting with this pn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0078</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNFBPPAPFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnPapFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the page number of the lowest numbered page in the document + that records PAPX FKP information</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>007C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNPAPFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cpnBtePap"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of PAPX FKPs recorded in file. In non-complex files if + the number of entries in the plcfbtePapx is less than this, the + plcfbtePapx is incomplete.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPNBTEPAP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnFbpLvcFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when there was insufficient memory for Word to expand the + plcfbte at save time, the plcfbte is written to the file in a + linked list of 512-byte pieces starting with this pn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0084</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNFBPLVCFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="pnLvcFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the page number of the lowest numbered page in the document + that records LVC FKP information</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0088</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:PNLVCFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cpnBteLvc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of LVC FKPs recorded in file. In non-complex files if the + number of entries in the plcfbtePapx is less than this, the + plcfbtePapx is incomplete.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>008C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPNBTELVC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcIslandFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0090</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCISLANDFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcIslandLim"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0094</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCISLANDLIM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cfclcb"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Number of fields in the array of FC/LCB pairs.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0098</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CFCLCB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcStshfOrig"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>[Beginning of array of FC/LCB pairs, rgfclcb] + file offset of original allocation for STSH in table stream. During + fast save Word will attempt to reuse this allocation if STSH is + small enough to fit.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>009A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTSHFORIG</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbStshfOrig"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of original STSH allocation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>009E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTSHFORIG</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcStshf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset of STSH in table stream.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00A2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTSHF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbStshf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of current STSH allocation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00A6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTSHF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffndRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of footnote reference PLCF of FRD + structures. CPs in PLC are relative to main document text stream + and give location of footnote references.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00AA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFNDREF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffndRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of footnote reference PLC== 0 if no footnotes + defined in document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00AE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFNDREF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffndTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of footnote text PLC. CPs in PLC are + relative to footnote subdocument text stream and give location of + beginnings of footnote text for corresponding references recorded + in plcffndRef. No structure is stored in this plc. There will just + be n+1 FC entries in this PLC when there are n + footnotes</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00B2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFNDTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffndTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of footnote text PLC. == 0 if no footnotes + defined in document</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00B6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFNDTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfandRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of annotation reference ATRD PLC. The + CPs recorded in this PLC give the offset of annotation references + in the main document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00BA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFANDREF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfandRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of annotation reference PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00BE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFANDREF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfandTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of annotation text PLC. The Cps recorded + in this PLC give the offset of the annotation text in the + annotation sub document corresponding to the references stored in + the plcfandRef. There is a 1 to 1 correspondence between entries + recorded in the plcfandTxt and the plcfandRef. No structure is + stored in this PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00C2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFANDTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfandTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of the annotation text PLC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00C6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFANDTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfsed"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of section descriptor SED PLC. CPs in + PLC are relative to main document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00CA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFSED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfsed"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of section descriptor PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00CE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFSED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfpad"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00D2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFPAD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfpad"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00D6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFPAD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfphe"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PHE PLC of paragraph heights. CPs in + PLC are relative to main document text stream. Only written for + files in complex format. Should not be written by third + party creators of Word files.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00DA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFPHE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfphe"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of paragraph height PLC. ==0 when file is + non-complex.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00DE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFPHE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfglsy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of glossary string table. This table + consists of Pascal style strings (strings stored prefixed with a + length byte) concatenated one after another.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00E2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFGLSY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfglsy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of glossary string table. == 0 for non-glossary + documents.!=0 for glossary documents.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00E6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFGLSY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfglsy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of glossary PLC. CPs in PLC are relative + to main document and mark the beginnings of glossary entries and + are in 1-1 correspondence with entries of sttbfglsy. No structure + is stored in this PLC. There will be n+1 FC entries + in this PLC when there are n glossary entries.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00EA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFGLSY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfglsy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of glossary PLC.== 0 for non-glossary + documents.!=0 for glossary documents.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00EE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFGLSY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfhdd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>byte offset in table stream of header HDD PLC. CPs are relative + to header subdocument and mark the beginnings of individual headers + in the header subdocument. No structure is stored in this PLC. + There will be n+1FC entries in this PLC when there are + n headers stored for the document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00F2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFHDD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfhdd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of header PLC. + == 0 if document contains no headers</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00F6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFHDD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfbteChpx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of character property bin table.PLC. FCs + in PLC are file offsets in the main stream. Describes text of main + document and all subdocuments.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00FA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFBTECHPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfbteChpx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of character property bin table PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00FE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFBTECHPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfbtePapx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of paragraph property bin table.PLC. FCs + in PLC are file offsets in the main stream. Describes text of main + document and all subdocuments.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0102</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFBTEPAPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfbtePapx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of paragraph property bin table PLC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0106</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFBTEPAPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfsea"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PLC reserved for private use. The + SEA is 6 bytes long.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>010A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFSEA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfsea"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of private use PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>010E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFSEA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfffn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of font information STTBF. The sttbfffn + is a STTBF where is string is actually an FFN structure. The + nth entry in the STTBF describes the font that will be + displayed when the chp.ftc for text is equal to n. See the + FFN file structure definition.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0112</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFFFN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfffn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes in sttbfffn.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0116</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFFFN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldMom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the + main document. The CPs point to the beginning CP of a field, the CP + of field separator character inside a field and the ending CP of + the field. A field may be nested within another field. 20 levels of + field nesting are allowed.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>011A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDMOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldMom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes in plcffldMom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>011E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDMOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the + header subdocument.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0122</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes in plcffldHdr</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0126</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the + footnote subdocument.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>012A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes in plcffldFtn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>012E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldAtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to the FLD PLC of field positions in the + annotation subdocument.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0132</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDATN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldAtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes in plcffldAtn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0136</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDATN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldMcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>013A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldMcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>013E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfbkmk"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the STTBF that records bookmark names + in the main document</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0142</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFBKMK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfbkmk"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0146</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFBKMK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfbkf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the beginning + CP offsets of bookmarks in the main document. See BKF structure + definition</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>014A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFBKF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfbkf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>014E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFBKF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfbkl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the ending CP + offsets of bookmarks recorded in the main document. No structure is + stored in this PLCF.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0152</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFBKL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfbkl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0156</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFBKL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcCmds"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the macro commands. These commands + are private and undocumented.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>015A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCCMDS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbCmds"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undocument size of undocument structure not documented + above</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>015E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBCMDS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcmcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0162</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcmcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0166</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfmcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>016A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfmcr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>016E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFMCR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPrDrvr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the printer driver information (names + of drivers, port, etc.)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0172</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPRDRVR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPrDrvr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of the printer driver information (names of + drivers, port, etc.)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0176</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPRDRVR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPrEnvPort"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the print environment in portrait + mode.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>017A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPRENVPORT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPrEnvPort"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of the print environment in portrait mode.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>017E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPRENVPORT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPrEnvLand"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the print environment in landscape + mode.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0182</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPRENVLAND</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPrEnvLand"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of the print environment in landscape mode.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0186</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPRENVLAND</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcWss"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of Window Save + State data structure. WSS contains dimensions of + document's main text window and the last selection made by Word + user.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>018A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCWSS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbWss"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of WSS. ==0 if unable to store the window state. + Should not be written by third party creators of Word files.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>018E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBWSS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcDop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of document property data + structure.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0192</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCDOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbDop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of document properties.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0196</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBDOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfAssoc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of STTBF of associated strings. The + strings in this table specify document summary info and the paths + to special documents related to this document. See documentation of + the STTBFASSOC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>019A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFASSOC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfAssoc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>019E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFASSOC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcClx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of beginning of information for + complex files. Consists of an encoding of all of the + prms quoted by the document followed by the plcpcd + (piece table) for the document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01A2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCCLX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbClx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of complex file information == 0 if file is + non-complex.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01A6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBCLX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfpgdFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01AA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFPGDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfpgdFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01AE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFPGDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcAutosaveSource"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the name of the original file. + fcAutosaveSource and cbAutosaveSource should both be 0 if autosave + is off.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01B2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCAUTOSAVESOURCE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbAutosaveSource"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of the name of the original file.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01B6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBAUTOSAVESOURCE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcGrpXstAtnOwners"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of group of strings recording the names + of the owners of annotations stored in the document</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01BA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCGRPXSTATNOWNERS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbGrpXstAtnOwners"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of bytes of the group of strings</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01BE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBGRPXSTATNOWNERS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfAtnbkmk"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the sttbf that records names of + bookmarks for the annotation subdocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01C2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFATNBKMK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfAtnbkmk"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of the sttbf that records names of bookmarks + for the annotation subdocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01C6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFATNBKMK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcdoaMom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01CA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCDOAMOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcdoaMom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01CE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCDOAMOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcdoaHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>no longer used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01D2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCDOAHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcdoaHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01D6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCDOAHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcspaMom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the FSPA PLC for main + document. == 0 if document has no office art objects.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01DA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCSPAMOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcspaMom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of the FSPA PLC of the main + document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01DE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCSPAMOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcspaHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the FSPA PLC for header + document. == 0 if document has no office art objects.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01E2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCSPAHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcspaHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of the FSPA PLC of the header + document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01E6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCSPAHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfAtnbkf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of BKF (bookmark first) PLC of the + annotation subdocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01EA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFATNBKF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfAtnbkf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of BKF (bookmark first) PLC of the annotation + subdocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01EE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFATNBKF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfAtnbkl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of BKL (bookmark last) PLC of the + annotation subdocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01F2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFATNBKL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfAtnbkl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of PLC marking the CP limits of the annotation + bookmarks. No structure is stored in this PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01F6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFATNBKL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPms"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PMS (Print Merge State) information + block. This contains the current state of a print merge + operation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01FA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPMS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPms"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of PMS. ==0 if no current print merge state. + Should not be written by third party creators of Word files.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01FE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPMS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcFormFldSttbf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of form field Sttbf which contains + strings used in form field dropdown controls</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0202</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCFORMFLDSTTBF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbFormFldSttbf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of form field Sttbf</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0206</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBFORMFLDSTTBF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfendRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of endnote reference PLCF of FRD + structures. CPs in PLCF are relative to main document text stream + and give location of endnote references.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>020A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFENDREF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfendRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>020E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFENDREF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfendTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PlcfendRef which points to endnote + text in the endnote document stream which corresponds with the + plcfendRef. No structure is stored in this PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0212</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFENDTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfendTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0216</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFENDTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to FLD PLCF of field positions in the + endnote subdoc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>021A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>021E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfpgdEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>not used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0222</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFPGDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfpgdEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0226</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFPGDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcDggInfo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the office art object table data. The + format of office art object table data is found in a separate + document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>022A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCDGGINFO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbDggInfo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length in bytes of the office art object table data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>022E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBDGGINFO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfRMark"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to STTBF that records the author + abbreviations for authors who have made revisions in the + document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0232</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFRMARK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfRMark"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0236</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFRMARK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfCaption"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to STTBF that records caption titles + used in the document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>023A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFCAPTION</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfCaption"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>023E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFCAPTION</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfAutoCaption"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to the STTBF that records the object + names and indices into the caption STTBF for objects which get auto + captions.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0242</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFAUTOCAPTION</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfAutoCaption"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0246</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFAUTOCAPTION</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfwkb"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream to WKB PLCF that describes the + boundaries of contributing documents in a master document</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>024A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFWKB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfwkb"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>024E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFWKB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfspl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PLCF (of SPLS structures) that + records spell check state</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0252</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFSPL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfspl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0256</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFSPL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcftxbxTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PLCF that records the beginning CP in + the text box subdoc of the text of individual text box entries. No + structure is stored in this PLCF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>025A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFTXBXTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcftxbxTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>025E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFTXBXTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the FLD PLCF that records field + boundaries recorded in the textbox subdoc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0262</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0266</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfHdrtxbxTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PLCF that records the beginning CP in + the header text box subdoc of the text of individual header text + box entries. No structure is stored in this PLC.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>026A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFHDRTXBXTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfHdrtxbxTxt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>026E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFHDRTXBXTXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcffldHdrTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the FLD PLCF that records field + boundaries recorded in the header textbox subdoc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0272</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFFLDHDRTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcffldHdrTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0276</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFFLDHDRTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcStwUser"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Macro User storage</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>027A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTWUSER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbStwUser"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>027E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTWUSER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbttmbd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of embedded true type font data.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0282</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBTTMBD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbttmbd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0286</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBTTMBD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcUnused"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>028A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCUNUSED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbUnused"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>028E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBUNUSED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPgdMother"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>(FCPGD, beginning of array of fcPgd / fcBkd pairs + rgpgdbkd). + offset in table stream of the PLF that records the page descriptors + for the main text of the doc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0292</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPGDMOTHER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPgdMother"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0296</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPGDMOTHER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcBkdMother"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the break + descriptors for the main text of the doc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>029A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCBKDMOTHER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbBkdMother"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>029E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBBKDMOTHER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPgdFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLF that records the page + descriptors for the footnote text of the doc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02A2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPGDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPgdFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02A6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPGDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcBkdFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the break + descriptors for the footnote text of the doc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02AA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCBKDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbBkdFtn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02AE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBBKDFTN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPgdEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLF that records the page + descriptors for the endnote text of the doc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02B2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPGDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPgdEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02B6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPGDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcBkdEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the PLCF that records the break + descriptors for the endnote text of the doc.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02BA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCBKDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbBkdEdn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02BE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBBKDEDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfIntlFld"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of the STTBF containing field keywords. + This is only used in a small number of the international versions + of word. This field is no longer written to the file for nFib >= + 167.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02C2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFINTLFLD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfIntlFld"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Always 0 for nFib >= 167.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02C6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFINTLFLD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcRouteSlip"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of a mailer routing slip.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02CA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCROUTESLIP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbRouteSlip"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02CE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBROUTESLIP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbSavedBy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of STTBF recording the names of the + users who have saved this document alternating with the save + locations.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02D2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBSAVEDBY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbSavedBy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02D6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBSAVEDBY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbFnm"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of STTBF recording filenames of + documents which are referenced by this document.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02DA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFNM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbFnm"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02DE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFNM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfLst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in the table stream of list format information.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02E2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFLST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfLst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02E6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFLST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlfLfo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in the table stream of list format override + information.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02EA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLFLFO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlfLfo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02EE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLFLFO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcftxbxBkd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in the table stream of the textbox break table (a PLCF + of BKDs) for the main document</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02F2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFTXBXBKD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcftxbxBkd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02F6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFTXBXBKD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcftxbxHdrBkd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in the table stream of the textbox break table (a PLCF + of BKDs) for the header subdocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02FA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFTXBXHDRBKD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcftxbxHdrBkd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>02FE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFTXBXHDRBKD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcDocUndo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in main stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0302</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCDOCUNDO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbDocUndo"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0306</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBDOCUNDO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcRgbuse"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in main stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>030A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCRGBUSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbRgbuse"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>030E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBRGBUSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcUsp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in main stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0312</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCUSP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbUsp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0316</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBUSP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcUskf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>031A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCUSKF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbUskf"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>031E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBUSKF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcupcRgbuse"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0322</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCUPCRGBUSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcupcRgbuse"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0326</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCUPCRGBUSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcupcUsp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>032A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCUPCUSP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcupcUsp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>032E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCUPCUSP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbGlsyStyle"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of string table of style names for + glossary entries</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0332</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBGLSYSTYLE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbGlsyStyle"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0336</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBGLSYSTYLE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlgosl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of undocumented grammar options PL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>033A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLGOSL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlgosl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>033E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLGOSL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcocx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of undocumented ocx data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0342</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCOCX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcocx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0346</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCOCX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfbteLvc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of character property bin table.PLC. FCs + in PLC are file offsets. Describes text of main document and all + subdocuments.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>034A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFBTELVC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfbteLvc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>034E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFBTELVC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dwLowDateTime"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>(a.k.a FILETIME ftModified)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0352</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DWLOWDATETIME</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dwHighDateTime"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0356</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DWHIGHDATETIME</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcflvc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of LVC PLCF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>035A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFLVC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcflvc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>size of LVC PLCF, ==0 for non-complex files</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>035E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFLVC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcasumy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of autosummary ASUMY PLCF.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0362</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCASUMY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcasumy"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0366</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCASUMY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcPlcfgram"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of PLCF (of SPLS structures) which + records grammar check state</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>036A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCPLCFGRAM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbPlcfgram"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>036E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBPLCFGRAM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbListNames"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of list names string table</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0372</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBLISTNAMES</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbListNames"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0376</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBLISTNAMES</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSttbfUssr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>offset in table stream of undocumented undo / versioning + data</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>037A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSTTBFUSSR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lcbSttbfUssr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>037E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCBSTTBFUSSR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="Fib-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="Fib"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class Fib--> + <!--Class BKD--> +<UML:Class xmi.id="BKD" name="BKD"> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="ww8resource"/> +</UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> +<UML:Classifier.feature> +<UML:Attribute name="ibkl"> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>index to BKL entry in plcfbkl that describes the +ending position of this bookmark in the CP stream.</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="comment"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="offset"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="shift"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue/> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="mask"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue/> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="bits"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>rtf:IBKL</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="attrid"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:StructuralFeature.type> +<UML:DataType xmi.idref="S16"/> +</UML:StructuralFeature.type> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="attribute"/> +</UML:ModelElement.stereotype> +</UML:Attribute> +</UML:Classifier.feature> +<UML:Classifier.feature> +<UML:Attribute name="itcFirst"> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to the first column of a +table column bookmark.</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="comment"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="offset"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="shift"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>007F</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="mask"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="bits"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>rtf:ITCFIRST</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="attrid"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:StructuralFeature.type> +<UML:DataType xmi.idref="U16"/> +</UML:StructuralFeature.type> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="attribute"/> +</UML:ModelElement.stereotype> +</UML:Attribute> +</UML:Classifier.feature> +<UML:Classifier.feature> +<UML:Attribute name="fPub"> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>when 1, this indicates that this bookmark is marking the range +of a Macintosh Publisher section.</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="comment"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="offset"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="shift"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="mask"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="bits"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>rtf:FPUB</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="attrid"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:StructuralFeature.type> +<UML:DataType xmi.idref="U16"/> +</UML:StructuralFeature.type> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="attribute"/> +</UML:ModelElement.stereotype> +</UML:Attribute> +</UML:Classifier.feature> +<UML:Classifier.feature> +<UML:Attribute name="itcLim"> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to limit column of a +table column bookmark.</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="comment"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="offset"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="shift"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>7F00</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="mask"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="bits"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>rtf:ITCLIM</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="attrid"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:StructuralFeature.type> +<UML:DataType xmi.idref="U16"/> +</UML:StructuralFeature.type> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="attribute"/> +</UML:ModelElement.stereotype> +</UML:Attribute> +</UML:Classifier.feature> +<UML:Classifier.feature> +<UML:Attribute name="fCol"> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>when 1, this bookmark marks a range of columns in a table +specified by [bkf.itcFirst, bkf.itcLim).</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="comment"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="offset"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="shift"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="mask"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="bits"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:ModelElement.taggedValue> +<UML:TaggedValue> +<UML:TaggedValue.dataValue>rtf:FCOL</UML:TaggedValue.dataValue> +<UML:TaggedValue.type> +<UML:TagDefinition xmi.idref="attrid"/> +</UML:TaggedValue.type> +</UML:TaggedValue> +</UML:ModelElement.taggedValue> +<UML:StructuralFeature.type> +<UML:DataType xmi.idref="U16"/> +</UML:StructuralFeature.type> +<UML:ModelElement.stereotype> +<UML:Stereotype xmi.idref="attribute"/> +</UML:ModelElement.stereotype> +</UML:Attribute> +</UML:Classifier.feature> +</UML:Class> + <UML:Generalization isSpecification="false" xmi.id="BKD-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="BKD"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class BKD--> + <!--Class SED--> + <UML:Class xmi.id="SED" name="SED"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="needsdocument"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="fn"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>used internally by Word</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcSepx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>file offset in main stream to beginning of SEPX stored for + section. If sed.fcSepx == 0xFFFFFFFF, the section properties for + the section are equal to the standard SEP (see SEP + definition).</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCSEPX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fnMpr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>used internally by Word</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FNMPR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fcMpr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>points to offset in FC space of main stream where the Macintosh + Print Record for a document created on a Mac will be stored</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCMPR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="sepx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sed</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="SEPX"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="SED-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="SED"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class SED--> + <!--Class SHD--> + <UML:Class xmi.id="SHD" name="SHD"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="icoFore"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>foreground color (see chp.ico)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>001F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ICOFORE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="icoBack"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>background color (see chp.ico)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>03E0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ICOBACK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ipat"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>shading pattern (see ipat table below) + 0 Automatic + 1 Solid + 2 5 Percent + 3 10 Percent + 4 20 Percent + 5 25 Percent + 6 30 Percent + 7 40 Percent + 8 50 Percent + 9 60 Percent + 10 70 Percent + 11 75 Percent + 12 80 Percent + 13 90 Percent + 14 Dark Horizontal + 15 Dark Vertical + 16 Dark Forward Diagonal + 17 Dark Backward Diagonal + 18 Dark Cross + 19 Dark Diagonal Cross + 20 Horizontal + 21 Vertical + 22 Forward Diagonal + 23 Backward Diagonal + 24 Cross + 25 Diagonal Cross + 35 2.5 Percent + 36 7.5 Percent + 37 12.5 Percent + 38 15 Percent + 39 17.5 Percent + 40 22.5 Percent + 41 27.5 Percent + 42 32.5 Percent + 43 35 Percent + 44 37.5 Percent + 45 42.5 Percent + 46 45 Percent + 47 47.5 Percent + 48 52.5 Percent + 49 55 Percent + 50 57.5 Percent + 51 62.5 Percent + 52 65 Percent + 53 67.5 Percent + 54 72.5 Percent + 55 77.5 Percent + 56 82.5 Percent + 57 85 Percent + 58 87.5 Percent + 59 92.5 Percent + 60 95 Percent + 61 97.5 Percent + 62 97 Percent</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FC00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:IPAT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="SHD-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="SHD"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class SHD--> + <!--Class CellShd--> + <UML:Class xmi.id="CellShd" name="CellShd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="shdForeColor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>foreground color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:SHDFORECOLOR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shdBackColor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>background color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:SHDBACKCOLOR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shdPattern"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>pattern</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:SHDPATTERN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="cellShd-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="CellShd"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class CellShd--> + <!--Class BRC--> + <UML:Class xmi.id="BRC" name="BRC"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="dptLineWidth"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>width of a single line in 1/8 pt, max of 32 pt.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00FF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DPTLINEWIDTH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcType"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>border type code: + 0 none + 1 single + 2 thick + 3 double + 5 hairline + 6 dot + 7 dash large gap + 8 dot dash + 9 dot dot dash + 10 triple + 11 thin-thick small gap + 12 thick-thin small gap + 13 thin-thick-thin small gap + 14 thin-thick medium gap + 15 thick-thin medium gap + 16 thin-thick-thin medium gap + 17 thin-thick large gap + 18 thick-thin large gap + 19 thin-thick-thin large gap + 20 wave + 21 double wave + 22 dash small gap + 23 dash dot stroked + 24 emboss 3D + 25 engrave 3D + codes 64 - 230 represent border art types and are used only for + page borders.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FF00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCTYPE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ico"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>color code (see chp.ico)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>00FF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ICO</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dptSpace"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>width of space to maintain between border and text within + border. Must be 0 when BRC is a substructure of TC. Stored in + points.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1F00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DPTSPACE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fShadow"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when 1, border is drawn with shadow. Must be 0 when BRC is a + substructure of the TC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FSHADOW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fFrame"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FFRAME</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused2_15"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED2_15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="BRC-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="BRC"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class BRC--> + <!--Class TC--> + <UML:Class xmi.id="TC" name="TC"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="fFirstMerged"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set to 1 when cell is first cell of a range of cells that have + been merged. When a cell is merged, the display areas of the merged + cells are consolidated and the text within the cells is interpreted + as belonging to one text stream for purposes of calculating line + breaks.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FFIRSTMERGED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fMerged"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set to 1 when cell has been merged with preceding cell.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0002</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FMERGED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fVertical"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set to 1 when cell has vertical text flow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0004</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FVERTICAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fBackward"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>for a vertical table cell, text flow is bottom to top when 1 + and is bottom to top when 0.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0008</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FBACKWARD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fRotateFont"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set to 1 when cell has rotated characters (i.e. uses + @font)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0010</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FROTATEFONT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fVertMerge"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set to 1 when cell is vertically merged with the cell(s) above + and/or below. When cells are vertically merged, the display area of + the merged cells are consolidated. The consolidated area is used to + display the contents of the first vertically merged cell (the cell + with fVertRestart set to 1), and all other vertically merged cells + (those with fVertRestart set to 0) must be empty. Cells can only be + merged vertically if their left and right boundaries are (nearly) + identical (i.e. if corresponding entries in rgdxaCenter of the + table rows differ by at most 3).</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FVERTMERGE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fVertRestart"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>set to 1 when the cell is the first of a set of vertically + merged cells. The contents of a cell with fVertStart set to 1 are + displayed in the consolidated area belonging to the entire set of + vertically merged cells. Vertically merged cells with fVertRestart + set to 0 must be empty.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FVERTRESTART</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="vertAlign"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specifies the alignment of the cell contents relative to text + flow (e.g. in a cell with bottom to top text flow and bottom + vertical alignment, the text is shifted horizontally to match the + cell's right boundary): + 0 top + 1 center + 2 bottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0180</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:VERTALIGN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fUnused"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FE00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FUNUSED</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="CellPreferredSize"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>preferred size of cell</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CellPrefferedSize</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC[cbrcTc] rgbrc: notational convenience for referring to + brcTop, brcLeft, etc. fields. + specification of the top border of a table cell</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCTOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification of left border of table row</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification of bottom border of table row</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>c</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCBOTTOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification of right border of table row.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCRIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="TC-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="TC"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class TC--> + <!--Class BKF--> + <UML:Class name="BKF" xmi.id="BKF"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="ibkl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>index to BKL entry in plcfbkl that describes the + ending position of this bookmark in the CP stream.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:IBKL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="itcFirst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to the first column of a + table column bookmark.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>007F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ITCFIRST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fPub"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when 1, this indicates that this bookmark is marking the range + of a Macintosh Publisher section.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FPUB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="itcLim"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when bkf.fCol is 1, this is the index to limit column of a + table column bookmark.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7F00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:ITCLIM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fCol"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when 1, this bookmark marks a range of columns in a table + specified by [bkf.itcFirst, bkf.itcLim).</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FCOL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="BKF-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="BKF"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class BKF--> + <!--Class LineProps--> + <UML:Class name="LineProps" xmi.id="LineProps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="linecolor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>color of line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINECOLOR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linewidth"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>width of line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEWIDTH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linetype"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>type of line, see border type code (BRC)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINETYPE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="LineProps-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="LineProps"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class LineProps--> + <!--Class TBD--> + <UML:Class xmi.id="TBD" name="TBD"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:Classifier.feature> + <UML:Attribute name="jc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>justification code + 0 left tab + 1 centered tab + 2 right tab + 3 decimal tab + 4 bar</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>07</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:JC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="tlc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>tab leader code + 0 no leader + 1 dotted leader + 2 hyphenated leader + 3 single line leader + 4 heavy line leader</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>38</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:TLC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused0_6"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>C0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED0_6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="TBD-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="TBD"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class TBD--> + <!--Class METAFILEPICT--> + <UML:Class xmi.id="METAFILEPICT" name="METAFILEPICT"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:Classifier.feature> + <UML:Attribute name="mm"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Specifies the mapping mode in which the picture is drawn. </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:MM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="xExt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Specifies the size of the metafile picture for all modes except + the MM_ISOTROPIC and MM_ANISOTROPIC modes. (For more information + about these modes, see the yExt member.) The x-extent specifies the + width of the rectangle within which the picture is drawn. The + coordinates are in units that correspond to the mapping mode.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:XEXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="yExt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Specifies the size of the metafile picture for all modes except + the MM_ISOTROPIC and MM_ANISOTROPIC modes. The y-extent specifies + the height of the rectangle within which the picture is drawn. The + coordinates are in units that correspond to the mapping mode. + For MM_ISOTROPIC and MM_ANISOTROPIC modes, which can be scaled, + the xExt and yExt members contain an optional suggested size in + MM_HIMETRIC units. + For MM_ANISOTROPIC pictures, xExt and yExt can be zero when no + suggested size is supplied. For MM_ISOTROPIC pictures, an aspect + ratio must be supplied even when no suggested size is given. (If a + suggested size is given, the aspect ratio is implied by the size.) + To give an aspect ratio without implying a suggested size, set xExt + and yExt to negative values whose ratio is the appropriate aspect + ratio. The magnitude of the negative xExt and yExt values is + ignored; only the ratio is used. + </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:YEXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="hMF"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Identifies a memory metafile.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:HMF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="METAFILEPICT-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="METAFILEPICT"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class METAFILEPICT--> + <!--Class PICF--> + <UML:Class xmi.id="PICF" name="PICF"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:Classifier.feature> + <UML:Attribute name="lcb"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>number of bytes in the PIC structure plus size of following + picture data which may be a Window's metafile, a bitmap, or the + filename of a TIFF file. In the case of a Macintosh PICT picture, + this includes the size of the PIC, the standard "x" metafile, and + the Macintosh PICT data. See Appendix B for more information.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LCB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cbHeader"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>number of bytes in the PIC (to allow for future + expansion).</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CBHEADER</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="mfp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>If a Windows metafile is stored immediately following the PIC + structure, the mfp is a Window's METAFILEPICT structure. When the + data immediately following the PIC is a TIFF filename, mfp.mm == 98 + If a bitmap is stored after the pic, mfp.mm == 99 + When the PIC describes a bitmap, mfp.xExt is the width of the + bitmap in pixels and mfp.yExt is the height of the bitmap in + pixels.. + </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:MFP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="METAFILEPICT"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="bm_rcWinMF"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Window's bitmap structure when PIC describes a BITMAP (14 + bytes). + Rect for window origin and extents when metafile is stored -- + ignored if 0 (8 bytes).</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BM_RCWINMF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dxaGoal"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>horizontal measurement in twips of the rectangle the picture + should be imaged within. when scaling bitmaps, dxaGoal and dyaGoal + may be ignored if the operation would cause the bitmap to shrink or + grow by a non -power-of-two factor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DXAGOAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dyaGoal"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>vertical measurement in twips of the rectangle the picture + should be imaged within.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DYAGOAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="mx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>horizontal scaling factor supplied by user expressed in .001% + units.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:MX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="my"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>vertical scaling factor supplied by user expressed in .001% + units.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>22</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:MY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dxaCropLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the amount the picture has been cropped on the left in twips. + for all of the Crop values, a positive measurement means the + specified border has been moved inward from its original setting + and a negative measurement means the border has been moved outward + from its original setting.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>24</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DXACROPLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dyaCropTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the amount the picture has been cropped on the top in + twips.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>26</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DYACROPTOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dxaCropRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the amount the picture has been cropped on the right in + twips.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DXACROPRIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dyaCropBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the amount the picture has been cropped on the bottom in + twips.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DYACROPBOTTOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Obsolete, superseded by brcTop, etc. In WinWord 1.x, it was the + type of border to place around picture + 0 single + 1 thick + 2 double + 3 shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>000F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fFrameEmpty"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>picture consists of a single frame</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0010</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FFRAMEEMPTY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fBitmap"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>==1, when picture is just a bitmap</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0020</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FBITMAP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fDrawHatch"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>==1, when picture is an active OLE object</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0040</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FDRAWHATCH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fError"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>==1, when picture is just an error message</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0080</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FERROR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="bpp"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>bits per pixel + 0 unknown + 1 monochrome + 4 VGA</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FF00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BPP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification for border above picture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCTOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification for border to the left of picture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification for border below picture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>36</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCBOTTOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="brcRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>specification for border to the right of picture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCRIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dxaOrigin"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>horizontal offset of hand annotation origin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DXAORIGIN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="dyaOrigin"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>vertical offset of hand annotation origin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>40</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DYAORIGIN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cProps"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>42</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CPROPS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="DffRecord"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:DffRecord</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="DffRecord"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="PICF-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="PICF"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class PICF--> + <!--Class FSPA--> + <UML:Class xmi.id="FSPA" name="FSPA"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>26</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="spid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape Identifier. Used in conjunction with the office art data + (found via fcDggInfo in the FIB) to find the actual + data for this shape.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:SPID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="xaLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>xa left of rectangle enclosing shape relative to the origin of + the shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:XALEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="yaTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>ya top of rectangle enclosing shape relative to the origin of + the shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:YATOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="xaRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>xa right of rectangle enclosing shape relative to the origin of + the shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:XARIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="yaBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>ya bottom of the rectangle enclosing shape relative to the + origin of the shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:YABOTTOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fHdr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1 in the undo doc when shape is from the header doc, 0 + otherwise (undefined when not in the undo doc)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0001</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FHDR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="bx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>x position of shape relative to anchor CP + 0 relative to page margin + 1 relative to top of page + 2 relative to text (column for horizontal text; paragraph for + vertical text) + 3 reserved for future use</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0006</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="by"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>y position of shape relative to anchor CP + 0 relative to page margin + 1 relative to top of page + 2 relative to text (paragraph for horizontal text; column for + vertical text)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0018</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wr"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>text wrapping mode + 0 like 2, but doesn't require absolute object + 1 no text next to shape + 2 wrap around absolute object + 3 wrap as if no object present + 4 wrap tightly around object + 5 wrap tightly, but allow holes + 6-15 reserved for future use</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>01E0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="wrk"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>text wrapping mode type (valid only for wrapping modes 2 and + 4 + 0 wrap both sides + 1 wrap only on left + 2 wrap only on right + 3 wrap only on largest side</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1E00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:WRK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fRcaSimple"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when set, temporarily overrides bx, by, forcing the xaLeft, + xaRight, yaTop, and yaBottom fields to all be page relative.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FRCASIMPLE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fBelowText"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1 shape is below text + 0 shape is above text</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FBELOWTEXT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fAnchorLock"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1 anchor is locked + 0 anchor is not locked</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FANCHORLOCK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cTxbx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>count of textboxes in shape (undo doc only)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CTXBX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="shape"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="DffRecord"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FSPA-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FSPA"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FSPA--> + <!--Class FLD--> + <UML:Class xmi.id="FLD" name="FLD"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="ch"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>type of field boundary the FLD describes: + 19 field begin mark + 20 field separator mark + 21 field end mark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused0_5"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>E0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED0_5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="flt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>fld.ch == 19 (field begin mark) -> U8 field type (see flt + table below). + fld.ch == 20 (field separator mark) -> not present + fld.ch == 21 (field end mark) -> + fDiffer:1 - ignored for saved file + fZombieEmbed:1 - 1 when result still believes this field is an + EMBED or LINK field. + fResultDirty:1 - when user has edited or formatted the result. == + 0 otherwise. + fResultEdited:1 - 1 when user has inserted text into or deleted + text from the result. + fLocked:1 - 1 when field is locked from recalc. + fPrivateResult:1 - 1 whenever the result of the field is never to + be shown. + fNested:1 - 1 when field is nested within another field. + fHasSep:1 - 1 when field has a field separator.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FLT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FLD-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FLD"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FLD--> + <!--Class Rectangle--> + <UML:Class xmi.id="Rectangle" name="Rectangle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="left"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>left margin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="top"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>top margin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="right"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>right margin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="bottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>bottom margin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="Rectangle-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="Rectangle"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class Rectangle--> + <!--Class FOPTE--> + <UML:Class xmi.id="FOPTE" name="FOPTE"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="withindex"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="resolvenoauto"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="pid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Property ID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3fff</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fBid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>value is a blip ID u2013 only valid if fComplex is FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfBid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="fComplex"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>complex property, value is length</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfComplex</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="op"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="name"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpname</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="value"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpvalue</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="Value"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FOPTE-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FOPTE"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FOPTE--> + <!--Class FDGG--> + <UML:Class xmi.id="FDGG" name="FDGG"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="spidMax"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The current maximum shape ID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpspidMax</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cidcl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The number of ID clusters (FIDCLs)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcidcl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cspSaved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The total number of shapes saved (including deleted shapes, if undo information was saved)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcspSaved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cdgSaved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The total number of drawings saved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcdgSaved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FDGG-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FDGG"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FDGG--> + <!--Class FIDCL--> + <UML:Class xmi.id="FIDCL" name="FIDCL"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="dgid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>DG owning the SPIDs in this cluster</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdgid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cspidCur"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>number of SPIDs used so far</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcspidCur</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FIDCL-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FIDCL"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FIDCL--> + <!--Class FBSE--> + <UML:Class xmi.id="FBSE" name="FBSE"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x24</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="btWin32"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Required type on Win32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpbtWin32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="btMacOS"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Required type on Mac</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpbtMacOS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="rgbUid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Identifier of blip</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shprgbUid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="arraycount"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="tag"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>currently unused</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shptag</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="size"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip size in stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpsize</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cRef"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Reference count on the blip</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x18</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcRef</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="foDelay"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>File offset in the delay stream</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1c</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfoDelay</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="usage"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How this blip is used (MSOBLIPUSAGE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpusage</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="cbName"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>length of the blip name</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x21</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcbName</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused2"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>for the future</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x22</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpunused2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused3"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>for the future</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x23</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpunused3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FBSE-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FBSE"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FBSE--> + <!--Class FRD--> + <UML:Class xmi.id="FRD" name="FRD"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="pid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:FRD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FRD-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FRD"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class FRD--> + <!--Class ATRD--> + <UML:Class xmi.id="ATRD" name="ATRD"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>28</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="ibst"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>index into GrpXstAtnOwners</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:IBST</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="ak"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0003</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:AK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="unused22_2"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FFFC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>:14</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:UNUSED22_2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="grfbmc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>18</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:GRFBMC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="lTagBkmk"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>when not -1, this tag identifies the annotation bookmark that + locates the range of CPs in the main document which this annotation + references.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LTAGBKMK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="S32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="xstUsrInitl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:xstUsrInitl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>pascal-style string holding initials of annotation author</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="ATRD-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="ATRD"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--Class ATRD--> + <!--WW8 resources--> + <!--SPRMS--> + <!--SPRM sprmPIstdPermute--> + <UML:Class xmi.id="sprmPIstdPermute" name="sprmPIstdPermute"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC601</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPIstdPermute</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPIstdPermute--> + <!--SPRM sprmPIncLvl--> + <UML:Class xmi.id="sprmPIncLvl" name="sprmPIncLvl"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2602</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPIncLvl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPIncLvl--> + <!--SPRM sprmPJcExtra--> + <UML:Class xmi.id="sprmPJcExtra" name="sprmPJcExtra"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2461</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPJcExtra</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPJcExtra--> + <!--SPRM sprmPJc--> + <UML:Class xmi.id="sprmPJc" name="sprmPJc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2403</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPJc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPJc--> + <!--SPRM sprmPFSideBySide--> + <UML:Class xmi.id="sprmPFSideBySide" name="sprmPFSideBySide"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2404</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFSideBySide</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFSideBySide--> + <!--SPRM sprmPFKeep--> + <UML:Class xmi.id="sprmPFKeep" name="sprmPFKeep"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2405</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFKeep</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFKeep--> + <!--SPRM sprmPFKeepFollow--> + <UML:Class xmi.id="sprmPFKeepFollow" name="sprmPFKeepFollow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2406</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFKeepFollow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFKeepFollow--> + <!--SPRM sprmPFPageBreakBefore--> + <UML:Class xmi.id="sprmPFPageBreakBefore" name="sprmPFPageBreakBefore"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2407</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFPageBreakBefore</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFPageBreakBefore--> + <!--SPRM sprmPBrcl--> + <UML:Class xmi.id="sprmPBrcl" name="sprmPBrcl"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2408</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcl--> + <!--SPRM sprmPBrcp--> + <UML:Class xmi.id="sprmPBrcp" name="sprmPBrcp"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2409</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcp</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcp--> + <!--SPRM sprmPIlvl--> + <UML:Class xmi.id="sprmPIlvl" name="sprmPIlvl"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x260A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPIlvl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPIlvl--> + <!--SPRM sprmPIlfo--> + <UML:Class xmi.id="sprmPIlfo" name="sprmPIlfo"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x460B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPIlfo</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPIlfo--> + <!--SPRM sprmPFNoLineNumb--> + <UML:Class xmi.id="sprmPFNoLineNumb" name="sprmPFNoLineNumb"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x240C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFNoLineNumb</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFNoLineNumb--> + <!--SPRM sprmPChgTabsPapx--> + <UML:Class xmi.id="sprmPChgTabsPapx" name="sprmPChgTabsPapx"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC60D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPChgTabsPapx</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="dxaDel"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:dxaDel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>array of tab positions for which tabs should be deleted</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="S16"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="dxaAdd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:dxaAdd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>array of tab positions for which tabs should be added</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="S16"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="tbdAdd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:tbdAdd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>array of tab descriptors corresponding to rgdxaAdd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="TBD"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPChgTabsPapx-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPChgTabsPapx"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPChgTabsPapx--> + <!--SPRM sprmPDxaRight--> + <UML:Class xmi.id="sprmPDxaRight" name="sprmPDxaRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x840E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaRight--> + <!--SPRM sprmPDxaLeft--> + <UML:Class xmi.id="sprmPDxaLeft" name="sprmPDxaLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x840F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaLeft--> + <!--SPRM sprmPNest--> + <UML:Class xmi.id="sprmPNest" name="sprmPNest"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4610</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPNest</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPNest--> + <!--SPRM sprmPDxaLeft1--> + <UML:Class xmi.id="sprmPDxaLeft1" name="sprmPDxaLeft1"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8411</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaLeft1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaLeft1--> + <!--SPRM sprmPDyaLine--> + <UML:Class xmi.id="sprmPDyaLine" name="sprmPDyaLine"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6412</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDyaLine</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDyaLine--> + <!--SPRM sprmPDyaBefore--> + <UML:Class xmi.id="sprmPDyaBefore" name="sprmPDyaBefore"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xA413</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDyaBefore</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDyaBefore--> + <!--SPRM sprmPDyaAfter--> + <UML:Class xmi.id="sprmPDyaAfter" name="sprmPDyaAfter"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xA414</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDyaAfter</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDyaAfter--> + <!--SPRM sprmPChgTabs--> + <UML:Class xmi.id="sprmPChgTabs" name="sprmPChgTabs"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC615</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPChgTabs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPChgTabs--> + <!--SPRM sprmPFInTable--> + <UML:Class xmi.id="sprmPFInTable" name="sprmPFInTable"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2416</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFInTable</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFInTable--> + <!--SPRM sprmPCell--> + <UML:Class xmi.id="sprmPCell" name="sprmPCell"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x244b</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPCell</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPCell--> + <!--SPRM sprmPRow--> + <UML:Class xmi.id="sprmPRow" name="sprmPRow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x244c</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPRow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPRow--> + <!--SPRM sprmPFTtp--> + <UML:Class xmi.id="sprmPFTtp" name="sprmPFTtp"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2417</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFTtp</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFTtp--> + <!--SPRM sprmPDxaAbs--> + <UML:Class xmi.id="sprmPDxaAbs" name="sprmPDxaAbs"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8418</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaAbs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaAbs--> + <!--SPRM sprmPDyaAbs--> + <UML:Class xmi.id="sprmPDyaAbs" name="sprmPDyaAbs"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8419</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDyaAbs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDyaAbs--> + <!--SPRM sprmPDxaWidth--> + <UML:Class xmi.id="sprmPDxaWidth" name="sprmPDxaWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x841A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaWidth--> + <!--SPRM sprmPPc--> + <UML:Class xmi.id="sprmPPc" name="sprmPPc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x261B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPPc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPPc--> + <!--SPRM sprmPBrcTop10--> + <UML:Class xmi.id="sprmPBrcTop10" name="sprmPBrcTop10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x461C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcTop10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcTop10--> + <!--SPRM sprmPBrcLeft10--> + <UML:Class xmi.id="sprmPBrcLeft10" name="sprmPBrcLeft10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x461D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcLeft10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcLeft10--> + <!--SPRM sprmPBrcBottom10--> + <UML:Class xmi.id="sprmPBrcBottom10" name="sprmPBrcBottom10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x461E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBottom10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcBottom10--> + <!--SPRM sprmPBrcRight10--> + <UML:Class xmi.id="sprmPBrcRight10" name="sprmPBrcRight10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x461F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcRight10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcRight10--> + <!--SPRM sprmPBrcBetween10--> + <UML:Class xmi.id="sprmPBrcBetween10" name="sprmPBrcBetween10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4620</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBetween10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcBetween10--> + <!--SPRM sprmPBrcBar10--> + <UML:Class xmi.id="sprmPBrcBar10" name="sprmPBrcBar10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4621</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBar10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPBrcBar10--> + <!--SPRM sprmPDxaFromText10--> + <UML:Class xmi.id="sprmPDxaFromText10" name="sprmPDxaFromText10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4622</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaFromText10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaFromText10--> + <!--SPRM sprmPWr--> + <UML:Class xmi.id="sprmPWr" name="sprmPWr"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2423</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPWr</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPWr--> + <!--SPRM sprmPBrcBetween--> + <UML:Class xmi.id="sprmPBrcBetween" name="sprmPBrcBetween"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6428</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBetween</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBetween-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcBetween"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcBetween--> + <!--SPRM sprmPBrcBar--> + <UML:Class xmi.id="sprmPBrcBar" name="sprmPBrcBar"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6629</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBar</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBar-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcBar"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcBar--> + <!--SPRM sprmPFNoAutoHyph--> + <UML:Class xmi.id="sprmPFNoAutoHyph" name="sprmPFNoAutoHyph"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x242A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFNoAutoHyph</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFNoAutoHyph--> + <!--SPRM sprmPWHeightAbs--> + <UML:Class xmi.id="sprmPWHeightAbs" name="sprmPWHeightAbs"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x442B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPWHeightAbs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPWHeightAbs--> + <!--SPRM sprmPDcs--> + <UML:Class xmi.id="sprmPDcs" name="sprmPDcs"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x442C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDcs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDcs--> + <!--SPRM sprmPShd--> + <UML:Class xmi.id="sprmPShd" name="sprmPShd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x442D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPShd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPShd--> + <!--SPRM sprmPDyaFromText--> + <UML:Class xmi.id="sprmPDyaFromText" name="sprmPDyaFromText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x842E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDyaFromText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDyaFromText--> + <!--SPRM sprmPDxaFromText--> + <UML:Class xmi.id="sprmPDxaFromText" name="sprmPDxaFromText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x842F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPDxaFromText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPDxaFromText--> + <!--SPRM sprmPFLocked--> + <UML:Class xmi.id="sprmPFLocked" name="sprmPFLocked"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2430</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFLocked</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFLocked--> + <!--SPRM sprmPFWidowControl--> + <UML:Class xmi.id="sprmPFWidowControl" name="sprmPFWidowControl"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2431</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFWidowControl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFWidowControl--> + <!--SPRM sprmPRuler--> + <UML:Class xmi.id="sprmPRuler" name="sprmPRuler"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC632</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPRuler</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPRuler--> + <!--SPRM sprmPFKinsoku--> + <UML:Class xmi.id="sprmPFKinsoku" name="sprmPFKinsoku"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2433</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFKinsoku</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFKinsoku--> + <!--SPRM sprmPFWordWrap--> + <UML:Class xmi.id="sprmPFWordWrap" name="sprmPFWordWrap"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2434</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFWordWrap</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFWordWrap--> + <!--SPRM sprmPFOverflowPunct--> + <UML:Class xmi.id="sprmPFOverflowPunct" name="sprmPFOverflowPunct"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2435</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFOverflowPunct</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFOverflowPunct--> + <!--SPRM sprmPFTopLinePunct--> + <UML:Class xmi.id="sprmPFTopLinePunct" name="sprmPFTopLinePunct"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2436</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFTopLinePunct</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFTopLinePunct--> + <!--SPRM sprmPFAutoSpaceDE--> + <UML:Class xmi.id="sprmPFAutoSpaceDE" name="sprmPFAutoSpaceDE"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2437</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFAutoSpaceDE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFAutoSpaceDE--> + <!--SPRM sprmPFAutoSpaceDN--> + <UML:Class xmi.id="sprmPFAutoSpaceDN" name="sprmPFAutoSpaceDN"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2438</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFAutoSpaceDN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFAutoSpaceDN--> + <!--SPRM sprmPWAlignFont--> + <UML:Class xmi.id="sprmPWAlignFont" name="sprmPWAlignFont"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4439</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPWAlignFont</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPWAlignFont--> + <!--SPRM sprmPFrameTextFlow--> + <UML:Class xmi.id="sprmPFrameTextFlow" name="sprmPFrameTextFlow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x443A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFrameTextFlow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFrameTextFlow--> + <!--SPRM sprmPISnapBaseLine--> + <UML:Class xmi.id="sprmPISnapBaseLine" name="sprmPISnapBaseLine"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x243B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPISnapBaseLine</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPISnapBaseLine--> + <!--SPRM sprmPAnld--> + <UML:Class xmi.id="sprmPAnld" name="sprmPAnld"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC63E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPAnld</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPAnld--> + <!--SPRM sprmPPropRMark--> + <UML:Class xmi.id="sprmPPropRMark" name="sprmPPropRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC63F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPPropRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPPropRMark--> + <!--SPRM sprmPOutLvl--> + <UML:Class xmi.id="sprmPOutLvl" name="sprmPOutLvl"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2640</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPOutLvl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPOutLvl--> + <!--SPRM sprmPFBiDi--> + <UML:Class xmi.id="sprmPFBiDi" name="sprmPFBiDi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2441</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFBiDi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFBiDi--> + <!--SPRM sprmPFNumRMIns--> + <UML:Class xmi.id="sprmPFNumRMIns" name="sprmPFNumRMIns"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2443</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFNumRMIns</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFNumRMIns--> + <!--SPRM sprmPCrLf--> + <UML:Class xmi.id="sprmPCrLf" name="sprmPCrLf"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2444</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPCrLf</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPCrLf--> + <!--SPRM sprmPNumRM--> + <UML:Class xmi.id="sprmPNumRM" name="sprmPNumRM"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xC645</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPNumRM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPNumRM--> + <!--SPRM sprmPHugePapx--> + <UML:Class xmi.id="sprmPHugePapx" name="sprmPHugePapx"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6645</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPHugePapx</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPHugePapx--> + <!--SPRM sprmPFUsePgsuSettings--> + <UML:Class xmi.id="sprmPFUsePgsuSettings" name="sprmPFUsePgsuSettings"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2447</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFUsePgsuSettings</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFUsePgsuSettings--> + <!--SPRM sprmPFAdjustRight--> + <UML:Class xmi.id="sprmPFAdjustRight" name="sprmPFAdjustRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2448</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPFAdjustRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPFAdjustRight--> + <!--SPRM sprmCFRMarkDel--> + <UML:Class xmi.id="sprmCFRMarkDel" name="sprmCFRMarkDel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0800</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFRMarkDel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFRMarkDel--> + <!--SPRM sprmCFRMark--> + <UML:Class xmi.id="sprmCFRMark" name="sprmCFRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0801</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFRMark--> + <!--SPRM sprmCFFldVanish--> + <UML:Class xmi.id="sprmCFFldVanish" name="sprmCFFldVanish"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0802</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFFldVanish</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFFldVanish--> + <!--SPRM sprmCPicLocation--> + <UML:Class xmi.id="sprmCPicLocation" name="sprmCPicLocation"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6A03</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCPicLocation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="fcPic"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>picture location</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:fcPic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmCPicLocation-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmCPicLocation"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmCPicLocation--> + <!--SPRM sprmCIbstRMark--> + <UML:Class xmi.id="sprmCIbstRMark" name="sprmCIbstRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4804</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIbstRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIbstRMark--> + <!--SPRM sprmCDttmRMark--> + <UML:Class xmi.id="sprmCDttmRMark" name="sprmCDttmRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6805</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCDttmRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCDttmRMark--> + <!--SPRM sprmCFData--> + <UML:Class xmi.id="sprmCFData" name="sprmCFData"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0806</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFData</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFData--> + <!--SPRM sprmCIdslRMark--> + <UML:Class xmi.id="sprmCIdslRMark" name="sprmCIdslRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4807</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIdslRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIdslRMark--> + <!--SPRM sprmCChs--> + <UML:Class xmi.id="sprmCChs" name="sprmCChs"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xEA08</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCChs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCChs--> + <!--SPRM sprmCSymbol--> + <UML:Class xmi.id="sprmCSymbol" name="sprmCSymbol"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6A09</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCSymbol</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCSymbol--> + <!--SPRM sprmCFOle2--> + <UML:Class xmi.id="sprmCFOle2" name="sprmCFOle2"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x080A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFOle2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFOle2--> + <!--SPRM sprmCIdCharType--> + <UML:Class xmi.id="sprmCIdCharType" name="sprmCIdCharType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x480B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIdCharType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIdCharType--> + <!--SPRM sprmCHighlight--> + <UML:Class xmi.id="sprmCHighlight" name="sprmCHighlight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A0C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHighlight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHighlight--> + <!--SPRM sprmCObjLocation--> + <UML:Class xmi.id="sprmCObjLocation" name="sprmCObjLocation"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x680E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCObjLocation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCObjLocation--> + <!--SPRM sprmCFFtcAsciSymb--> + <UML:Class xmi.id="sprmCFFtcAsciSymb" name="sprmCFFtcAsciSymb"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFFtcAsciSymb</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFFtcAsciSymb--> + <!--SPRM sprmCIstd--> + <UML:Class xmi.id="sprmCIstd" name="sprmCIstd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A30</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIstd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIstd--> + <!--SPRM sprmCIstdPermute--> + <UML:Class xmi.id="sprmCIstdPermute" name="sprmCIstdPermute"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA31</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIstdPermute</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIstdPermute--> + <!--SPRM sprmCDefault--> + <UML:Class xmi.id="sprmCDefault" name="sprmCDefault"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCDefault</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCDefault--> + <!--SPRM sprmCPlain--> + <UML:Class xmi.id="sprmCPlain" name="sprmCPlain"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A33</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCPlain</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCPlain--> + <!--SPRM sprmCKcd--> + <UML:Class xmi.id="sprmCKcd" name="sprmCKcd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A34</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCKcd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCKcd--> + <!--SPRM sprmCFBold--> + <UML:Class xmi.id="sprmCFBold" name="sprmCFBold"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0835</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFBold</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFBold--> + <!--SPRM sprmCFItalic--> + <UML:Class xmi.id="sprmCFItalic" name="sprmCFItalic"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0836</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFItalic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFItalic--> + <!--SPRM sprmCFStrike--> + <UML:Class xmi.id="sprmCFStrike" name="sprmCFStrike"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0837</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFStrike</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFStrike--> + <!--SPRM sprmCFOutline--> + <UML:Class xmi.id="sprmCFOutline" name="sprmCFOutline"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0838</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFOutline</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFOutline--> + <!--SPRM sprmCFShadow--> + <UML:Class xmi.id="sprmCFShadow" name="sprmCFShadow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0839</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFShadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFShadow--> + <!--SPRM sprmCFSmallCaps--> + <UML:Class xmi.id="sprmCFSmallCaps" name="sprmCFSmallCaps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x083A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFSmallCaps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFSmallCaps--> + <!--SPRM sprmCFCaps--> + <UML:Class xmi.id="sprmCFCaps" name="sprmCFCaps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x083B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFCaps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFCaps--> + <!--SPRM sprmCFVanish--> + <UML:Class xmi.id="sprmCFVanish" name="sprmCFVanish"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x083C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFVanish</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFVanish--> + <!--SPRM sprmCFtcDefault--> + <UML:Class xmi.id="sprmCFtcDefault" name="sprmCFtcDefault"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A3D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFtcDefault</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFtcDefault--> + <!--SPRM sprmCKul--> + <UML:Class xmi.id="sprmCKul" name="sprmCKul"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A3E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCKul</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCKul--> + <!--SPRM sprmCSizePos--> + <UML:Class xmi.id="sprmCSizePos" name="sprmCSizePos"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xEA3F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCSizePos</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCSizePos--> + <!--SPRM sprmCDxaSpace--> + <UML:Class xmi.id="sprmCDxaSpace" name="sprmCDxaSpace"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8840</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCDxaSpace</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCDxaSpace--> + <!--SPRM sprmCLid--> + <UML:Class xmi.id="sprmCLid" name="sprmCLid"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A41</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCLid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCLid--> + <!--SPRM sprmCIco--> + <UML:Class xmi.id="sprmCIco" name="sprmCIco"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A42</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIco</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIco--> + <!--SPRM sprmCHps--> + <UML:Class xmi.id="sprmCHps" name="sprmCHps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A43</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHps--> + <!--SPRM sprmCHpsInc--> + <UML:Class xmi.id="sprmCHpsInc" name="sprmCHpsInc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A44</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsInc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsInc--> + <!--SPRM sprmCHpsPos--> + <UML:Class xmi.id="sprmCHpsPos" name="sprmCHpsPos"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4845</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsPos</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsPos--> + <!--SPRM sprmCHpsPosAdj--> + <UML:Class xmi.id="sprmCHpsPosAdj" name="sprmCHpsPosAdj"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A46</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsPosAdj</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsPosAdj--> + <!--SPRM sprmCMajority--> + <UML:Class xmi.id="sprmCMajority" name="sprmCMajority"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA47</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCMajority</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCMajority--> + <!--SPRM sprmCIss--> + <UML:Class xmi.id="sprmCIss" name="sprmCIss"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A48</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIss</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIss--> + <!--SPRM sprmCHpsNew50--> + <UML:Class xmi.id="sprmCHpsNew50" name="sprmCHpsNew50"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA49</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsNew50</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsNew50--> + <!--SPRM sprmCHpsInc1--> + <UML:Class xmi.id="sprmCHpsInc1" name="sprmCHpsInc1"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA4A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsInc1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsInc1--> + <!--SPRM sprmCHpsKern--> + <UML:Class xmi.id="sprmCHpsKern" name="sprmCHpsKern"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x484B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsKern</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsKern--> + <!--SPRM sprmCMajority50--> + <UML:Class xmi.id="sprmCMajority50" name="sprmCMajority50"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA4C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCMajority50</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCMajority50--> + <!--SPRM sprmCHpsMul--> + <UML:Class xmi.id="sprmCHpsMul" name="sprmCHpsMul"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A4D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsMul</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsMul--> + <!--SPRM sprmCYsri--> + <UML:Class xmi.id="sprmCYsri" name="sprmCYsri"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x484E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCYsri</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCYsri--> + <!--SPRM sprmCRgFtc0--> + <UML:Class xmi.id="sprmCRgFtc0" name="sprmCRgFtc0"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A4F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCRgFtc0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCRgFtc0--> + <!--SPRM sprmCRgFtc1--> + <UML:Class xmi.id="sprmCRgFtc1" name="sprmCRgFtc1"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A50</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCRgFtc1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCRgFtc1--> + <!--SPRM sprmCRgFtc2--> + <UML:Class xmi.id="sprmCRgFtc2" name="sprmCRgFtc2"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A51</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCRgFtc2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCRgFtc2--> + <!--SPRM sprmCCharScale--> + <UML:Class xmi.id="sprmCCharScale" name="sprmCCharScale"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4852</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCCharScale</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCCharScale--> + <!--SPRM sprmCFDStrike--> + <UML:Class xmi.id="sprmCFDStrike" name="sprmCFDStrike"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2A53</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFDStrike</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFDStrike--> + <!--SPRM sprmCFImprint--> + <UML:Class xmi.id="sprmCFImprint" name="sprmCFImprint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0854</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFImprint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFImprint--> + <!--SPRM sprmCFSpec--> + <UML:Class xmi.id="sprmCFSpec" name="sprmCFSpec"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0855</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFSpec</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFSpec--> + <!--SPRM sprmCFObj--> + <UML:Class xmi.id="sprmCFObj" name="sprmCFObj"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0856</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFObj</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFObj--> + <!--SPRM sprmCPropRMark--> + <UML:Class xmi.id="sprmCPropRMark" name="sprmCPropRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA57</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCPropRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCPropRMark--> + <!--SPRM sprmCFEmboss--> + <UML:Class xmi.id="sprmCFEmboss" name="sprmCFEmboss"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0858</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFEmboss</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFEmboss--> + <!--SPRM sprmCSfxText--> + <UML:Class xmi.id="sprmCSfxText" name="sprmCSfxText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2859</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCSfxText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCSfxText--> + <!--SPRM sprmCFBiDi--> + <UML:Class xmi.id="sprmCFBiDi" name="sprmCFBiDi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x085A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFBiDi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFBiDi--> + <!--SPRM sprmCFDiacColor--> + <UML:Class xmi.id="sprmCFDiacColor" name="sprmCFDiacColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x085B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFDiacColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFDiacColor--> + <!--SPRM sprmCFBoldBi--> + <UML:Class xmi.id="sprmCFBoldBi" name="sprmCFBoldBi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x085C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFBoldBi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFBoldBi--> + <!--SPRM sprmCFItalicBi--> + <UML:Class xmi.id="sprmCFItalicBi" name="sprmCFItalicBi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x085D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFItalicBi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFItalicBi--> + <!--SPRM sprmCFtcBi--> + <UML:Class xmi.id="sprmCFtcBi" name="sprmCFtcBi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A5E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFtcBi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFtcBi--> + <!--SPRM sprmCLidBi--> + <UML:Class xmi.id="sprmCLidBi" name="sprmCLidBi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x485F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCLidBi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCLidBi--> + <!--SPRM sprmCIcoBi--> + <UML:Class xmi.id="sprmCIcoBi" name="sprmCIcoBi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A60</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIcoBi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIcoBi--> + <!--SPRM sprmCHpsBi--> + <UML:Class xmi.id="sprmCHpsBi" name="sprmCHpsBi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4A61</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCHpsBi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCHpsBi--> + <!--SPRM sprmCDispFldRMark--> + <UML:Class xmi.id="sprmCDispFldRMark" name="sprmCDispFldRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCA62</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCDispFldRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCDispFldRMark--> + <!--SPRM sprmCIbstRMarkDel--> + <UML:Class xmi.id="sprmCIbstRMarkDel" name="sprmCIbstRMarkDel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4863</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIbstRMarkDel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIbstRMarkDel--> + <!--SPRM sprmCDttmRMarkDel--> + <UML:Class xmi.id="sprmCDttmRMarkDel" name="sprmCDttmRMarkDel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6864</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCDttmRMarkDel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCDttmRMarkDel--> + <!--SPRM sprmCBrc--> + <UML:Class xmi.id="sprmCBrc" name="sprmCBrc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6865</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCBrc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCBrc--> + <!--SPRM sprmCShd--> + <UML:Class xmi.id="sprmCShd" name="sprmCShd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4866</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCShd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCShd--> + <!--SPRM sprmCIdslRMarkDel--> + <UML:Class xmi.id="sprmCIdslRMarkDel" name="sprmCIdslRMarkDel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4867</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIdslRMarkDel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIdslRMarkDel--> + <!--SPRM sprmCFUsePgsuSettings--> + <UML:Class xmi.id="sprmCFUsePgsuSettings" name="sprmCFUsePgsuSettings"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0868</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCFUsePgsuSettings</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCFUsePgsuSettings--> + <!--SPRM sprmCCpg--> + <UML:Class xmi.id="sprmCCpg" name="sprmCCpg"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x486B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCCpg</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCCpg--> + <!--SPRM sprmCRgLid0--> + <UML:Class xmi.id="sprmCRgLid0" name="sprmCRgLid0"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x486D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCRgLid0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCRgLid0--> + <!--SPRM sprmCRgLid1--> + <UML:Class xmi.id="sprmCRgLid1" name="sprmCRgLid1"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x486E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCRgLid1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCRgLid1--> + <!--SPRM sprmCIdctHint--> + <UML:Class xmi.id="sprmCIdctHint" name="sprmCIdctHint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x286F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmCIdctHint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCIdctHint--> + <!--SPRM sprmPicBrcl--> + <UML:Class xmi.id="sprmPicBrcl" name="sprmPicBrcl"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2E00</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPicBrcl</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPicBrcl--> + <!--SPRM sprmPicScale--> + <UML:Class xmi.id="sprmPicScale" name="sprmPicScale"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCE01</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPicScale</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPicScale--> + <!--SPRM sprmPicBrcTop--> + <UML:Class xmi.id="sprmPicBrcTop" name="sprmPicBrcTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6C02</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPicBrcTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPicBrcTop--> + <!--SPRM sprmPicBrcLeft--> + <UML:Class xmi.id="sprmPicBrcLeft" name="sprmPicBrcLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6C03</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPicBrcLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPicBrcLeft--> + <!--SPRM sprmPicBrcBottom--> + <UML:Class xmi.id="sprmPicBrcBottom" name="sprmPicBrcBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6C04</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPicBrcBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPicBrcBottom--> + <!--SPRM sprmPicBrcRight--> + <UML:Class xmi.id="sprmPicBrcRight" name="sprmPicBrcRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6C05</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPicBrcRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPicBrcRight--> + <!--SPRM sprmScnsPgn--> + <UML:Class xmi.id="sprmScnsPgn" name="sprmScnsPgn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmScnsPgn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmScnsPgn--> + <!--SPRM sprmSiHeadingPgn--> + <UML:Class xmi.id="sprmSiHeadingPgn" name="sprmSiHeadingPgn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3001</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSiHeadingPgn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSiHeadingPgn--> + <!--SPRM sprmSOlstAnm--> + <UML:Class xmi.id="sprmSOlstAnm" name="sprmSOlstAnm"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD202</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSOlstAnm</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSOlstAnm--> + <!--SPRM sprmSDxaColWidth--> + <UML:Class xmi.id="sprmSDxaColWidth" name="sprmSDxaColWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xF203</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaColWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaColWidth--> + <!--SPRM sprmSDxaColSpacing--> + <UML:Class xmi.id="sprmSDxaColSpacing" name="sprmSDxaColSpacing"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xF204</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaColSpacing</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaColSpacing--> + <!--SPRM sprmSFEvenlySpaced--> + <UML:Class xmi.id="sprmSFEvenlySpaced" name="sprmSFEvenlySpaced"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3005</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFEvenlySpaced</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFEvenlySpaced--> + <!--SPRM sprmSFProtected--> + <UML:Class xmi.id="sprmSFProtected" name="sprmSFProtected"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3006</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFProtected</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFProtected--> + <!--SPRM sprmSDmBinFirst--> + <UML:Class xmi.id="sprmSDmBinFirst" name="sprmSDmBinFirst"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5007</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDmBinFirst</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDmBinFirst--> + <!--SPRM sprmSDmBinOther--> + <UML:Class xmi.id="sprmSDmBinOther" name="sprmSDmBinOther"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5008</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDmBinOther</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDmBinOther--> + <!--SPRM sprmSBkc--> + <UML:Class xmi.id="sprmSBkc" name="sprmSBkc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3009</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBkc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBkc--> + <!--SPRM sprmSFTitlePage--> + <UML:Class xmi.id="sprmSFTitlePage" name="sprmSFTitlePage"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x300A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFTitlePage</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFTitlePage--> + <!--SPRM sprmSCcolumns--> + <UML:Class xmi.id="sprmSCcolumns" name="sprmSCcolumns"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x500B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSCcolumns</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSCcolumns--> + <!--SPRM sprmSDxaColumns--> + <UML:Class xmi.id="sprmSDxaColumns" name="sprmSDxaColumns"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x900C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaColumns</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaColumns--> + <!--SPRM sprmSFAutoPgn--> + <UML:Class xmi.id="sprmSFAutoPgn" name="sprmSFAutoPgn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x300D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFAutoPgn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFAutoPgn--> + <!--SPRM sprmSNfcPgn--> + <UML:Class xmi.id="sprmSNfcPgn" name="sprmSNfcPgn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x300E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSNfcPgn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSNfcPgn--> + <!--SPRM sprmSDyaPgn--> + <UML:Class xmi.id="sprmSDyaPgn" name="sprmSDyaPgn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB00F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDyaPgn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDyaPgn--> + <!--SPRM sprmSDxaPgn--> + <UML:Class xmi.id="sprmSDxaPgn" name="sprmSDxaPgn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB010</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaPgn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaPgn--> + <!--SPRM sprmSFPgnRestart--> + <UML:Class xmi.id="sprmSFPgnRestart" name="sprmSFPgnRestart"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3011</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFPgnRestart</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFPgnRestart--> + <!--SPRM sprmSFEndnote--> + <UML:Class xmi.id="sprmSFEndnote" name="sprmSFEndnote"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3012</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFEndnote</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFEndnote--> + <!--SPRM sprmSLnc--> + <UML:Class xmi.id="sprmSLnc" name="sprmSLnc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3013</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSLnc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSLnc--> + <!--SPRM sprmSGprfIhdt--> + <UML:Class xmi.id="sprmSGprfIhdt" name="sprmSGprfIhdt"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3014</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSGprfIhdt</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSGprfIhdt--> + <!--SPRM sprmSNLnnMod--> + <UML:Class xmi.id="sprmSNLnnMod" name="sprmSNLnnMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5015</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSNLnnMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSNLnnMod--> + <!--SPRM sprmSDxaLnn--> + <UML:Class xmi.id="sprmSDxaLnn" name="sprmSDxaLnn"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9016</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaLnn</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaLnn--> + <!--SPRM sprmSDyaHdrTop--> + <UML:Class xmi.id="sprmSDyaHdrTop" name="sprmSDyaHdrTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB017</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDyaHdrTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDyaHdrTop--> + <!--SPRM sprmSDyaHdrBottom--> + <UML:Class xmi.id="sprmSDyaHdrBottom" name="sprmSDyaHdrBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB018</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDyaHdrBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDyaHdrBottom--> + <!--SPRM sprmSLBetween--> + <UML:Class xmi.id="sprmSLBetween" name="sprmSLBetween"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3019</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSLBetween</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSLBetween--> + <!--SPRM sprmSVjc--> + <UML:Class xmi.id="sprmSVjc" name="sprmSVjc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x301A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSVjc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSVjc--> + <!--SPRM sprmSLnnMin--> + <UML:Class xmi.id="sprmSLnnMin" name="sprmSLnnMin"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x501B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSLnnMin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSLnnMin--> + <!--SPRM sprmSPgnStart--> + <UML:Class xmi.id="sprmSPgnStart" name="sprmSPgnStart"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x501C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSPgnStart</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSPgnStart--> + <!--SPRM sprmSBOrientation--> + <UML:Class xmi.id="sprmSBOrientation" name="sprmSBOrientation"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x301D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBOrientation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBOrientation--> + <!--SPRM sprmSBCustomize--> + <UML:Class xmi.id="sprmSBCustomize" name="sprmSBCustomize"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x301E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBCustomize</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBCustomize--> + <!--SPRM sprmSXaPage--> + <UML:Class xmi.id="sprmSXaPage" name="sprmSXaPage"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB01F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSXaPage</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSXaPage--> + <!--SPRM sprmSYaPage--> + <UML:Class xmi.id="sprmSYaPage" name="sprmSYaPage"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB020</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSYaPage</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSYaPage--> + <!--SPRM sprmSDxaLeft--> + <UML:Class xmi.id="sprmSDxaLeft" name="sprmSDxaLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB021</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaLeft--> + <!--SPRM sprmSDxaRight--> + <UML:Class xmi.id="sprmSDxaRight" name="sprmSDxaRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB022</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxaRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxaRight--> + <!--SPRM sprmSDyaTop--> + <UML:Class xmi.id="sprmSDyaTop" name="sprmSDyaTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9023</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDyaTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDyaTop--> + <!--SPRM sprmSDyaBottom--> + <UML:Class xmi.id="sprmSDyaBottom" name="sprmSDyaBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9024</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDyaBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDyaBottom--> + <!--SPRM sprmSDzaGutter--> + <UML:Class xmi.id="sprmSDzaGutter" name="sprmSDzaGutter"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xB025</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDzaGutter</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDzaGutter--> + <!--SPRM sprmSDmPaperReq--> + <UML:Class xmi.id="sprmSDmPaperReq" name="sprmSDmPaperReq"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5026</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDmPaperReq</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDmPaperReq--> + <!--SPRM sprmSPropRMark--> + <UML:Class xmi.id="sprmSPropRMark" name="sprmSPropRMark"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD227</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSPropRMark</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSPropRMark--> + <!--SPRM sprmSFBiDi--> + <UML:Class xmi.id="sprmSFBiDi" name="sprmSFBiDi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3228</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFBiDi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFBiDi--> + <!--SPRM sprmSFFacingCol--> + <UML:Class xmi.id="sprmSFFacingCol" name="sprmSFFacingCol"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3229</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFFacingCol</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFFacingCol--> + <!--SPRM sprmSFRTLGutter--> + <UML:Class xmi.id="sprmSFRTLGutter" name="sprmSFRTLGutter"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x322A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSFRTLGutter</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSFRTLGutter--> + <!--SPRM sprmSBrcTop--> + <UML:Class xmi.id="sprmSBrcTop" name="sprmSBrcTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x702B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBrcTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBrcTop--> + <!--SPRM sprmSBrcLeft--> + <UML:Class xmi.id="sprmSBrcLeft" name="sprmSBrcLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x702C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBrcLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBrcLeft--> + <!--SPRM sprmSBrcBottom--> + <UML:Class xmi.id="sprmSBrcBottom" name="sprmSBrcBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x702D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBrcBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBrcBottom--> + <!--SPRM sprmSBrcRight--> + <UML:Class xmi.id="sprmSBrcRight" name="sprmSBrcRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x702E</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSBrcRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSBrcRight--> + <!--SPRM sprmSPgbProp--> + <UML:Class xmi.id="sprmSPgbProp" name="sprmSPgbProp"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x522F</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSPgbProp</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSPgbProp--> + <!--SPRM sprmSDxtCharSpace--> + <UML:Class xmi.id="sprmSDxtCharSpace" name="sprmSDxtCharSpace"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x7030</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDxtCharSpace</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDxtCharSpace--> + <!--SPRM sprmSDyaLinePitch--> + <UML:Class xmi.id="sprmSDyaLinePitch" name="sprmSDyaLinePitch"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9031</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSDyaLinePitch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSDyaLinePitch--> + <!--SPRM sprmSClm--> + <UML:Class xmi.id="sprmSClm" name="sprmSClm"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5032</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSClm</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSClm--> + <!--SPRM sprmSTextFlow--> + <UML:Class xmi.id="sprmSTextFlow" name="sprmSTextFlow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5033</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmSTextFlow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmSTextFlow--> + <!--SPRM sprmTJc--> + <UML:Class xmi.id="sprmTJc" name="sprmTJc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5400</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTJc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTJc--> + <!--SPRM sprmTDxaLeft--> + <UML:Class xmi.id="sprmTDxaLeft" name="sprmTDxaLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9601</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDxaLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDxaLeft--> + <!--SPRM sprmTDxaGapHalf--> + <UML:Class xmi.id="sprmTDxaGapHalf" name="sprmTDxaGapHalf"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9602</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDxaGapHalf</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDxaGapHalf--> + <!--SPRM sprmTFCantSplit--> + <UML:Class xmi.id="sprmTFCantSplit" name="sprmTFCantSplit"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3403</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTFCantSplit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTFCantSplit--> + <!--SPRM sprmTTableHeader--> + <UML:Class xmi.id="sprmTTableHeader" name="sprmTTableHeader"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3404</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTTableHeader</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTTableHeader--> + <!--SPRM sprmTTableBorders--> + <UML:Class xmi.id="sprmTTableBorders" name="sprmTTableBorders"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD605</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTTableBorders</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="rgbbrc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:rgbrc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="BRC"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTTableBorders-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTTableBorders"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTTableBorders--> + <!--SPRM sprmTDefTable10--> + <UML:Class xmi.id="sprmTDefTable10" name="sprmTDefTable10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD606</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDefTable10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDefTable10--> + <!--SPRM sprmTDyaRowHeight--> + <UML:Class xmi.id="sprmTDyaRowHeight" name="sprmTDyaRowHeight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x9407</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDyaRowHeight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDyaRowHeight--> + <!--SPRM sprmTDefTable--> + <UML:Class xmi.id="sprmTDefTable" name="sprmTDefTable"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD608</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDefTable</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="cellx"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:cellx</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U16"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="tc"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:tc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="TC"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTDefTable-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTDefTable"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTDefTable--> + <!--SPRM sprmTDefTableShd--> + <UML:Class xmi.id="sprmTDefTableShd" name="sprmTDefTableShd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD609</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDefTableShd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="shd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="SHD"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTDefTableShd-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTDefTableShd"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTDefTableShd--> + <!--SPRM sprmTCellShd--> + <UML:Class xmi.id="sprmTCellShd" name="sprmTCellShd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD612</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTCellShd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="shd"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:cellShd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="CellShd"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTCelShd-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTCellShd"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTCellShd--> + <!--SPRM sprmTTlp--> + <UML:Class xmi.id="sprmTTlp" name="sprmTTlp"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x740A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTTlp</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTTlp--> + <!--SPRM sprmTFBiDi--> + <UML:Class xmi.id="sprmTFBiDi" name="sprmTFBiDi"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x560B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTFBiDi</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTFBiDi--> + <!--SPRM sprmTHTMLProps--> + <UML:Class xmi.id="sprmTHTMLProps" name="sprmTHTMLProps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x740C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTHTMLProps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTHTMLProps--> + <!--SPRM sprmTSetBrc--> + <UML:Class xmi.id="sprmTSetBrc" name="sprmTSetBrc"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD620</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTSetBrc</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTSetBrc--> + <!--SPRM sprmTInsert--> + <UML:Class xmi.id="sprmTInsert" name="sprmTInsert"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x7621</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTInsert</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTInsert--> + <!--SPRM sprmTDelete--> + <UML:Class xmi.id="sprmTDelete" name="sprmTDelete"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5622</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDelete</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDelete--> + <!--SPRM sprmTDxaCol--> + <UML:Class xmi.id="sprmTDxaCol" name="sprmTDxaCol"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x7623</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDxaCol</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDxaCol--> + <!--SPRM sprmTMerge--> + <UML:Class xmi.id="sprmTMerge" name="sprmTMerge"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5624</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTMerge</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTMerge--> + <!--SPRM sprmTSplit--> + <UML:Class xmi.id="sprmTSplit" name="sprmTSplit"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x5625</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTSplit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTSplit--> + <!--SPRM sprmTSetBrc10--> + <UML:Class xmi.id="sprmTSetBrc10" name="sprmTSetBrc10"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD626</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTSetBrc10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTSetBrc10--> + <!--SPRM sprmTSetShd--> + <UML:Class xmi.id="sprmTSetShd" name="sprmTSetShd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x7627</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTSetShd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTSetShd--> + <!--SPRM sprmTSetShdOdd--> + <UML:Class xmi.id="sprmTSetShdOdd" name="sprmTSetShdOdd"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x7628</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTSetShdOdd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTSetShdOdd--> + <!--SPRM sprmTTextFlow--> + <UML:Class xmi.id="sprmTTextFlow" name="sprmTTextFlow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x7629</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTTextFlow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTTextFlow--> + <!--SPRM sprmTDiagLine--> + <UML:Class xmi.id="sprmTDiagLine" name="sprmTDiagLine"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD62A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTDiagLine</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTDiagLine--> + <!--SPRM sprmTVertMerge--> + <UML:Class xmi.id="sprmTVertMerge" name="sprmTVertMerge"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD62B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTVertMerge</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTVertMerge--> + <!--SPRM sprmTVertAlign--> + <UML:Class xmi.id="sprmTVertAlign" name="sprmTVertAlign"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD62C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTVertAlign</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmTVertAlign--> + <!--SPRM sprmTCellTopColor--> + <UML:Class xmi.id="sprmTCellTopColor" name="sprmTCellTopColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD61A</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTCellTopColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="cellTopColor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:cellTopColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTCellTopColor-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTCellTopColor"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTCellTopColor--> + <!--SPRM sprmTCellLeftColor--> + <UML:Class xmi.id="sprmTCellLeftColor" name="sprmTCellLeftColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD61B</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTCellLeftColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="cellLeftColor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:cellLeftColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTCellLeftColor-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTCellLeftColor"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTCellLeftColor--> + <!--SPRM sprmTCellBottomColor--> + <UML:Class xmi.id="sprmTCellBottomColor" name="sprmTCellBottomColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD61C</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTCellBottomColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="cellBottomColor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:cellBottomColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTCellBottomColor-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTCellBottomColor"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTCellBottomColor--> + <!--SPRM sprmTCellRightColor--> + <UML:Class xmi.id="sprmTCellRightColor" name="sprmTCellRightColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD61D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTCellRightColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="cellRightColor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:cellRightColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTCellRightColor-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTCellRightColor"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTCellRightColor--> + <!--SPRM sprmTGridLineProps--> + <UML:Class xmi.id="sprmTGridLineProps" name="sprmTGridLineProps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xD613</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTGridLineProps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x33</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <!-- + <UML:Operation name="gridLineProps" > + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:gridLineProps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid" /> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return" > + <UML:Parameter.type> + <UML:Class xmi.idref="LineProps" /> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array" /> + </UML:ModelElement.stereotype> + </UML:Operation> + --> + <UML:Attribute name="linePropsTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>top line properties</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSTOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linePropsLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>left line properties</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>b</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linePropsBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>bottom line properties</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>13</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSBOTTOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linePropsRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>right line properties</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1b</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSRIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linePropsHorizontal"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>horizontal line properties</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>23</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSHORIZONTAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="linePropsVertical"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>vertical line properties</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2b</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSVERTICAL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTGridLineProps-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTGridLineProps"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTGridLineProps--> + <!--SPRM sprmCInsrsid--> + <UML:Class xmi.id="sprmCInsrsid" name="sprmCIndrsid"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6816</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:insrsid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCInsrsid--> + <!--SPRM sprmCdelrsid--> + <UML:Class xmi.id="sprmCdelrsid" name="sprmCdelrsid"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6817</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:delrsid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmCdelrsid--> + <!--SPRM sprmPTableDepth--> + <UML:Class xmi.id="sprmPTableDepth" name="sprmPTableDepth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6649</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPTableDepth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--SPRM sprmPTableDepth--> + <!--SPRM sprmTCellShadow--> + <UML:Class xmi.id="sprmTCellShadow" name="sprmTCellShadow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xd670</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTCellShadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="cellShadow"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:CELLSHADOW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="CellShd"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTCellShadow-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTCellShadow"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTCellShadow--> + <!--SPRM sprmPBrcTop--> + <UML:Class xmi.id="sprmPBrcTop" name="sprmPBrcTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6424</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="brcTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC of top line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCTOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcTop-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcTop"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcTop--> + <!--SPRM sprmPBrcLeft--> + <UML:Class xmi.id="sprmPBrcLeft" name="sprmPBrcLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6425</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="brcLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC of left line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcLeft-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcLeft"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcLeft--> + <!--SPRM sprmPBrcBottom--> + <UML:Class xmi.id="sprmPBrcBottom" name="sprmPBrcBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6426</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="brcBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC of bottom line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBottom-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcBottom"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcBottom--> + <!--SPRM sprmPBrcRight--> + <UML:Class xmi.id="sprmPBrcRight" name="sprmPBrcRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6427</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="brcRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC of top line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCRIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcRight-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcRight"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcRight--> + <!--SPRM sprmPBrcBetween--> + <UML:Class xmi.id="sprmPBrcBetween" name="sprmPBrcBetween"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6428</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBetween</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="brcBetween"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCBETWEEN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBetween-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcBetween"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcBetween--> + <!--SPRM sprmPBrcBar--> + <UML:Class xmi.id="sprmPBrcBar" name="sprmPBrcBar"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x6429</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBrcBar</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="brcBar"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>BRC</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:BRCBAR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="BRC"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBrcBar-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBrcBar"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBrcBar--> + <!--SPRM sprmPBorderTop--> + <UML:Class xmi.id="sprmPBorderTop" name="sprmPBorderTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc64e</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBorderTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="linePropsTop"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>properties of top line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSTOP</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBorderTop-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBorderTop"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBorderTop--> + <!--SPRM sprmPBorderLeft--> + <UML:Class xmi.id="sprmPBorderLeft" name="sprmPBorderLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc64f</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBorderLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="linePropsLeft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>properties of left line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSLEFT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBorderLeft-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBorderLeft"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBorderLeft--> + <!--SPRM sprmPBorderBottom--> + <UML:Class xmi.id="sprmPBorderBottom" name="sprmPBorderBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc650</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBorderBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="linePropsBottom"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>properties of bottom line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSBOTTOM</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBorderBottom-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBorderBottom"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBorderBottom--> + <!--SPRM sprmPBorderRight--> + <UML:Class xmi.id="sprmPBorderRight" name="sprmPBorderRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc651</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBorderRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="linePropsRight"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>properties of right line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSRIGHT</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBorderRight-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBorderRight"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBorderRight--> + <!--SPRM sprmPBorderBetween--> + <UML:Class xmi.id="sprmPBorderBetween" name="sprmPBorderBetween"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xc652</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBorderBetween</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="linePropsBetween"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>properties of line in between</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPSBETWEEN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmPBorderBetween-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmPBorderBetween"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmPBorderBetween--> + <!--SPRM sprmCBorder--> + <UML:Class xmi.id="sprmCBorder" name="sprmCBorder"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xca72</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmPBorderBetween</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="lineProps"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>properties of line in between</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:LINEPROPS</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="LineProps"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmCBorder-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmCBorder"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmCBorder--> + <!--SPRM sprmTTPreferredWidth--> + <UML:Class xmi.id="sprmTTPreferredWidth" name="sprmTTPreferredWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTTPreferredWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf614</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="unit"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:unit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="preferredWidth"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>preferred width</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:preferredWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTTPreferredWidth-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTTPreferredWidth"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTTPreferredWidth--> + <!--SPRM sprmTTRLeft--> + <UML:Class xmi.id="sprmTTRLeft" name="sprmTTRLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8resource"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="ww8sprm"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="size"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:sprmTTRLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf661</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="sprmcode"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="unit"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:unit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U8"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="trleft"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>table indent from left</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:trleft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U16"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noqname"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="sprmTTRLeft-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="sprmTTRLeft"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--SPRM sprmTTRLeft--> + <!--SPRMS--> + <!--DFFS--> + <!--DFF FSPGR--> + <UML:Class xmi.id="FSPGR" name="FSPGR"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffrecord"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf009</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="dffid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="rectangle"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the rectangle of the grouped shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:rectangle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="Rectangle"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FSPGR-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FSPGR"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--DFF FSPGR--> + <!--DFF OPT--> + <UML:Class xmi.id="OPT" name="OPT"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffrecord"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf00b</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="dffid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Operation name="property"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpopt</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="FOPTE"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + <UML:Operation name="extraoffset"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpoptextraoffset</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="U32"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="noresolve"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="OPT-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="OPT"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--DFF OPT--> + <!--DFF FSP--> + <UML:Class xmi.id="FSP" name="FSP"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffrecord"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf00a</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="dffid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="shptype"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>shape type</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>12</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xfff0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shptype</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="shptypename"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shptypename</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpid"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>shape id</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfGroup"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>This shape is a group shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfGroup</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfChild"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Not a top-level shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfChild</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfPatriarch"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>This is the topmost group shape. Exactly one of these per drawing.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfPatriarch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfDeleted"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The shape has been deleted</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfDeleted</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfOleShape"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The shape is an OLE object</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfOleShape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfHaveMaster"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape has a hspMaster property</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfHaveMaster</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfFlipH"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape is flipped horizontally</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x40</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>6</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFlipH</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfFlipV"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape is flipped vertically</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x80</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>7</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFlipV</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfConnector"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Connector type of shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x100</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfConnector</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfHaveAnchor"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape has an anchor of some kind</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x200</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfHaveAnchor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfBackground"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Background shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x400</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfBackground</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="shpfHaveSpt"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape has a shape type property</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x800</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>11</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfHaveSpt</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Attribute name="reserved"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Not yet used</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>20</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xfffff000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:reserved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="U32"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="FSP-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="FSP"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--DFF FSP--> + <!--DFF DGG--> + <UML:Class xmi.id="DGG" name="DGG"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffrecord"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf006</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="dffid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="fdgg"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the dgg structure</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdgg</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="FDGG"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="fidcl"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdgg</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="FIDCL"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="array"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="DGG-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="DGG"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--DFF DGG--> + <!--DFF BSE--> + <UML:Class xmi.id="BSE" name="BSE"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffrecord"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf007</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="dffid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:Classifier.feature> + <UML:Attribute name="fbse"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>the FBSE structure</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="offset"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="bits"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="mask"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="shift"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfbse</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="attrid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:StructuralFeature.type> + <UML:DataType xmi.idref="FBSE"/> + </UML:StructuralFeature.type> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Attribute> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="blipname"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpblipbname</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="String"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="attribute"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + <UML:Classifier.feature> + <UML:Operation name="binary"> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:binary</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="opid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:BehavioralFeature.parameter> + <UML:Parameter kind="return" name="return"> + <UML:Parameter.type> + <UML:Class xmi.idref="Binary"/> + </UML:Parameter.type> + </UML:Parameter> + </UML:BehavioralFeature.parameter> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="binary"/> + </UML:ModelElement.stereotype> + </UML:Operation> + </UML:Classifier.feature> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="BSE-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="BSE"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--DFF BSE--> + <!--DFF SpContainer--> + <UML:Class xmi.id="SpContainer" name="SpContainer"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffrecord"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xf004</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="dffid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <UML:Generalization isSpecification="false" xmi.id="SpContainer-Properties"> + <UML:Generalization.child> + <UML:Class xmi.idref="SpContainer"/> + </UML:Generalization.child> + <UML:Generalization.parent> + <UML:Class xmi.idref="Properties"/> + </UML:Generalization.parent> + </UML:Generalization> + <!--DFF SpContainer--> + <!--DFFS--> + <!--DFFOPT--> + <!--DFFOPT rotation--> + <UML:Class xmi.id="rotation" name="rotation"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shprotation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>fixed point: 16.16 + degrees</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT rotation--> + <!--DFFOPT fLockRotation--> + <UML:Class xmi.id="fLockRotation" name="fLockRotation"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockRotation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>119</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>No rotation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockRotation--> + <!--DFFOPT fLockAspectRatio--> + <UML:Class xmi.id="fLockAspectRatio" name="fLockAspectRatio"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockAspectRatio</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>120</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Don't allow changes in + aspect ratio</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockAspectRatio--> + <!--DFFOPT fLockPosition--> + <UML:Class xmi.id="fLockPosition" name="fLockPosition"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockPosition</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>121</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Don't allow the shape to + be moved</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockPosition--> + <!--DFFOPT fLockAgainstSelect--> + <UML:Class xmi.id="fLockAgainstSelect" name="fLockAgainstSelect"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockAgainstSelect</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>122</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape may not be + selected</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockAgainstSelect--> + <!--DFFOPT fLockCropping--> + <UML:Class xmi.id="fLockCropping" name="fLockCropping"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockCropping</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>123</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>No cropping this + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockCropping--> + <!--DFFOPT fLockVertices--> + <UML:Class xmi.id="fLockVertices" name="fLockVertices"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockVertices</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>124</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Edit Points not + allowed</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockVertices--> + <!--DFFOPT fLockText--> + <UML:Class xmi.id="fLockText" name="fLockText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>125</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Do not edit + text</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockText--> + <!--DFFOPT fLockAdjustHandles--> + <UML:Class xmi.id="fLockAdjustHandles" name="fLockAdjustHandles"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockAdjustHandles</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>126</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Do not adjust</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockAdjustHandles--> + <!--DFFOPT fLockAgainstGrouping--> + <UML:Class xmi.id="fLockAgainstGrouping" name="fLockAgainstGrouping"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockAgainstGrouping</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>127</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Do not group this + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockAgainstGrouping--> + <!--DFFOPT lTxid--> + <UML:Class xmi.id="lTxid" name="lTxid"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplTxid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>128</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>id for the text, value + determined by the host</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lTxid--> + <!--DFFOPT dxTextLeft--> + <UML:Class xmi.id="dxTextLeft" name="dxTextLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxTextLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>129</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/10 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>margins relative to + shape's inscribed text rectangle (in EMUs)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxTextLeft--> + <!--DFFOPT dyTextTop--> + <UML:Class xmi.id="dyTextTop" name="dyTextTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdyTextTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>130</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/20 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dyTextTop--> + <!--DFFOPT dxTextRight--> + <UML:Class xmi.id="dxTextRight" name="dxTextRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxTextRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>131</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/10 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxTextRight--> + <!--DFFOPT dyTextBottom--> + <UML:Class xmi.id="dyTextBottom" name="dyTextBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdyTextBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>132</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/20 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dyTextBottom--> + <!--DFFOPT WrapText--> + <UML:Class xmi.id="WrapText" name="WrapText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpWrapText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>133</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Wrap text at shape + margins</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT WrapText--> + <!--DFFOPT scaleText--> + <UML:Class xmi.id="scaleText" name="scaleText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpscaleText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>134</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Text zoom/scale (used if + fFitTextToShape)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT scaleText--> + <!--DFFOPT anchorText--> + <UML:Class xmi.id="anchorText" name="anchorText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpanchorText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>135</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Top</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How to anchor the + text</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT anchorText--> + <!--DFFOPT txflTextFlow--> + <UML:Class xmi.id="txflTextFlow" name="txflTextFlow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shptxflTextFlow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>136</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>HorzN</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Text flow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT txflTextFlow--> + <!--DFFOPT cdirFont--> + <UML:Class xmi.id="cdirFont" name="cdirFont"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcdirFont</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>137</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>msocdir0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Font rotation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT cdirFont--> + <!--DFFOPT hspNext--> + <UML:Class xmi.id="hspNext" name="hspNext"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shphspNext</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>138</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>ID of the next shape + (used by Word for linked textboxes)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT hspNext--> + <!--DFFOPT txdir--> + <UML:Class xmi.id="txdir" name="txdir"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shptxdir</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>139</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>LTR</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Bi-Di Text + direction</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT txdir--> + <!--DFFOPT fSelectText--> + <UML:Class xmi.id="fSelectText" name="fSelectText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfSelectText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>187</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE if single click + selects text, FALSE if two clicks</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fSelectText--> + <!--DFFOPT fAutoTextMargin--> + <UML:Class xmi.id="fAutoTextMargin" name="fAutoTextMargin"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfAutoTextMargin</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>188</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>use host's margin + calculations</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fAutoTextMargin--> + <!--DFFOPT fRotateText--> + <UML:Class xmi.id="fRotateText" name="fRotateText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfRotateText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>189</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Rotate text with + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fRotateText--> + <!--DFFOPT fFitShapeToText--> + <UML:Class xmi.id="fFitShapeToText" name="fFitShapeToText"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFitShapeToText</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>190</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Size shape to fit text + size</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fFitShapeToText--> + <!--DFFOPT fFitTextToShape--> + <UML:Class xmi.id="fFitTextToShape" name="fFitTextToShape"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFitTextToShape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>191</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Size text to fit shape + size</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fFitTextToShape--> + <!--DFFOPT gtextUNICODE--> + <UML:Class xmi.id="gtextUNICODE" name="gtextUNICODE"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextUNICODE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>192</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>UNICODE text + string</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextUNICODE--> + <!--DFFOPT gtextRTF--> + <UML:Class xmi.id="gtextRTF" name="gtextRTF"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextRTF</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>193</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>RTF text + string</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextRTF--> + <!--DFFOPT gtextAlign--> + <UML:Class xmi.id="gtextAlign" name="gtextAlign"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextAlign</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>194</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Center</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>alignment on + curve</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextAlign--> + <!--DFFOPT gtextSize--> + <UML:Class xmi.id="gtextSize" name="gtextSize"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextSize</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>195</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>36<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>default point + size</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextSize--> + <!--DFFOPT gtextSpacing--> + <UML:Class xmi.id="gtextSpacing" name="gtextSpacing"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextSpacing</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>196</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>fixed point + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextSpacing--> + <!--DFFOPT gtextFont--> + <UML:Class xmi.id="gtextFont" name="gtextFont"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFont</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>197</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>font family + name</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFont--> + <!--DFFOPT gtextFReverseRows--> + <UML:Class xmi.id="gtextFReverseRows" name="gtextFReverseRows"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFReverseRows</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>240</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Reverse row + order</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFReverseRows--> + <!--DFFOPT fGtext--> + <UML:Class xmi.id="fGtext" name="fGtext"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfGtext</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>241</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Has text + effect</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fGtext--> + <!--DFFOPT gtextFVertical--> + <UML:Class xmi.id="gtextFVertical" name="gtextFVertical"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFVertical</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>242</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Rotate + characters</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFVertical--> + <!--DFFOPT gtextFKern--> + <UML:Class xmi.id="gtextFKern" name="gtextFKern"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFKern</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>243</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Kern + characters</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFKern--> + <!--DFFOPT gtextFTight--> + <UML:Class xmi.id="gtextFTight" name="gtextFTight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFTight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>244</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Tightening or + tracking</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFTight--> + <!--DFFOPT gtextFStretch--> + <UML:Class xmi.id="gtextFStretch" name="gtextFStretch"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFStretch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>245</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Stretch to fit + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFStretch--> + <!--DFFOPT gtextFShrinkFit--> + <UML:Class xmi.id="gtextFShrinkFit" name="gtextFShrinkFit"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFShrinkFit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>246</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Char bounding + box</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFShrinkFit--> + <!--DFFOPT gtextFBestFit--> + <UML:Class xmi.id="gtextFBestFit" name="gtextFBestFit"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFBestFit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>247</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Scale + text-on-path</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFBestFit--> + <!--DFFOPT gtextFNormalize--> + <UML:Class xmi.id="gtextFNormalize" name="gtextFNormalize"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFNormalize</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>248</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Stretch char + height</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFNormalize--> + <!--DFFOPT gtextFDxMeasure--> + <UML:Class xmi.id="gtextFDxMeasure" name="gtextFDxMeasure"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFDxMeasure</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>249</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Do not measure along + path</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFDxMeasure--> + <!--DFFOPT gtextFBold--> + <UML:Class xmi.id="gtextFBold" name="gtextFBold"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFBold</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>250</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Bold font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFBold--> + <!--DFFOPT gtextFItalic--> + <UML:Class xmi.id="gtextFItalic" name="gtextFItalic"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFItalic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>251</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Italic font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFItalic--> + <!--DFFOPT gtextFUnderline--> + <UML:Class xmi.id="gtextFUnderline" name="gtextFUnderline"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFUnderline</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>252</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Underline + font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFUnderline--> + <!--DFFOPT gtextFShadow--> + <UML:Class xmi.id="gtextFShadow" name="gtextFShadow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFShadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>253</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shadow font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFShadow--> + <!--DFFOPT gtextFSmallcaps--> + <UML:Class xmi.id="gtextFSmallcaps" name="gtextFSmallcaps"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFSmallcaps</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>254</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Small caps + font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFSmallcaps--> + <!--DFFOPT gtextFStrikethrough--> + <UML:Class xmi.id="gtextFStrikethrough" name="gtextFStrikethrough"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgtextFStrikethrough</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>255</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Strike through + font</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT gtextFStrikethrough--> + <!--DFFOPT cropFromTop--> + <UML:Class xmi.id="cropFromTop" name="cropFromTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcropFromTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>256</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16 + fraction times total image width or height, as + appropriate.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT cropFromTop--> + <!--DFFOPT cropFromBottom--> + <UML:Class xmi.id="cropFromBottom" name="cropFromBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcropFromBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>257</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT cropFromBottom--> + <!--DFFOPT cropFromLeft--> + <UML:Class xmi.id="cropFromLeft" name="cropFromLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcropFromLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>258</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT cropFromLeft--> + <!--DFFOPT cropFromRight--> + <UML:Class xmi.id="cropFromRight" name="cropFromRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcropFromRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>259</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT cropFromRight--> + <!--DFFOPT pib--> + <UML:Class xmi.id="pib" name="pib"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppib</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>260</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip to + display</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pib--> + <!--DFFOPT pibName--> + <UML:Class xmi.id="pibName" name="pibName"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppibName</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>261</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip file + name</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pibName--> + <!--DFFOPT pibFlags--> + <UML:Class xmi.id="pibFlags" name="pibFlags"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppibFlags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>262</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip + flags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pibFlags--> + <!--DFFOPT pictureTransparent--> + <UML:Class xmi.id="pictureTransparent" name="pictureTransparent"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureTransparent</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>263</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>~0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>transparent + color (none if ~0UL)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureTransparent--> + <!--DFFOPT pictureContrast--> + <UML:Class xmi.id="pictureContrast" name="pictureContrast"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureContrast</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>264</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>contrast + setting</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureContrast--> + <!--DFFOPT pictureBrightness--> + <UML:Class xmi.id="pictureBrightness" name="pictureBrightness"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureBrightness</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>265</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>brightness + setting</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureBrightness--> + <!--DFFOPT pictureGamma--> + <UML:Class xmi.id="pictureGamma" name="pictureGamma"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureGamma</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>266</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16 + gamma</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureGamma--> + <!--DFFOPT pictureId--> + <UML:Class xmi.id="pictureId" name="pictureId"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureId</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>267</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Host-defined + ID for OLE objects (usually a pointer)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureId--> + <!--DFFOPT pictureDblCrMod--> + <UML:Class xmi.id="pictureDblCrMod" name="pictureDblCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureDblCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>268</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>This</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Modification + used if shape has double shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureDblCrMod--> + <!--DFFOPT pictureFillCrMod--> + <UML:Class xmi.id="pictureFillCrMod" name="pictureFillCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureFillCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>269</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureFillCrMod--> + <!--DFFOPT pictureLineCrMod--> + <UML:Class xmi.id="pictureLineCrMod" name="pictureLineCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureLineCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>270</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureLineCrMod--> + <!--DFFOPT pibPrint--> + <UML:Class xmi.id="pibPrint" name="pibPrint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppibPrint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>271</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip to + display when printing</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pibPrint--> + <!--DFFOPT pibPrintName--> + <UML:Class xmi.id="pibPrintName" name="pibPrintName"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppibPrintName</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>272</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip file + name</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pibPrintName--> + <!--DFFOPT pibPrintFlags--> + <UML:Class xmi.id="pibPrintFlags" name="pibPrintFlags"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppibPrintFlags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>273</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip + flags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pibPrintFlags--> + <!--DFFOPT fNoHitTestPicture--> + <UML:Class xmi.id="fNoHitTestPicture" name="fNoHitTestPicture"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfNoHitTestPicture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>316</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Do not hit + test the picture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fNoHitTestPicture--> + <!--DFFOPT pictureGray--> + <UML:Class xmi.id="pictureGray" name="pictureGray"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureGray</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>317</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>grayscale + display</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureGray--> + <!--DFFOPT pictureBiLevel--> + <UML:Class xmi.id="pictureBiLevel" name="pictureBiLevel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureBiLevel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>318</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>bi-level + display</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureBiLevel--> + <!--DFFOPT pictureActive--> + <UML:Class xmi.id="pictureActive" name="pictureActive"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppictureActive</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>319</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Server is + active (OLE objects only)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pictureActive--> + <!--DFFOPT geoLeft--> + <UML:Class xmi.id="geoLeft" name="geoLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgeoLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>320</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Defines the G (geometry) + coordinate space.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT geoLeft--> + <!--DFFOPT geoTop--> + <UML:Class xmi.id="geoTop" name="geoTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgeoTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>321</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT geoTop--> + <!--DFFOPT geoRight--> + <UML:Class xmi.id="geoRight" name="geoRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgeoRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>322</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>21600</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT geoRight--> + <!--DFFOPT geoBottom--> + <UML:Class xmi.id="geoBottom" name="geoBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpgeoBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>323</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>21600</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT geoBottom--> + <!--DFFOPT shapePath--> + <UML:Class xmi.id="shapePath" name="shapePath"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshapePath</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>324</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>msoshapeLinesClosed</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shapePath--> + <!--DFFOPT pVertices--> + <UML:Class xmi.id="pVertices" name="pVertices"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppVertices</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>325</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>An array of points, in G + units.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pVertices--> + <!--DFFOPT pSegmentInfo--> + <UML:Class xmi.id="pSegmentInfo" name="pSegmentInfo"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppSegmentInfo</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>326</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pSegmentInfo--> + <!--DFFOPT adjustValue--> + <UML:Class xmi.id="adjustValue" name="adjustValue"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjustValue</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>327</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Adjustment values + corresponding to the positions of the adjust handles of the shape. + The number of values used and their allowable ranges vary from + shape type to shape type.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjustValue--> + <!--DFFOPT adjust2Value--> + <UML:Class xmi.id="adjust2Value" name="adjust2Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust2Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>328</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust2Value--> + <!--DFFOPT adjust3Value--> + <UML:Class xmi.id="adjust3Value" name="adjust3Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust3Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>329</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust3Value--> + <!--DFFOPT adjust4Value--> + <UML:Class xmi.id="adjust4Value" name="adjust4Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust4Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>330</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust4Value--> + <!--DFFOPT adjust5Value--> + <UML:Class xmi.id="adjust5Value" name="adjust5Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust5Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>331</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust5Value--> + <!--DFFOPT adjust6Value--> + <UML:Class xmi.id="adjust6Value" name="adjust6Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust6Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>332</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust6Value--> + <!--DFFOPT adjust7Value--> + <UML:Class xmi.id="adjust7Value" name="adjust7Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust7Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>333</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust7Value--> + <!--DFFOPT adjust8Value--> + <UML:Class xmi.id="adjust8Value" name="adjust8Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust8Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>334</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust8Value--> + <!--DFFOPT adjust9Value--> + <UML:Class xmi.id="adjust9Value" name="adjust9Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust9Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>335</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust9Value--> + <!--DFFOPT adjust10Value--> + <UML:Class xmi.id="adjust10Value" name="adjust10Value"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpadjust10Value</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>336</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT adjust10Value--> + <!--DFFOPT fShadowOK--> + <UML:Class xmi.id="fShadowOK" name="fShadowOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfShadowOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>378</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shadow may be + set</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fShadowOK--> + <!--DFFOPT f3DOK--> + <UML:Class xmi.id="f3DOK" name="f3DOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpf3DOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>379</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>3D may be set</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT f3DOK--> + <!--DFFOPT fLineOK--> + <UML:Class xmi.id="fLineOK" name="fLineOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLineOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>380</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Line style may be + set</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLineOK--> + <!--DFFOPT fGtextOK--> + <UML:Class xmi.id="fGtextOK" name="fGtextOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfGtextOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>381</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Text effect (WordArt) + supported</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fGtextOK--> + <!--DFFOPT fFillShadeShapeOK--> + <UML:Class xmi.id="fFillShadeShapeOK" name="fFillShadeShapeOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFillShadeShapeOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>382</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue> </UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fFillShadeShapeOK--> + <!--DFFOPT fFillOK--> + <UML:Class xmi.id="fFillOK" name="fFillOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFillOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>383</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>OK to fill the shape + through the UI or VBA?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fFillOK--> + <!--DFFOPT fillType--> + <UML:Class xmi.id="fillType" name="fillType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>384</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Solid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Type of + fill</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillType--> + <!--DFFOPT fillColor--> + <UML:Class xmi.id="fillColor" name="fillColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>385</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>white</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Foreground + color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillColor--> + <!--DFFOPT fillOpacity--> + <UML:Class xmi.id="fillOpacity" name="fillOpacity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillOpacity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>386</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillOpacity--> + <!--DFFOPT fillBackColor--> + <UML:Class xmi.id="fillBackColor" name="fillBackColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillBackColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>387</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>white</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Background + color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillBackColor--> + <!--DFFOPT fillBackOpacity--> + <UML:Class xmi.id="fillBackOpacity" name="fillBackOpacity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillBackOpacity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>388</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shades + only</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillBackOpacity--> + <!--DFFOPT fillCrMod--> + <UML:Class xmi.id="fillCrMod" name="fillCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>389</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Modification + for BW views</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillCrMod--> + <!--DFFOPT fillBlip--> + <UML:Class xmi.id="fillBlip" name="fillBlip"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillBlip</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>390</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Pattern/texture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillBlip--> + <!--DFFOPT fillBlipName--> + <UML:Class xmi.id="fillBlipName" name="fillBlipName"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillBlipName</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>391</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip file + name</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillBlipName--> + <!--DFFOPT fillBlipFlags--> + <UML:Class xmi.id="fillBlipFlags" name="fillBlipFlags"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillBlipFlags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>392</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip + flags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillBlipFlags--> + <!--DFFOPT fillWidth--> + <UML:Class xmi.id="fillWidth" name="fillWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>393</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How big (A + units) to make a metafile texture.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillWidth--> + <!--DFFOPT fillHeight--> + <UML:Class xmi.id="fillHeight" name="fillHeight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillHeight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>394</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillHeight--> + <!--DFFOPT fillAngle--> + <UML:Class xmi.id="fillAngle" name="fillAngle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillAngle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>395</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fade angle - + degrees in 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillAngle--> + <!--DFFOPT fillFocus--> + <UML:Class xmi.id="fillFocus" name="fillFocus"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillFocus</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>396</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Linear shaded + fill focus percent</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillFocus--> + <!--DFFOPT fillToLeft--> + <UML:Class xmi.id="fillToLeft" name="fillToLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillToLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>397</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fraction + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillToLeft--> + <!--DFFOPT fillToTop--> + <UML:Class xmi.id="fillToTop" name="fillToTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillToTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>398</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fraction + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillToTop--> + <!--DFFOPT fillToRight--> + <UML:Class xmi.id="fillToRight" name="fillToRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillToRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>399</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fraction + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillToRight--> + <!--DFFOPT fillToBottom--> + <UML:Class xmi.id="fillToBottom" name="fillToBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillToBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>400</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fraction + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillToBottom--> + <!--DFFOPT fillRectLeft--> + <UML:Class xmi.id="fillRectLeft" name="fillRectLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillRectLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>401</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>For shaded + fills, use the specified rectangle instead of the shape's bounding + rect to define how large the fade is going to be.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillRectLeft--> + <!--DFFOPT fillRectTop--> + <UML:Class xmi.id="fillRectTop" name="fillRectTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillRectTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>402</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillRectTop--> + <!--DFFOPT fillRectRight--> + <UML:Class xmi.id="fillRectRight" name="fillRectRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillRectRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>403</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillRectRight--> + <!--DFFOPT fillRectBottom--> + <UML:Class xmi.id="fillRectBottom" name="fillRectBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillRectBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>404</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillRectBottom--> + <!--DFFOPT fillDztype--> + <UML:Class xmi.id="fillDztype" name="fillDztype"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillDztype</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>405</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Default</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillDztype--> + <!--DFFOPT fillShadePreset--> + <UML:Class xmi.id="fillShadePreset" name="fillShadePreset"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillShadePreset</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>406</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Special + shades</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillShadePreset--> + <!--DFFOPT fillShadeColors--> + <UML:Class xmi.id="fillShadeColors" name="fillShadeColors"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillShadeColors</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>407</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>a preset + array of colors</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillShadeColors--> + <!--DFFOPT fillOriginX--> + <UML:Class xmi.id="fillOriginX" name="fillOriginX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillOriginX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>408</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillOriginX--> + <!--DFFOPT fillOriginY--> + <UML:Class xmi.id="fillOriginY" name="fillOriginY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillOriginY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>409</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillOriginY--> + <!--DFFOPT fillShapeOriginX--> + <UML:Class xmi.id="fillShapeOriginX" name="fillShapeOriginX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillShapeOriginX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>410</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillShapeOriginX--> + <!--DFFOPT fillShapeOriginY--> + <UML:Class xmi.id="fillShapeOriginY" name="fillShapeOriginY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillShapeOriginY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>411</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillShapeOriginY--> + <!--DFFOPT fillShadeType--> + <UML:Class xmi.id="fillShadeType" name="fillShadeType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillShadeType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>412</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Default</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Type of + shading, if a shaded (gradient) fill.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillShadeType--> + <!--DFFOPT fFilled--> + <UML:Class xmi.id="fFilled" name="fFilled"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfFilled</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>443</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Is shape + filled?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fFilled--> + <!--DFFOPT fHitTestFill--> + <UML:Class xmi.id="fHitTestFill" name="fHitTestFill"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfHitTestFill</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>444</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Should we hit + test fill?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fHitTestFill--> + <!--DFFOPT fillShape--> + <UML:Class xmi.id="fillShape" name="fillShape"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillShape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>445</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Register + pattern on shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillShape--> + <!--DFFOPT fillUseRect--> + <UML:Class xmi.id="fillUseRect" name="fillUseRect"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfillUseRect</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>446</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Use the large + rect?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fillUseRect--> + <!--DFFOPT fNoFillHitTest--> + <UML:Class xmi.id="fNoFillHitTest" name="fNoFillHitTest"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfNoFillHitTest</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>447</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Hit test a + shape as though filled</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fNoFillHitTest--> + <!--DFFOPT lineColor--> + <UML:Class xmi.id="lineColor" name="lineColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>448</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>black</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Color of line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineColor--> + <!--DFFOPT lineOpacity--> + <UML:Class xmi.id="lineOpacity" name="lineOpacity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineOpacity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>449</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Not + implemented</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineOpacity--> + <!--DFFOPT lineBackColor--> + <UML:Class xmi.id="lineBackColor" name="lineBackColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineBackColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>450</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>white</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Background + color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineBackColor--> + <!--DFFOPT lineCrMod--> + <UML:Class xmi.id="lineCrMod" name="lineCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>451</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Modification for BW + views</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineCrMod--> + <!--DFFOPT lineType--> + <UML:Class xmi.id="lineType" name="lineType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>452</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Solid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Type of line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineType--> + <!--DFFOPT lineFillBlip--> + <UML:Class xmi.id="lineFillBlip" name="lineFillBlip"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillBlip</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>453</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Pattern/texture</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillBlip--> + <!--DFFOPT lineFillBlipName--> + <UML:Class xmi.id="lineFillBlipName" name="lineFillBlipName"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillBlipName</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>454</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip file + name</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillBlipName--> + <!--DFFOPT lineFillBlipFlags--> + <UML:Class xmi.id="lineFillBlipFlags" name="lineFillBlipFlags"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillBlipFlags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>455</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Comment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Blip flags</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillBlipFlags--> + <!--DFFOPT lineFillWidth--> + <UML:Class xmi.id="lineFillWidth" name="lineFillWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>456</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How big (A units) to make + a metafile texture.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillWidth--> + <!--DFFOPT lineFillHeight--> + <UML:Class xmi.id="lineFillHeight" name="lineFillHeight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillHeight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>457</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillHeight--> + <!--DFFOPT lineFillDztype--> + <UML:Class xmi.id="lineFillDztype" name="lineFillDztype"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillDztype</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>458</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Default</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How to interpret + fillWidth/Height numbers.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillDztype--> + <!--DFFOPT lineWidth--> + <UML:Class xmi.id="lineWidth" name="lineWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>459</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9525</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>A units; 1pt == 12700 + EMUs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineWidth--> + <!--DFFOPT lineMiterLimit--> + <UML:Class xmi.id="lineMiterLimit" name="lineMiterLimit"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineMiterLimit</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>460</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>8<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>ratio (16.16) of + width</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineMiterLimit--> + <!--DFFOPT lineStyle--> + <UML:Class xmi.id="lineStyle" name="lineStyle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineStyle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>461</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Simple</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Draw parallel + lines?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineStyle--> + <!--DFFOPT lineDashing--> + <UML:Class xmi.id="lineDashing" name="lineDashing"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineDashing</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>462</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Solid</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Can be overridden + by:</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineDashing--> + <!--DFFOPT lineDashStyle--> + <UML:Class xmi.id="lineDashStyle" name="lineDashStyle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineDashStyle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>463</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>As Win32 + ExtCreatePen</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineDashStyle--> + <!--DFFOPT lineStartArrowhead--> + <UML:Class xmi.id="lineStartArrowhead" name="lineStartArrowhead"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineStartArrowhead</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>464</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NoEnd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Arrow at + start</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineStartArrowhead--> + <!--DFFOPT lineEndArrowhead--> + <UML:Class xmi.id="lineEndArrowhead" name="lineEndArrowhead"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineEndArrowhead</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>465</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NoEnd</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Arrow at end</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineEndArrowhead--> + <!--DFFOPT lineStartArrowWidth--> + <UML:Class xmi.id="lineStartArrowWidth" name="lineStartArrowWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineStartArrowWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>466</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>MediumWidthArrow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Arrow at + start</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineStartArrowWidth--> + <!--DFFOPT lineStartArrowLength--> + <UML:Class xmi.id="lineStartArrowLength" name="lineStartArrowLength"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineStartArrowLength</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>467</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>MediumLenArrow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Arrow at end</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineStartArrowLength--> + <!--DFFOPT lineEndArrowWidth--> + <UML:Class xmi.id="lineEndArrowWidth" name="lineEndArrowWidth"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineEndArrowWidth</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>468</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>MediumWidthArrow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Arrow at + start</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineEndArrowWidth--> + <!--DFFOPT lineEndArrowLength--> + <UML:Class xmi.id="lineEndArrowLength" name="lineEndArrowLength"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineEndArrowLength</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>469</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>MediumLenArrow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Arrow at end</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineEndArrowLength--> + <!--DFFOPT lineJoinStyle--> + <UML:Class xmi.id="lineJoinStyle" name="lineJoinStyle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineJoinStyle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>470</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>JoinRound</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How to join + lines</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineJoinStyle--> + <!--DFFOPT lineEndCapStyle--> + <UML:Class xmi.id="lineEndCapStyle" name="lineEndCapStyle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineEndCapStyle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>471</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>EndCapFlat</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>How to end + lines</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineEndCapStyle--> + <!--DFFOPT fArrowheadsOK--> + <UML:Class xmi.id="fArrowheadsOK" name="fArrowheadsOK"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfArrowheadsOK</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>507</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Allow arrowheads if prop. + is set</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fArrowheadsOK--> + <!--DFFOPT fLine--> + <UML:Class xmi.id="fLine" name="fLine"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLine</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>508</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Any line?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLine--> + <!--DFFOPT fHitTestLine--> + <UML:Class xmi.id="fHitTestLine" name="fHitTestLine"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfHitTestLine</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>509</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Should we hit test + lines?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fHitTestLine--> + <!--DFFOPT lineFillShape--> + <UML:Class xmi.id="lineFillShape" name="lineFillShape"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplineFillShape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>510</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Register pattern on + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lineFillShape--> + <!--DFFOPT fNoLineDrawDash--> + <UML:Class xmi.id="fNoLineDrawDash" name="fNoLineDrawDash"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfNoLineDrawDash</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>511</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Draw a dashed line if no + line</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fNoLineDrawDash--> + <!--DFFOPT shadowType--> + <UML:Class xmi.id="shadowType" name="shadowType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>512</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Offset</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Type of + effect</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowType--> + <!--DFFOPT shadowColor--> + <UML:Class xmi.id="shadowColor" name="shadowColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>513</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0x808080</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Foreground + color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowColor--> + <!--DFFOPT shadowHighlight--> + <UML:Class xmi.id="shadowHighlight" name="shadowHighlight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowHighlight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>514</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0xCBCBCB</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Embossed + color</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowHighlight--> + <!--DFFOPT shadowCrMod--> + <UML:Class xmi.id="shadowCrMod" name="shadowCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>515</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Modification for BW + views</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowCrMod--> + <!--DFFOPT shadowOpacity--> + <UML:Class xmi.id="shadowOpacity" name="shadowOpacity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowOpacity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>516</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowOpacity--> + <!--DFFOPT shadowOffsetX--> + <UML:Class xmi.id="shadowOffsetX" name="shadowOffsetX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowOffsetX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>517</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>25400</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Offset shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowOffsetX--> + <!--DFFOPT shadowOffsetY--> + <UML:Class xmi.id="shadowOffsetY" name="shadowOffsetY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowOffsetY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>518</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>25400</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Offset shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowOffsetY--> + <!--DFFOPT shadowSecondOffsetX--> + <UML:Class xmi.id="shadowSecondOffsetX" name="shadowSecondOffsetX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowSecondOffsetX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>519</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Double offset + shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowSecondOffsetX--> + <!--DFFOPT shadowSecondOffsetY--> + <UML:Class xmi.id="shadowSecondOffsetY" name="shadowSecondOffsetY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowSecondOffsetY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>520</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Double offset + shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowSecondOffsetY--> + <!--DFFOPT shadowScaleXToX--> + <UML:Class xmi.id="shadowScaleXToX" name="shadowScaleXToX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowScaleXToX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>521</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowScaleXToX--> + <!--DFFOPT shadowScaleYToX--> + <UML:Class xmi.id="shadowScaleYToX" name="shadowScaleYToX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowScaleYToX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>522</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowScaleYToX--> + <!--DFFOPT shadowScaleXToY--> + <UML:Class xmi.id="shadowScaleXToY" name="shadowScaleXToY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowScaleXToY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>523</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowScaleXToY--> + <!--DFFOPT shadowScaleYToY--> + <UML:Class xmi.id="shadowScaleYToY" name="shadowScaleYToY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowScaleYToY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>524</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowScaleYToY--> + <!--DFFOPT shadowPerspectiveX--> + <UML:Class xmi.id="shadowPerspectiveX" name="shadowPerspectiveX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowPerspectiveX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>525</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16 / + weight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowPerspectiveX--> + <!--DFFOPT shadowPerspectiveY--> + <UML:Class xmi.id="shadowPerspectiveY" name="shadowPerspectiveY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowPerspectiveY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>526</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>16.16 / + weight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowPerspectiveY--> + <!--DFFOPT shadowWeight--> + <UML:Class xmi.id="shadowWeight" name="shadowWeight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowWeight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>527</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>scaling + factor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowWeight--> + <!--DFFOPT shadowOriginX--> + <UML:Class xmi.id="shadowOriginX" name="shadowOriginX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowOriginX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>528</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowOriginX--> + <!--DFFOPT shadowOriginY--> + <UML:Class xmi.id="shadowOriginY" name="shadowOriginY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpshadowOriginY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>529</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT shadowOriginY--> + <!--DFFOPT fShadow--> + <UML:Class xmi.id="fShadow" name="fShadow"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfShadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>574</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Any shadow?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fShadow--> + <!--DFFOPT fshadowObscured--> + <UML:Class xmi.id="fshadowObscured" name="fshadowObscured"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfshadowObscured</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>575</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Excel5-style + shadow</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fshadowObscured--> + <!--DFFOPT perspectiveType--> + <UML:Class xmi.id="perspectiveType" name="perspectiveType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>576</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Where transform + applies</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveType--> + <!--DFFOPT perspectiveOffsetX--> + <UML:Class xmi.id="perspectiveOffsetX" name="perspectiveOffsetX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveOffsetX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>577</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The LONG values define a + transformation matrix, effectively, each value is scaled by the + perspectiveWeight parameter.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveOffsetX--> + <!--DFFOPT perspectiveOffsetY--> + <UML:Class xmi.id="perspectiveOffsetY" name="perspectiveOffsetY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveOffsetY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>578</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveOffsetY--> + <!--DFFOPT perspectiveScaleXToX--> + <UML:Class xmi.id="perspectiveScaleXToX" name="perspectiveScaleXToX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleXToX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>579</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveScaleXToX--> + <!--DFFOPT perspectiveScaleYToX--> + <UML:Class xmi.id="perspectiveScaleYToX" name="perspectiveScaleYToX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleYToX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>580</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveScaleYToX--> + <!--DFFOPT perspectiveScaleXToY--> + <UML:Class xmi.id="perspectiveScaleXToY" name="perspectiveScaleXToY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleXToY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>581</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveScaleXToY--> + <!--DFFOPT perspectiveScaleYToY--> + <UML:Class xmi.id="perspectiveScaleYToY" name="perspectiveScaleYToY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveScaleYToY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>582</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveScaleYToY--> + <!--DFFOPT perspectivePerspectiveX--> + <UML:Class xmi.id="perspectivePerspectiveX" name="perspectivePerspectiveX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectivePerspectiveX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>583</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectivePerspectiveX--> + <!--DFFOPT perspectivePerspectiveY--> + <UML:Class xmi.id="perspectivePerspectiveY" name="perspectivePerspectiveY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectivePerspectiveY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>584</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectivePerspectiveY--> + <!--DFFOPT perspectiveWeight--> + <UML:Class xmi.id="perspectiveWeight" name="perspectiveWeight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveWeight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>585</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Scaling + factor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveWeight--> + <!--DFFOPT perspectiveOriginX--> + <UML:Class xmi.id="perspectiveOriginX" name="perspectiveOriginX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveOriginX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>586</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveOriginX--> + <!--DFFOPT perspectiveOriginY--> + <UML:Class xmi.id="perspectiveOriginY" name="perspectiveOriginY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpperspectiveOriginY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>587</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1<<15</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT perspectiveOriginY--> + <!--DFFOPT fPerspective--> + <UML:Class xmi.id="fPerspective" name="fPerspective"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfPerspective</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>639</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>On/off</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fPerspective--> + <!--DFFOPT c3DSpecularAmt--> + <UML:Class xmi.id="c3DSpecularAmt" name="c3DSpecularAmt"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DSpecularAmt</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>640</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed-point + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DSpecularAmt--> + <!--DFFOPT c3DDiffuseAmt--> + <UML:Class xmi.id="c3DDiffuseAmt" name="c3DDiffuseAmt"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DDiffuseAmt</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>641</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>65536</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed-point + 16.16</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DDiffuseAmt--> + <!--DFFOPT c3DShininess--> + <UML:Class xmi.id="c3DShininess" name="c3DShininess"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DShininess</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>642</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Default gives + OK results</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DShininess--> + <!--DFFOPT c3DEdgeThickness--> + <UML:Class xmi.id="c3DEdgeThickness" name="c3DEdgeThickness"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DEdgeThickness</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>643</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>12700</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Specular edge + thickness</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DEdgeThickness--> + <!--DFFOPT c3DExtrudeForward--> + <UML:Class xmi.id="c3DExtrudeForward" name="c3DExtrudeForward"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DExtrudeForward</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>644</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Distance of + extrusion in EMUs</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DExtrudeForward--> + <!--DFFOPT c3DExtrudeBackward--> + <UML:Class xmi.id="c3DExtrudeBackward" name="c3DExtrudeBackward"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DExtrudeBackward</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>645</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>457200</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DExtrudeBackward--> + <!--DFFOPT c3DExtrudePlane--> + <UML:Class xmi.id="c3DExtrudePlane" name="c3DExtrudePlane"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DExtrudePlane</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>646</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Extrusion + direction</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DExtrudePlane--> + <!--DFFOPT c3DExtrusionColor--> + <UML:Class xmi.id="c3DExtrusionColor" name="c3DExtrusionColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DExtrusionColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>647</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FillThenLine</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Basic color + of extruded part of shape; the lighting model used will determine + the exact shades used when rendering.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DExtrusionColor--> + <!--DFFOPT c3DCrMod--> + <UML:Class xmi.id="c3DCrMod" name="c3DCrMod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DCrMod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>648</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>undefined</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Modification + for BW views</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DCrMod--> + <!--DFFOPT f3D--> + <UML:Class xmi.id="f3D" name="f3D"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpf3D</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>700</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Does this + shape have a 3D effect?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT f3D--> + <!--DFFOPT fc3DMetallic--> + <UML:Class xmi.id="fc3DMetallic" name="fc3DMetallic"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DMetallic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>701</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Use metallic + specularity?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DMetallic--> + <!--DFFOPT fc3DUseExtrusionColor--> + <UML:Class xmi.id="fc3DUseExtrusionColor" name="fc3DUseExtrusionColor"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DUseExtrusionColor</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>702</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DUseExtrusionColor--> + <!--DFFOPT fc3DLightFace--> + <UML:Class xmi.id="fc3DLightFace" name="fc3DLightFace"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DLightFace</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>703</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DLightFace--> + <!--DFFOPT c3DYRotationAngle--> + <UML:Class xmi.id="c3DYRotationAngle" name="c3DYRotationAngle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DYRotationAngle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>704</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>degrees (16.16) about y + axis</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DYRotationAngle--> + <!--DFFOPT c3DXRotationAngle--> + <UML:Class xmi.id="c3DXRotationAngle" name="c3DXRotationAngle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DXRotationAngle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>705</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>degrees (16.16) about x + axis</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DXRotationAngle--> + <!--DFFOPT c3DRotationAxisX--> + <UML:Class xmi.id="c3DRotationAxisX" name="c3DRotationAxisX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationAxisX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>706</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>100</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>These specify the + rotation axis; only their relative magnitudes matter.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationAxisX--> + <!--DFFOPT c3DRotationAxisY--> + <UML:Class xmi.id="c3DRotationAxisY" name="c3DRotationAxisY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationAxisY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>707</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationAxisY--> + <!--DFFOPT c3DRotationAxisZ--> + <UML:Class xmi.id="c3DRotationAxisZ" name="c3DRotationAxisZ"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationAxisZ</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>708</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationAxisZ--> + <!--DFFOPT c3DRotationAngle--> + <UML:Class xmi.id="c3DRotationAngle" name="c3DRotationAngle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationAngle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>709</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>degrees (16.16) about + axis</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationAngle--> + <!--DFFOPT c3DRotationCenterX--> + <UML:Class xmi.id="c3DRotationCenterX" name="c3DRotationCenterX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationCenterX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>710</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rotation center x (16.16 + or g-units)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationCenterX--> + <!--DFFOPT c3DRotationCenterY--> + <UML:Class xmi.id="c3DRotationCenterY" name="c3DRotationCenterY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationCenterY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>711</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rotation center y (16.16 + or g-units)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationCenterY--> + <!--DFFOPT c3DRotationCenterZ--> + <UML:Class xmi.id="c3DRotationCenterZ" name="c3DRotationCenterZ"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRotationCenterZ</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>712</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rotation center z + (absolute (emus))</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRotationCenterZ--> + <!--DFFOPT c3DRenderMode--> + <UML:Class xmi.id="c3DRenderMode" name="c3DRenderMode"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DRenderMode</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>713</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FullRender</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Full,wireframe, or + bcube</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DRenderMode--> + <!--DFFOPT c3DTolerance--> + <UML:Class xmi.id="c3DTolerance" name="c3DTolerance"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DTolerance</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>714</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>30000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>pixels + (16.16)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DTolerance--> + <!--DFFOPT c3DXViewpoint--> + <UML:Class xmi.id="c3DXViewpoint" name="c3DXViewpoint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DXViewpoint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>715</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1250000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>X view point + (emus)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DXViewpoint--> + <!--DFFOPT c3DYViewpoint--> + <UML:Class xmi.id="c3DYViewpoint" name="c3DYViewpoint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DYViewpoint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>716</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>-1250000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Y view point + (emus)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DYViewpoint--> + <!--DFFOPT c3DZViewpoint--> + <UML:Class xmi.id="c3DZViewpoint" name="c3DZViewpoint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DZViewpoint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>717</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9000000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Z view distance + (emus)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DZViewpoint--> + <!--DFFOPT c3DOriginX--> + <UML:Class xmi.id="c3DOriginX" name="c3DOriginX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DOriginX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>718</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>32768</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DOriginX--> + <!--DFFOPT c3DOriginY--> + <UML:Class xmi.id="c3DOriginY" name="c3DOriginY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DOriginY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>719</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>-32768</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DOriginY--> + <!--DFFOPT c3DSkewAngle--> + <UML:Class xmi.id="c3DSkewAngle" name="c3DSkewAngle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DSkewAngle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>720</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>-8847360</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>degree (16.16) skew + angle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DSkewAngle--> + <!--DFFOPT c3DSkewAmount--> + <UML:Class xmi.id="c3DSkewAmount" name="c3DSkewAmount"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DSkewAmount</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>721</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>50</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Percentage skew + amount</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DSkewAmount--> + <!--DFFOPT c3DAmbientIntensity--> + <UML:Class xmi.id="c3DAmbientIntensity" name="c3DAmbientIntensity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DAmbientIntensity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>722</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>20000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed point + intensity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DAmbientIntensity--> + <!--DFFOPT c3DKeyX--> + <UML:Class xmi.id="c3DKeyX" name="c3DKeyX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DKeyX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>723</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>50000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Key light source + direc-</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DKeyX--> + <!--DFFOPT c3DKeyY--> + <UML:Class xmi.id="c3DKeyY" name="c3DKeyY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DKeyY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>724</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>tion; only their + relative</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DKeyY--> + <!--DFFOPT c3DKeyZ--> + <UML:Class xmi.id="c3DKeyZ" name="c3DKeyZ"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DKeyZ</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>725</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>magnitudes + matter</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DKeyZ--> + <!--DFFOPT c3DKeyIntensity--> + <UML:Class xmi.id="c3DKeyIntensity" name="c3DKeyIntensity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DKeyIntensity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>726</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>38000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed point + intensity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DKeyIntensity--> + <!--DFFOPT c3DFillX--> + <UML:Class xmi.id="c3DFillX" name="c3DFillX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DFillX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>727</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>-50000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fill light source + direc-</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DFillX--> + <!--DFFOPT c3DFillY--> + <UML:Class xmi.id="c3DFillY" name="c3DFillY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DFillY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>728</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>tion; only their + relative</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DFillY--> + <!--DFFOPT c3DFillZ--> + <UML:Class xmi.id="c3DFillZ" name="c3DFillZ"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DFillZ</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>729</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>10000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>magnitudes + matter</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DFillZ--> + <!--DFFOPT c3DFillIntensity--> + <UML:Class xmi.id="c3DFillIntensity" name="c3DFillIntensity"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpc3DFillIntensity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>730</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>38000</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Fixed point + intensity</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT c3DFillIntensity--> + <!--DFFOPT fc3DConstrainRotation--> + <UML:Class xmi.id="fc3DConstrainRotation" name="fc3DConstrainRotation"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DConstrainRotation</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>763</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DConstrainRotation--> + <!--DFFOPT fc3DRotationCenterAuto--> + <UML:Class xmi.id="fc3DRotationCenterAuto" name="fc3DRotationCenterAuto"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DRotationCenterAuto</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>764</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DRotationCenterAuto--> + <!--DFFOPT fc3DParallel--> + <UML:Class xmi.id="fc3DParallel" name="fc3DParallel"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DParallel</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>765</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Parallel + projection?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DParallel--> + <!--DFFOPT fc3DKeyHarsh--> + <UML:Class xmi.id="fc3DKeyHarsh" name="fc3DKeyHarsh"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DKeyHarsh</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>766</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Is key lighting + harsh?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DKeyHarsh--> + <!--DFFOPT fc3DFillHarsh--> + <UML:Class xmi.id="fc3DFillHarsh" name="fc3DFillHarsh"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfc3DFillHarsh</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>767</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Is fill lighting + harsh?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fc3DFillHarsh--> + <!--DFFOPT hspMaster--> + <UML:Class xmi.id="hspMaster" name="hspMaster"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shphspMaster</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>769</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>master + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT hspMaster--> + <!--DFFOPT cxstyle--> + <UML:Class xmi.id="cxstyle" name="cxstyle"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpcxstyle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>771</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>None</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Type of + connector</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT cxstyle--> + <!--DFFOPT bWMode--> + <UML:Class xmi.id="bWMode" name="bWMode"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpbWMode</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>772</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Automatic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Settings for + modifications to be made when in different forms of black-and-white + mode.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT bWMode--> + <!--DFFOPT bWModePureBW--> + <UML:Class xmi.id="bWModePureBW" name="bWModePureBW"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpbWModePureBW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>773</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Automatic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT bWModePureBW--> + <!--DFFOPT bWModeBW--> + <UML:Class xmi.id="bWModeBW" name="bWModeBW"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpbWModeBW</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>774</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Automatic</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT bWModeBW--> + <!--DFFOPT fOleIcon--> + <UML:Class xmi.id="fOleIcon" name="fOleIcon"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfOleIcon</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>826</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>For OLE + objects, whether the object is in icon form</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fOleIcon--> + <!--DFFOPT fPreferRelativeResize--> + <UML:Class xmi.id="fPreferRelativeResize" name="fPreferRelativeResize"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfPreferRelativeResize</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>827</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>For UI only. + Prefer relative resizing.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fPreferRelativeResize--> + <!--DFFOPT fLockShapeType--> + <UML:Class xmi.id="fLockShapeType" name="fLockShapeType"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfLockShapeType</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>828</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Lock the + shape type (don't allow Change Shape)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fLockShapeType--> + <!--DFFOPT fDeleteAttachedObject--> + <UML:Class xmi.id="fDeleteAttachedObject" name="fDeleteAttachedObject"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfDeleteAttachedObject</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>830</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fDeleteAttachedObject--> + <!--DFFOPT fBackground--> + <UML:Class xmi.id="fBackground" name="fBackground"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfBackground</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>831</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>If TRUE, this + is the background shape.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fBackground--> + <!--DFFOPT spcot--> + <UML:Class xmi.id="spcot" name="spcot"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpspcot</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>832</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TwoSegment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Callout type</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT spcot--> + <!--DFFOPT dxyCalloutGap--> + <UML:Class xmi.id="dxyCalloutGap" name="dxyCalloutGap"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxyCalloutGap</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>833</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/12 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Distance from box to + first point.(EMUs)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxyCalloutGap--> + <!--DFFOPT spcoa--> + <UML:Class xmi.id="spcoa" name="spcoa"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpspcoa</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>834</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Any</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Callout angle</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT spcoa--> + <!--DFFOPT spcod--> + <UML:Class xmi.id="spcod" name="spcod"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpspcod</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>835</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Specified</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Callout drop + type</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT spcod--> + <!--DFFOPT dxyCalloutDropSpecified--> + <UML:Class xmi.id="dxyCalloutDropSpecified" name="dxyCalloutDropSpecified"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxyCalloutDropSpecified</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>836</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>9 points</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>if msospcodSpecified, the + actual drop distance</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxyCalloutDropSpecified--> + <!--DFFOPT dxyCalloutLengthSpecified--> + <UML:Class xmi.id="dxyCalloutLengthSpecified" name="dxyCalloutLengthSpecified"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxyCalloutLengthSpecified</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>837</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>if + fCalloutLengthSpecified, the actual distance</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxyCalloutLengthSpecified--> + <!--DFFOPT fCallout--> + <UML:Class xmi.id="fCallout" name="fCallout"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCallout</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>889</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Is the shape a + callout?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCallout--> + <!--DFFOPT fCalloutAccentBar--> + <UML:Class xmi.id="fCalloutAccentBar" name="fCalloutAccentBar"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCalloutAccentBar</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>890</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>does callout have accent + bar</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCalloutAccentBar--> + <!--DFFOPT fCalloutTextBorder--> + <UML:Class xmi.id="fCalloutTextBorder" name="fCalloutTextBorder"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCalloutTextBorder</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>891</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>does callout have a text + border</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCalloutTextBorder--> + <!--DFFOPT fCalloutMinusX--> + <UML:Class xmi.id="fCalloutMinusX" name="fCalloutMinusX"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCalloutMinusX</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>892</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCalloutMinusX--> + <!--DFFOPT fCalloutMinusY--> + <UML:Class xmi.id="fCalloutMinusY" name="fCalloutMinusY"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCalloutMinusY</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>893</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue/> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCalloutMinusY--> + <!--DFFOPT fCalloutDropAuto--> + <UML:Class xmi.id="fCalloutDropAuto" name="fCalloutDropAuto"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCalloutDropAuto</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>894</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>If true, then we + occasionally invert the drop distance</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCalloutDropAuto--> + <!--DFFOPT fCalloutLengthSpecified--> + <UML:Class xmi.id="fCalloutLengthSpecified" name="fCalloutLengthSpecified"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfCalloutLengthSpecified</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>895</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>if true, we look at + dxyCalloutLengthSpecified</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fCalloutLengthSpecified--> + <!--DFFOPT wzName--> + <UML:Class xmi.id="wzName" name="wzName"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpwzName</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>896</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Shape Name (present only + if explicitly set)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT wzName--> + <!--DFFOPT wzDescription--> + <UML:Class xmi.id="wzDescription" name="wzDescription"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpwzDescription</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>897</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>String</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>alternate + text</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT wzDescription--> + <!--DFFOPT pihlShape--> + <UML:Class xmi.id="pihlShape" name="pihlShape"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppihlShape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>898</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The hyperlink in the + shape.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pihlShape--> + <!--DFFOPT pWrapPolygonVertices--> + <UML:Class xmi.id="pWrapPolygonVertices" name="pWrapPolygonVertices"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shppWrapPolygonVertices</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>899</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>unknown</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>NULL</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>The polygon that text + will be wrapped around (Word)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT pWrapPolygonVertices--> + <!--DFFOPT dxWrapDistLeft--> + <UML:Class xmi.id="dxWrapDistLeft" name="dxWrapDistLeft"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxWrapDistLeft</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>900</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/8 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Left wrapping distance + from text (Word)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxWrapDistLeft--> + <!--DFFOPT dyWrapDistTop--> + <UML:Class xmi.id="dyWrapDistTop" name="dyWrapDistTop"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdyWrapDistTop</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>901</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Top wrapping distance + from text (Word)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dyWrapDistTop--> + <!--DFFOPT dxWrapDistRight--> + <UML:Class xmi.id="dxWrapDistRight" name="dxWrapDistRight"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdxWrapDistRight</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>902</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1/8 inch</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Right wrapping distance + from text (Word)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dxWrapDistRight--> + <!--DFFOPT dyWrapDistBottom--> + <UML:Class xmi.id="dyWrapDistBottom" name="dyWrapDistBottom"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpdyWrapDistBottom</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>903</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Bottom wrapping distance + from text (Word)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT dyWrapDistBottom--> + <!--DFFOPT lidRegroup--> + <UML:Class xmi.id="lidRegroup" name="lidRegroup"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shplidRegroup</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>904</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U32</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Regroup ID</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT lidRegroup--> + <!--DFFOPT fEditedWrap--> + <UML:Class xmi.id="fEditedWrap" name="fEditedWrap"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfEditedWrap</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>953</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Has the wrap polygon been + edited?</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fEditedWrap--> + <!--DFFOPT fBehindDocument--> + <UML:Class xmi.id="fBehindDocument" name="fBehindDocument"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfBehindDocument</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>954</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Word-only (shape is + behind text)</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fBehindDocument--> + <!--DFFOPT fOnDblClickNotify--> + <UML:Class xmi.id="fOnDblClickNotify" name="fOnDblClickNotify"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfOnDblClickNotify</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>955</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Notify client on a double + click</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fOnDblClickNotify--> + <!--DFFOPT fIsButton--> + <UML:Class xmi.id="fIsButton" name="fIsButton"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfIsButton</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>956</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>A button shape (i.e., + clicking performs an action). Set for shapes with attached + hyperlinks or macros.</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fIsButton--> + <!--DFFOPT fOneD--> + <UML:Class xmi.id="fOneD" name="fOneD"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfOneD</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>957</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1D adjustment</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fOneD--> + <!--DFFOPT fHidden--> + <UML:Class xmi.id="fHidden" name="fHidden"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfHidden</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>958</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>FALSE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Do not + display</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fHidden--> + <!--DFFOPT fPrint--> + <UML:Class xmi.id="fPrint" name="fPrint"> + <UML:ModelElement.stereotype> + <UML:Stereotype xmi.idref="dffopt"/> + </UML:ModelElement.stereotype> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>rtf:shpfPrint</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="optname"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>959</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="fopid"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>U8</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="type"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="isbool"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>TRUE</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="default"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + <UML:ModelElement.taggedValue> + <UML:TaggedValue> + <UML:TaggedValue.dataValue>Print this + shape</UML:TaggedValue.dataValue> + <UML:TaggedValue.type> + <UML:TagDefinition xmi.idref="comment"/> + </UML:TaggedValue.type> + </UML:TaggedValue> + </UML:ModelElement.taggedValue> + </UML:Class> + <!--DFFOPT fPrint--> + <!--DFFOPT--> + </UML:Namespace.ownedElement> + </UML:Model> + </XMI.content> +</XMI> diff --git a/writerfilter/source/doctok/resources.xsl b/writerfilter/source/doctok/resources.xsl new file mode 100644 index 000000000000..12be17986556 --- /dev/null +++ b/writerfilter/source/doctok/resources.xsl @@ -0,0 +1,838 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default">
+ <xsl:output method="text" />
+
+ <xsl:template match="/">
+ <out xml:space="preserve">
+ <xsl:text>
+/*
+ THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT!
+
+ $RCSfile: resources.xsl,v $
+
+ $Revision: 1.1 $
+*/
+#ifndef INCLUDED_RESOURCES_HXX
+#define INCLUDED_RESOURCES_HXX
+
+#include <vector>
+#include <boost/shared_ptr.hpp>
+
+#ifndef INCLUDED_OUTPUT_WITH_DEPTH_HXX
+#include <doctok/OutputWithDepth.hxx>
+#endif
+
+#ifndef INCLUDED_RESOURCESIDS_HXX
+#include <doctok/resourceids.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_STRUCT_BASE_HXX
+#include <WW8StructBase.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_RESOURCE_MODEL_IMPL_HXX
+#include <WW8ResourceModelImpl.hxx>
+#endif
+
+#ifndef INCLUDED_WW8_PROPERTY_SET_IMPL_HXX
+#include <WW8PropertySetImpl.hxx>
+#endif
+
+#ifndef INCLUDED_DFF_HXX
+#include <Dff.hxx>
+#endif
+
+namespace doctok {
+
+class WW8DocumentImpl;
+typedef const WW8DocumentImpl * WW8DocumentImplPointer;
+
+using namespace ::std;
</xsl:text>
+ <xsl:apply-templates select="//UML:Class" mode="class"/>
+ <xsl:text>
+rtl::OUString getDffOptName(sal_uInt32 nPid);
+bool isBooleanDffOpt(sal_uInt32 nId);
+}
+#endif // INCLUDED_RESOURCES_HXX
</xsl:text></out>
+</xsl:template>
+
+ <xsl:template match="UML:Class" mode="class">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8resource"]'>
+ <xsl:apply-templates select="." mode="ww8resource"/>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "dffrecord"]'>
+ <xsl:apply-templates select="." mode="dffrecord"/>
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "dffopt"]'>
+ <xsl:apply-templates select="." mode="dffopt"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="UML:Class" mode="ww8resource">
+ <xsl:variable name="parentresource">
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'><xsl:value-of select='@xmi.id'/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='size_'><xsl:value-of select='./*/UML:TaggedValue[./*/UML:TagDefinition/@xmi.idref="size"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name='size'>
+ <xsl:choose>
+ <xsl:when test='$size_ != ""'><xsl:value-of select='$size_'/></xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="classname">WW8<xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="superclass">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when>
+ <xsl:otherwise>WW8StructBase</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="surroundclass">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when>
+ <xsl:otherwise>WW8StructBase</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:text>
+/**
+ Automatically generated class: </xsl:text><xsl:value-of select="@name"/><xsl:text>
+ </xsl:text>
+ <xsl:for-each select='./UML:ModelElement.stereotype/UML:Stereotype'>
+ <xsl:text>
+ Stereotype </xsl:text>
+ <xsl:value-of select='@xmi.idref'/>
+ <xsl:text>
</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
+ Parent Resource: </xsl:text>
+ <xsl:value-of select="$parentresource"/>
+ <xsl:text>
+ Size: </xsl:text><xsl:value-of select='$size'/>
+ <xsl:text>
+*/
+class </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>: public </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:if test='$parentresource != ""'>
+ <xsl:text>, public doctok::Reference< </xsl:text>
+ <xsl:value-of select='$parentresource'/>
+ <xsl:text>></xsl:text>
+ </xsl:if>
+ <xsl:text>
+{</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text> sal_uInt32 mnIndex;</xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withmembers"]'>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='declmembers'/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="needsdocument"]'>
+ <xsl:text> WW8DocumentImplPointer mpDoc;
</xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="plcf"]'>
+ <xsl:text>
+ sal_uInt32 mnPlcfPayloadOffset;
+ vector<sal_uInt32> entryOffsets;
+ vector<sal_uInt32> payloadOffsets;
+ vector<sal_uInt32> payloadIndices;
+ </xsl:text>
+ </xsl:if>
+ <xsl:text>
+ public:
+ typedef boost::shared_ptr<</xsl:text>
+ <xsl:value-of select='$classname'/>
+ <xsl:text>> Pointer_t;
+
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(
+ WW8Stream & rStream,
+ sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>)
+ : </xsl:text><xsl:value-of select='$superclass'/>
+ <xsl:text>(rStream, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(
+ WW8StructBase * pParent,
+ sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>)
+ : </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:text>(pParent, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }
 </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>( const </xsl:text>
+ <xsl:value-of select='$surroundclass'/>
+ <xsl:text>& rSurround,
+ sal_uInt32 nOffset = 0, sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>)
+ <xsl:text>
+ : </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:text>(rSurround, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }

+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(
+ const Sequence &
+ rSequence, sal_uInt32 nOffset = 0,
+ sal_uInt32 nCount = </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>)
+ : </xsl:text>
+ <xsl:value-of select='$superclass'/>
+ <xsl:text>(rSequence, nOffset, nCount)</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>, mnIndex(0)</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ {
+ init();
+ }
+
+ virtual ~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>();
</xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="initimpl"]'>
+ <xsl:text> void initImpl();
</xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="plcf"]'>
+ <xsl:text> void initPayload();</xsl:text>
+ </xsl:if>
+ <xsl:text>
+ void init();
+
+ /**
+ Return type of resource.
+ */
+ virtual string getType() const
+ {
+ return "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>";
+ }
+
+ /**
+ Return static size.
+ */
+ static sal_uInt32 getSize() { return </xsl:text>
+ <xsl:value-of select='$size'/>
+ <xsl:text>; }
+
+ /**
+ Calculate actual size.
+ */
+ sal_uInt32 calcSize();
+
+ </xsl:text>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="plcf"]'>
+ <xsl:text>
+ /**
+ Return offset for entry of PLCF.
+
+ @param nIndex index of entry
+ */
+ sal_uInt32 getEntryOffset(sal_uInt32 nIndex)
+ {
+ return entryOffsets[nIndex];
+ }
+
+ /**
+ Calculate offset for payload.
+ */
+ sal_uInt32 calcPayloadOffset();
+
+ /**
+ Set offset for payloads.
+
+ @param nOffset the offset to set
+ */
+ void setPayloadOffset(sal_uInt32 nOffset)
+ {
+ mnPlcfPayloadOffset = nOffset;
+ }
+
+ /**
+ Return offset for payload of PLCF.
+
+ @param nIndex index of entry
+ */
+ sal_uInt32 getPayloadOffset(sal_uInt32 nIndex)
+ {
+ return payloadOffsets[nIndex];
+ }
+
+ /**
+ Return size of payload.
+ */
+ sal_uInt32 getPayloadSize(sal_uInt32 nIndex) const
+ {
+ return payloadOffsets[nIndex + 1] - payloadOffsets[nIndex];
+ }
+
+
+ /**
+ Return payload index of an entry.
+
+ */
+ sal_uInt32 getPayloadIndex(sal_uInt32 nIndex)
+ {
+ return payloadIndices[nIndex];
+ }
+ </xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="withindex"]'>
+ <xsl:text>
+ /**
+ Set index in parent.
+
+ @param nIndex the index
+ */
+ void setIndex(sal_uInt32 nIndex) { mnIndex = nIndex; }
+ </xsl:text>
+ </xsl:if>
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="ww8sprm"]'>
+ <xsl:variable name='propsreftype'>doctok::Reference < Properties >::Pointer_t</xsl:variable>
+ <xsl:text> /**
+ Return reference to properties of Sprm.
+ */
+ </xsl:text>
+ <xsl:value-of select='$propsreftype'/>
+ <xsl:text> getProps()
+ {
+ return </xsl:text>
+ <xsl:value-of select='$propsreftype'/>
+ <xsl:text> (new </xsl:text>
+ <xsl:value-of select='$classname'/>
+ <xsl:text>(*this));
+ }
+ </xsl:text>
+ </xsl:if>
+
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="ww8sprmbinary"]'>
+ <xsl:text>
+ virtual doctok::Reference < BinaryObj > ::Pointer_t getBinary();
+ </xsl:text>
+ </xsl:if>
+
+ <xsl:if test='.//UML:Stereotype[@xmi.idref ="needsdocument"]'>
+ <xsl:text>
+ void setDoc(WW8DocumentImplPointer pDoc)
+ {
+ mpDoc = pDoc;
+ }
+ </xsl:text>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="declsProperties"/>
+ <xsl:if test='$parentresource="Table"'>
+ <xsl:apply-templates select="." mode="declsTable"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test='$parentresource="Properties"'>
+ <xsl:apply-templates select="." mode="resolveProperties"/>
+ </xsl:when>
+ <xsl:when test='$parentresource="Table"'>
+ <xsl:apply-templates select="." mode="resolveTable"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>
+ };
+ </xsl:text>
+ </xsl:template>
+
+<xsl:template match='UML:Class' mode='declsProperties'>
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref ="withmembers"]'>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='accessmembers'/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="debug">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype[@xmi.idref="debug"]'>
+ <xsl:text>true</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>false</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='access'>
+ <xsl:with-param name="debug">
+ <xsl:value-of select="$debug"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:for-each select='.//UML:Operation[@name!="reserved"]'>
+ <xsl:apply-templates select='.' mode='declsOperations'/>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="resolveProperties">
+ <xsl:if test='.//UML:Stereotype[@xmi.idref = "resolvenoauto"]'>
+ void resolveNoAuto(Properties & rHandler);
+ </xsl:if>
+
+ void dump(OutputWithDepth < string > & o) const;
+
+ void resolve(Properties & rHandler);
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="declsTable">
+ sal_uInt32 getEntryCount();
+ doctok::Reference< Properties >::Pointer_t getEntry(sal_uInt32 nIndex);
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="resolveTable">
+ void resolve(Table & rHandler);
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="access">
+ <xsl:param name="debug"/>
+ <xsl:variable name="stereotype"><xsl:value-of select=".//UML:Stereotype[1]/@xmi.idref"/></xsl:variable>
+ <xsl:variable name="offset_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="offset"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
+ <xsl:variable name="offset">
+ <xsl:if test='$offset_ != "" and not(starts-with($offset_, "0x"))'>0x</xsl:if>
+ <xsl:value-of select='$offset_'/>
+ </xsl:variable>
+ <xsl:variable name="shift"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="shift"]/UML:TaggedValue.dataValue'/></xsl:variable>
+ <xsl:variable name="mask_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="mask"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable>
+ <xsl:variable name="mask">
+ <xsl:if test='$mask_ != "" and not(starts-with($mask_, "0x"))'>0x</xsl:if>
+ <xsl:value-of select='$mask_'/>
+ </xsl:variable>
+ <xsl:variable name='type'>
+ <xsl:value-of select="UML:StructuralFeature.type/UML:DataType/@xmi.idref"/>
+ </xsl:variable>
+ <xsl:variable name="completetype">
+ <xsl:text>WW8</xsl:text>
+ <xsl:value-of select="$type"/>
+ </xsl:variable>
+ <xsl:variable name="saltype">
+ <xsl:apply-templates select="." mode="returntype"/>
+ </xsl:variable>
+ <xsl:variable name='typetype'>
+ <xsl:call-template name='typetype'>
+ <xsl:with-param name='type'><xsl:value-of select="$type"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ /**
+ <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="comment"]/UML:TaggedValue.dataValue'/>
+
+ <table>
+ <tr>
+ <th>
+ Name
+ </th>
+ <td>
+ <xsl:value-of select='@name'/>(<xsl:value-of select='$stereotype'/>)
+ </td>
+ </tr>
+ <tr>
+ <th>
+ Offset
+ </th>
+ <td>
+ <xsl:value-of select='$offset'/>
+ </td>
+ </tr>
+ <tr>
+ <th>
+ Mask
+ </th>
+ <td>
+ <xsl:value-of select='$mask'/>
+ </td>
+ </tr>
+ <tr>
+ <th>
+ Shift
+ </th>
+ <td>
+ <xsl:value-of select='$shift'/>
+ </td>
+ </tr>
+ </table>
+ */
+
+<xsl:choose>
+ <xsl:when test='$stereotype = "attribute"'>
+ <xsl:if test='././/UML:Stereotype[@xmi.idref="virtual"]'>
+ <xsl:text>virtual </xsl:text>
+ </xsl:if>
+ <xsl:value-of select='$saltype'/> get_<xsl:value-of select='@name'/>() const
+ {
+ <xsl:if test='$debug="true"'>
+ <xsl:text>
+ clog << "<called></xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text></called>"
+ << endl;

+ </xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test='$typetype = "complex"'>
+ <xsl:text> return </xsl:text>
+ <xsl:value-of select="$saltype"/>
+ <xsl:text>(new </xsl:text>
+ <xsl:value-of select="$completetype"/>
+ <xsl:text>(*this, </xsl:text>
+ <xsl:value-of select="$offset"/>
+ <xsl:text>));
</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> return (get</xsl:text>
+ <xsl:value-of select="$type"/>
+ <xsl:text>(</xsl:text>
+ <xsl:value-of select="$offset"/>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="string-length($mask)>0">
+ <xsl:text>& </xsl:text>
+ <xsl:value-of select="$mask"/>
+ </xsl:if>
+ <xsl:text>)</xsl:text>
+ <xsl:if test="$shift>0">
+ <xsl:text>>> </xsl:text>
+ <xsl:value-of select="$shift"/>
+ </xsl:if>
+ <xsl:text>;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:when>
+ <xsl:when test='$stereotype = "array"'>
+ <xsl:text>sal_uInt32 get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>_count() const </xsl:text>
+ <xsl:choose>
+ <xsl:when test='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref = "arraycount"]'>
+ <xsl:text>{ return </xsl:text>
+ <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref = "arraycount"]/UML:TaggedValue.dataValue'/>
+ <xsl:text>; }
</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>;
</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select='$saltype'/>
+ <xsl:text> get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>(sal_uInt32 nIndex) const {</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$typetype='complex'">
+ <xsl:text> return </xsl:text>
+ <xsl:value-of select="$saltype"/>
+ <xsl:text>( new </xsl:text>
+ <xsl:value-of select="$completetype"/>
+ <xsl:text>(static_cast<const WW8StructBase >(*this), </xsl:text>
+ <xsl:value-of select="$offset"/>
+ <xsl:text> + nIndex * </xsl:text>
+ <xsl:value-of select="$completetype"/>
+ <xsl:text>::getSize()));</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> return get</xsl:text>
+ <xsl:value-of select='$type'/>
+ <xsl:text>(</xsl:text><xsl:value-of select='$offset'/>
+ <xsl:text>+ nIndex * sizeof(</xsl:text>
+ <xsl:value-of select='$saltype'/>
+ <xsl:text>))</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; }
</xsl:text>
+ </xsl:when>
+ <xsl:when test='$stereotype = "string"'>
+ rtl::OUString get_<xsl:value-of select='@name'/>() const { return getString(<xsl:value-of select='$offset'/>); }
+ </xsl:when>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match='UML:Attribute' mode='accessmembers'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>() const { return m</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>; }
+ </xsl:text>
+</xsl:template>
+
+
+<xsl:template match="UML:Operation" mode="declsOperations">
+ <xsl:choose>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'>
+ <xsl:variable name="elementtype">
+ <xsl:value-of select='.//UML:Parameter.type/UML:Class/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:variable name="parentclass">
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$elementtype'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name='saltype'>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$elementtype'/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:value-of select='$parentclass'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ /**
+ Array: <xsl:value-of select="@name"/>
+ ElementType: <xsl:value-of select="$elementtype"/>(<xsl:value-of select="$parentclass"/>)
+ */
+
+ sal_uInt32 get_<xsl:value-of select="@name"/>_count();
+
+ <xsl:text> </xsl:text><xsl:value-of select='$saltype'/> get_<xsl:value-of select="@name"/>(sal_uInt32 pos);
+ </xsl:when>
+ <xsl:when test='.//UML:Stereotype/@xmi.idref = "attribute" or .//UML:Stereotype/@xmi.idref = "binary"'>
+ <xsl:variable name="returntype_">
+ <xsl:value-of select='.//UML:Parameter.type/UML:Class/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:variable name="returntype">
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$returntype_'/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='$returntype_'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ /**
+ Operation: <xsl:value-of select="@name"/>
+ */
+
+ <xsl:text> </xsl:text>
+ <xsl:value-of select='$returntype'/>
+ <xsl:text> get_</xsl:text>
+ <xsl:value-of select='@name'/>
+ <xsl:text>();
</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode='declmembers'>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> m</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>;
+ </xsl:text>
+</xsl:template>
+
+<xsl:template name='idtoqname'>
+ <xsl:param name='id'/>NS_<xsl:value-of select='substring-before($id, ":")'/>::LN_<xsl:value-of select='substring-after($id, ":")'/>
+</xsl:template>
+
+<xsl:template name='saltype'>
+ <xsl:param name='type'/>
+ <xsl:param name='parenttype'/>
+ <xsl:choose>
+ <xsl:when test="$type='U8'">sal_uInt8</xsl:when>
+ <xsl:when test="$type='S8'">sal_Int8</xsl:when>
+ <xsl:when test="$type='U16'">sal_uInt16</xsl:when>
+ <xsl:when test="$type='S16'">sal_Int16</xsl:when>
+ <xsl:when test="$type='U32'">sal_uInt32</xsl:when>
+ <xsl:when test="$type='S32'">sal_Int32</xsl:when>
+ <xsl:when test="$type='String'">rtl::OUString</xsl:when>
+ <xsl:when test="$type='Value'">WW8Value::Pointer_t</xsl:when>
+ <xsl:when test="$type='Binary'">WW8BinaryObjReference::Pointer_t</xsl:when>
+ <xsl:when test="$parenttype=''">
+ <xsl:value-of select="$type"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>doctok::Reference < </xsl:text>
+ <xsl:value-of select='$parenttype'/>
+ <xsl:text> >::Pointer_t</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name='typetype'>
+ <xsl:param name='type'/><xsl:choose>
+ <xsl:when test="$type='U8'">simple</xsl:when>
+ <xsl:when test="$type='S8'">simple</xsl:when>
+ <xsl:when test="$type='U16'">simple</xsl:when>
+ <xsl:when test="$type='S16'">simple</xsl:when>
+ <xsl:when test="$type='U32'">simple</xsl:when>
+ <xsl:when test="$type='S32'">simple</xsl:when>
+ <xsl:when test="$type='String'">string</xsl:when>
+ <xsl:when test="$type='Value'">value</xsl:when>
+ <xsl:otherwise>complex</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="valuetype">
+ <xsl:variable name='type'>
+ <xsl:value-of select='.//UML:DataType/@xmi.idref'/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test='$type="U8"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S8"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="U16"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S16"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="U32"'>WW8IntValue</xsl:when>
+ <xsl:when test='$type="S32"'>WW8IntValue</xsl:when>
+ <xsl:otherwise>WW8PropertiesValue</xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="UML:Class" mode="dffrecord">
+ <xsl:variable name="classname">
+ <xsl:text>Dff</xsl:text><xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:text>
+/**
+ Automaticallay generated class:
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>

+*/

+class </xsl:text>
+<xsl:value-of select="$classname"/>
+<xsl:text> : public DffRecord
+{
+public:
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 nCount)
+ : DffRecord(pParent, nOffset, nCount) {}
+ virtual </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>::~</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>();
+
+ virtual void resolveLocal(Properties & props);
+ virtual void dump(OutputWithDepth < string > & o) const;
+
+ virtual DffRecord * clone() const { return new </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(*this); }

+ virtual string getType() const
+ {
+ return "</xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>";
+ }
+
+ virtual string getName() const { return ""; }
+ </xsl:text>
+ <xsl:apply-templates select="." mode="declsProperties"/>
+ <xsl:text>
+};
+</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="UML:Class" mode="dffopt">
+<!--
+ <xsl:variable name="classname">
+ <xsl:text>DffOpt</xsl:text><xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:text>
+/**
+ Automaticallay generated class:
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>

+*/

+class </xsl:text>
+<xsl:value-of select="$classname"/>
+<xsl:text> : public WW8FOPTE
+{
+ </xsl:text>
+ <xsl:value-of select="$classname"/>
+ <xsl:text>(WW8FOPTE & rOpt) : WW8FOPTE(rOpt) {}
+
+ virtual string getName() const
+ {
+ return "</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>";
+ }
</xsl:text>
+
+ <xsl:text>
+};
+</xsl:text>
+-->
+</xsl:template>
+
+<xsl:template name="parenttype">
+ <xsl:param name='type'/>
+ <xsl:value-of select='//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$type]/UML:Generalization.parent/UML:Class/@xmi.idref'/>
+</xsl:template>
+
+<xsl:template match="UML:Attribute" mode="returntype">
+ <xsl:variable name='type'>
+ <xsl:value-of select="UML:StructuralFeature.type/UML:DataType/@xmi.idref"/>
+ </xsl:variable>
+ <xsl:call-template name='saltype'>
+ <xsl:with-param name='type'>
+ <xsl:value-of select="$type"/>
+ </xsl:with-param>
+ <xsl:with-param name='parenttype'>
+ <xsl:call-template name='parenttype'>
+ <xsl:with-param name='type'><xsl:value-of select='$type'/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/writerfilter/source/doctok/resourcesimpl.xsl b/writerfilter/source/doctok/resourcesimpl.xsl new file mode 100644 index 000000000000..7fe24b9aa530 --- /dev/null +++ b/writerfilter/source/doctok/resourcesimpl.xsl @@ -0,0 +1,817 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default"> +<xsl:output method="text" /> + +<xsl:template match="/"> +<xsl:text> +/* + + THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT! + + $RCSfile: resourcesimpl.xsl,v $ + + $Revision: 1.1 $ +*/ +#include <resources.hxx> + +#ifndef WW8_OUTPUT_WITH_DEPTH +#include <WW8OutputWithDepth.hxx> +#endif + +namespace doctok { + +extern WW8OutputWithDepth output; + +using namespace ::std; +</xsl:text> +<xsl:apply-templates select='.//UML:Class' mode='class'/> +<xsl:apply-templates select='//UML:Model' mode='qnametostr'/> +<xsl:apply-templates select='//UML:Model' mode='sprmcodetostr'/> +<xsl:apply-templates select='//UML:Model' mode='createsprmprops'/> +<xsl:apply-templates select='//UML:Model' mode='createsprmbinary'/> +<xsl:apply-templates select='//UML:Model' mode='createdffrecord'/> +<xsl:apply-templates select='//UML:Model' mode='ww8foptename'/> +<xsl:apply-templates select='//UML:Model' mode='isbooleandffopt'/> +<xsl:text> +} +</xsl:text> +</xsl:template> + + <xsl:template match="UML:Class" mode="class"> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8resource"]'> + <xsl:apply-templates select="." mode="ww8resource"> + <xsl:with-param name="classprefix">WW8</xsl:with-param> + <xsl:with-param name="needsinit">true</xsl:with-param> + </xsl:apply-templates> + </xsl:when> + <xsl:when test='.//UML:Stereotype[@xmi.idref = "dffrecord"]'> + <xsl:apply-templates select="." mode="ww8resource"> + <xsl:with-param name="classprefix">Dff</xsl:with-param> + </xsl:apply-templates> + </xsl:when> + </xsl:choose> + </xsl:template> + + <xsl:template match="UML:Class" mode="ww8resource"> + <xsl:param name="classprefix"/> + <xsl:param name="needsinit"/> + <xsl:variable name="parentresource"> + <xsl:call-template name='parenttype'> + <xsl:with-param name='type'><xsl:value-of select='@xmi.id'/></xsl:with-param> + </xsl:call-template> + </xsl:variable> + <xsl:variable name='size_'><xsl:value-of select='./*/UML:TaggedValue[./*/UML:TagDefinition/@xmi.idref="size"]/UML:TaggedValue.dataValue'/></xsl:variable> + <xsl:variable name='size'> + <xsl:choose> + <xsl:when test='$size_ != ""'><xsl:value-of select='$size_'/></xsl:when> + <xsl:otherwise>0</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="classname"><xsl:value-of select="$classprefix"/><xsl:value-of select="@name"/></xsl:variable> + <xsl:variable name="superclass"> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when> + <xsl:otherwise>WW8StructBase</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="surroundclass"> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref = "ww8sprm"]'>WW8PropertyImpl</xsl:when> + <xsl:otherwise>WW8StructBase</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:text> +/* + Automatically generated class: </xsl:text><xsl:value-of select="@name"/><xsl:text> + </xsl:text> + <xsl:for-each select='./UML:ModelElement.stereotype/UML:Stereotype'> + <xsl:text> + Stereotype </xsl:text> + <xsl:value-of select='@xmi.idref'/> + <xsl:text>
</xsl:text> + </xsl:for-each> + <xsl:text> + Parent Resource: </xsl:text> + <xsl:value-of select="$parentresource"/> + <xsl:text> + Size: </xsl:text><xsl:value-of select='$size'/> + <xsl:text> +*/ + </xsl:text> + + <xsl:value-of select="$classname"/> + <xsl:text>::~</xsl:text> + <xsl:value-of select="$classname"/> + <xsl:text>() + { + } + </xsl:text> + <xsl:if test="$needsinit='true'"> + <xsl:text> + void </xsl:text> + <xsl:value-of select="$classname"/> + <xsl:text>::init() + { + </xsl:text> + <xsl:if test='.//UML:Stereotype[@xmi.idref ="withmembers"]'> + <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'> + <xsl:apply-templates select='.' mode='initmembers'/> + </xsl:for-each> + </xsl:if> + <xsl:if test='.//UML:Stereotype[@xmi.idref ="initimpl"]'> + <xsl:text> initImpl();
</xsl:text> + </xsl:if> + <xsl:text> + }
</xsl:text> + </xsl:if> + + <xsl:choose> + <xsl:when test='$parentresource="Properties"'> + <xsl:apply-templates select="." mode="resolveProperties"> + <xsl:with-param name="classname" select="$classname"/> + </xsl:apply-templates> + </xsl:when> + <xsl:when test='$parentresource="Table"'> + <xsl:apply-templates select="." mode="resolveTable"> + <xsl:with-param name="classname" select="$classname"/> + </xsl:apply-templates> + </xsl:when> + </xsl:choose> + + </xsl:template> + + <xsl:template match="UML:Class" mode="resolveProperties"> + <xsl:param name="classname"/> + <xsl:variable name="rHandler"> + <xsl:choose> + <xsl:when test='.//UML:Attribute[@name!="reserved"]//UML:Stereotype[@xmi.idref != "noresolve"]'> + <xsl:text>rHandler</xsl:text> + </xsl:when> + <xsl:when test='.//UML:Operation[@name!="reserved"]//UML:Stereotype[@xmi.idref != "noresolve"]'> + <xsl:text>rHandler</xsl:text> + </xsl:when> + <xsl:when test='.//UML:Stereotype[@xmi.idref = "resolvenoauto"]'> + <xsl:text>rHandler</xsl:text> + </xsl:when> + </xsl:choose> + </xsl:variable> + <xsl:text>void </xsl:text> + <xsl:value-of select="$classname"/> + <xsl:choose> + <xsl:when test=".//UML:Stereotype[@xmi.idref='ww8resource']"> + <xsl:text>::resolve(Properties & </xsl:text> + <xsl:value-of select="$rHandler"/> + <xsl:text>)
</xsl:text> + </xsl:when> + <xsl:when test=".//UML:Stereotype[@xmi.idref='dffrecord']"> + <xsl:text>::resolveLocal(Properties & </xsl:text> + <xsl:value-of select="$rHandler"/> + <xsl:text>)
</xsl:text> + </xsl:when> + </xsl:choose> + <xsl:text> + { + </xsl:text> + <xsl:if test='.//UML:Stereotype[@xmi.idref="debug"]'> + dump(output); + </xsl:if> + <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select='.' mode='resolveAttribute'/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + <xsl:for-each select='.//UML:Operation[@name!="reserved"]'> + <xsl:choose> + <xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select='.' mode='resolveOperation'/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + + <xsl:if test='.//UML:Stereotype[@xmi.idref = "resolvenoauto"]'> + resolveNoAuto(rHandler); + </xsl:if> + <xsl:text> + } + + void + </xsl:text> + <xsl:value-of select="$classname"/> + <xsl:text>::dump(OutputWithDepth < string > & o) const + { + o.addItem("<dump type='</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text>'>"); + + WW8StructBase::dump(o);
</xsl:text> + <xsl:for-each select='.//UML:Attribute[@name!="reserved"]'> + <xsl:apply-templates select='.' mode='dumpAttribute'/> + </xsl:for-each> + + <xsl:text> + o.addItem("</dump>"); + }
</xsl:text> + </xsl:template> + + <xsl:template match='UML:Attribute' mode='resolveAttribute'> + <xsl:variable name="attrid"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]/UML:TaggedValue.dataValue'/></xsl:variable> + <xsl:choose> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "attribute"'> + <xsl:text> + { + WW8Value::Pointer_t pVal = createValue(get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>()); + rHandler.attribute(</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='$attrid'/></xsl:with-param> + </xsl:call-template> + <xsl:text>, *pVal); + } + </xsl:text> + </xsl:when> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'> + <xsl:variable name="elementtype"> + <xsl:value-of select='.//UML:DataType/@xmi.idref'/> + </xsl:variable> + <xsl:variable name="parentclass"> + <xsl:call-template name='parenttype'> + <xsl:with-param name='type'> + <xsl:value-of select='$elementtype'/> + </xsl:with-param> + </xsl:call-template> + </xsl:variable> + <xsl:text> + { + sal_uInt32 nCount = get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>_count(); + + for (sal_uInt32 n = 0; n < nCount; ++n) + { + WW8Value::Pointer_t pVal = createValue(get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>(n)); + rHandler.attribute(</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='$attrid'/></xsl:with-param> + </xsl:call-template> + <xsl:text>, *pVal); + } + }
</xsl:text> + </xsl:when> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "string"'> + <xsl:text> + { + WW8StringValue aVal(get_</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text>()); + rHandler.attribute(</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='$attrid'/></xsl:with-param> + </xsl:call-template> + <xsl:text>, aVal); + }
 + </xsl:text> + </xsl:when> + </xsl:choose> + </xsl:template> + + <xsl:template match='UML:Attribute' mode='dumpAttribute'> + <xsl:variable name="type"><xsl:value-of select='.//UML:DataType/@xmi.idref'/></xsl:variable><xsl:variable name="saltype"> + <xsl:call-template name='saltype'> + <xsl:with-param name='type'> + <xsl:value-of select='$type'/> + </xsl:with-param> + <xsl:with-param name='parenttype'> + <xsl:apply-templates select="." mode="parentclass"/> + </xsl:with-param> + </xsl:call-template> + </xsl:variable> + <xsl:choose> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'> + <xsl:text> + { + sal_uInt32 nCount = get_</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text>_count(); + + for (sal_uInt32 n = 0; n < nCount; ++n) + { + doctok::dump(o, "</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text>", get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>(n)); + } + }
</xsl:text> + </xsl:when> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "string"'> + <xsl:text> + { + WW8StringValue aVal(get_</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text>()); + + o.addItem("</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text>" << "=\"" + aVal.toString() + "\""); + }
</xsl:text> + </xsl:when> + <xsl:otherwise> + doctok::dump(o, "<xsl:value-of select='@name'/>", get_<xsl:value-of select="@name"/>()); + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match='UML:Operation' mode='resolveOperation'> + <xsl:choose> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "attribute"'> + <xsl:variable name="opid"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]/UML:TaggedValue.dataValue'/></xsl:variable> + <xsl:text> + { + WW8Value::Pointer_t pVal = createValue(get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>()); + rHandler.attribute(</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='$opid'/></xsl:with-param> + </xsl:call-template> + <xsl:text>, *pVal); + }
</xsl:text> + </xsl:when> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "array"'> + <xsl:variable name="elementtype"> + <xsl:value-of select='.//UML:Parameter.type/@xmi.idref'/> + </xsl:variable> + <xsl:variable name="opid"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]/UML:TaggedValue.dataValue'/></xsl:variable> + <xsl:variable name="parentclass"> + <xsl:value-of select='//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$elementtype]/UML:Generalization.parent/UML:Class/@xmi.idref'/> + </xsl:variable> + <xsl:text> + { + sal_uInt32 nCount = get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>_count(); + + for (sal_uInt32 n = 0; n < nCount; ++n) + { + WW8Value::Pointer_t pVal = createValue(get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>(n)); + rHandler.attribute(</xsl:text> + <xsl:call-template name='idtoqname'> + <xsl:with-param name='id'><xsl:value-of select='$opid'/></xsl:with-param> + </xsl:call-template> + <xsl:text>, *pVal); + } + }
</xsl:text> + </xsl:when> + <xsl:when test='.//UML:Stereotype/@xmi.idref = "binary"'> + <xsl:text> + { + WW8BinaryObjReference::Pointer_t pRef(get_</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>()); + WW8Sprm aSprm(pRef); + + rHandler.sprm(aSprm); + }
 + </xsl:text> + </xsl:when> + </xsl:choose> + </xsl:template> + + <xsl:template match="UML:Class" mode="resolveTable"> + <xsl:param name="classname"/> + <xsl:text>void </xsl:text> + <xsl:value-of select="$classname"/> + <xsl:text>::resolve(Table & rHandler) + { + sal_uInt32 nCount = getEntryCount(); + doctok::Reference< Properties >::Pointer_t pEntry; + for (sal_uInt32 n = 0; n < nCount; ++n) + { + pEntry = getEntry(n); + + if (pEntry.get() != 0x0) + { + try + { + rHandler.entry(n, pEntry); + } + catch (ExceptionOutOfBounds e) + { + } + } + } + } + </xsl:text> + </xsl:template> + +<xsl:template match='UML:Model' mode='qnametostr'> +QNameToString::QNameToString() +{ +<xsl:variable name='tmp'>map < sal_uInt32, string > </xsl:variable> + /* Attributes */ +<xsl:for-each select='.//UML:Attribute[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="attrid"]'> +<xsl:choose> +<xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'> +</xsl:when> +<xsl:otherwise> +<xsl:text> mMap[</xsl:text> +<xsl:call-template name='idtoqname'> +<xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> +</xsl:call-template> +<xsl:text>]= "</xsl:text> +<xsl:value-of select='.//UML:TaggedValue.dataValue'/> +<xsl:text>"; +</xsl:text> +</xsl:otherwise> +</xsl:choose> +</xsl:for-each> + /* Operations */ +<xsl:for-each select='.//UML:Operation[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="opid"]'> +<xsl:choose> +<xsl:when test='.//UML:Stereotype[@xmi.idref="noresolve"]'> +</xsl:when> +<xsl:otherwise> +<xsl:text> mMap[</xsl:text> +<xsl:call-template name='idtoqname'> +<xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> +</xsl:call-template> +<xsl:text>] = "</xsl:text> +<xsl:value-of select='.//UML:TaggedValue.dataValue'/> +<xsl:text>"; +</xsl:text> +</xsl:otherwise> +</xsl:choose> +</xsl:for-each> + /* Classes */ +<xsl:for-each select='.//UML:Class[@name!="reserved"]//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="classid"]'> +<xsl:text> mMap[</xsl:text> +<xsl:call-template name='idtoqname'> +<xsl:with-param name='id'><xsl:value-of select='.//UML:TaggedValue.dataValue'/></xsl:with-param> +</xsl:call-template> +<xsl:text>] = "</xsl:text> +<xsl:value-of select='.//UML:TaggedValue.dataValue'/> +<xsl:text>"; +</xsl:text> +</xsl:for-each> +} +</xsl:template> + +<xsl:template match='UML:Model' mode='sprmcodetostr'> +SprmIdToString::SprmIdToString() +{ +<xsl:variable name='tmp'>map < sal_uInt32, string > </xsl:variable> +<xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="ww8sprm"]'> + mMap[<xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmcode"]//UML:TaggedValue.dataValue'/>] = "<xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmid"]//UML:TaggedValue.dataValue'/>";</xsl:for-each> +} +</xsl:template> + +<xsl:template match='UML:Model' mode='createsprmprops'> +doctok::Reference < Properties > ::Pointer_t createSprmProps +(WW8PropertyImpl & rProp) +{ + doctok::Reference < Properties > ::Pointer_t pResult; + + switch (rProp.getId()) + { +<xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="ww8sprm" and .//UML:Stereotype/@xmi.idref="ww8resource"]'> + case <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmcode"]//UML:TaggedValue.dataValue'/>: + pResult = doctok::Reference < Properties > ::Pointer_t(new WW8<xsl:value-of select='@name'/>(rProp, 0, rProp.getCount())); + + break; +</xsl:for-each> + default: + break; + } + + return pResult; +} +</xsl:template> + +<xsl:template match='UML:Model' mode='createsprmbinary'> +<xsl:text> +doctok::Reference < BinaryObj > ::Pointer_t createSprmBinary +(WW8PropertyImpl & rProp) +{ + doctok::Reference < BinaryObj > ::Pointer_t pResult; + + switch (rProp.getId()) + {
 + // warnings.... + case 0: + break; +</xsl:text> +<xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="ww8sprmbinary" and .//UML:Stereotype/@xmi.idref="ww8resource"]'> + case <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="sprmcode"]//UML:TaggedValue.dataValue'/>: + { + WW8<xsl:value-of select='@name'/>::Pointer_t p(new WW8<xsl:value-of select='@name'/>(rProp, 0, rProp.getCount())); + + pResult = p->getBinary(); + } + + break; +</xsl:for-each> +<xsl:text> + default: + break; + } + + return pResult; +} +</xsl:text> +</xsl:template> + +<xsl:template match='UML:Model' mode='ww8foptename'> +<xsl:text> +rtl::OUString WW8FOPTE::get_name() +{ + return getDffOptName(get_pid()); +} + +rtl::OUString getDffOptName(sal_uInt32 nPid) +{ + rtl::OUString result; + + switch (nPid) + {
</xsl:text> + <xsl:for-each select=".//UML:Class[.//UML:Stereotype/@xmi.idref='dffopt']"> + <xsl:text> + case </xsl:text> + <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='fopid']//UML:TaggedValue.dataValue"/> + <xsl:text>: + result = rtl::OUString::createFromAscii("</xsl:text> + <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='optname']//UML:TaggedValue.dataValue"/> + <xsl:text>"); + break;
</xsl:text> + </xsl:for-each> + <xsl:text> + default: + break; + } + + return result; +} + +WW8Value::Pointer_t WW8FOPTE::get_value() +{ + WW8Value::Pointer_t pResult; + + switch (get_pid()) + {
</xsl:text> + <xsl:for-each select=".//UML:Class[.//UML:Stereotype/@xmi.idref='dffopt']"> + <xsl:variable name="type"> + <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='type']//UML:TaggedValue.dataValue"/> + </xsl:variable> + <xsl:if test="$type != 'unknown'"> + <xsl:variable name="typetype"> + <xsl:call-template name="typetype"> + <xsl:with-param name="type" select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='type']//UML:TaggedValue.dataValue"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="valuetype"> + <xsl:call-template name="valuetype"> + <xsl:with-param name="type" select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='type']//UML:TaggedValue.dataValue"/> + </xsl:call-template> + </xsl:variable> + <xsl:text> + case </xsl:text> + <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='fopid']//UML:TaggedValue.dataValue"/> + <xsl:text>: + { + </xsl:text> + <xsl:choose> + <xsl:when test=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='isbool']"> + <xsl:text>pResult = createValue(getU32(0x2) & 1);
</xsl:text> + + </xsl:when> + <xsl:when test="$typetype='complex'"> + <xsl:text>pResult = createValue(new </xsl:text> + <xsl:value-of select="$valuetype"/> + <xsl:text>(getU32(0x2)));
</xsl:text> + </xsl:when> + <xsl:when test="$typetype='string'"> + <xsl:text> + DffOPT * pOpt = dynamic_cast < DffOPT * >(mpParent); + sal_uInt32 nExtraOffset = pOpt->get_extraoffset(mnIndex); + sal_uInt32 nExtraLength = pOpt->get_extraoffset(mnIndex + 1) - nExtraOffset; + pResult = createValue(mpParent->getString(nExtraOffset, nExtraLength / 2));
</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>pResult = createValue(getU32(0x2));
</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> + } + break;
</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text> + default: + pResult = createValue(getU32(0x2)); + + break; + } + + return pResult; +} +</xsl:text> +</xsl:template> + +<xsl:template match="UML:Model" mode="createdffrecord"> +<xsl:text> +DffRecord * createDffRecord +(WW8StructBase * pParent, sal_uInt32 nOffset, sal_uInt32 * pCount) +{ + DffRecord * pResult = NULL; + DffRecord aTmpRec(pParent, nOffset, 8); + sal_uInt32 nSize = aTmpRec.calcSize(); + + if (pCount != NULL) + *pCount = nSize; + + switch (aTmpRec.getRecordType()) + {
</xsl:text> + <xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="dffrecord"]'> + <xsl:text> case </xsl:text> + <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='dffid']//UML:TaggedValue.dataValue"/> + <xsl:text>: + pResult = new Dff</xsl:text> + <xsl:value-of select="@name"/> + <xsl:text>(pParent, nOffset, nSize); + + break;
</xsl:text> + </xsl:for-each> + <xsl:text> + default: + pResult = new DffRecord(pParent, nOffset, nSize); + + break; + } + + return pResult; +} + </xsl:text> +</xsl:template> + +<xsl:template match="UML:Attribute" mode="initmembers"> + <xsl:variable name="stereotype"><xsl:value-of select=".//UML:Stereotype/@xmi.idref"/></xsl:variable> + <xsl:variable name="offset_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="offset"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable> + <xsl:variable name="offset"> + <xsl:if test='$offset_ != "" and not(starts-with($offset_, "0x"))'>0x</xsl:if> + <xsl:value-of select='$offset_'/> + </xsl:variable> + <xsl:variable name="shift"><xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="shift"]/UML:TaggedValue.dataValue'/></xsl:variable> + <xsl:variable name="mask_"><xsl:value-of select='translate(.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="mask"]/UML:TaggedValue.dataValue, "ABCDEFX", "abcdefx")'/></xsl:variable> + <xsl:variable name="mask"> + <xsl:if test='$mask_ != "" and not(starts-with($mask_, "0x"))'>0x</xsl:if> + <xsl:value-of select='$mask_'/> + </xsl:variable> + <xsl:variable name="type"><xsl:value-of select='.//UML:DataType/@xmi.idref'/></xsl:variable><xsl:variable name="saltype"> + <xsl:call-template name='saltype'> + <xsl:with-param name='type'> + <xsl:value-of select='$type'/> + </xsl:with-param> + </xsl:call-template> +</xsl:variable> + +/* +<xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref="comment"]/UML:TaggedValue.dataValue'/> + +Name: <xsl:value-of select='@name'/>(<xsl:value-of select='$stereotype'/>) +Offset: <xsl:value-of select='$offset'/> +Mask: <xsl:value-of select='$mask'/> +Shift: <xsl:value-of select='$shift'/> +*/ + +<xsl:choose> + <xsl:when test='$stereotype = "attribute"'> + m<xsl:value-of select='@name'/> = (get<xsl:value-of select="$type"/>(<xsl:value-of select="$offset"/>)<xsl:if test="string-length($mask)>0"> & <xsl:value-of select="$mask"/></xsl:if>)<xsl:if test="$shift>0"> >> <xsl:value-of select="$shift"/></xsl:if>; + </xsl:when> + <xsl:when test='$stereotype = "array"'> + <xsl:text> + { + sal_uInt32 nCount = </xsl:text> + <xsl:value-of select='.//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref = "arraycount"]/UML:TaggedValue.dataValue'/> + <xsl:text>; + m</xsl:text> + <xsl:value-of select='@name'/> + <xsl:text> = new </xsl:text><xsl:value-of select='$saltype'/><xsl:text>[nCount]; + + for (sal_uInt32 n = 0; n < nCount; ++n) + m</xsl:text><xsl:value-of select='@name'/><xsl:text>[n] = get</xsl:text> + <xsl:value-of select='$type'/> + <xsl:text>(</xsl:text> + <xsl:value-of select='$offset'/> + <xsl:text> + nIndex * sizeof(</xsl:text> + <xsl:value-of select='$saltype'/> + <xsl:text>)); + } + </xsl:text> + </xsl:when> + <xsl:when test='$stereotype = "string"'> + m<xsl:value-of select='@name'/> = getString(<xsl:value-of select='$offset'/>) + </xsl:when> +</xsl:choose> +</xsl:template> + +<xsl:template match="UML:Model" mode="isbooleandffopt"> +<xsl:text> +bool isBooleanDffOpt(sal_uInt32 nId) +{ + bool bResult = false; + + switch (nId) + {
</xsl:text> + <xsl:for-each select='.//UML:Class[.//UML:Stereotype/@xmi.idref="dffopt"]'> + <xsl:if test=".//UML:TagDefinition[@xmi.idref='isbool']"> + <xsl:text> case </xsl:text> + <xsl:value-of select=".//UML:TaggedValue[.//UML:TagDefinition/@xmi.idref='fopid']/UML:TaggedValue.dataValue"/> + <xsl:text>:
</xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text> + bResult = true; + break; + + default: + break; + } + + return bResult; +} +</xsl:text> +</xsl:template> + +<xsl:template name='idtoqname'> +<xsl:param name='id'/>NS_<xsl:value-of select='substring-before($id, ":")'/>::LN_<xsl:value-of select='substring-after($id, ":")'/> +</xsl:template> + +<xsl:template name="parenttype"> + <xsl:param name='type'/> + <xsl:value-of select='//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$type]/UML:Generalization.parent/UML:Class/@xmi.idref'/> +</xsl:template> + +<xsl:template name='saltype'> + <xsl:param name='type'/> + <xsl:param name='parenttype'/> + <xsl:choose> + <xsl:when test="$type='U8'">sal_uInt8</xsl:when> + <xsl:when test="$type='S8'">sal_Int8</xsl:when> + <xsl:when test="$type='U16'">sal_uInt16</xsl:when> + <xsl:when test="$type='S16'">sal_Int16</xsl:when> + <xsl:when test="$type='U32'">sal_uInt32</xsl:when> + <xsl:when test="$type='S32'">sal_Int32</xsl:when> + <xsl:when test="$type='String'">rtl::OUString</xsl:when> + <xsl:otherwise> + <xsl:text>doctok::Reference < </xsl:text> + <xsl:value-of select='$parenttype'/> + <xsl:text> >::Pointer_t</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name='typetype'> + <xsl:param name='type'/><xsl:choose> + <xsl:when test="$type='U8'">simple</xsl:when> + <xsl:when test="$type='S8'">simple</xsl:when> + <xsl:when test="$type='U16'">simple</xsl:when> + <xsl:when test="$type='S16'">simple</xsl:when> + <xsl:when test="$type='U32'">simple</xsl:when> + <xsl:when test="$type='S32'">simple</xsl:when> + <xsl:when test="$type='String'">string</xsl:when> + <xsl:when test="$type='Binary'">binary</xsl:when> + <xsl:otherwise>complex</xsl:otherwise> +</xsl:choose> +</xsl:template> + +<xsl:template name="valuetype"> + <xsl:param name="type"/> + <xsl:choose> + <xsl:when test='$type="U8"'>WW8IntValue</xsl:when> + <xsl:when test='$type="S8"'>WW8IntValue</xsl:when> + <xsl:when test='$type="U16"'>WW8IntValue</xsl:when> + <xsl:when test='$type="S16"'>WW8IntValue</xsl:when> + <xsl:when test='$type="U32"'>WW8IntValue</xsl:when> + <xsl:when test='$type="S32"'>WW8IntValue</xsl:when> + <xsl:otherwise>WW8PropertiesValue</xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="UML:Attribute" mode="valuetype"> + <xsl:call-template name="valuetype"> + <xsl:with-param name="type" select='.//UML:DataType/@xmi.idref'/> + </xsl:call-template> +</xsl:template> +</xsl:stylesheet> + diff --git a/writerfilter/source/doctok/tidyxmi.xsl b/writerfilter/source/doctok/tidyxmi.xsl new file mode 100644 index 000000000000..01bb577362a3 --- /dev/null +++ b/writerfilter/source/doctok/tidyxmi.xsl @@ -0,0 +1,89 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default"> +<xsl:output indent="yes"/> +<xsl:template match="/"> +<XMI xmi.version="1.2"> + <XMI.header> + <XMI.documentation/> + </XMI.header> + <XMI.content> + <UML:Model xmlns:UML="org.omg.xmi.namespace.UML" name="WW8Document" > + <UML:Namespace.ownedElement> + <xsl:apply-templates select=".//UML:Model/UML:Namespace.ownedElement"/> + </UML:Namespace.ownedElement> + </UML:Model> + </XMI.content> +</XMI> + +</xsl:template> + +<xsl:template match="UML:Namespace.ownedElement"> + <xsl:comment>Stereotypes </xsl:comment> + <xsl:copy-of select="UML:Stereotype"/> + <xsl:comment>Stereotypes</xsl:comment> + <xsl:comment>Datatypes </xsl:comment> + <xsl:copy-of select="UML:DataType"/> + <xsl:comment>Datatypes</xsl:comment> + <xsl:comment>Tag definitions </xsl:comment> + <xsl:copy-of select="UML:TagDefinition"/> + <xsl:comment>Tag definitions </xsl:comment> + <xsl:comment>Classes without stereotype</xsl:comment> + <xsl:apply-templates select="UML:Class[count(./UML:ModelElement.stereotype) = 0]"/> + <xsl:comment>Classes without stereotype</xsl:comment> + <xsl:comment>Resources</xsl:comment> + <xsl:copy-of select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='resource']"/> + <xsl:comment>Resources</xsl:comment> + <xsl:comment>WW8 resources</xsl:comment> + <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8resource' and count(UML:ModelElement.stereotype/UML:Stereotype[@xmi.idref='ww8sprm']) = 0]"/> + <xsl:comment>WW8 resources</xsl:comment> + <xsl:comment>SPRMS</xsl:comment> + <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8sprm']"/> + <xsl:comment>SPRMS</xsl:comment> + <xsl:comment>DFFS</xsl:comment> + <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffrecord']"/> + <xsl:comment>DFFS</xsl:comment> + <xsl:comment>DFFOPT</xsl:comment> + <xsl:apply-templates select="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffopt']"/> + <xsl:comment>DFFOPT</xsl:comment> +</xsl:template> + +<xsl:template match="UML:Class[count(UML:ModelElement.stereotype) = 0]"> + <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable> + <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment> + <xsl:copy-of select="."/> + <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/> + <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment> +</xsl:template> + +<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8resource' and count(UML:ModelElement.stereotype/UML:Stereotype[@xmi.idref='ww8sprm']) = 0]"> + <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable> + <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment> + <xsl:copy-of select="."/> + <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/> + <xsl:comment>Class <xsl:value-of select="@xmi.id"/></xsl:comment> +</xsl:template> + +<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='ww8sprm']"> + <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable> + <xsl:comment>SPRM <xsl:value-of select="@xmi.id"/></xsl:comment> + <xsl:copy-of select="."/> + <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/> + <xsl:comment>SPRM <xsl:value-of select="@xmi.id"/></xsl:comment> +</xsl:template> + +<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffrecord']"> + <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable> + <xsl:comment>DFF <xsl:value-of select="@xmi.id"/></xsl:comment> + <xsl:copy-of select="."/> + <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/> + <xsl:comment>DFF <xsl:value-of select="@xmi.id"/></xsl:comment> +</xsl:template> + +<xsl:template match="UML:Class[UML:ModelElement.stereotype/UML:Stereotype/@xmi.idref='dffopt']"> + <xsl:variable name="theid"><xsl:value-of select="@xmi.id"/></xsl:variable> + <xsl:comment>DFFOPT <xsl:value-of select="@xmi.id"/></xsl:comment> + <xsl:copy-of select="."/> + <xsl:copy-of select="//UML:Generalization[UML:Generalization.child/UML:Class/@xmi.idref=$theid]"/> + <xsl:comment>DFFOPT <xsl:value-of select="@xmi.id"/></xsl:comment> +</xsl:template> + +</xsl:stylesheet>
\ No newline at end of file diff --git a/writerfilter/source/doctok/util.hxx b/writerfilter/source/doctok/util.hxx new file mode 100644 index 000000000000..efa06a81cbda --- /dev/null +++ b/writerfilter/source/doctok/util.hxx @@ -0,0 +1,29 @@ +#ifndef INCLUDED_UTIL_HXX +#define INCLUDED_UTIL_HXX + +#include <string> +#include <iostream> + +namespace doctok { +using namespace ::std; + +/** + Assertion + + @bTest if false the assertion is raised +*/ +void util_assert(bool bTest); + +/** + Print string to ostream. + + Printable characters are passed without change. Non-printable + characters are replaced by '.'. + + @param o ostream for output + @param str string to print + */ +void printBytes(ostream & o, const string & str); +} + +#endif // INCLUDED_UTIL_HXX diff --git a/writerfilter/source/doctok/xmigen.el b/writerfilter/source/doctok/xmigen.el new file mode 100644 index 000000000000..d4afac3d3a76 --- /dev/null +++ b/writerfilter/source/doctok/xmigen.el @@ -0,0 +1,119 @@ +(defun insert-uml-class-begin (name) + (insert "<UML:Class xmi.id=\"" name "\" name=\"" name "\">\n")) + +(defun insert-uml-class-end () + (insert "</UML:Class>\n")) + +(defun insert-uml-stereotype (stereotype) + (insert "<UML:ModelElement.stereotype>\n") + (insert " <UML:Stereotype xmi.idref=\"" stereotype "\"/>\n") + (insert "</UML:ModelElement.stereotype>\n")) + + +(defun insert-uml-taggedvalue (value type) + (insert " <UML:ModelElement.taggedValue>\n") + (insert " <UML:TaggedValue>\n") + (insert " <UML:TaggedValue.dataValue>" value "</UML:TaggedValue.dataValue>\n") + (insert " <UML:TaggedValue.type>\n") + (insert " <UML:TagDefinition xmi.idref=\"" type "\"/>\n") + (insert " </UML:TaggedValue.type>\n") + (insert " </UML:TaggedValue>\n") + (insert " </UML:ModelElement.taggedValue>\n")) + +(defun insert-uml-attribute (type name offset bits mask shift comment attrid) + (insert "<UML:Classifier.feature>\n") + (insert " <UML:Attribute name=\"" name "\">\n") + (insert-uml-taggedvalue comment "comment") + (insert-uml-taggedvalue offset "offset") + (insert-uml-taggedvalue bits "bits") + (insert-uml-taggedvalue mask "mask") + (insert-uml-taggedvalue shift "shift") + (insert-uml-taggedvalue attrid "attrid") + (insert " <UML:StructuralFeature.type>\n") + (insert " <UML:DataType xmi.idref=\"" type "\"/>\n") + (insert " </UML:StructuralFeature.type>\n") + (insert " <UML:ModelElement.stereotype>\n") + (insert " <UML:Stereotype xmi.idref=\"attribute\"/>\n") + (insert " </UML:ModelElement.stereotype>\n") + (insert " </UML:Attribute>\n") + (insert "</UML:Classifier.feature>\n")) + +(defun insert-uml-attribute-array (type arraycount name offset bits mask shift comment attrid) + (insert "<UML:Classifier.feature>\n") + (insert " <UML:Attribute name=\"" name "\">\n") + (insert-uml-taggedvalue comment "comment") + (insert-uml-taggedvalue offset "offset") + (insert-uml-taggedvalue bits "bits") + (insert-uml-taggedvalue mask "mask") + (insert-uml-taggedvalue shift "shift") + (insert-uml-taggedvalue attrid "attrid") + (insert-uml-taggedvalue arraycount "arraycount") + (insert " <UML:StructuralFeature.type>\n") + (insert " <UML:DataType xmi.idref=\"" type "\"/>\n") + (insert " </UML:StructuralFeature.type>\n") + (insert " <UML:ModelElement.stereotype>\n") + (insert " <UML:Stereotype xmi.idref=\"array\"/>\n") + (insert " </UML:ModelElement.stereotype>\n") + (insert " </UML:Attribute>\n") + (insert "</UML:Classifier.feature>\n")) + +(defun insert-uml-operation (type name comment opid) + (insert "<UML:Classifier.feature>\n") + (insert " <UML:Operation name=\"" name "\" >\n") + (insert-uml-taggedvalue opid "opid") + (insert " <UML:BehavioralFeature.parameter>\n") + (insert " <UML:Parameter kind=\"return\" name=\"return\">\n") + (insert " <UML:Parameter.type>\n") + (insert " <UML:Class xmi.idref=\"" type "\" />\n") + (insert " </UML:Parameter.type>\n") + (insert " </UML:Parameter>\n") + (insert " </UML:BehavioralFeature.parameter>\n") + (insert " <UML:ModelElement.stereotype>\n") + (insert " <UML:Stereotype xmi.idref=\"attribute\" />\n") + (insert " </UML:ModelElement.stereotype>\n") + (insert " </UML:Operation>\n") + (insert "</UML:Classifier.feature>\n")) + +(defun insert-uml-binary (name comment opid) + (insert "<UML:Classifier.feature>\n") + (insert " <UML:Operation name=\"" name "\" >\n") + (insert-uml-taggedvalue opid "opid") + (insert " <UML:BehavioralFeature.parameter>\n") + (insert " <UML:Parameter kind=\"return\" name=\"return\">\n") + (insert " <UML:Parameter.type>\n") + (insert " <UML:Class xmi.idref=\"Binary\" />\n") + (insert " </UML:Parameter.type>\n") + (insert " </UML:Parameter>\n") + (insert " </UML:BehavioralFeature.parameter>\n") + (insert " <UML:ModelElement.stereotype>\n") + (insert " <UML:Stereotype xmi.idref=\"binary\" />\n") + (insert " </UML:ModelElement.stereotype>\n") + (insert " </UML:Operation>\n") + (insert "</UML:Classifier.feature>\n")) + +(defun insert-uml-operation-array (type name comment opid) + (insert "<UML:Classifier.feature>\n") + (insert " <UML:Operation name=\"" name "\" >\n") + (insert-uml-taggedvalue opid "opid") + (insert " <UML:BehavioralFeature.parameter>\n") + (insert " <UML:Parameter kind=\"return\" name=\"return\">\n") + (insert " <UML:Parameter.type>\n") + (insert " <UML:Class xmi.idref=\"" type "\" />\n") + (insert " </UML:Parameter.type>\n") + (insert " </UML:Parameter>\n") + (insert " </UML:BehavioralFeature.parameter>\n") + (insert " <UML:ModelElement.stereotype>\n") + (insert " <UML:Stereotype xmi.idref=\"array\" />\n") + (insert " </UML:ModelElement.stereotype>\n") + (insert " </UML:Operation>\n") + (insert "</UML:Classifier.feature>\n")) + +(defun insert-uml-generalization (parent child) + (insert "<UML:Generalization isSpecification=\"false\" xmi.id=\"" child "-" parent "\" >\n") + (insert " <UML:Generalization.child>\n") + (insert " <UML:Class xmi.idref=\"" child "\" />\n") + (insert " </UML:Generalization.child>\n") + (insert " <UML:Generalization.parent>\n") + (insert " <UML:Class xmi.idref=\"" parent "\" />\n") + (insert " </UML:Generalization.parent>\n") + (insert "</UML:Generalization>\n")) diff --git a/writerfilter/source/doctok/xmistat.xsl b/writerfilter/source/doctok/xmistat.xsl new file mode 100644 index 000000000000..e8f76a8004a3 --- /dev/null +++ b/writerfilter/source/doctok/xmistat.xsl @@ -0,0 +1,10 @@ +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:UML = 'org.omg.xmi.namespace.UML' xml:space="default"> +<xsl:output indent="yes"/> +<xsl:template match="/"> + <xsl:for-each select="//UML:Class[@xmi.id]"> + <xsl:value-of select="@xmi.id"/> + <xsl:text>
</xsl:text> + </xsl:for-each> + <xsl:value-of select="count(//UML:Class)"/> +</xsl:template> +</xsl:stylesheet>
\ No newline at end of file diff --git a/writerfilter/source/doctok/xmitocpp b/writerfilter/source/doctok/xmitocpp new file mode 100755 index 000000000000..a8aa08f7c002 --- /dev/null +++ b/writerfilter/source/doctok/xmitocpp @@ -0,0 +1,7 @@ +#!/bin/tcsh + +xalan -xsl resources.xsl -in resources.xmi | indent > resources.hxx & +xalan -xsl resourcesimpl.xsl -in resources.xmi | indent > resources.cxx & +xalan -xsl resourceids.xsl -in resources.xmi | indent > ../../inc/doctok/resourceids.hxx & + +wait diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx new file mode 100644 index 000000000000..9a1b2eb621f8 --- /dev/null +++ b/writerfilter/source/filter/ImportFilter.cxx @@ -0,0 +1,160 @@ +#ifndef _OSL_DIAGNOSE_H_ +#include <osl/diagnose.h> +#endif +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif +#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_HPP_ +#include <com/sun/star/io/XInputStream.hpp> +#endif +#ifndef INCLUDED_DOMAINMAPPER_HXX +#include <dmapper/DomainMapper.hxx> +#endif +#ifndef _WRITERFILTER_HXX +#include <WriterFilter.hxx> +#endif +#ifndef INCLUDED_WW8_DOCUMENT_HXX +#include <doctok/WW8Document.hxx> +#endif + +using namespace ::rtl; +using namespace ::com::sun::star; + +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescriptor ) + throw (uno::RuntimeException) +{ + sal_Int32 nLength = aDescriptor.getLength(); + const beans::PropertyValue * pValue = aDescriptor.getConstArray(); + uno::Reference < io::XInputStream > xInputStream; + for ( sal_Int32 i = 0 ; i < nLength; i++) + { + if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) ) + pValue[i].Value >>= xInputStream; + } + if ( !xInputStream.is() ) + { + return sal_False; + } + //create the tokenizer and domain mapper + doctok::WW8Stream::Pointer_t pDocStream = doctok::WW8DocumentFactory::createStream(m_xContext, xInputStream); + doctok::WW8Document::Pointer_t pDocument = doctok::WW8DocumentFactory::createDocument(pDocStream); + doctok::Stream::Pointer_t pStream(new dmapper::DomainMapper(m_xDoc)); + pDocument->resolve(*pStream); + + return sal_True; +} +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void WriterFilter::cancel( ) throw (uno::RuntimeException) +{ +} + +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void WriterFilter::setTargetDocument( const uno::Reference< lang::XComponent >& xDoc ) + throw (lang::IllegalArgumentException, uno::RuntimeException) +{ + m_xDoc = xDoc; +} + +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +OUString WriterFilter::detect( uno::Sequence< beans::PropertyValue >& /*Descriptor*/ ) + throw( uno::RuntimeException ) +{ + OUString sTypeName; + // TODO: place the detection here + return sTypeName; +} + + +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void WriterFilter::initialize( const uno::Sequence< uno::Any >& aArguments ) throw (uno::Exception, uno::RuntimeException) +{ + uno::Sequence < beans::PropertyValue > aAnySeq; + sal_Int32 nLength = aArguments.getLength(); + if ( nLength && ( aArguments[0] >>= aAnySeq ) ) + { + const beans::PropertyValue * pValue = aAnySeq.getConstArray(); + nLength = aAnySeq.getLength(); + for ( sal_Int32 i = 0 ; i < nLength; i++) + { + if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "Type" ) ) ) + { + pValue[i].Value >>= m_sFilterName; + break; + } + } + } +} +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +OUString WriterFilter_getImplementationName () throw (uno::RuntimeException) +{ + return OUString ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.WriterFilter" ) ); +} + +#define SERVICE_NAME1 "com.sun.star.document.ImportFilter" +#define SERVICE_NAME2 "com.sun.star.document.ExtendedTypeDetection" +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Bool WriterFilter_supportsService( const OUString& ServiceName ) throw (uno::RuntimeException) +{ + return (ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME1 ) ) || + ServiceName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM ( SERVICE_NAME2 ) ) ); +} +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Sequence< OUString > WriterFilter_getSupportedServiceNames( ) throw (uno::RuntimeException) +{ + uno::Sequence < OUString > aRet(2); + OUString* pArray = aRet.getArray(); + pArray[0] = OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME1 ) ); + pArray[1] = OUString ( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME2 ) ); + return aRet; +} +#undef SERVICE_NAME2 +#undef SERVICE_NAME1 + +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Reference< uno::XInterface > WriterFilter_createInstance( const uno::Reference< uno::XComponentContext >& xContext) + throw( uno::Exception ) +{ + return (cppu::OWeakObject*) new WriterFilter( xContext ); +} + +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +OUString WriterFilter::getImplementationName( ) throw (uno::RuntimeException) +{ + return WriterFilter_getImplementationName(); +} +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +sal_Bool WriterFilter::supportsService( const OUString& rServiceName ) throw (uno::RuntimeException) +{ + return WriterFilter_supportsService( rServiceName ); +} +/*-- 09.06.2006 10:15:20--------------------------------------------------- + + -----------------------------------------------------------------------*/ +uno::Sequence< OUString > WriterFilter::getSupportedServiceNames( ) throw (uno::RuntimeException) +{ + return WriterFilter_getSupportedServiceNames(); +} + diff --git a/writerfilter/source/filter/WriterFilter.cxx b/writerfilter/source/filter/WriterFilter.cxx new file mode 100644 index 000000000000..12d9838c03f7 --- /dev/null +++ b/writerfilter/source/filter/WriterFilter.cxx @@ -0,0 +1,39 @@ +#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_ +#include <cppuhelper/implementationentry.hxx> +#endif + +#ifndef _WRITERFILTER_HXX +#include <WriterFilter.hxx> +#endif + +using namespace ::rtl; +using namespace ::cppu; +using namespace ::com::sun::star; + +extern "C" +{ +/* shared lib exports implemented with helpers */ +static struct ::cppu::ImplementationEntry s_component_entries [] = +{ + WriterFilter_createInstance, WriterFilter_getImplementationName, WriterFilter_getSupportedServiceNames, ::cppu::createSingleComponentFactory, 0, 0, + { 0, 0, 0, 0, 0, 0 } // terminate with NULL +}; + +void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ ) +{ + *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; +} + +sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry ) +{ + return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries ); +} + +void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry ) +{ + return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, s_component_entries ); +} + +} //extern "C" + + diff --git a/writerfilter/source/filter/WriterFilter.hxx b/writerfilter/source/filter/WriterFilter.hxx new file mode 100644 index 000000000000..4c4961f6376d --- /dev/null +++ b/writerfilter/source/filter/WriterFilter.hxx @@ -0,0 +1,94 @@ +#ifndef _WRITERFILTER_HXX +#define _WRITERFILTER_HXX + +#ifndef _COM_SUN_STAR_DOCUMENT_XFILTER_HPP_ +#include <com/sun/star/document/XFilter.hpp> +#endif +#ifndef _COM_SUN_STAR_DOCUMENT_XIMPORTER_HPP_ +#include <com/sun/star/document/XImporter.hpp> +#endif +#ifndef _COM_SUN_STAR_DOCUMENT_XEXTENDEDFILTERDETECTION_HPP_ +#include <com/sun/star/document/XExtendedFilterDetection.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XINITIALIZATION_HPP_ +#include <com/sun/star/lang/XInitialization.hpp> +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include <com/sun/star/lang/XServiceInfo.hpp> +#endif +#ifndef _COM_SUN_STAR_XML_SAX_XDOCUMENTHANDLER_HPP_ +#include <com/sun/star/xml/sax/XDocumentHandler.hpp> +#endif +#ifndef _CPPUHELPER_IMPLBASE5_HXX_ +#include <cppuhelper/implbase5.hxx> +#endif +#ifndef INCLUDED_WRITERFILTERDLLAPI_H +#include <WriterFilterDllApi.hxx> +#endif + +class WRITERFILTER_DLLPUBLIC WriterFilter : public cppu::WeakImplHelper5 +< + com::sun::star::document::XFilter, + com::sun::star::document::XImporter, + com::sun::star::document::XExtendedFilterDetection, + com::sun::star::lang::XInitialization, + com::sun::star::lang::XServiceInfo +> +{ + +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent > m_xDoc; + ::rtl::OUString m_sFilterName; + ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > m_xHandler; + + +public: + WriterFilter( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext) + : m_xContext( rxContext ) {} + virtual ~WriterFilter() {} + + // XFilter + virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aDescriptor ) + throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL cancel( ) + throw (::com::sun::star::uno::RuntimeException); + + // XImporter + virtual void SAL_CALL setTargetDocument( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xDoc ) + throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); + + //XExtendedFilterDetection + virtual ::rtl::OUString SAL_CALL detect( com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >& Descriptor ) + throw( com::sun::star::uno::RuntimeException ); + + // XInitialization + virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) + throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); + + // XServiceInfo + virtual ::rtl::OUString SAL_CALL getImplementationName( ) + throw (::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) + throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() + throw (::com::sun::star::uno::RuntimeException); + +}; + +::rtl::OUString WriterFilter_getImplementationName() + throw ( ::com::sun::star::uno::RuntimeException ); + +sal_Bool SAL_CALL WriterFilter_supportsService( const ::rtl::OUString& ServiceName ) + throw ( ::com::sun::star::uno::RuntimeException ); + +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL WriterFilter_getSupportedServiceNames( ) + throw ( ::com::sun::star::uno::RuntimeException ); + +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL WriterFilter_createInstance( + const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XComponentContext > &xContext) + throw( ::com::sun::star::uno::Exception ); + +#endif + diff --git a/writerfilter/source/filter/makefile.mk b/writerfilter/source/filter/makefile.mk new file mode 100644 index 000000000000..84557bac6cd8 --- /dev/null +++ b/writerfilter/source/filter/makefile.mk @@ -0,0 +1,24 @@ +PRJ=..$/.. +PRJNAME=writerfilter +TARGET=filter +GEN_HID=TRUE + +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ---------------------------------- + +.INCLUDE : settings.mk +CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION + +# --- Files ------------------------------------- + +SLOFILES= $(SLO)$/WriterFilter.obj \ + $(SLO)$/ImportFilter.obj + + +# --- Targets ---------------------------------- + +.INCLUDE : target.mk + + + diff --git a/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsd b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsd Binary files differnew file mode 100644 index 000000000000..41ccbcd1e9b0 --- /dev/null +++ b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsd diff --git a/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsd b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsd Binary files differnew file mode 100644 index 000000000000..ce1a03386cf9 --- /dev/null +++ b/writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsd diff --git a/writerfilter/source/odiapi/qname/resource/rdfxml.rng b/writerfilter/source/odiapi/qname/resource/rdfxml.rng new file mode 100644 index 000000000000..65ea16ebfa22 --- /dev/null +++ b/writerfilter/source/odiapi/qname/resource/rdfxml.rng @@ -0,0 +1,453 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + RELAX NG Compact Schema for RDF/XML Syntax + + This schema is for information only and NON-NORMATIVE + + It is based on one originally written by James Clark in + http://lists.w3.org/Archives/Public/www-rdf-comments/2001JulSep/0248.html + and updated with later changes. + +--> +<grammar xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" ns="http://www.w3.org/XML/1998/namespace" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns:xml="http://www.w3.org/XML/1998/namespace"> + <start> + <ref name="doc"/> + </start> + <!-- I cannot seem to do this in RNGC so they are expanded in-line --> + <!-- + coreSyntaxTerms = rdf:RDF | rdf:ID | rdf:about | rdf:parseType | rdf:resource | rdf:nodeID | rdf:datatype + syntaxTerms = coreSyntaxTerms | rdf:Description | rdf:li + oldTerms = rdf:aboutEach | rdf:aboutEachPrefix | rdf:bagID + nodeElementURIs = * - ( coreSyntaxTerms | rdf:li | oldTerms ) + propertyElementURIs = * - ( coreSyntaxTerms | rdf:Description | oldTerms ) + propertyAttributeURIs = * - ( coreSyntaxTerms | rdf:Description | rdf:li | oldTerms ) + --> + <!-- + Also needed to allow rdf:li on all property element productions + since we can't capture the rdf:li rewriting to rdf_<n> in relaxng + --> + <!-- Need to add these explicitly --> + <define name="xmllang"> + <attribute name="xml:lang"/> + </define> + <define name="xmlbase"> + <attribute name="xml:base"/> + </define> + <!-- and to forbid every other xml:* attribute, element --> + <define name="doc"> + <ref name="RDF"/> + </define> + <define name="RDF"> + <element name="rdf:RDF"> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <ref name="nodeElementList"/> + </element> + </define> + <define name="nodeElementList"> + <zeroOrMore> + <ref name="nodeElement"/> + </zeroOrMore> + </define> + <!-- + Should be something like: + ws* , ( nodeElement , ws* )* + but RELAXNG does this by default, ignoring whitespace separating tags. + --> + <define name="nodeElement"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:li</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + </except> + </anyName> + <optional> + <choice> + <ref name="idAttr"/> + <ref name="nodeIdAttr"/> + <ref name="aboutAttr"/> + </choice> + </optional> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <zeroOrMore> + <ref name="propertyAttr"/> + </zeroOrMore> + <ref name="propertyEltList"/> + </element> + </define> + <!-- + It is not possible to say "and not things + beginning with _ in the rdf: namespace" in RELAX NG. + --> + <define name="ws"> + <value> </value> + </define> + <!-- + Not used in this RELAX NG schema; but should be any legal XML + whitespace defined by http://www.w3.org/TR/2000/REC-xml-20001006#NT-S + --> + <define name="propertyEltList"> + <zeroOrMore> + <ref name="propertyElt"/> + </zeroOrMore> + </define> + <!-- + Should be something like: + ws* , ( propertyElt , ws* )* + but RELAXNG does this by default, ignoring whitespace separating tags. + --> + <define name="propertyElt"> + <choice> + <ref name="resourcePropertyElt"/> + <ref name="literalPropertyElt"/> + <ref name="parseTypeLiteralPropertyElt"/> + <ref name="parseTypeResourcePropertyElt"/> + <ref name="parseTypeCollectionPropertyElt"/> + <ref name="parseTypeOtherPropertyElt"/> + <ref name="emptyPropertyElt"/> + </choice> + </define> + <define name="resourcePropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <ref name="idAttr"/> + </optional> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <ref name="nodeElement"/> + </element> + </define> + <define name="literalPropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <choice> + <ref name="idAttr"/> + <ref name="datatypeAttr"/> + </choice> + </optional> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <text/> + </element> + </define> + <define name="parseTypeLiteralPropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <ref name="idAttr"/> + </optional> + <ref name="parseLiteral"/> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <ref name="literal"/> + </element> + </define> + <define name="parseTypeResourcePropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <ref name="idAttr"/> + </optional> + <ref name="parseResource"/> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <ref name="propertyEltList"/> + </element> + </define> + <define name="parseTypeCollectionPropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <ref name="idAttr"/> + </optional> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <ref name="parseCollection"/> + <ref name="nodeElementList"/> + </element> + </define> + <define name="parseTypeOtherPropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <ref name="idAttr"/> + </optional> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <ref name="parseOther"/> + <ref name="any"/> + </element> + </define> + <define name="emptyPropertyElt"> + <element> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <optional> + <ref name="idAttr"/> + </optional> + <optional> + <choice> + <ref name="resourceAttr"/> + <ref name="nodeIdAttr"/> + </choice> + </optional> + <optional> + <ref name="xmllang"/> + </optional> + <optional> + <ref name="xmlbase"/> + </optional> + <zeroOrMore> + <ref name="propertyAttr"/> + </zeroOrMore> + </element> + </define> + <define name="idAttr"> + <attribute name="rdf:ID"> + <ref name="IDsymbol"/> + </attribute> + </define> + <define name="nodeIdAttr"> + <attribute name="rdf:nodeID"> + <ref name="IDsymbol"/> + </attribute> + </define> + <define name="aboutAttr"> + <attribute name="rdf:about"> + <ref name="URI-reference"/> + </attribute> + </define> + <define name="propertyAttr"> + <attribute> + <anyName> + <except> + <nsName ns=""/> + <name>rdf:RDF</name> + <name>rdf:ID</name> + <name>rdf:about</name> + <name>rdf:parseType</name> + <name>rdf:resource</name> + <name>rdf:nodeID</name> + <name>rdf:datatype</name> + <name>rdf:li</name> + <name>rdf:Description</name> + <name>rdf:aboutEach</name> + <name>rdf:aboutEachPrefix</name> + <name>rdf:bagID</name> + <nsName/> + </except> + </anyName> + <data type="string" datatypeLibrary=""/> + </attribute> + </define> + <define name="resourceAttr"> + <attribute name="rdf:resource"> + <ref name="URI-reference"/> + </attribute> + </define> + <define name="datatypeAttr"> + <attribute name="rdf:datatype"> + <ref name="URI-reference"/> + </attribute> + </define> + <define name="parseLiteral"> + <attribute name="rdf:parseType"> + <value>Literal</value> + </attribute> + </define> + <define name="parseResource"> + <attribute name="rdf:parseType"> + <value>Resource</value> + </attribute> + </define> + <define name="parseCollection"> + <attribute name="rdf:parseType"> + <value>Collection</value> + </attribute> + </define> + <define name="parseOther"> + <attribute name="rdf:parseType"/> + </define> + <define name="URI-reference"> + <data type="string" datatypeLibrary=""/> + </define> + <define name="literal"> + <ref name="any"/> + </define> + <define name="IDsymbol"> + <data type="NMTOKEN"/> + </define> + <define name="any"> + <mixed> + <zeroOrMore> + <element> + <anyName/> + <zeroOrMore> + <attribute> + <anyName/> + </attribute> + </zeroOrMore> + <ref name="any"/> + </element> + </zeroOrMore> + </mixed> + </define> +</grammar> diff --git a/writerfilter/source/odiapi/qname/resource/rng.rng b/writerfilter/source/odiapi/qname/resource/rng.rng new file mode 100644 index 000000000000..a2fb8787571e --- /dev/null +++ b/writerfilter/source/odiapi/qname/resource/rng.rng @@ -0,0 +1,331 @@ +<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" + ns="http://relaxng.org/ns/structure/1.0" + xmlns:rng="http://relaxng.org/ns/structure/1.0" + xmlns="http://relaxng.org/ns/structure/1.0"> + + <start> + <ref name="pattern"/> + </start> + + <define name="pattern"> + <choice> + <element name="element"> + <choice> + <attribute name="name"> + <data type="QName"/> + </attribute> + <ref name="open-name-class"/> + </choice> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="attribute"> + <ref name="common-atts"/> + <choice> + <attribute name="name"> + <data type="QName"/> + </attribute> + <ref name="open-name-class"/> + </choice> + <interleave> + <ref name="other"/> + <optional> + <ref name="pattern"/> + </optional> + </interleave> + </element> + <element name="group"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="interleave"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="choice"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="optional"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="zeroOrMore"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="oneOrMore"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="list"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="mixed"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + <element name="ref"> + <attribute name="name"> + <data type="NCName"/> + </attribute> + <ref name="common-atts"/> + </element> + <element name="parentRef"> + <attribute name="name"> + <data type="NCName"/> + </attribute> + <ref name="common-atts"/> + </element> + <element name="empty"> + <ref name="common-atts"/> + <ref name="other"/> + </element> + <element name="text"> + <ref name="common-atts"/> + <ref name="other"/> + </element> + <element name="value"> + <optional> + <attribute name="type"> + <data type="NCName"/> + </attribute> + </optional> + <ref name="common-atts"/> + <text/> + </element> + <element name="data"> + <attribute name="type"> + <data type="NCName"/> + </attribute> + <ref name="common-atts"/> + <interleave> + <ref name="other"/> + <group> + <zeroOrMore> + <element name="param"> + <attribute name="name"> + <data type="NCName"/> + </attribute> + <text/> + </element> + </zeroOrMore> + <optional> + <element name="except"> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + </optional> + </group> + </interleave> + </element> + <element name="notAllowed"> + <ref name="common-atts"/> + <ref name="other"/> + </element> + <element name="externalRef"> + <attribute name="href"> + <data type="anyURI"/> + </attribute> + <ref name="common-atts"/> + <ref name="other"/> + </element> + <element name="grammar"> + <ref name="common-atts"/> + <ref name="grammar-content"/> + </element> + </choice> + </define> + + <define name="grammar-content"> + <interleave> + <ref name="other"/> + <zeroOrMore> + <choice> + <ref name="start-element"/> + <ref name="define-element"/> + <element name="div"> + <ref name="common-atts"/> + <ref name="grammar-content"/> + </element> + <element name="include"> + <attribute name="href"> + <data type="anyURI"/> + </attribute> + <ref name="common-atts"/> + <ref name="include-content"/> + </element> + </choice> + </zeroOrMore> + </interleave> + </define> + + <define name="include-content"> + <interleave> + <ref name="other"/> + <zeroOrMore> + <choice> + <ref name="start-element"/> + <ref name="define-element"/> + <element name="div"> + <ref name="common-atts"/> + <ref name="include-content"/> + </element> + </choice> + </zeroOrMore> + </interleave> + </define> + + <define name="start-element"> + <element name="start"> + <ref name="combine-att"/> + <ref name="common-atts"/> + <ref name="open-pattern"/> + </element> + </define> + + <define name="define-element"> + <element name="define"> + <attribute name="name"> + <data type="NCName"/> + </attribute> + <ref name="combine-att"/> + <ref name="common-atts"/> + <ref name="open-patterns"/> + </element> + </define> + + <define name="combine-att"> + <optional> + <attribute name="combine"> + <choice> + <value>choice</value> + <value>interleave</value> + </choice> + </attribute> + </optional> + </define> + + <define name="open-patterns"> + <interleave> + <ref name="other"/> + <oneOrMore> + <ref name="pattern"/> + </oneOrMore> + </interleave> + </define> + + <define name="open-pattern"> + <interleave> + <ref name="other"/> + <ref name="pattern"/> + </interleave> + </define> + + <define name="name-class"> + <choice> + <element name="name"> + <ref name="common-atts"/> + <data type="QName"/> + </element> + <element name="anyName"> + <ref name="common-atts"/> + <ref name="except-name-class"/> + </element> + <element name="nsName"> + <ref name="common-atts"/> + <ref name="except-name-class"/> + </element> + <element name="choice"> + <ref name="common-atts"/> + <ref name="open-name-classes"/> + </element> + </choice> + </define> + + <define name="except-name-class"> + <interleave> + <ref name="other"/> + <optional> + <element name="except"> + <ref name="open-name-classes"/> + </element> + </optional> + </interleave> + </define> + + <define name="open-name-classes"> + <interleave> + <ref name="other"/> + <oneOrMore> + <ref name="name-class"/> + </oneOrMore> + </interleave> + </define> + + <define name="open-name-class"> + <interleave> + <ref name="other"/> + <ref name="name-class"/> + </interleave> + </define> + + <define name="common-atts"> + <optional> + <attribute name="ns"/> + </optional> + <optional> + <attribute name="datatypeLibrary"> + <data type="anyURI"/> + </attribute> + </optional> + <zeroOrMore> + <attribute> + <anyName> + <except> + <nsName/> + <nsName ns=""/> + </except> + </anyName> + </attribute> + </zeroOrMore> + </define> + + <define name="other"> + <zeroOrMore> + <element> + <anyName> + <except> + <nsName/> + </except> + </anyName> + <zeroOrMore> + <choice> + <attribute> + <anyName/> + </attribute> + <text/> + <ref name="any"/> + </choice> + </zeroOrMore> + </element> + </zeroOrMore> + </define> + + <define name="any"> + <element> + <anyName/> + <zeroOrMore> + <choice> + <attribute> + <anyName/> + </attribute> + <text/> + <ref name="any"/> + </choice> + </zeroOrMore> + </element> + </define> + +</grammar> diff --git a/writerfilter/source/odiapi/qname/resource/rtf.rtfs b/writerfilter/source/odiapi/qname/resource/rtf.rtfs new file mode 100644 index 000000000000..45469a32ea83 --- /dev/null +++ b/writerfilter/source/odiapi/qname/resource/rtf.rtfs @@ -0,0 +1,1385 @@ +<?xml version="1.0" ?> +<rtfs:definition xmlns:rtfs="urn:rtf:schema" xmlns:rtf="urn:rtf:1.7"> + <rtfs:token name="rtf:ab" type="rtfs:Toggle" /> + <rtfs:token name="rtf:absh" type="rtfs:Value" /> + <rtfs:token name="rtf:abslock" type="rtfs:Flag" /> + <rtfs:token name="rtf:absnoovrlp" type="rtfs:Toggle" /> + <rtfs:token name="rtf:absw" type="rtfs:Value" /> + <rtfs:token name="rtf:acaps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:acccomma" type="rtfs:Toggle" /> + <rtfs:token name="rtf:accdot" type="rtfs:Toggle" /> + <rtfs:token name="rtf:accnone" type="rtfs:Toggle" /> + <rtfs:token name="rtf:acf" type="rtfs:Value" /> + <rtfs:token name="rtf:additive" type="rtfs:Flag" /> + <rtfs:token name="rtf:adjustright" type="rtfs:Flag" /> + <rtfs:token name="rtf:adn" type="rtfs:Value" /> + <rtfs:token name="rtf:aenddoc" type="rtfs:Flag" /> + <rtfs:token name="rtf:aendnotes" type="rtfs:Flag" /> + <rtfs:token name="rtf:aexpnd" type="rtfs:Value" /> + <rtfs:token name="rtf:af" type="rtfs:Value" /> + <rtfs:token name="rtf:affixed" type="rtfs:Flag" /> + <rtfs:token name="rtf:afs" type="rtfs:Value" /> + <rtfs:token name="rtf:aftnbj" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftncn" type="rtfs:Destination" /> + <rtfs:token name="rtf:aftnnalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnar" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnauc" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnchi" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnchosung" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnncnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnndbar" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnndbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnndbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnndbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnndbnumt" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnngbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnngbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnngbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnngbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnrlc" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnruc" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnzodiac" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnzodiacd" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnnzodiacl" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnrestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnrstcont" type="rtfs:Flag" /> + <rtfs:token name="rtf:aftnsep" type="rtfs:Destination" /> + <rtfs:token name="rtf:aftnsepc" type="rtfs:Destination" /> + <rtfs:token name="rtf:aftnstart" type="rtfs:Value" /> + <rtfs:token name="rtf:aftntj" type="rtfs:Flag" /> + <rtfs:token name="rtf:ai" type="rtfs:Toggle" /> + <rtfs:token name="rtf:alang" type="rtfs:Value" /> + <rtfs:token name="rtf:allowfieldendsel" type="rtfs:Flag" /> + <rtfs:token name="rtf:allprot" type="rtfs:Flag" /> + <rtfs:token name="rtf:alntblind" type="rtfs:Flag" /> + <rtfs:token name="rtf:alt" type="rtfs:Flag" /> + <rtfs:token name="rtf:animtext" type="rtfs:Value" /> + <rtfs:token name="rtf:annotation" type="rtfs:Destination" /> + <rtfs:token name="rtf:annotprot" type="rtfs:Flag" /> + <rtfs:token name="rtf:ansi" type="rtfs:Flag" /> + <rtfs:token name="rtf:ansicpg" type="rtfs:Value" /> + <rtfs:token name="rtf:aoutl" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ApplyBrkRules" type="rtfs:Flag" /> + <rtfs:token name="rtf:ascaps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ashad" type="rtfs:Toggle" /> + <rtfs:token name="rtf:asianbrkrule" type="rtfs:Flag" /> + <rtfs:token name="rtf:aspalpha" type="rtfs:Toggle" /> + <rtfs:token name="rtf:aspnum" type="rtfs:Toggle" /> + <rtfs:token name="rtf:astrike" type="rtfs:Toggle" /> + <rtfs:token name="rtf:atnauthor" type="rtfs:Destination" /> + <rtfs:token name="rtf:atndate" type="rtfs:Destination" /> + <rtfs:token name="rtf:atnicn" type="rtfs:Destination" /> + <rtfs:token name="rtf:atnid" type="rtfs:Destination" /> + <rtfs:token name="rtf:atnparent" type="rtfs:Destination" /> + <rtfs:token name="rtf:atnref" type="rtfs:Destination" /> + <rtfs:token name="rtf:atntime" type="rtfs:Destination" /> + <rtfs:token name="rtf:atrfend" type="rtfs:Destination" /> + <rtfs:token name="rtf:atrfstart" type="rtfs:Destination" /> + <rtfs:token name="rtf:aul" type="rtfs:Toggle" /> + <rtfs:token name="rtf:auld" type="rtfs:Toggle" /> + <rtfs:token name="rtf:auldb" type="rtfs:Toggle" /> + <rtfs:token name="rtf:aulnone" type="rtfs:Toggle" /> + <rtfs:token name="rtf:aulw" type="rtfs:Toggle" /> + <rtfs:token name="rtf:aup" type="rtfs:Value" /> + <rtfs:token name="rtf:author" type="rtfs:Destination" /> + <rtfs:token name="rtf:b" type="rtfs:Toggle" /> + <rtfs:token name="rtf:background" type="rtfs:Destination" /> + <rtfs:token name="rtf:bdbfhdr" type="rtfs:Flag" /> + <rtfs:token name="rtf:bdrrlswsix" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdkbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdkcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdkdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdkfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdkhoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgdkvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:bghoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:bgvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:bin" type="rtfs:Value" /> + <rtfs:token name="rtf:binfsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:binsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:bkmkcolf" type="rtfs:Value" /> + <rtfs:token name="rtf:bkmkcoll" type="rtfs:Value" /> + <rtfs:token name="rtf:bkmkend" type="rtfs:Destination" /> + <rtfs:token name="rtf:bkmkpub" type="rtfs:Flag" /> + <rtfs:token name="rtf:bkmkstart" type="rtfs:Destination" /> + <rtfs:token name="rtf:bliptag" type="rtfs:Value" /> + <rtfs:token name="rtf:blipuid" type="rtfs:Value" /> + <rtfs:token name="rtf:blipupi" type="rtfs:Value" /> + <rtfs:token name="rtf:blue" type="rtfs:Value" /> + <rtfs:token name="rtf:bookfold" type="rtfs:Flag" /> + <rtfs:token name="rtf:bookfoldrev" type="rtfs:Flag" /> + <rtfs:token name="rtf:bookfoldsheets" type="rtfs:Value" /> + <rtfs:token name="rtf:box" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrart" type="rtfs:Value" /> + <rtfs:token name="rtf:brdrb" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrbar" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrbtw" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrcf" type="rtfs:Value" /> + <rtfs:token name="rtf:brdrdash" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrdashd" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrdashdd" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrdashdotstr" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrdashsm" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrdb" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrdot" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdremboss" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrengrave" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrframe" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrhair" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrinset" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrnil" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdroutset" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrr" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrs" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrsh" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrt" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtbl" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrth" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrthtnlg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrthtnmg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrthtnsg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtnthlg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtnthmg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtnthsg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtnthtnlg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtnthtnmg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtnthtnsg" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrtriple" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrw" type="rtfs:Value" /> + <rtfs:token name="rtf:brdrwavy" type="rtfs:Flag" /> + <rtfs:token name="rtf:brdrwavydb" type="rtfs:Flag" /> + <rtfs:token name="rtf:brkfrm" type="rtfs:Flag" /> + <rtfs:token name="rtf:brsp" type="rtfs:Value" /> + <rtfs:token name="rtf:bullet" type="rtfs:Symbol" /> + <rtfs:token name="rtf:buptim" type="rtfs:Destination" /> + <rtfs:token name="rtf:bxe" type="rtfs:Flag" /> + <rtfs:token name="rtf:caps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:category" type="rtfs:Destination" /> + <rtfs:token name="rtf:cb" type="rtfs:Value" /> + <rtfs:token name="rtf:cbpat" type="rtfs:Value" /> + <rtfs:token name="rtf:cchs" type="rtfs:Value" /> + <rtfs:token name="rtf:cell" type="rtfs:Symbol" /> + <rtfs:token name="rtf:cellx" type="rtfs:Value" /> + <rtfs:token name="rtf:cf" type="rtfs:Value" /> + <rtfs:token name="rtf:cfpat" type="rtfs:Value" /> + <rtfs:token name="rtf:cgrid" type="rtfs:Value" /> + <rtfs:token name="rtf:charrsid" type="rtfs:Value" /> + <rtfs:token name="rtf:charscalex" type="rtfs:Value" /> + <rtfs:token name="rtf:charscalex" type="rtfs:Value" /> + <rtfs:token name="rtf:chatn" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chbgbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdkbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdkcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdkdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdkfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdkhoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgdkvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbghoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbgvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:chbrdr" type="rtfs:Flag" /> + <rtfs:token name="rtf:chcbpat" type="rtfs:Value" /> + <rtfs:token name="rtf:chcfpat" type="rtfs:Value" /> + <rtfs:token name="rtf:chdate" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chdpa" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chdpl" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chftn" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chftnsep" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chftnsepc" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chpgn" type="rtfs:Symbol" /> + <rtfs:token name="rtf:chshdng" type="rtfs:Value" /> + <rtfs:token name="rtf:chtime" type="rtfs:Symbol" /> + <rtfs:token name="rtf:clbgbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdkbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdkcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdkdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdkfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdkhor" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgdkvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbghoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbgvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbrdrb" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbrdrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbrdrr" type="rtfs:Flag" /> + <rtfs:token name="rtf:clbrdrt" type="rtfs:Flag" /> + <rtfs:token name="rtf:clcbpat" type="rtfs:Value" /> + <rtfs:token name="rtf:clcbpatraw" type="rtfs:Value" /> + <rtfs:token name="rtf:clcfpat" type="rtfs:Value" /> + <rtfs:token name="rtf:clcfpatraw" type="rtfs:Value" /> + <rtfs:token name="rtf:cldgll" type="rtfs:Flag" /> + <rtfs:token name="rtf:cldglu" type="rtfs:Flag" /> + <rtfs:token name="rtf:clFitText" type="rtfs:Flag" /> + <rtfs:token name="rtf:clftsWidth" type="rtfs:Value" /> + <rtfs:token name="rtf:clmgf" type="rtfs:Flag" /> + <rtfs:token name="rtf:clmrg" type="rtfs:Flag" /> + <rtfs:token name="rtf:cloWrap" type="rtfs:Flag" /> + <rtfs:token name="rtf:clpadb" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadfb" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadfl" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadfr" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadft" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadl" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadr" type="rtfs:Value" /> + <rtfs:token name="rtf:clpadt" type="rtfs:Value" /> + <rtfs:token name="rtf:clshdng" type="rtfs:Value" /> + <rtfs:token name="rtf:clshdngraw" type="rtfs:Value" /> + <rtfs:token name="rtf:clshdrawnil" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxbtlr" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxlrtb" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxlrtb" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxlrtbv" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxtbrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxtbrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:cltxtbrlv" type="rtfs:Flag" /> + <rtfs:token name="rtf:clvertalb" type="rtfs:Flag" /> + <rtfs:token name="rtf:clvertalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:clvertalt" type="rtfs:Flag" /> + <rtfs:token name="rtf:clvmgf" type="rtfs:Flag" /> + <rtfs:token name="rtf:clvmrg" type="rtfs:Flag" /> + <rtfs:token name="rtf:clwWidth" type="rtfs:Value" /> + <rtfs:token name="rtf:collapsed" type="rtfs:Flag" /> + <rtfs:token name="rtf:colno" type="rtfs:Value" /> + <rtfs:token name="rtf:colortbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:cols" type="rtfs:Value" /> + <rtfs:token name="rtf:colsr" type="rtfs:Value" /> + <rtfs:token name="rtf:colsx" type="rtfs:Value" /> + <rtfs:token name="rtf:column" type="rtfs:Symbol" /> + <rtfs:token name="rtf:colw" type="rtfs:Value" /> + <rtfs:token name="rtf:comment" type="rtfs:Destination" /> + <rtfs:token name="rtf:company" type="rtfs:Destination" /> + <rtfs:token name="rtf:cpg" type="rtfs:Value" /> + <rtfs:token name="rtf:crauth" type="rtfs:Value" /> + <rtfs:token name="rtf:crdate" type="rtfs:Value" /> + <rtfs:token name="rtf:creatim" type="rtfs:Destination" /> + <rtfs:token name="rtf:cs" type="rtfs:Value" /> + <rtfs:token name="rtf:ctrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:cts" type="rtfs:Value" /> + <rtfs:token name="rtf:cufi" type="rtfs:Value" /> + <rtfs:token name="rtf:culi" type="rtfs:Value" /> + <rtfs:token name="rtf:curi" type="rtfs:Value" /> + <rtfs:token name="rtf:cvmme" type="rtfs:Flag" /> + <rtfs:token name="rtf:datafield" type="rtfs:Destination" /> + <rtfs:token name="rtf:date" type="rtfs:Flag" /> + <rtfs:token name="rtf:dbch" type="rtfs:Flag" /> + <rtfs:token name="rtf:deff" type="rtfs:Value" /> + <rtfs:token name="rtf:defformat" type="rtfs:Flag" /> + <rtfs:token name="rtf:deflang" type="rtfs:Value" /> + <rtfs:token name="rtf:deflangfe" type="rtfs:Value" /> + <rtfs:token name="rtf:defshp" type="rtfs:Flag" /> + <rtfs:token name="rtf:deftab" type="rtfs:Value" /> + <rtfs:token name="rtf:deleted" type="rtfs:Toggle" /> + <rtfs:token name="rtf:delrsid" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrauth" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrdate" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrmtxtx" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrmtxty" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrstart" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrstop" type="rtfs:Value" /> + <rtfs:token name="rtf:dfrxst" type="rtfs:Value" /> + <rtfs:token name="rtf:dghorigin" type="rtfs:Value" /> + <rtfs:token name="rtf:dghshow" type="rtfs:Value" /> + <rtfs:token name="rtf:dghspace" type="rtfs:Value" /> + <rtfs:token name="rtf:dgmargin" type="rtfs:Flag" /> + <rtfs:token name="rtf:dgsnap" type="rtfs:Flag" /> + <rtfs:token name="rtf:dgvorigin" type="rtfs:Value" /> + <rtfs:token name="rtf:dgvshow" type="rtfs:Value" /> + <rtfs:token name="rtf:dgvspace" type="rtfs:Value" /> + <rtfs:token name="rtf:dibitmap" type="rtfs:Value" /> + <rtfs:token name="rtf:dn" type="rtfs:Value" /> + <rtfs:token name="rtf:dntblnsbdb" type="rtfs:Flag" /> + <rtfs:token name="rtf:do" type="rtfs:Destination" /> + <rtfs:token name="rtf:dobxcolumn" type="rtfs:Flag" /> + <rtfs:token name="rtf:dobxmargin" type="rtfs:Flag" /> + <rtfs:token name="rtf:dobxpage" type="rtfs:Flag" /> + <rtfs:token name="rtf:dobymargin" type="rtfs:Flag" /> + <rtfs:token name="rtf:dobypage" type="rtfs:Flag" /> + <rtfs:token name="rtf:dobypara" type="rtfs:Flag" /> + <rtfs:token name="rtf:doccomm" type="rtfs:Destination" /> + <rtfs:token name="rtf:doctemp" type="rtfs:Flag" /> + <rtfs:token name="rtf:doctype" type="rtfs:Value" /> + <rtfs:token name="rtf:docvar" type="rtfs:Destination" /> + <rtfs:token name="rtf:dodhgt" type="rtfs:Value" /> + <rtfs:token name="rtf:dolock" type="rtfs:Flag" /> + <rtfs:token name="rtf:donotshowcomments" type="rtfs:Flag" /> + <rtfs:token name="rtf:donotshowinsdel" type="rtfs:Flag" /> + <rtfs:token name="rtf:donotshowmarkup" type="rtfs:Flag" /> + <rtfs:token name="rtf:donotshowprops" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpaendhol" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpaendl" type="rtfs:Value" /> + <rtfs:token name="rtf:dpaendsol" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpaendw" type="rtfs:Value" /> + <rtfs:token name="rtf:dparc" type="rtfs:Flag" /> + <rtfs:token name="rtf:dparcflipx" type="rtfs:Flag" /> + <rtfs:token name="rtf:dparcflipy" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpastarthol" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpastartl" type="rtfs:Value" /> + <rtfs:token name="rtf:dpastartsol" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpastartw" type="rtfs:Value" /> + <rtfs:token name="rtf:dpcallout" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcoa" type="rtfs:Value" /> + <rtfs:token name="rtf:dpcoaccent" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcobestfit" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcoborder" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcodabs" type="rtfs:Value" /> + <rtfs:token name="rtf:dpcodbottom" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcodcenter" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcodescent" type="rtfs:Value" /> + <rtfs:token name="rtf:dpcodtop" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcolength" type="rtfs:Value" /> + <rtfs:token name="rtf:dpcominusx" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcominusy" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcooffset" type="rtfs:Value" /> + <rtfs:token name="rtf:dpcosmarta" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcotdouble" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcotright" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcotsingle" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcottriple" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpcount" type="rtfs:Value" /> + <rtfs:token name="rtf:dpellipse" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpendgroup" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpfillbgcb" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillbgcg" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillbgcr" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillbggray" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillbgpal" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpfillfgcb" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillfgcg" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillfgcr" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillfggray" type="rtfs:Value" /> + <rtfs:token name="rtf:dpfillfgpal" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpfillpat" type="rtfs:Value" /> + <rtfs:token name="rtf:dpgroup" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpline" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinecob" type="rtfs:Value" /> + <rtfs:token name="rtf:dplinecog" type="rtfs:Value" /> + <rtfs:token name="rtf:dplinecor" type="rtfs:Value" /> + <rtfs:token name="rtf:dplinedado" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinedadodo" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinedash" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinedot" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinegray" type="rtfs:Value" /> + <rtfs:token name="rtf:dplinehollow" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinepal" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinesolid" type="rtfs:Flag" /> + <rtfs:token name="rtf:dplinew" type="rtfs:Value" /> + <rtfs:token name="rtf:dppolycount" type="rtfs:Value" /> + <rtfs:token name="rtf:dppolygon" type="rtfs:Flag" /> + <rtfs:token name="rtf:dppolyline" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpptx" type="rtfs:Value" /> + <rtfs:token name="rtf:dppty" type="rtfs:Value" /> + <rtfs:token name="rtf:dprect" type="rtfs:Flag" /> + <rtfs:token name="rtf:dproundr" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpshadow" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpshadx" type="rtfs:Value" /> + <rtfs:token name="rtf:dpshady" type="rtfs:Value" /> + <rtfs:token name="rtf:dptxbtlr" type="rtfs:Flag" /> + <rtfs:token name="rtf:dptxbx" type="rtfs:Flag" /> + <rtfs:token name="rtf:dptxbxmar" type="rtfs:Value" /> + <rtfs:token name="rtf:dptxbxtext" type="rtfs:Destination" /> + <rtfs:token name="rtf:dptxlrtb" type="rtfs:Flag" /> + <rtfs:token name="rtf:dptxlrtbv" type="rtfs:Flag" /> + <rtfs:token name="rtf:dptxtbrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:dptxtbrlv" type="rtfs:Flag" /> + <rtfs:token name="rtf:dpx" type="rtfs:Value" /> + <rtfs:token name="rtf:dpxsize" type="rtfs:Value" /> + <rtfs:token name="rtf:dpy" type="rtfs:Value" /> + <rtfs:token name="rtf:dpysize" type="rtfs:Value" /> + <rtfs:token name="rtf:dropcapli" type="rtfs:Value" /> + <rtfs:token name="rtf:dropcapt" type="rtfs:Value" /> + <rtfs:token name="rtf:ds" type="rtfs:Value" /> + <rtfs:token name="rtf:dxfrtext" type="rtfs:Value" /> + <rtfs:token name="rtf:dy" type="rtfs:Value" /> + <rtfs:token name="rtf:edmins" type="rtfs:Value" /> + <rtfs:token name="rtf:embo" type="rtfs:Toggle" /> + <rtfs:token name="rtf:emdash" type="rtfs:Symbol" /> + <rtfs:token name="rtf:emfblip" type="rtfs:Flag" /> + <rtfs:token name="rtf:emspace" type="rtfs:Symbol" /> + <rtfs:token name="rtf:endash" type="rtfs:Symbol" /> + <rtfs:token name="rtf:enddoc" type="rtfs:Flag" /> + <rtfs:token name="rtf:endnhere" type="rtfs:Flag" /> + <rtfs:token name="rtf:endnotes" type="rtfs:Flag" /> + <rtfs:token name="rtf:enspace" type="rtfs:Symbol" /> + <rtfs:token name="rtf:expnd" type="rtfs:Value" /> + <rtfs:token name="rtf:expndtw" type="rtfs:Value" /> + <rtfs:token name="rtf:expshrtn" type="rtfs:Flag" /> + <rtfs:token name="rtf:f" type="rtfs:Value" /> + <rtfs:token name="rtf:faauto" type="rtfs:Value" /> + <rtfs:token name="rtf:facenter7.0" type="rtfs:Flag" /> + <rtfs:token name="rtf:facingp" type="rtfs:Flag" /> + <rtfs:token name="rtf:fahang" type="rtfs:Flag" /> + <rtfs:token name="rtf:falt" type="rtfs:Destination" /> + <rtfs:token name="rtf:faroman" type="rtfs:Flag" /> + <rtfs:token name="rtf:favar" type="rtfs:Flag" /> + <rtfs:token name="rtf:fbias" type="rtfs:Value" /> + <rtfs:token name="rtf:fbidi" type="rtfs:Flag" /> + <rtfs:token name="rtf:fchars" type="rtfs:Destination" /> + <rtfs:token name="rtf:fcharset" type="rtfs:Value" /> + <rtfs:token name="rtf:fdecor" type="rtfs:Flag" /> + <rtfs:token name="rtf:fet" type="rtfs:Value" /> + <rtfs:token name="rtf:fetch" type="rtfs:Flag" /> + <rtfs:token name="rtf:ffdefres" type="rtfs:Value" /> + <rtfs:token name="rtf:ffdeftext" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffentrymcr" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffexitmcr" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffformat" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffhaslistbox" type="rtfs:Value" /> + <rtfs:token name="rtf:ffhelptext" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffhps" type="rtfs:Value" /> + <rtfs:token name="rtf:ffl" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffmaxlen" type="rtfs:Value" /> + <rtfs:token name="rtf:ffname" type="rtfs:Destination" /> + <rtfs:token name="rtf:ffownhelp" type="rtfs:Value" /> + <rtfs:token name="rtf:ffownstat" type="rtfs:Value" /> + <rtfs:token name="rtf:ffprot" type="rtfs:Value" /> + <rtfs:token name="rtf:ffrecalc" type="rtfs:Value" /> + <rtfs:token name="rtf:ffres" type="rtfs:Value" /> + <rtfs:token name="rtf:ffsize" type="rtfs:Value" /> + <rtfs:token name="rtf:ffstattext" type="rtfs:Destination" /> + <rtfs:token name="rtf:fftype" type="rtfs:Value" /> + <rtfs:token name="rtf:fftypetxt" type="rtfs:Value" /> + <rtfs:token name="rtf:fi" type="rtfs:Value" /> + <rtfs:token name="rtf:fid" type="rtfs:Value" /> + <rtfs:token name="rtf:field" type="rtfs:Destination" /> + <rtfs:token name="rtf:file" type="rtfs:Destination" /> + <rtfs:token name="rtf:filetbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:fittext" type="rtfs:Value" /> + <rtfs:token name="rtf:fldalt" type="rtfs:Flag" /> + <rtfs:token name="rtf:flddirty" type="rtfs:Flag" /> + <rtfs:token name="rtf:fldedit" type="rtfs:Flag" /> + <rtfs:token name="rtf:fldinst" type="rtfs:Destination" /> + <rtfs:token name="rtf:fldlock" type="rtfs:Flag" /> + <rtfs:token name="rtf:fldpriv" type="rtfs:Flag" /> + <rtfs:token name="rtf:fldrslt" type="rtfs:Destination" /> + <rtfs:token name="rtf:fldtype" type="rtfs:Destination" /> + <rtfs:token name="rtf:fmodern" type="rtfs:Flag" /> + <rtfs:token name="rtf:fn" type="rtfs:Value" /> + <rtfs:token name="rtf:fname" type="rtfs:Destination" /> + <rtfs:token name="rtf:fnetwork" type="rtfs:Flag" /> + <rtfs:token name="rtf:fnil" type="rtfs:Flag" /> + <rtfs:token name="rtf:fnonfilesys" type="rtfs:Flag" /> + <rtfs:token name="rtf:fontemb" type="rtfs:Destination" /> + <rtfs:token name="rtf:fontfile" type="rtfs:Destination" /> + <rtfs:token name="rtf:fonttbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:footer" type="rtfs:Destination" /> + <rtfs:token name="rtf:footer" type="rtfs:Destination" /> + <rtfs:token name="rtf:footerf" type="rtfs:Destination" /> + <rtfs:token name="rtf:footerl" type="rtfs:Destination" /> + <rtfs:token name="rtf:footery" type="rtfs:Value" /> + <rtfs:token name="rtf:footnote" type="rtfs:Destination" /> + <rtfs:token name="rtf:formdisp" type="rtfs:Flag" /> + <rtfs:token name="rtf:formfield" type="rtfs:Destination" /> + <rtfs:token name="rtf:formprot" type="rtfs:Flag" /> + <rtfs:token name="rtf:formshade" type="rtfs:Flag" /> + <rtfs:token name="rtf:fosnum" type="rtfs:Value" /> + <rtfs:token name="rtf:fprq" type="rtfs:Value" /> + <rtfs:token name="rtf:fracwidth" type="rtfs:Flag" /> + <rtfs:token name="rtf:frelative" type="rtfs:Value" /> + <rtfs:token name="rtf:frmtxbtlr" type="rtfs:Flag" /> + <rtfs:token name="rtf:frmtxlrtb" type="rtfs:Flag" /> + <rtfs:token name="rtf:frmtxlrtbv" type="rtfs:Flag" /> + <rtfs:token name="rtf:frmtxtbrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:frmtxtbrlv" type="rtfs:Flag" /> + <rtfs:token name="rtf:froman" type="rtfs:Flag" /> + <rtfs:token name="rtf:fromhtml" type="rtfs:Flag" /> + <rtfs:token name="rtf:fromtext" type="rtfs:Flag" /> + <rtfs:token name="rtf:fs" type="rtfs:Value" /> + <rtfs:token name="rtf:fscript" type="rtfs:Flag" /> + <rtfs:token name="rtf:fswiss" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnalt" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnbj" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftncn" type="rtfs:Destination" /> + <rtfs:token name="rtf:ftnil" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnlytwnine" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnar" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnauc" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnchi" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnchosung" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnncnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnndbar" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnndbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnndbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnndbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnndbnumt" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnngbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnngbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnngbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnngbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnrlc" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnruc" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnzodiac" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnzodiacd" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnnzodiacl" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnrestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnrstcont" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnrstpg" type="rtfs:Flag" /> + <rtfs:token name="rtf:ftnsep" type="rtfs:Destination" /> + <rtfs:token name="rtf:ftnsepc" type="rtfs:Destination" /> + <rtfs:token name="rtf:ftnstart" type="rtfs:Value" /> + <rtfs:token name="rtf:ftntj" type="rtfs:Flag" /> + <rtfs:token name="rtf:fttruetype" type="rtfs:Flag" /> + <rtfs:token name="rtf:fvaliddos" type="rtfs:Flag" /> + <rtfs:token name="rtf:fvalidhpfs" type="rtfs:Flag" /> + <rtfs:token name="rtf:fvalidmac" type="rtfs:Flag" /> + <rtfs:token name="rtf:fvalidntfs" type="rtfs:Flag" /> + <rtfs:token name="rtf:g" type="rtfs:Destination" /> + <rtfs:token name="rtf:gcw" type="rtfs:Value" /> + <rtfs:token name="rtf:generator" type="rtfs:Destination" /> + <rtfs:token name="rtf:green" type="rtfs:Value" /> + <rtfs:token name="rtf:gridtbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:gutter" type="rtfs:Value" /> + <rtfs:token name="rtf:gutterprl" type="rtfs:Flag" /> + <rtfs:token name="rtf:guttersxn" type="rtfs:Value" /> + <rtfs:token name="rtf:header" type="rtfs:Destination" /> + <rtfs:token name="rtf:header" type="rtfs:Destination" /> + <rtfs:token name="rtf:headerf" type="rtfs:Destination" /> + <rtfs:token name="rtf:headerl" type="rtfs:Destination" /> + <rtfs:token name="rtf:headery" type="rtfs:Value" /> + <rtfs:token name="rtf:hich" type="rtfs:Flag" /> + <rtfs:token name="rtf:highlight" type="rtfs:Value" /> + <rtfs:token name="rtf:hlfr" type="rtfs:Value" /> + <rtfs:token name="rtf:hlinkbase" type="rtfs:Value" /> + <rtfs:token name="rtf:hlloc" type="rtfs:Value" /> + <rtfs:token name="rtf:hlsrc" type="rtfs:Value" /> + <rtfs:token name="rtf:horzdoc" type="rtfs:Flag" /> + <rtfs:token name="rtf:horzsect" type="rtfs:Flag" /> + <rtfs:token name="rtf:hr" type="rtfs:Value" /> + <rtfs:token name="rtf:htmautsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:htmlbase" type="rtfs:Flag" /> + <rtfs:token name="rtf:htmlrtf" type="rtfs:Toggle" /> + <rtfs:token name="rtf:htmltag" type="rtfs:Destination" /> + <rtfs:token name="rtf:hyphauto" type="rtfs:Toggle" /> + <rtfs:token name="rtf:hyphcaps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:hyphconsec" type="rtfs:Value" /> + <rtfs:token name="rtf:hyphhotz" type="rtfs:Value" /> + <rtfs:token name="rtf:hyphpar" type="rtfs:Toggle" /> + <rtfs:token name="rtf:i" type="rtfs:Toggle" /> + <rtfs:token name="rtf:id" type="rtfs:Value" /> + <rtfs:token name="rtf:ilvl" type="rtfs:Value" /> + <rtfs:token name="rtf:impr" type="rtfs:Toggle" /> + <rtfs:token name="rtf:info" type="rtfs:Destination" /> + <rtfs:token name="rtf:insrsid" type="rtfs:Value" /> + <rtfs:token name="rtf:intbl" type="rtfs:Flag" /> + <rtfs:token name="rtf:ipgp" type="rtfs:Value" /> + <rtfs:token name="rtf:irow" type="rtfs:Value" /> + <rtfs:token name="rtf:irowband" type="rtfs:Value" /> + <rtfs:token name="rtf:itap" type="rtfs:Value" /> + <rtfs:token name="rtf:ixe" type="rtfs:Flag" /> + <rtfs:token name="rtf:jcompress" type="rtfs:Flag" /> + <rtfs:token name="rtf:jexpand" type="rtfs:Flag" /> + <rtfs:token name="rtf:jpegblip" type="rtfs:Flag" /> + <rtfs:token name="rtf:jsksu" type="rtfs:Flag" /> + <rtfs:token name="rtf:keep" type="rtfs:Flag" /> + <rtfs:token name="rtf:keepn" type="rtfs:Flag" /> + <rtfs:token name="rtf:kerning" type="rtfs:Value" /> + <rtfs:token name="rtf:keycode" type="rtfs:Destination" /> + <rtfs:token name="rtf:keywords" type="rtfs:Destination" /> + <rtfs:token name="rtf:ksulang" type="rtfs:Value" /> + <rtfs:token name="rtf:landscape" type="rtfs:Flag" /> + <rtfs:token name="rtf:lang" type="rtfs:Value" /> + <rtfs:token name="rtf:langfe" type="rtfs:Value" /> + <rtfs:token name="rtf:langfenp" type="rtfs:Value" /> + <rtfs:token name="rtf:langnp" type="rtfs:Value" /> + <rtfs:token name="rtf:lastrow" type="rtfs:Flag" /> + <rtfs:token name="rtf:lbr" type="rtfs:Symbol" /> + <rtfs:token name="rtf:lchars" type="rtfs:Destination" /> + <rtfs:token name="rtf:ldblquote" type="rtfs:Symbol" /> + <rtfs:token name="rtf:level" type="rtfs:Value" /> + <rtfs:token name="rtf:levelfollow" type="rtfs:Value" /> + <rtfs:token name="rtf:levelindent" type="rtfs:Value" /> + <rtfs:token name="rtf:leveljc" type="rtfs:Value" /> + <rtfs:token name="rtf:leveljcn" type="rtfs:Value" /> + <rtfs:token name="rtf:levellegal" type="rtfs:Value" /> + <rtfs:token name="rtf:levelnfc" type="rtfs:Value" /> + <rtfs:token name="rtf:levelnfcn" type="rtfs:Value" /> + <rtfs:token name="rtf:levelnorestart" type="rtfs:Value" /> + <rtfs:token name="rtf:levelnumbers" type="rtfs:Destination" /> + <rtfs:token name="rtf:levelold" type="rtfs:Value" /> + <rtfs:token name="rtf:levelpicture" type="rtfs:Value" /> + <rtfs:token name="rtf:levelprev" type="rtfs:Value" /> + <rtfs:token name="rtf:levelprevspace" type="rtfs:Value" /> + <rtfs:token name="rtf:levelspace" type="rtfs:Value" /> + <rtfs:token name="rtf:levelstartat" type="rtfs:Value" /> + <rtfs:token name="rtf:leveltemplateid" type="rtfs:Value" /> + <rtfs:token name="rtf:leveltext" type="rtfs:Value" /> + <rtfs:token name="rtf:li" type="rtfs:Value" /> + <rtfs:token name="rtf:line" type="rtfs:Symbol" /> + <rtfs:token name="rtf:linebetcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:linecont" type="rtfs:Flag" /> + <rtfs:token name="rtf:linemod" type="rtfs:Value" /> + <rtfs:token name="rtf:lineppage" type="rtfs:Flag" /> + <rtfs:token name="rtf:linerestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:linestart" type="rtfs:Value" /> + <rtfs:token name="rtf:linestarts" type="rtfs:Value" /> + <rtfs:token name="rtf:linex" type="rtfs:Value" /> + <rtfs:token name="rtf:linkself" type="rtfs:Flag" /> + <rtfs:token name="rtf:linkstyles" type="rtfs:Flag" /> + <rtfs:token name="rtf:linkval" type="rtfs:Value" /> + <rtfs:token name="rtf:lin" type="rtfs:Value" /> + <rtfs:token name="rtf:lisa" type="rtfs:Value" /> + <rtfs:token name="rtf:lisb" type="rtfs:Value" /> + <rtfs:token name="rtf:listhybrid" type="rtfs:Flag" /> + <rtfs:token name="rtf:listid" type="rtfs:Value" /> + <rtfs:token name="rtf:listname" type="rtfs:Destination" /> + <rtfs:token name="rtf:listoverridecount" type="rtfs:Value" /> + <rtfs:token name="rtf:listoverrideformat" type="rtfs:Value" /> + <rtfs:token name="rtf:listoverridestart" type="rtfs:Value" /> + <rtfs:token name="rtf:listpicture" type="rtfs:Value" /> + <rtfs:token name="rtf:listrestarthdn" type="rtfs:Value" /> + <rtfs:token name="rtf:listsimple" type="rtfs:Value" /> + <rtfs:token name="rtf:liststyleid" type="rtfs:Value" /> + <rtfs:token name="rtf:liststylename" type="rtfs:Value" /> + <rtfs:token name="rtf:listtemplateid" type="rtfs:Value" /> + <rtfs:token name="rtf:listtext" type="rtfs:Destination" /> + <rtfs:token name="rtf:lnbrkrule" type="rtfs:Flag" /> + <rtfs:token name="rtf:lndscpsxn" type="rtfs:Flag" /> + <rtfs:token name="rtf:lnongrid" type="rtfs:Flag" /> + <rtfs:token name="rtf:loch" type="rtfs:Flag" /> + <rtfs:token name="rtf:lquote" type="rtfs:Symbol" /> + <rtfs:token name="rtf:ls" type="rtfs:Value" /> + <rtfs:token name="rtf:ltrch" type="rtfs:Flag" /> + <rtfs:token name="rtf:ltrdoc" type="rtfs:Flag" /> + <rtfs:token name="rtf:ltrmark" type="rtfs:Symbol" /> + <rtfs:token name="rtf:ltrpar" type="rtfs:Flag" /> + <rtfs:token name="rtf:ltrrow" type="rtfs:Flag" /> + <rtfs:token name="rtf:ltrsect" type="rtfs:Flag" /> + <rtfs:token name="rtf:lytcalctblwd" type="rtfs:Flag" /> + <rtfs:token name="rtf:lytexcttp" type="rtfs:Flag" /> + <rtfs:token name="rtf:lytprtmet" type="rtfs:Flag" /> + <rtfs:token name="rtf:lyttblrtgr" type="rtfs:Flag" /> + <rtfs:token name="rtf:mac" type="rtfs:Flag" /> + <rtfs:token name="rtf:macpict" type="rtfs:Flag" /> + <rtfs:token name="rtf:makebackup" type="rtfs:Flag" /> + <rtfs:token name="rtf:manager" type="rtfs:Destination" /> + <rtfs:token name="rtf:margb" type="rtfs:Value" /> + <rtfs:token name="rtf:margbsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:margl" type="rtfs:Value" /> + <rtfs:token name="rtf:marglsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:margmirror" type="rtfs:Flag" /> + <rtfs:token name="rtf:margr" type="rtfs:Value" /> + <rtfs:token name="rtf:margrsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:margt" type="rtfs:Value" /> + <rtfs:token name="rtf:margtsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:mhtmltag" type="rtfs:Destination" /> + <rtfs:token name="rtf:min" type="rtfs:Value" /> + <rtfs:token name="rtf:mo" type="rtfs:Value" /> + <rtfs:token name="rtf:msmcap" type="rtfs:Flag" /> + <rtfs:token name="rtf:nestcell" type="rtfs:Symbol" /> + <rtfs:token name="rtf:nestrow" type="rtfs:Symbol" /> + <rtfs:token name="rtf:nesttableprops" type="rtfs:Destination" /> + <rtfs:token name="rtf:nextfile" type="rtfs:Destination" /> + <rtfs:token name="rtf:nobrkwrptbl" type="rtfs:Flag" /> + <rtfs:token name="rtf:nocolbal" type="rtfs:Flag" /> + <rtfs:token name="rtf:nocompatoptions" type="rtfs:Flag" /> + <rtfs:token name="rtf:nocwrap" type="rtfs:Flag" /> + <rtfs:token name="rtf:noextrasprl" type="rtfs:Flag" /> + <rtfs:token name="rtf:nofchars" type="rtfs:Value" /> + <rtfs:token name="rtf:nofcharsws" type="rtfs:Value" /> + <rtfs:token name="rtf:nofpages" type="rtfs:Value" /> + <rtfs:token name="rtf:nofwords" type="rtfs:Value" /> + <rtfs:token name="rtf:nolead" type="rtfs:Flag" /> + <rtfs:token name="rtf:noline" type="rtfs:Flag" /> + <rtfs:token name="rtf:nolnhtadjtbl" type="rtfs:Flag" /> + <rtfs:token name="rtf:nonesttables" type="rtfs:Destination" /> + <rtfs:token name="rtf:nonshppict" type="rtfs:Flag" /> + <rtfs:token name="rtf:nooverflow" type="rtfs:Flag" /> + <rtfs:token name="rtf:noproof" type="rtfs:Flag" /> + <rtfs:token name="rtf:nosectexpand" type="rtfs:Flag" /> + <rtfs:token name="rtf:nosnaplinegrid" type="rtfs:Flag" /> + <rtfs:token name="rtf:nospaceforul" type="rtfs:Flag" /> + <rtfs:token name="rtf:nosupersub" type="rtfs:Flag" /> + <rtfs:token name="rtf:notabind" type="rtfs:Flag" /> + <rtfs:token name="rtf:noultrlspc" type="rtfs:Flag" /> + <rtfs:token name="rtf:nowidctlpar" type="rtfs:Flag" /> + <rtfs:token name="rtf:nowrap" type="rtfs:Flag" /> + <rtfs:token name="rtf:nowwrap" type="rtfs:Flag" /> + <rtfs:token name="rtf:noxlattoyen" type="rtfs:Flag" /> + <rtfs:token name="rtf:objalias" type="rtfs:Destination" /> + <rtfs:token name="rtf:objalign" type="rtfs:Value" /> + <rtfs:token name="rtf:objattph" type="rtfs:Flag" /> + <rtfs:token name="rtf:objautlink" type="rtfs:Flag" /> + <rtfs:token name="rtf:objclass" type="rtfs:Destination" /> + <rtfs:token name="rtf:objcropb" type="rtfs:Value" /> + <rtfs:token name="rtf:objcropl" type="rtfs:Value" /> + <rtfs:token name="rtf:objcropr" type="rtfs:Value" /> + <rtfs:token name="rtf:objcropt" type="rtfs:Value" /> + <rtfs:token name="rtf:objdata" type="rtfs:Destination" /> + <rtfs:token name="rtf:object" type="rtfs:Destination" /> + <rtfs:token name="rtf:objemb" type="rtfs:Flag" /> + <rtfs:token name="rtf:objh" type="rtfs:Value" /> + <rtfs:token name="rtf:objhtml" type="rtfs:Flag" /> + <rtfs:token name="rtf:objicemb" type="rtfs:Flag" /> + <rtfs:token name="rtf:objlink" type="rtfs:Flag" /> + <rtfs:token name="rtf:objlock" type="rtfs:Flag" /> + <rtfs:token name="rtf:objname" type="rtfs:Destination" /> + <rtfs:token name="rtf:objocx" type="rtfs:Flag" /> + <rtfs:token name="rtf:objpub" type="rtfs:Flag" /> + <rtfs:token name="rtf:objscalex" type="rtfs:Value" /> + <rtfs:token name="rtf:objscaley" type="rtfs:Value" /> + <rtfs:token name="rtf:objsect" type="rtfs:Destination" /> + <rtfs:token name="rtf:objsetsize" type="rtfs:Flag" /> + <rtfs:token name="rtf:objsub" type="rtfs:Flag" /> + <rtfs:token name="rtf:objtime" type="rtfs:Destination" /> + <rtfs:token name="rtf:objtransy" type="rtfs:Value" /> + <rtfs:token name="rtf:objupdate" type="rtfs:Flag" /> + <rtfs:token name="rtf:objw" type="rtfs:Value" /> + <rtfs:token name="rtf:oldas" type="rtfs:Flag" /> + <rtfs:token name="rtf:oldcprops" type="rtfs:Destination" /> + <rtfs:token name="rtf:oldpprops" type="rtfs:Destination" /> + <rtfs:token name="rtf:oldsprops" type="rtfs:Destination" /> + <rtfs:token name="rtf:oldtprops" type="rtfs:Destination" /> + <rtfs:token name="rtf:oldlinewrap" type="rtfs:Flag" /> + <rtfs:token name="rtf:operator" type="rtfs:Destination" /> + <rtfs:token name="rtf:otblrul" type="rtfs:Flag" /> + <rtfs:token name="rtf:outl" type="rtfs:Toggle" /> + <rtfs:token name="rtf:outlinelevel" type="rtfs:Value" /> + <rtfs:token name="rtf:overlay" type="rtfs:Flag" /> + <rtfs:token name="rtf:page" type="rtfs:Symbol" /> + <rtfs:token name="rtf:pagebb" type="rtfs:Flag" /> + <rtfs:token name="rtf:panose" type="rtfs:Destination" /> + <rtfs:token name="rtf:paperh" type="rtfs:Value" /> + <rtfs:token name="rtf:paperw" type="rtfs:Value" /> + <rtfs:token name="rtf:par" type="rtfs:Symbol" /> + <rtfs:token name="rtf:pararsid" type="rtfs:Value" /> + <rtfs:token name="rtf:pard" type="rtfs:Flag" /> + <rtfs:token name="rtf:pc" type="rtfs:Flag" /> + <rtfs:token name="rtf:pca" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdrb" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdrfoot" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdrhead" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdropt" type="rtfs:Value" /> + <rtfs:token name="rtf:pgbrdrr" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdrsnap" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgbrdrt" type="rtfs:Flag" /> + <rtfs:token name="rtf:pghsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:pgnbidia" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnbidib" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnchosung" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgncnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgncont" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgndbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgndbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgndbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgndbnumt" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgndec" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgndecd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgngbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgngbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgngbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgngbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhindia" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhindib" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhindic" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhindid" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhn" type="rtfs:Value" /> + <rtfs:token name="rtf:pgnhnsc" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhnsh" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhnsm" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhnsn" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnhnsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnid" type="rtfs:Value" /> + <rtfs:token name="rtf:pgnlcltr" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnlcrm" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnrestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnstart" type="rtfs:Value" /> + <rtfs:token name="rtf:pgnstarts" type="rtfs:Value" /> + <rtfs:token name="rtf:pgnthaia" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnthaib" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnthaic" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnucltr" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnucrm" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnvieta" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnx" type="rtfs:Value" /> + <rtfs:token name="rtf:pgny" type="rtfs:Value" /> + <rtfs:token name="rtf:pgnzodiac" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnzodiacd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgnzodiacl" type="rtfs:Flag" /> + <rtfs:token name="rtf:pgp" type="rtfs:Destination" /> + <rtfs:token name="rtf:pgptbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:pgwsxn" type="rtfs:Value" /> + <rtfs:token name="rtf:phcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:phmrg" type="rtfs:Flag" /> + <rtfs:token name="rtf:phpg" type="rtfs:Flag" /> + <rtfs:token name="rtf:picbmp" type="rtfs:Flag" /> + <rtfs:token name="rtf:picbpp" type="rtfs:Value" /> + <rtfs:token name="rtf:piccropb" type="rtfs:Value" /> + <rtfs:token name="rtf:piccropl" type="rtfs:Value" /> + <rtfs:token name="rtf:piccropr" type="rtfs:Value" /> + <rtfs:token name="rtf:piccropt" type="rtfs:Value" /> + <rtfs:token name="rtf:pich" type="rtfs:Value" /> + <rtfs:token name="rtf:pichgoal" type="rtfs:Value" /> + <rtfs:token name="rtf:picprop" type="rtfs:Destination" /> + <rtfs:token name="rtf:picscaled" type="rtfs:Flag" /> + <rtfs:token name="rtf:picscalex" type="rtfs:Value" /> + <rtfs:token name="rtf:picscaley" type="rtfs:Value" /> + <rtfs:token name="rtf:pict" type="rtfs:Destination" /> + <rtfs:token name="rtf:picw" type="rtfs:Value" /> + <rtfs:token name="rtf:picwgoal" type="rtfs:Value" /> + <rtfs:token name="rtf:plain" type="rtfs:Flag" /> + <rtfs:token name="rtf:pmmetafile" type="rtfs:Value" /> + <rtfs:token name="rtf:pn" type="rtfs:Destination" /> + <rtfs:token name="rtf:pnacross" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnaiu" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnaiud" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnaiueo" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnaiueod" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnb" type="rtfs:Toggle" /> + <rtfs:token name="rtf:pnbidia" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnbidib" type="rtfs:Flag" /> + <rtfs:token name="rtf:pncaps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:pncard" type="rtfs:Flag" /> + <rtfs:token name="rtf:pncf" type="rtfs:Value" /> + <rtfs:token name="rtf:pnchosung" type="rtfs:Flag" /> + <rtfs:token name="rtf:pncnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndbnumt" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndec" type="rtfs:Flag" /> + <rtfs:token name="rtf:pndecd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnf" type="rtfs:Value" /> + <rtfs:token name="rtf:pnfs" type="rtfs:Value" /> + <rtfs:token name="rtf:pnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:pngblip" type="rtfs:Flag" /> + <rtfs:token name="rtf:pngbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:pngbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pngbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:pngbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnhang" type="rtfs:Flag" /> + <rtfs:token name="rtf:pni" type="rtfs:Toggle" /> + <rtfs:token name="rtf:pnindent" type="rtfs:Value" /> + <rtfs:token name="rtf:pniroha" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnirohad" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnlcltr" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnlcrm" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnlvl" type="rtfs:Value" /> + <rtfs:token name="rtf:pnlvlblt" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnlvlbody" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnlvlcont" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnnumonce" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnord" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnordt" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnprev" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnqc" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnql" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnqr" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnrauth" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrdate" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnrnfc" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrnot" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnrpnbr" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrrgb" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrstart" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrstop" type="rtfs:Value" /> + <rtfs:token name="rtf:pnrxst" type="rtfs:Value" /> + <rtfs:token name="rtf:pnscaps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:pnseclvl" type="rtfs:Destination" /> + <rtfs:token name="rtf:pnsp" type="rtfs:Value" /> + <rtfs:token name="rtf:pnstart" type="rtfs:Value" /> + <rtfs:token name="rtf:pnstrike" type="rtfs:Toggle" /> + <rtfs:token name="rtf:pntext" type="rtfs:Destination" /> + <rtfs:token name="rtf:pntxta" type="rtfs:Destination" /> + <rtfs:token name="rtf:pntxtb" type="rtfs:Destination" /> + <rtfs:token name="rtf:pnucltr" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnucrm" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnul" type="rtfs:Toggle" /> + <rtfs:token name="rtf:pnuld" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnuldash" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnuldashd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnuldashdd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnuldb" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnulhair" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnulnone" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnulth" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnulw" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnulwave" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnzodiac" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnzodiacd" type="rtfs:Flag" /> + <rtfs:token name="rtf:pnzodiacl" type="rtfs:Flag" /> + <rtfs:token name="rtf:posnegx" type="rtfs:Value" /> + <rtfs:token name="rtf:posnegy" type="rtfs:Value" /> + <rtfs:token name="rtf:posx" type="rtfs:Value" /> + <rtfs:token name="rtf:posxc" type="rtfs:Flag" /> + <rtfs:token name="rtf:posxi" type="rtfs:Flag" /> + <rtfs:token name="rtf:posxl" type="rtfs:Flag" /> + <rtfs:token name="rtf:posxo" type="rtfs:Flag" /> + <rtfs:token name="rtf:posxr" type="rtfs:Flag" /> + <rtfs:token name="rtf:posy" type="rtfs:Value" /> + <rtfs:token name="rtf:posyb" type="rtfs:Flag" /> + <rtfs:token name="rtf:posyc" type="rtfs:Flag" /> + <rtfs:token name="rtf:posyil" type="rtfs:Flag" /> + <rtfs:token name="rtf:posyin" type="rtfs:Flag" /> + <rtfs:token name="rtf:posyout" type="rtfs:Flag" /> + <rtfs:token name="rtf:posyt" type="rtfs:Flag" /> + <rtfs:token name="rtf:prcolbl" type="rtfs:Flag" /> + <rtfs:token name="rtf:printdata" type="rtfs:Flag" /> + <rtfs:token name="rtf:printim" type="rtfs:Destination" /> + <rtfs:token name="rtf:private" type="rtfs:Destination" /> + <rtfs:token name="rtf:propname" type="rtfs:Value" /> + <rtfs:token name="rtf:proptype" type="rtfs:Value" /> + <rtfs:token name="rtf:psover" type="rtfs:Flag" /> + <rtfs:token name="rtf:psz" type="rtfs:Value" /> + <rtfs:token name="rtf:pubauto" type="rtfs:Flag" /> + <rtfs:token name="rtf:pvmrg" type="rtfs:Flag" /> + <rtfs:token name="rtf:pvpara" type="rtfs:Flag" /> + <rtfs:token name="rtf:pvpg" type="rtfs:Flag" /> + <rtfs:token name="rtf:pwd" type="rtfs:Destination" /> + <rtfs:token name="rtf:pxe" type="rtfs:Destination" /> + <rtfs:token name="rtf:qc" type="rtfs:Flag" /> + <rtfs:token name="rtf:qd" type="rtfs:Flag" /> + <rtfs:token name="rtf:qj" type="rtfs:Flag" /> + <rtfs:token name="rtf:qk" type="rtfs:Flag" /> + <rtfs:token name="rtf:ql" type="rtfs:Flag" /> + <rtfs:token name="rtf:qmspace" type="rtfs:Symbol" /> + <rtfs:token name="rtf:qr" type="rtfs:Flag" /> + <rtfs:token name="rtf:qt" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawbgdkbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgdkcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgdkdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgdkfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgdkhor" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgdkvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbghoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:rawclbgvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:rdblquote" type="rtfs:Symbol" /> + <rtfs:token name="rtf:red" type="rtfs:Value" /> + <rtfs:token name="rtf:rempersonalinfo" type="rtfs:Flag" /> + <rtfs:token name="rtf:result" type="rtfs:Destination" /> + <rtfs:token name="rtf:revauth" type="rtfs:Value" /> + <rtfs:token name="rtf:revauthdel" type="rtfs:Value" /> + <rtfs:token name="rtf:revbar" type="rtfs:Value" /> + <rtfs:token name="rtf:revdttm" type="rtfs:Value" /> + <rtfs:token name="rtf:revdttmdel" type="rtfs:Value" /> + <rtfs:token name="rtf:revised" type="rtfs:Toggle" /> + <rtfs:token name="rtf:revisions" type="rtfs:Flag" /> + <rtfs:token name="rtf:revprop" type="rtfs:Value" /> + <rtfs:token name="rtf:revprot" type="rtfs:Flag" /> + <rtfs:token name="rtf:revtbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:revtim" type="rtfs:Destination" /> + <rtfs:token name="rtf:ri" type="rtfs:Value" /> + <rtfs:token name="rtf:rin" type="rtfs:Value" /> + <rtfs:token name="rtf:row" type="rtfs:Symbol" /> + <rtfs:token name="rtf:rquote" type="rtfs:Symbol" /> + <rtfs:token name="rtf:rsid" type="rtfs:Value" /> + <rtfs:token name="rtf:rsidroot" type="rtfs:Value" /> + <rtfs:token name="rtf:rsidtbl" type="rtfs:Destination" /> + <rtfs:token name="rtf:rsltbmp" type="rtfs:Flag" /> + <rtfs:token name="rtf:rslthtml" type="rtfs:Flag" /> + <rtfs:token name="rtf:rsltmerge" type="rtfs:Flag" /> + <rtfs:token name="rtf:rsltpict" type="rtfs:Flag" /> + <rtfs:token name="rtf:rsltrtf" type="rtfs:Flag" /> + <rtfs:token name="rtf:rslttxt" type="rtfs:Flag" /> + <rtfs:token name="rtf:rtf" type="rtfs:Destination" /> + <rtfs:token name="rtf:rtlch" type="rtfs:Flag" /> + <rtfs:token name="rtf:rtldoc" type="rtfs:Flag" /> + <rtfs:token name="rtf:rtlgutter" type="rtfs:Flag" /> + <rtfs:token name="rtf:rtlmark" type="rtfs:Symbol" /> + <rtfs:token name="rtf:rtlpar" type="rtfs:Flag" /> + <rtfs:token name="rtf:rtlrow" type="rtfs:Flag" /> + <rtfs:token name="rtf:rtlsect" type="rtfs:Flag" /> + <rtfs:token name="rtf:rxe" type="rtfs:Destination" /> + <rtfs:token name="rtf:s" type="rtfs:Value" /> + <rtfs:token name="rtf:sa" type="rtfs:Value" /> + <rtfs:token name="rtf:saauto" type="rtfs:Toggle" /> + <rtfs:token name="rtf:saftnnalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnar" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnauc" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnchi" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnchosung" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnncnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnndbar" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnndbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnndbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnndbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnndbnumt" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnngbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnngbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnngbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnngbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnrlc" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnruc" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnzodiac" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnzodiacd" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnnzodiacl" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnrestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnrstcont" type="rtfs:Flag" /> + <rtfs:token name="rtf:saftnstart" type="rtfs:Flag" /> + <rtfs:token name="rtf:sautoupd" type="rtfs:Flag" /> + <rtfs:token name="rtf:sb" type="rtfs:Value" /> + <rtfs:token name="rtf:sbasedon" type="rtfs:Value" /> + <rtfs:token name="rtf:sbauto" type="rtfs:Toggle" /> + <rtfs:token name="rtf:sbkcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:sbkeven" type="rtfs:Flag" /> + <rtfs:token name="rtf:sbknone" type="rtfs:Flag" /> + <rtfs:token name="rtf:sbkodd" type="rtfs:Flag" /> + <rtfs:token name="rtf:sbkpage" type="rtfs:Flag" /> + <rtfs:token name="rtf:sbys" type="rtfs:Flag" /> + <rtfs:token name="rtf:scaps" type="rtfs:Toggle" /> + <rtfs:token name="rtf:scompose" type="rtfs:Flag" /> + <rtfs:token name="rtf:sec" type="rtfs:Value" /> + <rtfs:token name="rtf:sect" type="rtfs:Symbol" /> + <rtfs:token name="rtf:sectd" type="rtfs:Flag" /> + <rtfs:token name="rtf:sectdefaultcl" type="rtfs:Value" /> + <rtfs:token name="rtf:sectexpand" type="rtfs:Value" /> + <rtfs:token name="rtf:sectlinegrid" type="rtfs:Value" /> + <rtfs:token name="rtf:sectnum" type="rtfs:Symbol" /> + <rtfs:token name="rtf:sectrsid" type="rtfs:Value" /> + <rtfs:token name="rtf:sectspecifycl" type="rtfs:Value" /> + <rtfs:token name="rtf:sectspecifygen" type="rtfs:Flag" /> + <rtfs:token name="rtf:sectspecifyl" type="rtfs:Value" /> + <rtfs:token name="rtf:sectunlocked" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnbj" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnar" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnauc" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnchi" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnchosung" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnncnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnndbar" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnndbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnndbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnndbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnndbnumt" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnganada" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnngbnum" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnngbnumd" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnngbnumk" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnngbnuml" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnrlc" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnruc" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnzodiac" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnzodiacd" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnnzodiacl" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnrestart" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnrstcont" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnrstpg" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftnstart" type="rtfs:Flag" /> + <rtfs:token name="rtf:sftntj" type="rtfs:Flag" /> + <rtfs:token name="rtf:shad" type="rtfs:Toggle" /> + <rtfs:token name="rtf:shading" type="rtfs:Value" /> + <rtfs:token name="rtf:shidden" type="rtfs:Flag" /> + <rtfs:token name="rtf:shift" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbottom" type="rtfs:Value" /> + <rtfs:token name="rtf:shpbxcolumn" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbxignore" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbxmargin" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbxpage" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbyignore" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbymargin" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbypage" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpbypara" type="rtfs:Flag" /> + <rtfs:token name="rtf:shpfblwtxt" type="rtfs:Value" /> + <rtfs:token name="rtf:shpfhdr" type="rtfs:Value" /> + <rtfs:token name="rtf:shpgrp" type="rtfs:Value" /> + <rtfs:token name="rtf:shpleft" type="rtfs:Value" /> + <rtfs:token name="rtf:shplid" type="rtfs:Value" /> + <rtfs:token name="rtf:shplockanchor" type="rtfs:Flag" /> + <rtfs:token name="rtf:shppict" type="rtfs:Destination" /> + <rtfs:token name="rtf:shpright" type="rtfs:Value" /> + <rtfs:token name="rtf:shprslt" type="rtfs:Value" /> + <rtfs:token name="rtf:shptop" type="rtfs:Value" /> + <rtfs:token name="rtf:shptxt" type="rtfs:Value" /> + <rtfs:token name="rtf:shpwrk" type="rtfs:Value" /> + <rtfs:token name="rtf:shpwr" type="rtfs:Value" /> + <rtfs:token name="rtf:shpz" type="rtfs:Value" /> + <rtfs:token name="rtf:sl" type="rtfs:Value" /> + <rtfs:token name="rtf:slmult" type="rtfs:Value" /> + <rtfs:token name="rtf:snaptogridincell" type="rtfs:Flag" /> + <rtfs:token name="rtf:snext" type="rtfs:Value" /> + <rtfs:token name="rtf:softcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:softlheight" type="rtfs:Value" /> + <rtfs:token name="rtf:softline" type="rtfs:Flag" /> + <rtfs:token name="rtf:softpage" type="rtfs:Flag" /> + <rtfs:token name="rtf:spersonal" type="rtfs:Flag" /> + <rtfs:token name="rtf:splytwnine" type="rtfs:Flag" /> + <rtfs:token name="rtf:sprsbsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:sprslnsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:sprsspbf" type="rtfs:Flag" /> + <rtfs:token name="rtf:sprstsm" type="rtfs:Flag" /> + <rtfs:token name="rtf:sprstsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:spv" type="rtfs:Flag" /> + <rtfs:token name="rtf:sreply" type="rtfs:Flag" /> + <rtfs:token name="rtf:ssemihidden" type="rtfs:Flag" /> + <rtfs:token name="rtf:staticval" type="rtfs:Value" /> + <rtfs:token name="rtf:stextflow" type="rtfs:Value" /> + <rtfs:token name="rtf:strike" type="rtfs:Toggle" /> + <rtfs:token name="rtf:striked1" type="rtfs:Toggle" /> + <rtfs:token name="rtf:stshfbi" type="rtfs:Value" /> + <rtfs:token name="rtf:stshfdbch" type="rtfs:Value" /> + <rtfs:token name="rtf:stshfhich" type="rtfs:Value" /> + <rtfs:token name="rtf:stshfloch" type="rtfs:Value" /> + <rtfs:token name="rtf:stylesheet" type="rtfs:Destination" /> + <rtfs:token name="rtf:styrsid" type="rtfs:Value" /> + <rtfs:token name="rtf:sub" type="rtfs:Flag" /> + <rtfs:token name="rtf:subdocument" type="rtfs:Value" /> + <rtfs:token name="rtf:subfontbysize" type="rtfs:Flag" /> + <rtfs:token name="rtf:subject" type="rtfs:Destination" /> + <rtfs:token name="rtf:super" type="rtfs:Flag" /> + <rtfs:token name="rtf:swpbdr" type="rtfs:Flag" /> + <rtfs:token name="rtf:tab" type="rtfs:Symbol" /> + <rtfs:token name="rtf:tabsnoovrlp" type="rtfs:Flag" /> + <rtfs:token name="rtf:taprtl" type="rtfs:Flag" /> + <rtfs:token name="rtf:tb" type="rtfs:Value" /> + <rtfs:token name="rtf:tbllkbestfit" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllkborder" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllkcolor" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllkfont" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllkhdrcols" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllkhdrrows" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllklastcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllklastrow" type="rtfs:Flag" /> + <rtfs:token name="rtf:tbllkshading" type="rtfs:Flag" /> + <rtfs:token name="rtf:tblrsid" type="rtfs:Flag" /> + <rtfs:token name="rtf:tc" type="rtfs:Destination" /> + <rtfs:token name="rtf:tcelld" type="rtfs:Flag" /> + <rtfs:token name="rtf:tcf" type="rtfs:Value" /> + <rtfs:token name="rtf:tcl" type="rtfs:Value" /> + <rtfs:token name="rtf:tcn" type="rtfs:Flag" /> + <rtfs:token name="rtf:tdfrmtxtBottom" type="rtfs:Value" /> + <rtfs:token name="rtf:tdfrmtxtLeft" type="rtfs:Value" /> + <rtfs:token name="rtf:tdfrmtxtRight" type="rtfs:Value" /> + <rtfs:token name="rtf:tdfrmtxtTop" type="rtfs:Value" /> + <rtfs:token name="rtf:template" type="rtfs:Destination" /> + <rtfs:token name="rtf:time" type="rtfs:Flag" /> + <rtfs:token name="rtf:title" type="rtfs:Destination" /> + <rtfs:token name="rtf:titlepg" type="rtfs:Flag" /> + <rtfs:token name="rtf:tldot" type="rtfs:Flag" /> + <rtfs:token name="rtf:tleq" type="rtfs:Flag" /> + <rtfs:token name="rtf:tlhyph" type="rtfs:Flag" /> + <rtfs:token name="rtf:tlmdot" type="rtfs:Flag" /> + <rtfs:token name="rtf:tlth" type="rtfs:Flag" /> + <rtfs:token name="rtf:tlul" type="rtfs:Flag" /> + <rtfs:token name="rtf:toplinepunct" type="rtfs:Flag" /> + <rtfs:token name="rtf:tphcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:tphmrg" type="rtfs:Flag" /> + <rtfs:token name="rtf:tphpg" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposnegx" type="rtfs:Value" /> + <rtfs:token name="rtf:tposnegy" type="rtfs:Value" /> + <rtfs:token name="rtf:tposxc" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposxi" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposxl" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposx" type="rtfs:Value" /> + <rtfs:token name="rtf:tposxo" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposxr" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposy" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposyb" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposyc" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposyil" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposyin" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposyoutv" type="rtfs:Flag" /> + <rtfs:token name="rtf:tposyt" type="rtfs:Flag" /> + <rtfs:token name="rtf:tpvmrg" type="rtfs:Flag" /> + <rtfs:token name="rtf:tpvpara" type="rtfs:Flag" /> + <rtfs:token name="rtf:tpvpg" type="rtfs:Flag" /> + <rtfs:token name="rtf:tqc" type="rtfs:Flag" /> + <rtfs:token name="rtf:tqdec" type="rtfs:Flag" /> + <rtfs:token name="rtf:tqr" type="rtfs:Flag" /> + <rtfs:token name="rtf:transmf" type="rtfs:Flag" /> + <rtfs:token name="rtf:trauth" type="rtfs:Value" /> + <rtfs:token name="rtf:trautofit" type="rtfs:Toggle" /> + <rtfs:token name="rtf:trbgbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdkbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdkcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdkdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdkfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdkhor" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgdkvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbghoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbgvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbrdrb" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbrdrh" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbrdrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbrdrr" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbrdrt" type="rtfs:Flag" /> + <rtfs:token name="rtf:trbrdrv" type="rtfs:Flag" /> + <rtfs:token name="rtf:trcbpat" type="rtfs:Value" /> + <rtfs:token name="rtf:trcfpat" type="rtfs:Value" /> + <rtfs:token name="rtf:trdate" type="rtfs:Value" /> + <rtfs:token name="rtf:trftsWidthA" type="rtfs:Value" /> + <rtfs:token name="rtf:trftsWidthB" type="rtfs:Value" /> + <rtfs:token name="rtf:trftsWidth" type="rtfs:Value" /> + <rtfs:token name="rtf:trgaph" type="rtfs:Value" /> + <rtfs:token name="rtf:trhdr" type="rtfs:Flag" /> + <rtfs:token name="rtf:trkeep" type="rtfs:Flag" /> + <rtfs:token name="rtf:trleft" type="rtfs:Value" /> + <rtfs:token name="rtf:trowd" type="rtfs:Flag" /> + <rtfs:token name="rtf:trpaddb" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddfb" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddfl" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddfr" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddft" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddl" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddr" type="rtfs:Value" /> + <rtfs:token name="rtf:trpaddt" type="rtfs:Value" /> + <rtfs:token name="rtf:trpat" type="rtfs:Value" /> + <rtfs:token name="rtf:trqc" type="rtfs:Flag" /> + <rtfs:token name="rtf:trql" type="rtfs:Flag" /> + <rtfs:token name="rtf:trqr" type="rtfs:Flag" /> + <rtfs:token name="rtf:trrh" type="rtfs:Value" /> + <rtfs:token name="rtf:trshdng" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdb" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdfb" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdfl" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdfr" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdft" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdl" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdr" type="rtfs:Value" /> + <rtfs:token name="rtf:trspdt" type="rtfs:Value" /> + <rtfs:token name="rtf:truncatefontheight" type="rtfs:Flag" /> + <rtfs:token name="rtf:trwWidthA" type="rtfs:Value" /> + <rtfs:token name="rtf:trwWidthB" type="rtfs:Value" /> + <rtfs:token name="rtf:trwWidth" type="rtfs:Value" /> + <rtfs:token name="rtf:ts" type="rtfs:Value" /> + <rtfs:token name="rtf:tsbgbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdkbdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdkcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdkdcross" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdkfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdkhor" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgdkvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgfdiag" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbghoriz" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbgvert" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrb" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrdgl" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrdgr" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrh" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrr" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrr" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrt" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsbrdrv" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscbandhorzeven" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscbandhorzodd" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscbandsh" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscbandsv" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscbandverteven" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscbandvertodd" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscellcbpat" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellcfpat" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddb" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddfb" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddfl" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddfr" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddft" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddl" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddr" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpaddt" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellpct" type="rtfs:Value" /> + <rtfs:token name="rtf:tscellwidth" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscellwidthfts" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscfirstcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscfirstrow" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsclastcol" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsclastrow" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscnecell" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscnwcell" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscsecell" type="rtfs:Flag" /> + <rtfs:token name="rtf:tscswcell" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsd" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsnowrap" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsrowd" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsvertalb" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsvertalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:tsvertalt" type="rtfs:Flag" /> + <rtfs:token name="rtf:twoonone" type="rtfs:Flag" /> + <rtfs:token name="rtf:tx" type="rtfs:Value" /> + <rtfs:token name="rtf:txe" type="rtfs:Destination" /> + <rtfs:token name="rtf:uc" type="rtfs:Value" /> + <rtfs:token name="rtf:ud" type="rtfs:Destination" /> + <rtfs:token name="rtf:ul" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulc" type="rtfs:Value" /> + <rtfs:token name="rtf:uld" type="rtfs:Flag" /> + <rtfs:token name="rtf:uldash" type="rtfs:Toggle" /> + <rtfs:token name="rtf:uldashd" type="rtfs:Toggle" /> + <rtfs:token name="rtf:uldashdd" type="rtfs:Toggle" /> + <rtfs:token name="rtf:uldb" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulhair" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulhwave" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulldash" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulnone" type="rtfs:Flag" /> + <rtfs:token name="rtf:ulth" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulth" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulthd" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulthdash" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulthdashd" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulthdashdd" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulthldash" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ululdbwave" type="rtfs:Toggle" /> + <rtfs:token name="rtf:ulw" type="rtfs:Flag" /> + <rtfs:token name="rtf:ulwave" type="rtfs:Toggle" /> + <rtfs:token name="rtf:u" type="rtfs:Value" /> + <rtfs:token name="rtf:up" type="rtfs:Value" /> + <rtfs:token name="rtf:upr" type="rtfs:Destination" /> + <rtfs:token name="rtf:urtf" type="rtfs:Destination" /> + <rtfs:token name="rtf:useltbaln" type="rtfs:Flag" /> + <rtfs:token name="rtf:userprops" type="rtfs:Destination" /> + <rtfs:token name="rtf:v" type="rtfs:Toggle" /> + <rtfs:token name="rtf:vern" type="rtfs:Value" /> + <rtfs:token name="rtf:version" type="rtfs:Value" /> + <rtfs:token name="rtf:vertalb" type="rtfs:Flag" /> + <rtfs:token name="rtf:vertalc" type="rtfs:Flag" /> + <rtfs:token name="rtf:vertalj" type="rtfs:Flag" /> + <rtfs:token name="rtf:vertalt" type="rtfs:Flag" /> + <rtfs:token name="rtf:vertdoc" type="rtfs:Flag" /> + <rtfs:token name="rtf:vertsect" type="rtfs:Flag" /> + <rtfs:token name="rtf:viewkind" type="rtfs:Value" /> + <rtfs:token name="rtf:viewnobound" type="rtfs:Flag" /> + <rtfs:token name="rtf:viewscale" type="rtfs:Value" /> + <rtfs:token name="rtf:viewzk" type="rtfs:Value" /> + <rtfs:token name="rtf:wbitmap" type="rtfs:Value" /> + <rtfs:token name="rtf:wbmbitspixel" type="rtfs:Value" /> + <rtfs:token name="rtf:wbmplanes" type="rtfs:Value" /> + <rtfs:token name="rtf:wbmwidthbytes" type="rtfs:Value" /> + <rtfs:token name="rtf:webhidden" type="rtfs:Flag" /> + <rtfs:token name="rtf:widctlpar" type="rtfs:Flag" /> + <rtfs:token name="rtf:widowctrl" type="rtfs:Flag" /> + <rtfs:token name="rtf:windowcaption" type="rtfs:Value" /> + <rtfs:token name="rtf:wmetafile" type="rtfs:Value" /> + <rtfs:token name="rtf:wpeqn" type="rtfs:Flag" /> + <rtfs:token name="rtf:wpjst" type="rtfs:Flag" /> + <rtfs:token name="rtf:wpsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:wraptrsp" type="rtfs:Flag" /> + <rtfs:token name="rtf:wrppunct" type="rtfs:Flag" /> + <rtfs:token name="rtf:xe" type="rtfs:Destination" /> + <rtfs:token name="rtf:xef" type="rtfs:Value" /> + <rtfs:token name="rtf:yr" type="rtfs:Value" /> + <rtfs:token name="rtf:yts" type="rtfs:Value" /> + <rtfs:token name="rtf:yxe" type="rtfs:Flag" /> + <rtfs:token name="rtf:zwbo" type="rtfs:Symbol" /> + <rtfs:token name="rtf:zwj" type="rtfs:Symbol" /> + <rtfs:token name="rtf:zwnbo" type="rtfs:Symbol" /> + <rtfs:token name="rtf:zwnj" type="rtfs:Symbol" /> + + + + <rtfs:token name="rtf:listlevel" type="rtfs:Attribute" /> + +</rtfs:definition>
\ No newline at end of file diff --git a/writerfilter/source/rtftok/FlexLexer.h b/writerfilter/source/rtftok/FlexLexer.h new file mode 100644 index 000000000000..52cc3f2162af --- /dev/null +++ b/writerfilter/source/rtftok/FlexLexer.h @@ -0,0 +1,128 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + + +#ifndef __FLEX_LEXER_H +// Never included before - need to define base class. +#define __FLEX_LEXER_H +//#include <iostream.h> +typedef void ostream; +#include <vector> +#include <rtftok/RTFInputSource.hxx> + +extern "C++" { + +struct yy_buffer_state; +typedef int yy_state_type; + +} +#include <rtftok/RTFScanner.hxx> +#endif + +#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) +// Either this is the first time through (yyFlexLexerOnce not defined), +// or this is a repeated include to define a different flavor of +// yyFlexLexer, as discussed in the flex man page. +#define yyFlexLexerOnce + +class yyFlexLexer : public writerfilter::rtftok::RTFScanner { +private: + class RtfTokenizer* tokenizerInstance; + + void split_ctrl(char *yytext, char* token, char *value); + void raise_ctrl(char* yytext); + void raise_dest(char* yytext); + void raise_destOrCtrl(char* yytext); +protected: + int num_lines; + sal_uInt64 num_chars; + int star_flag; + +public: + // arg_yyin and arg_yyout default to the cin and cout, but we + // only make that assignment when initializing in yylex(). + yyFlexLexer( class writerfilter::rtftok::RTFInputSource* arg_yyin, class writerfilter::rtftok::RTFScannerHandler &eventHandler ); + + virtual ~yyFlexLexer(); + + void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); + struct yy_buffer_state* yy_create_buffer( class writerfilter::rtftok::RTFInputSource* s, int size ); + void yy_delete_buffer( struct yy_buffer_state* b ); + void yyrestart( class writerfilter::rtftok::RTFInputSource* s ); + + virtual int yylex(); + virtual void switch_streams( class writerfilter::rtftok::RTFInputSource* new_in, ostream* new_out ); + +protected: + +// int LexerInput( char* buf, int max_size ); + virtual void LexerOutput( const char* buf, int size ); + virtual void LexerError( const char* msg ); + + void yyunput( int c, char* buf_ptr ); + int yyinput(); + + void yy_load_buffer_state(); + void yy_init_buffer( struct yy_buffer_state* b, class writerfilter::rtftok::RTFInputSource* s ); + void yy_flush_buffer( struct yy_buffer_state* b ); + + int yy_start_stack_ptr; + int yy_start_stack_depth; + int* yy_start_stack; + + void yy_push_state( int new_state ); + void yy_pop_state(); + int yy_top_state(); + + yy_state_type yy_get_previous_state(); + yy_state_type yy_try_NUL_trans( yy_state_type current_state ); + int yy_get_next_buffer(); + + class writerfilter::rtftok::RTFInputSource* yyin; // input source for default LexerInput + ostream* yyout; // output sink for default LexerOutput + + struct yy_buffer_state* yy_current_buffer; + + // yy_hold_char holds the character lost when yytext is formed. + char yy_hold_char; + + // Number of characters read into yy_ch_buf. + int yy_n_chars; + + // Points to current character in buffer. + char* yy_c_buf_p; + + int yy_init; // whether we need to initialize + int yy_start; // start state number + + // Flag which is used to allow yywrap()'s to do buffer switches + // instead of setting up a fresh yyin. A bit of a hack ... + int yy_did_buffer_switch_on_eof; + + // The following are not always needed, but may be depending + // on use of certain flex features (like REJECT or yymore()). + + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + yy_state_type* yy_state_buf; + yy_state_type* yy_state_ptr; + + char* yy_full_match; + int* yy_full_state; + int yy_full_lp; + + int yy_lp; + int yy_looking_for_trail_begin; + + int yy_more_flag; + int yy_more_len; + int yy_more_offset; + int yy_prev_more_offset; + + private: + +}; + +#endif diff --git a/writerfilter/source/rtftok/RTFParseException.cxx b/writerfilter/source/rtftok/RTFParseException.cxx new file mode 100644 index 000000000000..6f49e5d6a853 --- /dev/null +++ b/writerfilter/source/rtftok/RTFParseException.cxx @@ -0,0 +1,10 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + +#include <rtftok/RTFParseException.hxx> + +writerfilter::rtftok::RTFParseException::RTFParseException(char * /*message*/) +{ +} + diff --git a/writerfilter/source/rtftok/RTFScanner.lex b/writerfilter/source/rtftok/RTFScanner.lex new file mode 100644 index 000000000000..53d2d06b9ae9 --- /dev/null +++ b/writerfilter/source/rtftok/RTFScanner.lex @@ -0,0 +1,311 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +/* compile with flex++ -8 -f -+ -Sflex.skl -ortfparser.cxx rtfparser.lex */ +%option yylineno +%{ + //#include <io.h> +#include <math.h> +#include <string.h> +#include <osl/file.h> +#include <assert.h> +#include <vector> + +#if defined (UNX) + #define stricmp strcasecmp +#endif + +writerfilter::rtftok::RTFScanner* writerfilter::rtftok::RTFScanner::createRTFScanner(class writerfilter::rtftok::RTFInputSource& inputSource, writerfilter::rtftok::RTFScannerHandler &eventHandler) +{ + return new yyFlexLexer(&inputSource, eventHandler); +} + + + +extern "C" { +//int isatty(int fd) { return 0; } +int yywrap(void) { return 1; } +} + +/* +oslFileHandle yy_osl_in=NULL; +#define YY_INPUT(buf,result,max_size) \ +{\ +{\ + assert(yy_osl_in!=NULL);\ + sal_Bool isEOF;\ + oslFileError ret=osl_isEndOfFile( yy_osl_in, &isEOF );\ + assert(ret==osl_File_E_None);\ + if (isEOF)\ + {\ + result=YY_NULL;\ + }\ + else\ + {\ + sal_uInt64 bytesRead;\ + ret=osl_readFile( yy_osl_in, buf, max_size, &bytesRead);\ + assert(ret==osl_File_E_None);\ + result = bytesRead; \ + }\ +}\ +} +*/ + +//extern RtfTokenizer* this; +void yyFlexLexer::split_ctrl(char *yytext, char* token, char *value) + { + int i=0; // skip first '\' + while(yytext[i]!=0 && (yytext[i]=='\r' || yytext[i]=='\n')) i++; + while(yytext[i]!=0 && (yytext[i]<'A' || (yytext[i]>'Z' && yytext[i]<'a') || yytext[i]>'z')) i++; + while(yytext[i]!=0 && yytext[i]>='A') *(token++)=yytext[i++]; + *token=0; + while(yytext[i]!=0 && yytext[i]>' ') *(value++)=yytext[i++]; + *value=0; + } + + void yyFlexLexer::raise_ctrl(char* yytext) + { + char token[50]; + char value[50]; + split_ctrl(yytext, token, value); + eventHandler.ctrl(token, value); + } + + void yyFlexLexer::raise_dest(char* yytext) + { + char token[50]; + char value[50]; + split_ctrl(yytext, token, value); + eventHandler.dest(token, value); + } + + #define _num_of_destctrls 137 +char _destctrls[_num_of_destctrls][20] = { +"aftncn", +"aftnsep", +"aftnsepc", +"annotation", +"atnauthor", +"atndate", +"atnicn", +"atnid", +"atnparent", +"atnref", +"atntime", +"atrfend", +"atrfstart", +"author", +"background", +"bkmkend", +"bkmkstart", +"buptim", +"category", +"colortbl", +"comment", +"company", +"creatim", +"datafield", +"do", +"doccomm", +"docvar", +"dptxbxtext", +"falt", +"fchars", +"ffdeftext", +"ffentrymcr", +"ffexitmcr", +"ffformat", +"ffhelptext", +"ffl", +"ffname", +"ffstattext", +"field", +"file", +"filetbl", +"fldinst", +"fldrslt", +"fldtype", +"fname", +"fontemb", +"fontfile", +"fonttbl", +"footer", +"footer", +"footerf", +"footerl", +"footnote", +"formfield", +"ftncn", +"ftnsep", +"ftnsepc", +"g", +"generator", +"gridtbl", +"header", +"header", +"headerf", +"headerl", +"htmltag", +"info", +"keycode", +"keywords", +"lchars", +"levelnumbers", +"leveltext", +"lfolevel", +"list", +"listlevel", +"listname", +"listoverride", +"listoverridetable", +"listtable", +"listtext", +"manager", +"mhtmltag", +"nesttableprops", +"nextfile", +"nonesttables", +"nonshppict", +"objalias", +"objclass", +"objdata", +"object", +"objname", +"objsect", +"objtime", +"oldcprops", +"oldpprops", +"oldsprops", +"oldtprops", +"operator", +"panose", +"pgp", +"pgptbl", +"picprop", +"pict", +"pn", +"pnseclvl", +"pntext", +"pntxta", +"pntxtb", +"printim", +"private", +"pwd", +"pxe", +"result", +"revtbl", +"revtim", +"rsidtbl", +"rtf", +"rxe", +"shp", +"shpgrp", +"shpinst", +"shppict", +"shprslt", +"shptxt", +"sn", +"sp", +"stylesheet", +"subject", +"sv", +"tc", +"template", +"title", +"txe", +"ud", +"upr", +"urtf", +"userprops", +"xe" +}; + + + void yyFlexLexer::raise_destOrCtrl(char* yytext) + { + char token[50]; + char value[50]; + split_ctrl(yytext, token, value); + char* result=(char*)bsearch(token, _destctrls, _num_of_destctrls, 20, (int (*)(const void*, const void*))stricmp); + if (result) + { + eventHandler.dest(token, value); + } + else + { + eventHandler.lbrace(); + eventHandler.ctrl(token, value); + } + } + +%} + +%% +\{\\upr\{" "? { /* skip upr destination */ + int c; + int br=1; + while (br>0 && (c = yyinput()) != EOF) + { + if (c=='}') br--; + if (c=='{') br++; + } + eventHandler.lbrace(); + num_chars+=yyleng; +} + + +\\bin(("+"|"-")?[0-9]*)?" "? { + raise_dest(yytext); + num_chars+=yyleng; + int len=atoi(yytext+4); + num_chars+=len; + // pictureBytes=2*len; + while ( len ) + { + int c = yyinput(); + eventHandler.addBinData((unsigned char)c); + len--; + } + eventHandler.rbrace(); +} + +\{[\r\n]*\\\*\\[A-Za-z]+(("+"|"-")?[0-9]*)?" "? { /* stared dest word */ + raise_dest(yytext); + num_chars+=yyleng; +} +\{[\r\n]*\\[A-Za-z]+(("+"|"-")?[0-9]*)?" "? { /* dest word */ + raise_destOrCtrl(yytext); +} +\\[A-Za-z]+(("+"|"-")?[0-9]*)?" "? { /* ctrl word */ + raise_ctrl(yytext); + star_flag=0; + num_chars+=yyleng; +} +\\\'[A-Fa-f0-9][A-Fa-f0-9] { /* hex char */ + eventHandler.addHexChar(yytext); + num_chars+=yyleng; +} +\\* { /* star */ + star_flag=1; + num_chars+=yyleng; +} +\{ { /* lbrace */ + eventHandler.lbrace(); + num_chars+=yyleng; +} +\} { /* rbrace */ + eventHandler.rbrace(); + num_chars+=yyleng; +} +\\\| { num_chars+=yyleng;} +\\~ {num_chars+=yyleng; eventHandler.addCharU(0xa0);} +\\- {num_chars+=yyleng;} +\\_ {num_chars+=yyleng;} +\\\: {num_chars+=yyleng;} +\n { ++num_lines;num_chars+=yyleng;} +\r {num_chars+=yyleng;} +\t {num_chars+=yyleng;} +" "(" "+) { eventHandler.addSpaces(yyleng); num_chars+=yyleng;} +. { eventHandler.addChar(yytext[0]); num_chars+=yyleng;} +%% diff --git a/writerfilter/source/rtftok/RTFScanner.skl b/writerfilter/source/rtftok/RTFScanner.skl new file mode 100644 index 000000000000..e1a3e300f9ef --- /dev/null +++ b/writerfilter/source/rtftok/RTFScanner.skl @@ -0,0 +1,1542 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 + +%- +#include <stdio.h> +%* + + +/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ +#ifdef c_plusplus +#ifndef __cplusplus +#define __cplusplus +#endif +#endif + + +#ifdef __cplusplus + +#include <math.h> +#include <osl/file.h> +#include <rtl/alloc.h> +#include <rtftok/RTFInputSource.hxx> +#include <rtftok/RTFParseException.hxx> + +static const int EOF=0; + +%+ +//class istream; +%* +//#include <unistd.h> + +/* Use prototypes in function declarations. */ +#define YY_USE_PROTOS + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +#if __STDC__ + +#define YY_USE_PROTOS +#define YY_USE_CONST + +#endif /* __STDC__ */ +#endif /* ! __cplusplus */ + +#ifdef __TURBOC__ + #pragma warn -rch + #pragma warn -use +#include <io.h> +#include <stdlib.h> +#define YY_USE_CONST +#define YY_USE_PROTOS +#endif + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + + +#ifdef YY_USE_PROTOS +#define YY_PROTO(proto) proto +#else +#define YY_PROTO(proto) () +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yy_start = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yy_start - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart( yyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#define YY_BUF_SIZE 16384 + +typedef struct yy_buffer_state *YY_BUFFER_STATE; + +extern int yyleng; +%- +extern FILE *yyin, *yyout; +%* + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + +/* The funky do-while in the following #define is used to turn the definition + * int a single C statement (which needs a semi-colon terminator). This + * avoids problems with code like: + * + * if ( condition_holds ) + * yyless( 5 ); + * else + * do_something_else(); + * + * Prior to using the do-while the compiler would get upset at the + * "else" because it interpreted the "if" statement as being all + * done when it reached the ';' after the yyless() call. + */ + +/* Return all but the first 'n' matched characters back to the input stream. */ + +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + *yy_cp = yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, yytext_ptr ) + +/* The following is because we cannot portably get our hands on size_t + * (without autoconf's help, which isn't available because we want + * flex-generated scanners to compile on their own). + */ +typedef unsigned int yy_size_t; + + +struct yy_buffer_state + { +%- + FILE *yy_input_file; +%+ +// istream* yy_input_file; + writerfilter::rtftok::RTFInputSource *yy_input_file; +%* + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + }; + +%- Standard (non-C++) definition +static YY_BUFFER_STATE yy_current_buffer = 0; +%* + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + */ +#define YY_CURRENT_BUFFER yy_current_buffer + + +%- Standard (non-C++) definition +/* yy_hold_char holds the character lost when yytext is formed. */ +static char yy_hold_char; + +static int yy_n_chars; /* number of characters read into yy_ch_buf */ + + +int yyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 1; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void yyrestart YY_PROTO(( FILE *input_file )); + +void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); +void yy_load_buffer_state YY_PROTO(( void )); +YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); +void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); +void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); +void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); +#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) + +YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); +YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); +YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); +%* + +static void *yy_flex_alloc YY_PROTO(( yy_size_t )); +static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); +static void yy_flex_free YY_PROTO(( void * )); + +#define yy_new_buffer yy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! yy_current_buffer ) \ + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ + yy_current_buffer->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (yy_current_buffer->yy_at_bol) + +%% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here + +%- Standard (non-C++) definition +static yy_state_type yy_get_previous_state YY_PROTO(( void )); +static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); +static int yy_get_next_buffer YY_PROTO(( void )); +static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); +%* + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yytext_ptr = yy_bp; \ +%% code to fiddle yytext and yyleng for yymore() goes here + yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ +%% code to copy yytext_ptr to yytext[] goes here, if %array + yy_c_buf_p = yy_cp; + +%% data tables for the DFA and the user's section 1 definitions go here + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap YY_PROTO(( void )); +#else +extern int yywrap YY_PROTO(( void )); +#endif +#endif + +%- +#ifndef YY_NO_UNPUT +static void yyunput YY_PROTO(( int c, char *buf_ptr )); +#endif +%* + +#ifndef yytext_ptr +static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen YY_PROTO(( yyconst char * )); +#endif + +#ifndef YY_NO_INPUT +%- Standard (non-C++) definition +#ifdef __cplusplus +static int yyinput YY_PROTO(( void )); +#else +static int input YY_PROTO(( void )); +#endif +%* +#endif + +#if YY_STACK_USED +static int yy_start_stack_ptr = 0; +static int yy_start_stack_depth = 0; +static int *yy_start_stack = 0; +#ifndef YY_NO_PUSH_STATE +static void yy_push_state YY_PROTO(( int new_state )); +#endif +#ifndef YY_NO_POP_STATE +static void yy_pop_state YY_PROTO(( void )); +#endif +#ifndef YY_NO_TOP_STATE +static int yy_top_state YY_PROTO(( void )); +#endif + +#else +#define YY_NO_PUSH_STATE 1 +#define YY_NO_POP_STATE 1 +#define YY_NO_TOP_STATE 1 +#endif + +#ifdef YY_MALLOC_DECL +YY_MALLOC_DECL +#else +#if __STDC__ +#ifndef __cplusplus +#include <stdlib.h> +#endif +#else +/* Just try to get by without declaring the routines. This will fail + * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) + * or sizeof(void*) != sizeof(int). + */ +#endif +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ + +#ifndef ECHO +%- Standard (non-C++) definition +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) +%+ C++ definition +#define ECHO LexerOutput( yytext, yyleng ) +%* +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ +%% fread()/read() definition of YY_INPUT goes here unless we're doing C++ +%+ C++ definition +{result=yyin->read(buf, max_size);} +%* +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +%- +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +%+ +#define YY_FATAL_ERROR(msg) LexerError( msg ) +%* +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +%- Standard (non-C++) definition +#define YY_DECL int yylex YY_PROTO(( void )) +%+ C++ definition +#define YY_DECL int yyFlexLexer::yylex() +%* +#endif + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +%% YY_RULE_SETUP definition goes here + +YY_DECL + { + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +%% user's declarations go here + + if ( yy_init ) + { + yy_init = 0; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yy_start ) + yy_start = 1; /* first start state */ + + if ( ! yyin ) +%- + yyin = stdin; +%+ +// yyin = &cin; + yyin = NULL; +%* + + if ( ! yyout ) +%- + yyout = stdout; +%+ +// yyout = &cout; + yyout = NULL; +%* + + if ( ! yy_current_buffer ) + yy_current_buffer = + yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_load_buffer_state(); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { +%% yymore()-related code goes here + yy_cp = yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + +%% code to set up and find next match goes here + +yy_find_action: +%% code to find the action number goes here + + YY_DO_BEFORE_ACTION; + +%% code for yylineno update goes here + +do_action: /* This label is used only to access EOF actions. */ + +%% debug code goes here + + switch ( yy_act ) + { /* beginning of action switch */ +%% actions go here + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between yy_current_buffer and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yy_n_chars = yy_current_buffer->yy_n_chars; + yy_current_buffer->yy_input_file = yyin; + yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { +%% code to do back-up for compressed tables and set up yy_cp goes here + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer() ) + { + case EOB_ACT_END_OF_FILE: + { + yy_did_buffer_switch_on_eof = 0; + + if ( yywrap() ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = + yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yy_c_buf_p = + &yy_current_buffer->yy_ch_buf[yy_n_chars]; + + yy_current_state = yy_get_previous_state(); + + yy_cp = yy_c_buf_p; + yy_bp = yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of yylex */ + +%+ +yyFlexLexer::yyFlexLexer( writerfilter::rtftok::RTFInputSource* arg_yyin, class writerfilter::rtftok::RTFScannerHandler &eventHandler ) +: writerfilter::rtftok::RTFScanner(eventHandler) + { + yyin = arg_yyin; + yyout = 0; + yy_c_buf_p = 0; + yy_init = 1; + yy_start = 0; + yy_flex_debug = 0; + yylineno = 1; // this will only get updated if %option yylineno + + yy_did_buffer_switch_on_eof = 0; + + yy_looking_for_trail_begin = 0; + yy_more_flag = 0; + yy_more_len = 0; + yy_more_offset = yy_prev_more_offset = 0; + + yy_start_stack_ptr = yy_start_stack_depth = 0; + yy_start_stack = 0; + + yy_current_buffer = 0; + +#ifdef YY_USES_REJECT + yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2]; +#else + yy_state_buf = 0; +#endif + + num_lines=0; + num_chars=0; + star_flag=false; + } + +yyFlexLexer::~yyFlexLexer() + { + delete yy_state_buf; + yy_delete_buffer( yy_current_buffer ); + } + +void yyFlexLexer::switch_streams( writerfilter::rtftok::RTFInputSource* new_in, ostream* new_out ) + { + if ( new_in ) + { + yy_delete_buffer( yy_current_buffer ); + yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) ); + } + + if ( new_out ) + yyout = new_out; + } + +#if 0 +#ifdef YY_INTERACTIVE +int yyFlexLexer::LexerInput( char* buf, int /* max_size */ ) +#else +int yyFlexLexer::LexerInput( char* buf, int max_size ) +#endif +{ + OSL_ASSERT(yyin!=NULL); + ::com::sun::star::uno::Sequence< ::sal_Int8 > buffer; + int len=yyin->readSomeBytes(buffer,max_size); + if (len>0) + { + sal_Int8 *_buffer=buffer.getArray(); + memcpy(buf, _buffer, len); + return len; + } + else + { + return YY_NULL; + } +} +#endif + +void yyFlexLexer::LexerOutput( const char* buf, int size ) + { +// (void) yyout->write( buf, size ); + } +%* + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ + +%- +static int yy_get_next_buffer() +%+ +int yyFlexLexer::yy_get_next_buffer() +%* + { + register char *dest = yy_current_buffer->yy_ch_buf; + register char *source = yytext_ptr; + register int number_to_move, i; + int ret_val; + + if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( yy_current_buffer->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + yy_current_buffer->yy_n_chars = yy_n_chars = 0; + + else + { + int num_to_read = + yy_current_buffer->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ +#ifdef YY_USES_REJECT + YY_FATAL_ERROR( +"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); +#else + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = yy_current_buffer; + + int yy_c_buf_p_offset = + (int) (yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yy_flex_realloc( (void *) b->yy_ch_buf, + b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = yy_current_buffer->yy_buf_size - + number_to_move - 1; +#endif + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), + yy_n_chars, num_to_read ); + + yy_current_buffer->yy_n_chars = yy_n_chars; + } + + if ( yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart( yyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + yy_current_buffer->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + yy_n_chars += number_to_move; + yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; + yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; + + return ret_val; + } + + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +%- +static yy_state_type yy_get_previous_state() +%+ +yy_state_type yyFlexLexer::yy_get_previous_state() +%* + { + register yy_state_type yy_current_state; + register char *yy_cp; + +%% code to get the start state into yy_current_state goes here + + for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) + { +%% code to find the next state goes here + } + + return yy_current_state; + } + + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + +%- +#ifdef YY_USE_PROTOS +static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) +#else +static yy_state_type yy_try_NUL_trans( yy_current_state ) +yy_state_type yy_current_state; +#endif +%+ +yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) +%* + { + register int yy_is_jam; +%% code to find the next state, and perhaps do backing up, goes here + + return yy_is_jam ? 0 : yy_current_state; + } + + +%- +#ifndef YY_NO_UNPUT +#ifdef YY_USE_PROTOS +static void yyunput( int c, register char *yy_bp ) +#else +static void yyunput( c, yy_bp ) +int c; +register char *yy_bp; +#endif +%+ +void yyFlexLexer::yyunput( int c, register char* yy_bp ) +%* + { + register char *yy_cp = yy_c_buf_p; + + /* undo effects of setting up yytext */ + *yy_cp = yy_hold_char; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register int number_to_move = yy_n_chars + 2; + register char *dest = &yy_current_buffer->yy_ch_buf[ + yy_current_buffer->yy_buf_size + 2]; + register char *source = + &yy_current_buffer->yy_ch_buf[number_to_move]; + + while ( source > yy_current_buffer->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + yy_current_buffer->yy_n_chars = + yy_n_chars = yy_current_buffer->yy_buf_size; + + if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + +%% update yylineno here + + yytext_ptr = yy_bp; + yy_hold_char = *yy_cp; + yy_c_buf_p = yy_cp; + } +%- +#endif /* ifndef YY_NO_UNPUT */ +%* + + +%- +#ifdef __cplusplus +static int yyinput() +#else +static int input() +#endif +%+ +int yyFlexLexer::yyinput() +%* + { + int c; + + *yy_c_buf_p = yy_hold_char; + + if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) + /* This was really a NUL. */ + *yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = yy_c_buf_p - yytext_ptr; + ++yy_c_buf_p; + + switch ( yy_get_next_buffer() ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart( yyin ); + + /* fall through */ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap() ) + return EOF; + + if ( ! yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yy_c_buf_p = yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ + *yy_c_buf_p = '\0'; /* preserve yytext */ + yy_hold_char = *++yy_c_buf_p; + +%% update BOL and yylineno + + return c; + } + + +%- +#ifdef YY_USE_PROTOS +void yyrestart( FILE *input_file ) +#else +void yyrestart( input_file ) +FILE *input_file; +#endif +%+ +void yyFlexLexer::yyrestart( writerfilter::rtftok::RTFInputSource* input_file ) +%* + { + if ( ! yy_current_buffer ) + yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); + + yy_init_buffer( yy_current_buffer, input_file ); + yy_load_buffer_state(); + } + + +%- +#ifdef YY_USE_PROTOS +void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) +#else +void yy_switch_to_buffer( new_buffer ) +YY_BUFFER_STATE new_buffer; +#endif +%+ +void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) +%* + { + if ( yy_current_buffer == new_buffer ) + return; + + if ( yy_current_buffer ) + { + /* Flush out information for old buffer. */ + *yy_c_buf_p = yy_hold_char; + yy_current_buffer->yy_buf_pos = yy_c_buf_p; + yy_current_buffer->yy_n_chars = yy_n_chars; + } + + yy_current_buffer = new_buffer; + yy_load_buffer_state(); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yy_did_buffer_switch_on_eof = 1; + } + + +%- +#ifdef YY_USE_PROTOS +void yy_load_buffer_state( void ) +#else +void yy_load_buffer_state() +#endif +%+ +void yyFlexLexer::yy_load_buffer_state() +%* + { + yy_n_chars = yy_current_buffer->yy_n_chars; + yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; + yyin = yy_current_buffer->yy_input_file; + yy_hold_char = *yy_c_buf_p; + } + + +%- +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) +#else +YY_BUFFER_STATE yy_create_buffer( file, size ) +FILE *file; +int size; +#endif +%+ +YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( writerfilter::rtftok::RTFInputSource* file, int size ) +%* + { + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer( b, file ); + + return b; + } + + +%- +#ifdef YY_USE_PROTOS +void yy_delete_buffer( YY_BUFFER_STATE b ) +#else +void yy_delete_buffer( b ) +YY_BUFFER_STATE b; +#endif +%+ +void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) +%* + { + if ( ! b ) + return; + + if ( b == yy_current_buffer ) + yy_current_buffer = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yy_flex_free( (void *) b->yy_ch_buf ); + + yy_flex_free( (void *) b ); + } + + +%- +#ifndef YY_ALWAYS_INTERACTIVE +#ifndef YY_NEVER_INTERACTIVE +extern int isatty YY_PROTO(( int )); +#endif +#endif + +#ifdef YY_USE_PROTOS +void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) +#else +void yy_init_buffer( b, file ) +YY_BUFFER_STATE b; +FILE *file; +#endif + +%+ +//extern "C" int isatty YY_PROTO(( int )); +void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, writerfilter::rtftok::RTFInputSource* file ) +%* + + { + yy_flush_buffer( b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + +%- +#if YY_ALWAYS_INTERACTIVE + b->yy_is_interactive = 1; +#else +#if YY_NEVER_INTERACTIVE + b->yy_is_interactive = 0; +#else + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; +#endif +#endif +%+ + b->yy_is_interactive = 0; +%* + } + + +%- +#ifdef YY_USE_PROTOS +void yy_flush_buffer( YY_BUFFER_STATE b ) +#else +void yy_flush_buffer( b ) +YY_BUFFER_STATE b; +#endif + +%+ +void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) +%* + { + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == yy_current_buffer ) + yy_load_buffer_state(); + } +%* + + +#ifndef YY_NO_SCAN_BUFFER +%- +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) +#else +YY_BUFFER_STATE yy_scan_buffer( base, size ) +char *base; +yy_size_t size; +#endif + { + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer( b ); + + return b; + } +%* +#endif + + +#ifndef YY_NO_SCAN_STRING +%- +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) +#else +YY_BUFFER_STATE yy_scan_string( yy_str ) +yyconst char *yy_str; +#endif + { + int len; + for ( len = 0; yy_str[len]; ++len ) + ; + + return yy_scan_bytes( yy_str, len ); + } +%* +#endif + + +#ifndef YY_NO_SCAN_BYTES +%- +#ifdef YY_USE_PROTOS +YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) +#else +YY_BUFFER_STATE yy_scan_bytes( bytes, len ) +yyconst char *bytes; +int len; +#endif + { + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = len + 2; + buf = (char *) yy_flex_alloc( n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < len; ++i ) + buf[i] = bytes[i]; + + buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer( buf, n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; + } +%* +#endif + + +#ifndef YY_NO_PUSH_STATE +%- +#ifdef YY_USE_PROTOS +static void yy_push_state( int new_state ) +#else +static void yy_push_state( new_state ) +int new_state; +#endif +%+ +void yyFlexLexer::yy_push_state( int new_state ) +%* + { + if ( yy_start_stack_ptr >= yy_start_stack_depth ) + { + yy_size_t new_size; + + yy_start_stack_depth += YY_START_STACK_INCR; + new_size = yy_start_stack_depth * sizeof( int ); + + if ( ! yy_start_stack ) + yy_start_stack = (int *) yy_flex_alloc( new_size ); + + else + yy_start_stack = (int *) yy_flex_realloc( + (void *) yy_start_stack, new_size ); + + if ( ! yy_start_stack ) + YY_FATAL_ERROR( + "out of memory expanding start-condition stack" ); + } + + yy_start_stack[yy_start_stack_ptr++] = YY_START; + + BEGIN(new_state); + } +#endif + + +#ifndef YY_NO_POP_STATE +%- +static void yy_pop_state() +%+ +void yyFlexLexer::yy_pop_state() +%* + { + if ( --yy_start_stack_ptr < 0 ) + YY_FATAL_ERROR( "start-condition stack underflow" ); + + BEGIN(yy_start_stack[yy_start_stack_ptr]); + } +#endif + + +#ifndef YY_NO_TOP_STATE +%- +static int yy_top_state() +%+ +int yyFlexLexer::yy_top_state() +%* + { + return yy_start_stack[yy_start_stack_ptr - 1]; + } +#endif + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +%- +#ifdef YY_USE_PROTOS +static void yy_fatal_error( yyconst char msg[] ) +#else +static void yy_fatal_error( msg ) +char msg[]; +#endif + { + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); + } + +%+ + +void yyFlexLexer::LexerError( yyconst char msg[] ) + { +// cerr << msg << '\n'; +// exit( YY_EXIT_FAILURE ); + throw writerfilter::rtftok::RTFParseException("fatal error: %s"/*, msg*/); + } +%* + + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + yytext[yyleng] = yy_hold_char; \ + yy_c_buf_p = yytext + n; \ + yy_hold_char = *yy_c_buf_p; \ + *yy_c_buf_p = '\0'; \ + yyleng = n; \ + } \ + while ( 0 ) + + +/* Internal utility routines. */ + +#ifndef yytext_ptr +#ifdef YY_USE_PROTOS +static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) +#else +static void yy_flex_strncpy( s1, s2, n ) +char *s1; +yyconst char *s2; +int n; +#endif + { + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; + } +#endif + +#ifdef YY_NEED_STRLEN +#ifdef YY_USE_PROTOS +static int yy_flex_strlen( yyconst char *s ) +#else +static int yy_flex_strlen( s ) +yyconst char *s; +#endif + { + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; + } +#endif + + +#ifdef YY_USE_PROTOS +static void *yy_flex_alloc( yy_size_t size ) +#else +static void *yy_flex_alloc( size ) +yy_size_t size; +#endif + { + return (void *) rtl_allocateMemory( size ); + } + +#ifdef YY_USE_PROTOS +static void *yy_flex_realloc( void *ptr, yy_size_t size ) +#else +static void *yy_flex_realloc( ptr, size ) +void *ptr; +yy_size_t size; +#endif + { + return (void *) rtl_reallocateMemory( (char *) ptr, size ); + } + +#ifdef YY_USE_PROTOS +static void yy_flex_free( void *ptr ) +#else +static void yy_flex_free( ptr ) +void *ptr; +#endif + { + rtl_freeMemory( ptr ); + } + +#if YY_MAIN +int main() + { + yylex(); + return 0; + } +#endif + diff --git a/writerfilter/source/rtftok/makefile.mk b/writerfilter/source/rtftok/makefile.mk new file mode 100644 index 000000000000..f53d02186001 --- /dev/null +++ b/writerfilter/source/rtftok/makefile.mk @@ -0,0 +1,48 @@ +# +# Copyright 2005 Sun Microsystems, Inc. +# + +PRJ=..$/.. +PRJNAME=writerfilter +TARGET=rtftok +#LIBTARGET=NO +ENABLE_EXCEPTIONS=TRUE +#USE_DEFFILE=TRUE +EXTERNAL_WARNINGS_NOT_ERRORS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +#CFLAGS+=-DISOLATION_AWARE_ENABLED -DWIN32_LEAN_AND_MEAN -DXML_UNICODE -D_NTSDK -DUNICODE -D_UNICODE -D_WIN32_WINNT=0x0501 +#CFLAGS+=-wd4710 -wd4711 -wd4514 -wd4619 -wd4217 -wd4820 +CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION + + +# --- Files -------------------------------------------------------- + +SLOFILES=$(SLO)$/RTFScanner.obj $(SLO)$/RTFParseException.obj + + +SHL1TARGET=$(TARGET) + +SHL1STDLIBS=$(SALLIB)\ + $(CPPULIB)\ + $(CPPUHELPERLIB) +SHL1IMPLIB=i$(SHL1TARGET) +#SHL1USE_EXPORTS=name +SHL1USE_EXPORTS=ordinal + +SHL1OBJS=$(SLOFILES) + +SHL1DEF=$(MISC)$/$(SHL1TARGET).def +DEF1NAME=$(SHL1TARGET) +DEFLIB1NAME=$(TARGET) + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk + +RTFScanner.cxx: RTFScanner.lex RTFScanner.skl FlexLexer.h + flex -+ -SRTFScanner.skl -oRTFScanner.cxx RTFScanner.lex + diff --git a/writerfilter/unocomponent/component.cxx b/writerfilter/unocomponent/component.cxx new file mode 100644 index 000000000000..df6829803010 --- /dev/null +++ b/writerfilter/unocomponent/component.cxx @@ -0,0 +1,85 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + +#ifndef _CPPUHELPTER_FACTORY_ +#include <cppuhelper/factory.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XSingleServiceFactory.hpp> +#endif + +#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_ +#include <cppuhelper/implementationentry.hxx> +#endif + +#ifndef INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX +#include <debugservices/rtftok/ScannerTestService.hxx> +#endif + +#ifndef INCLUDED_RTFTOK_XMLSCANNER_HXX +#include <debugservices/rtftok/XMLScanner.hxx> +#endif + +#ifndef INCLUDED_XXML_FILEXXMLREADER_HXX +#include <debugservices/xxml/FileXXmlReader.hxx> +#endif + +#ifndef INCLUDED_XXML_STORAGEXXMLREADER_HXX +#include <debugservices/xxml/StorageXXmlReader.hxx> +#endif + +#ifndef INCLUDED_ODSL_ODSLREADER_HXX +#include <debugservices/odsl/ODSLParser.hxx> +#endif + +#ifndef INCLUDED_RTFSL_PARSER_HXX +#include <debugservices/rtfsl/RTFSLParser.hxx> +#endif + +#ifndef INCLUDED_DOCTOK_SCANNERTESTSERVICE_HXX +#include <debugservices/doctok/DocTokTestService.hxx> +#endif + +#ifndef INCLUDED_DOCTOK_ANALYZESERVICE_HXX +#include <debugservices/doctok/DocTokAnalyzeService.hxx> +#endif + +using namespace com::sun::star; + + +extern "C" +{ +/* shared lib exports implemented with helpers */ +static struct ::cppu::ImplementationEntry s_component_entries [] = +{//uno -l writerfilter.uno.dll -c debugservices.rtftok.ScannerTestService -- a b c + RTFTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY, /* debugservices.rtftok.ScannerTestService */ + RTFTOK_XMLSCANNER_COMPONENT_ENTRY, /* debugservices.rtftok.XMLScanner */ + XXML_FILEXXMLREADER_COMPONENT_ENTRY, /* debugservices.xxml.FileXXmlReader */ + XXML_STORAGEXXMLREADER_COMPONENT_ENTRY, /* debugservices.xxml.StorageXXmlReader */ + ODSL_ODSLREADER_COMPONENT_ENTRY, /* debugservices.odsl.ODSLReader */ + RTFSL_PARSER_COMPONENT_ENTRY, /* debugservices.rtfsl.RTFSLParser */ + DOCTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY, /* debugservices.doctok.ScannerTestService */ + DOCTOK_ANALYZESERVICE_COMPONENT_ENTRY, /* debugservices.doctok.AnalyzeService */ + { 0, 0, 0, 0, 0, 0 } // terminate with NULL +}; + + + void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ ) +{ + *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; +} + +sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry ) +{ + return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries ); +} + + +void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry ) +{ + return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, s_component_entries ); +} + +} diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx new file mode 100644 index 000000000000..d40f8e292169 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx @@ -0,0 +1,245 @@ +/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include "DocTokAnalyzeService.hxx"
+#include <stdio.h>
+#include <wchar.h>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <ucbhelper/contentbroker.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <osl/process.h>
+#include <rtl/string.hxx>
+#include <hash_set>
+#include <assert.h>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/embed/XStorage.hpp>
+#include <com/sun/star/util/XCloseable.hpp>
+#include <comphelper/storagehelper.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/seqstream.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <doctok/WW8ResourceModel.hxx>
+#include <doctok/exceptions.hxx>
+#include <doctok/WW8Document.hxx>
+
+#include <ctype.h>
+
+using namespace ::com::sun::star;
+
+namespace writerfilter { namespace doctoktest {
+
+const sal_Char AnalyzeService::SERVICE_NAME[40] = "debugservices.doctok.AnalyzeService";
+const sal_Char AnalyzeService::IMPLEMENTATION_NAME[40] = "debugservices.doctok.AnalyzeService";
+
+class URLLister
+{
+ uno::Reference<io::XInputStream> xInputStream;
+ rtl::OUString mString;
+ rtl::OUString mCRLF;
+ rtl::OUString mLF;
+
+ sal_uInt32 getEOLIndex()
+ {
+ sal_Int32 nIndex = mString.indexOf(mCRLF);
+
+ if (nIndex == -1)
+ {
+ nIndex = mString.indexOf(mLF);
+ }
+
+ return nIndex;
+ }
+
+public:
+ URLLister(uno::Reference<com::sun::star::uno::XComponentContext> xContext,
+ uno::Reference<lang::XMultiComponentFactory> xFactory,
+ rtl::OUString absFileUrl)
+ {
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess
+ (xFactory->createInstanceWithContext
+ (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM
+ ("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW);
+ xInputStream = xFileAccess->openFileRead(absFileUrl) ;
+
+ mLF = rtl::OUString::createFromAscii("\n");
+ mCRLF = rtl::OUString::createFromAscii("\r\n");
+ }
+
+ rtl::OUString getURL()
+ {
+ rtl::OUString aResult;
+
+ sal_Int32 nIndex = getEOLIndex();
+
+ while (nIndex == -1)
+ {
+ uno::Sequence<sal_Int8> aSeq;
+ sal_uInt32 nCount = xInputStream->readBytes(aSeq, 1024);
+
+ if (nCount > 0)
+ {
+ rtl_String * pNew = 0;
+ rtl_string_newFromStr_WithLength
+ (&pNew, reinterpret_cast<const sal_Char *>(&aSeq[0]),
+ nCount);
+
+ rtl::OString aTmp(pNew);
+ rtl::OUString aTail(rtl::OStringToOUString
+ (aTmp, RTL_TEXTENCODING_ASCII_US));
+ mString = mString.concat(aTail);
+ }
+
+ nIndex = getEOLIndex();
+
+ if (nCount != 1024)
+ break;
+ }
+
+ if (nIndex > 0)
+ {
+ aResult = mString.copy(0, nIndex);
+
+ if (mString.match(mCRLF, nIndex))
+ mString = mString.copy(nIndex + 2);
+ else
+ mString = mString.copy(nIndex + 1);
+ }
+
+ return aResult;
+ }
+};
+
+AnalyzeService::AnalyzeService(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL AnalyzeService::run
+( const uno::Sequence< rtl::OUString >& aArguments )
+ throw (uno::RuntimeException)
+{
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<=
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+ uno::Reference<lang::XMultiServiceFactory>
+ xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+ uno::Reference<lang::XMultiComponentFactory>
+ xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+
+ if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+ {
+ rtl::OUString arg=aArguments[0];
+
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+
+ rtl::OUString absFileUrlUrls;
+ osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrlUrls.pData);
+
+ URLLister aLister(xContext, xFactory, absFileUrlUrls);
+
+ fprintf(stdout, "<analyze>\n");
+
+ rtl::OUString aURL = aLister.getURL();
+
+ while (aURL.getLength() > 0)
+ {
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess
+ (xFactory->createInstanceWithContext
+ (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM
+ ("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW );
+
+ rtl::OString aStr;
+ aURL.convertToString(&aStr, RTL_TEXTENCODING_ASCII_US,
+ OUSTRING_TO_OSTRING_CVTFLAGS);
+
+ fprintf(stdout, "<file><name>%s</name>\n", aStr.getStr());
+
+ try
+ {
+ try
+ {
+ uno::Reference<io::XInputStream> xInputStream =
+ xFileAccess->openFileRead(aURL);
+ doctok::WW8Stream::Pointer_t pDocStream =
+ doctok::WW8DocumentFactory::createStream
+ (xContext, xInputStream);
+
+ doctok::WW8Document::Pointer_t pDocument =
+ doctok::WW8DocumentFactory::createDocument(pDocStream);
+
+ doctok::Stream::Pointer_t pAnalyzer =
+ doctok::createAnalyzer();
+ pDocument->resolve(*pAnalyzer);
+
+ fprintf(stdout, "<status>ok</status>\n");
+ }
+ catch (doctok::Exception e)
+ {
+ fprintf(stdout, "<exception>%s</exception>\n",
+ e.getText().c_str());
+ fprintf(stdout, "<status>failed</status>\n");
+ }
+ }
+ catch (...)
+ {
+ fprintf(stdout, "<exception>unknown</exception>\n");
+ fprintf(stdout, "<status>failed</status>\n");
+ }
+ aURL = aLister.getURL();
+
+ fprintf(stdout, "</file>\n");
+ }
+
+ fprintf(stdout, "</analyze>\n");
+
+ rtl_uString_release(dir);
+ ::ucb::ContentBroker::deinitialize();
+ }
+ else
+ {
+ fprintf(stdout, "can't initialize UCB");
+ }
+ return 0;
+}
+
+::rtl::OUString AnalyzeService_getImplementationName ()
+{
+ return rtl::OUString::createFromAscii ( AnalyzeService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL AnalyzeService_supportsService( const ::rtl::OUString& ServiceName )
+{
+ return ServiceName.equals( rtl::OUString::createFromAscii( AnalyzeService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL AnalyzeService_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < rtl::OUString > aRet(1);
+ rtl::OUString* pArray = aRet.getArray();
+ pArray[0] = rtl::OUString::createFromAscii ( AnalyzeService::SERVICE_NAME );
+ return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL AnalyzeService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new AnalyzeService( xContext );
+}
+
+} } /* end namespace writerfilter::doctok */
diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx new file mode 100644 index 000000000000..19319bb37915 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx @@ -0,0 +1,55 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_DOCTOK_ANALYZESERVICE_HXX +#define INCLUDED_DOCTOK_ANALYZESERVICE_HXX + +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include <cppuhelper/implbase1.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_ +#include <com/sun/star/lang/XMain.hpp> +#endif + +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif + +namespace writerfilter { namespace doctoktest { + +class AnalyzeService : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain > +{ +private: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext; + +public: + AnalyzeService(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext); + + virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException); + +public: + const static sal_Char SERVICE_NAME[40]; + const static sal_Char IMPLEMENTATION_NAME[40]; + +}; + +::rtl::OUString AnalyzeService_getImplementationName (); +sal_Bool SAL_CALL AnalyzeService_supportsService( const ::rtl::OUString& ServiceName ); +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL AnalyzeService_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL AnalyzeService_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception ); + +} } /* end namespace writerfilter::rtftok */ + +#define DOCTOK_ANALYZESERVICE_COMPONENT_ENTRY \ +{\ + writerfilter::doctoktest::AnalyzeService_createInstance,\ + writerfilter::doctoktest::AnalyzeService_getImplementationName,\ + writerfilter::doctoktest::AnalyzeService_getSupportedServiceNames,\ + ::cppu::createSingleComponentFactory,\ + 0, 0\ +} + + +#endif /* INCLUDED_RTFTOK_ANALYZESERVICE_HXX */ diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx new file mode 100644 index 000000000000..71534a5455e1 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx @@ -0,0 +1,126 @@ +/**
+ Copyright 2005 Sun Microsystems, Inc.
+ */
+
+#include "DocTokTestService.hxx"
+#include <stdio.h>
+#include <wchar.h>
+#include <com/sun/star/io/XStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/io/XTruncate.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <ucbhelper/contentbroker.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <osl/process.h>
+#include <rtl/string.hxx>
+#include <hash_set>
+#include <assert.h>
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/embed/XStorage.hpp>
+#include <com/sun/star/util/XCloseable.hpp>
+#include <comphelper/storagehelper.hxx>
+#include <com/sun/star/embed/XTransactedObject.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/seqstream.hxx>
+#include <com/sun/star/ucb/XSimpleFileAccess.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiComponentFactory.hpp>
+#include <com/sun/star/uno/Any.hxx>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <doctok/WW8ResourceModel.hxx>
+#include <doctok/exceptions.hxx>
+#include <doctok/WW8Document.hxx>
+
+#include <ctype.h>
+
+using namespace ::com::sun::star;
+
+namespace writerfilter { namespace doctoktest {
+
+const sal_Char ScannerTestService::SERVICE_NAME[40] = "debugservices.doctok.ScannerTestService";
+const sal_Char ScannerTestService::IMPLEMENTATION_NAME[40] = "debugservices.doctok.ScannerTestService";
+
+
+
+
+ScannerTestService::ScannerTestService(const uno::Reference< uno::XComponentContext > &xContext_) :
+xContext( xContext_ )
+{
+}
+
+sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException)
+{
+ uno::Sequence<uno::Any> aUcbInitSequence(2);
+ aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
+ aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW);
+ uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW );
+ if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence))
+ {
+ rtl::OUString arg=aArguments[0];
+
+ uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess(
+ xFactory->createInstanceWithContext(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")),
+ xContext), uno::UNO_QUERY_THROW );
+
+ rtl_uString *dir=NULL;
+ osl_getProcessWorkingDir(&dir);
+ rtl::OUString absFileUrl;
+ osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData);
+ rtl_uString_release(dir);
+
+ uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl);
+ doctok::WW8Stream::Pointer_t pDocStream = doctok::WW8DocumentFactory::createStream(xContext, xInputStream);
+
+ doctok::WW8Document::Pointer_t pDocument = doctok::WW8DocumentFactory::createDocument(pDocStream);
+
+#if 0
+ TimeValue t1; osl_getSystemTime(&t1);
+#endif
+
+ doctok::Stream::Pointer_t pStream = doctok::createStreamHandler();
+ pDocument->resolve(*pStream);
+
+#if 0
+ TimeValue t2; osl_getSystemTime(&t2);
+ printf("time=%is\n", t2.Seconds-t1.Seconds);
+#endif
+
+ ::ucb::ContentBroker::deinitialize();
+ }
+ else
+ {
+ fprintf(stderr, "can't initialize UCB");
+ }
+ return 0;
+}
+
+::rtl::OUString ScannerTestService_getImplementationName ()
+{
+ return rtl::OUString::createFromAscii ( ScannerTestService::IMPLEMENTATION_NAME );
+}
+
+sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName )
+{
+ return ServiceName.equals( rtl::OUString::createFromAscii( ScannerTestService::SERVICE_NAME ) );
+}
+uno::Sequence< rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (uno::RuntimeException)
+{
+ uno::Sequence < rtl::OUString > aRet(1);
+ rtl::OUString* pArray = aRet.getArray();
+ pArray[0] = rtl::OUString::createFromAscii ( ScannerTestService::SERVICE_NAME );
+ return aRet;
+}
+
+uno::Reference< uno::XInterface > SAL_CALL ScannerTestService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception )
+{
+ return (cppu::OWeakObject*) new ScannerTestService( xContext );
+}
+
+} } /* end namespace writerfilter::doctok */
diff --git a/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx new file mode 100644 index 000000000000..a1bd559cb842 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx @@ -0,0 +1,55 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_DOCTOK_SCANNERTESTSERVICE_HXX +#define INCLUDED_DOCTOK_SCANNERTESTSERVICE_HXX + +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include <cppuhelper/implbase1.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_ +#include <com/sun/star/lang/XMain.hpp> +#endif + +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif + +namespace writerfilter { namespace doctoktest { + +class ScannerTestService : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain > +{ +private: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext; + +public: + ScannerTestService(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext); + + virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException); + +public: + const static sal_Char SERVICE_NAME[40]; + const static sal_Char IMPLEMENTATION_NAME[40]; + +}; + +::rtl::OUString ScannerTestService_getImplementationName (); +sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName ); +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ScannerTestService_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception ); + +} } /* end namespace writerfilter::rtftok */ + +#define DOCTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY \ +{\ + writerfilter::doctoktest::ScannerTestService_createInstance,\ + writerfilter::doctoktest::ScannerTestService_getImplementationName,\ + writerfilter::doctoktest::ScannerTestService_getSupportedServiceNames,\ + ::cppu::createSingleComponentFactory,\ + 0, 0\ +} + + +#endif /* INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX */ diff --git a/writerfilter/unocomponent/debugservices/doctok/makefile.mk b/writerfilter/unocomponent/debugservices/doctok/makefile.mk new file mode 100644 index 000000000000..e71ee42cf9ad --- /dev/null +++ b/writerfilter/unocomponent/debugservices/doctok/makefile.mk @@ -0,0 +1,21 @@ +# +# Copyright 2005 Sun Microsystems, Inc. +# +PRJ=..$/..$/.. +PRJNAME=writerfilter +TARGET=debugservices_doctok +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# --- Files -------------------------------------------------------- + +SLOFILES= \ + $(SLO)$/DocTokTestService.obj \ + $(SLO)$/DocTokAnalyzeService.obj + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk diff --git a/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx new file mode 100644 index 000000000000..64b0f7ace981 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx @@ -0,0 +1,431 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + +#include "ScannerTestService.hxx" +#include <stdio.h> +#include <wchar.h> +#include <rtftok/RTFScanner.hxx> +#include <rtftok/RTFScannerHandler.hxx> +#include <com/sun/star/io/XStream.hpp> +#include <com/sun/star/io/XInputStream.hpp> +#include <com/sun/star/io/XSeekable.hpp> +#include <com/sun/star/io/XTruncate.hpp> +#include <com/sun/star/task/XStatusIndicator.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <ucbhelper/contentbroker.hxx> +#include <com/sun/star/ucb/XSimpleFileAccess.hpp> +#include <osl/process.h> +#include <rtl/string.hxx> +#include <hash_set> +#include <assert.h> +#include <cppuhelper/implbase2.hxx> +#include <com/sun/star/embed/XTransactedObject.hpp> +#include <com/sun/star/embed/XStorage.hpp> +#include <com/sun/star/util/XCloseable.hpp> +#include <comphelper/storagehelper.hxx> +#include <com/sun/star/embed/XTransactedObject.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <comphelper/seqstream.hxx> + +#include <ctype.h> + +using namespace ::com::sun::star; + +namespace writerfilter { namespace rtftok { + +const sal_Char ScannerTestService::SERVICE_NAME[40] = "debugservices.rtftok.ScannerTestService"; +const sal_Char ScannerTestService::IMPLEMENTATION_NAME[40] = "debugservices.rtftok.ScannerTestService"; + +struct ScannerTestServiceHelper +{ + size_t operator()(const rtl::OString &str) const + { + return str.hashCode(); + } + bool operator()(const rtl::OString &str1, const rtl::OString &str2) const + { + return str1.compareTo(str2)==0; + } +}; + +typedef ::std::hash_set< ::rtl::OString, ScannerTestServiceHelper, ScannerTestServiceHelper > ScannerTestServiceTokenMap; + +class MyRtfScannerHandler : public writerfilter::rtftok::RTFScannerHandler +{ + ScannerTestServiceTokenMap destMap; + ScannerTestServiceTokenMap ctrlMap; + std::vector<unsigned char> binBuffer; + int objDataLevel; + int numOfOLEs; + unsigned char hb; + int numOfOLEChars; + uno::Reference<lang::XMultiServiceFactory> xServiceFactory; + uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess; + uno::Reference<embed::XStorage> xStorage; + + void dest(char* token, char* /*value*/) + { + destMap.insert(rtl::OString(token)); +// printf("{\\*\\%s%s ", token, value); + if (strcmp(token, "objdata")==0) + { + binBuffer.clear(); + objDataLevel=1; + numOfOLEChars=0; + } + } + void ctrl(char*token, char* /*value*/) + { + ctrlMap.insert(rtl::OString(token)); +// printf("\\%s%s ", token, value); + } + void lbrace(void) + { +// printf("{"); + } + void rbrace(void) + { +#ifndef LINUX + unsigned char * binBufferStr = ((unsigned char*)&(*binBuffer.begin())); + + if (objDataLevel) + { + int o=0; + unsigned int type=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4; + unsigned int recType=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4; + unsigned int strLen=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4; + unsigned char *str=binBufferStr+o; + o+=strLen; + o+=4; // dummy1 + o+=4; // dummy2 + unsigned int binLen=((unsigned int)binBuffer[o]) | ((unsigned int)binBuffer[o+1])<<8 | ((unsigned int)binBuffer[o+2])<<16 | ((unsigned int)binBuffer[o+3]<<24); o+=4; + printf("OLE%i \"%s\" type=%i recType=%i binBuffer.size()=%u len=%u\n", numOfOLEs, str, type, recType, binBuffer.size(), o+binLen); + //assert(binBuffer.size()==o+binLen); + char buf[100]; + sprintf(buf, "ole%02i.ole", numOfOLEs); +/* if 0{ + FILE *f=fopen(buf, "w+b"); + unsigned char *data=binBuffer.begin(); + fwrite(data+o, 1, binLen, f); + fclose(f); + }*/ +/* + rtl_uString *dir=NULL; + osl_getProcessWorkingDir(&dir); + rtl::OUString absFileUrl; + rtl::OUString fileUrl=rtl::OUString::createFromAscii(buf); + osl_getAbsoluteFileURL(dir, fileUrl.pData, &absFileUrl.pData); + rtl_uString_release(dir); +*/ + comphelper::ByteSequence seq(binLen); + unsigned char *data=binBufferStr; + memcpy(seq.getArray(), data+o, binLen); + uno::Reference<io::XInputStream> myStream=new comphelper::SequenceInputStream(seq); +// uno::Reference<io::XStream> myStream=xFileAccess->openFileReadWrite(absFileUrl); +// uno::Reference<io::XStream> myStream(new MyStreamImpl(binBuffer, o)); + uno::Sequence< uno::Any > aArgs( 1 ); + aArgs[0] <<= myStream; + uno::Reference< container::XNameContainer > xNameContainer( + xServiceFactory->createInstanceWithArguments( + ::rtl::OUString::createFromAscii("com.sun.star.embed.OLESimpleStorage" ), + aArgs ), + uno::UNO_QUERY_THROW ); + try { + printf("TRY\n"); + ::com::sun::star::uno::Sequence< ::rtl::OUString > names=xNameContainer->getElementNames(); + printf("OK\n"); + + for(int i=0;i<names.getLength();i++) + { + rtl::OUString &name=names[i]; + wprintf(L"name=%s\n", name.getStr()); + } + { + uno::Reference< io::XStream > xContentStream = xStorage->openStreamElement( + rtl::OUString::createFromAscii(buf), embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE ); + uno::Reference<beans::XPropertySet> xContentStreamPropSet(xContentStream, uno::UNO_QUERY_THROW); + xContentStreamPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.sun.star.oleobject"))); + uno::Reference<io::XOutputStream> myOutStream=xContentStream->getOutputStream(); + uno::Sequence< ::sal_Int8 > seq(binLen); + unsigned char *data=binBufferStr; + memcpy(seq.getArray(), data+o, binLen); + myOutStream->writeBytes(seq); + myOutStream->closeOutput(); + } + + } catch(com::sun::star::uno::RuntimeException &) + { + printf("NOT OK\n"); + comphelper::ByteSequence seq(4+binLen); + // memcpy(seq.getArray(), &binLen, 4); assert(0); //TODO linux + seq[0]= sal::static_int_cast<sal_Int8>(binLen&0xFF); + seq[1]= sal::static_int_cast<sal_Int8>((binLen>>8)&0xFF); + seq[2]= sal::static_int_cast<sal_Int8>((binLen>>16)&0xFF); + seq[3]= sal::static_int_cast<sal_Int8>((binLen>>24)&0xFF); + unsigned char *data=binBufferStr; + memcpy(seq.getArray()+4, data+o, binLen); + uno::Reference<io::XInputStream> myInStream=new comphelper::SequenceInputStream(seq); + printf("SEQ OK\n"); + + uno::Reference< io::XStream > xContentStream = xStorage->openStreamElement( + rtl::OUString::createFromAscii(buf), embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE ); + uno::Reference<beans::XPropertySet> xContentStreamPropSet(xContentStream, uno::UNO_QUERY_THROW); + xContentStreamPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.sun.star.oleobject"))); + printf("CONTENT STREAM OK\n"); + + uno::Sequence< uno::Any > aArgs( 1 ); + aArgs[0] <<= xContentStream; + uno::Reference< container::XNameContainer > xNameContainer2( + xServiceFactory->createInstanceWithArguments( + ::rtl::OUString::createFromAscii("com.sun.star.embed.OLESimpleStorage" ), + aArgs ), + uno::UNO_QUERY_THROW ); + printf("OLE STORAGE OK\n"); + + uno::Any anyStream; + anyStream <<= myInStream; + xNameContainer2->insertByName(rtl::OUString::createFromAscii("\1Ole10Native"), anyStream); + printf("INSERT OK\n"); + + uno::Reference<embed::XTransactedObject> xTransact(xNameContainer2, uno::UNO_QUERY); + xTransact->commit(); + } + objDataLevel--; + numOfOLEs++; + } +#endif +// printf("}"); + } + void addSpaces(int /*count*/) + { +// for(int i=0;i<count;i++) +// printf(" "); + + } + void addBinData(unsigned char /*data*/) + { +// printf("%02Xh", data); + } + void addChar(char ch) + { +// printf("%c", ch); + if (objDataLevel) + { + if (numOfOLEChars%2==0) + { + char c=sal::static_int_cast<char>(toupper(ch)); + assert((c<='F' && c>='A') || (c<='9' && c>='0')); + if(c>='A') hb=(unsigned char)(c-'A'+10); else hb=(unsigned char)(c-'0'); + } + else + { + unsigned char lb; + char c=sal::static_int_cast<char>(toupper(ch)); + assert((c<='F' && c>='A') || (c<='9' && c>='0')); + if(c>='A') lb=(unsigned char)(c-'A'+10); else lb=(unsigned char)(c-'0'); + unsigned char r=(hb<<4)|lb; + binBuffer.push_back(r); + } + numOfOLEChars++; + } + } + void addCharU(sal_Unicode /*ch*/) + { +// printf("\\u%i ", ch); + } + void addHexChar(char* /*hexch*/) + { +// printf("\'%s ", hexch); + } + + +public: + MyRtfScannerHandler(uno::Reference<lang::XMultiServiceFactory> &xServiceFactory_, uno::Reference<com::sun::star::ucb::XSimpleFileAccess> &xFileAccess_, uno::Reference<embed::XStorage> &xStorage_) : + objDataLevel(0), numOfOLEs(0), + xServiceFactory(xServiceFactory_), + xFileAccess(xFileAccess_), + xStorage(xStorage_) + { + } + + virtual ~MyRtfScannerHandler() {} + + void dump() + { + printf("Destinations:\n"); + for(ScannerTestServiceTokenMap::iterator i=destMap.begin();i!=destMap.end();i++) + { + printf(" %s\n", i->getStr()); + } + printf("Ctrls:\n"); + for(ScannerTestServiceTokenMap::iterator i=ctrlMap.begin();i!=ctrlMap.end();i++) + { + printf(" %s\n", i->getStr()); + } + } +}; + +class RtfInputSourceImpl : public rtftok::RTFInputSource +{ +private: + uno::Reference< io::XInputStream > xInputStream; + uno::Reference< io::XSeekable > xSeekable; + uno::Reference< task::XStatusIndicator > xStatusIndicator; + sal_Int64 bytesTotal; + sal_Int64 bytesRead; +public: + RtfInputSourceImpl(uno::Reference< io::XInputStream > &xInputStream_, uno::Reference< task::XStatusIndicator > &xStatusIndicator_) : + xInputStream(xInputStream_), + xStatusIndicator(xStatusIndicator_), + bytesRead(0) + { + xSeekable=uno::Reference< io::XSeekable >(xInputStream, uno::UNO_QUERY); + if (xSeekable.is()) + bytesTotal=xSeekable->getLength(); + if (xStatusIndicator.is() && xSeekable.is()) + { + xStatusIndicator->start(::rtl::OUString::createFromAscii("Converting"), 100); + } + } + + virtual ~RtfInputSourceImpl() {} + + int read(void *buf, int maxlen) + { + uno::Sequence< sal_Int8 > buffer; + int len=xInputStream->readSomeBytes(buffer,maxlen); + if (len>0) + { + sal_Int8 *_buffer=buffer.getArray(); + memcpy(buf, _buffer, len); + bytesRead+=len; + if (xStatusIndicator.is()) + { + if (xSeekable.is()) + { + xStatusIndicator->setValue((int)(bytesRead*100/bytesTotal)); + } + else + { + char buf1[100]; + sprintf(buf1, "Converted %Li KB", bytesRead/1024); + xStatusIndicator->start(::rtl::OUString::createFromAscii(buf1), 0); + } + } + return len; + } + else + { + if (xStatusIndicator.is()) + { + xStatusIndicator->end(); + } + return 0; + } + } +}; + +ScannerTestService::ScannerTestService(const uno::Reference< uno::XComponentContext > &xContext_) : +xContext( xContext_ ) +{ +} + +sal_Int32 SAL_CALL ScannerTestService::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException) +{ + + printf("TEST\n"); + + uno::Sequence<uno::Any> aUcbInitSequence(2); + aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local")); + aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office")); + uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW); + printf("A\n"); + uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW ); + printf("B\n"); + if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence)) + { + printf("C\n"); + rtl::OUString arg=aArguments[0]; + + uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess( + xFactory->createInstanceWithContext( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")), + xContext), uno::UNO_QUERY_THROW ); + + rtl_uString *dir=NULL; + osl_getProcessWorkingDir(&dir); + rtl::OUString absFileUrl; + osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData); + rtl_uString_release(dir); + + uno::Reference <lang::XSingleServiceFactory> xStorageFactory( + xServiceFactory->createInstance (rtl::OUString::createFromAscii("com.sun.star.embed.StorageFactory")), uno::UNO_QUERY_THROW); + + rtl::OUString outFileUrl; + { + rtl_uString *dir1=NULL; + osl_getProcessWorkingDir(&dir1); + osl_getAbsoluteFileURL(dir1, aArguments[1].pData, &outFileUrl.pData); + rtl_uString_release(dir1); + } + + uno::Sequence< uno::Any > aArgs( 2 ); + aArgs[0] <<= outFileUrl; + aArgs[1] <<= embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE; + uno::Reference<embed::XStorage> xStorage(xStorageFactory->createInstanceWithArguments(aArgs), uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropSet(xStorage, uno::UNO_QUERY_THROW); + xPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.oasis.opendocument.text"))); + uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl); + uno::Reference< task::XStatusIndicator > xStatusIndicator; + + TimeValue t1; osl_getSystemTime(&t1); + + RtfInputSourceImpl rtfInputSource(xInputStream, xStatusIndicator); + MyRtfScannerHandler eventHandler(xServiceFactory, xFileAccess, xStorage); + writerfilter::rtftok::RTFScanner *rtfScanner=writerfilter::rtftok::RTFScanner::createRTFScanner(rtfInputSource, eventHandler); + + rtfScanner->yylex(); + delete rtfScanner; + + TimeValue t2; osl_getSystemTime(&t2); + printf("time=%lis\n", t2.Seconds-t1.Seconds); + +// eventHandler.dump(); + uno::Reference<embed::XTransactedObject> xTransact(xStorage, uno::UNO_QUERY); + xTransact->commit(); + + + ::ucb::ContentBroker::deinitialize(); + } + else + { + fprintf(stderr, "can't initialize UCB"); + } + return 0; +} + +::rtl::OUString ScannerTestService_getImplementationName () +{ + return rtl::OUString::createFromAscii ( ScannerTestService::IMPLEMENTATION_NAME ); +} + +sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName ) +{ + return ServiceName.equals( rtl::OUString::createFromAscii( ScannerTestService::SERVICE_NAME ) ); +} +uno::Sequence< rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (uno::RuntimeException) +{ + uno::Sequence < rtl::OUString > aRet(1); + rtl::OUString* pArray = aRet.getArray(); + pArray[0] = rtl::OUString::createFromAscii ( ScannerTestService::SERVICE_NAME ); + return aRet; +} + +uno::Reference< uno::XInterface > SAL_CALL ScannerTestService_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception ) +{ + return (cppu::OWeakObject*) new ScannerTestService( xContext ); +} + +} } /* end namespace writerfilter::rtftok */ diff --git a/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx new file mode 100644 index 000000000000..72cba94f443b --- /dev/null +++ b/writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx @@ -0,0 +1,55 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX +#define INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX + +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include <cppuhelper/implbase1.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_ +#include <com/sun/star/lang/XMain.hpp> +#endif + +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif + +namespace writerfilter { namespace rtftok { + +class ScannerTestService : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain > +{ +private: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext; + +public: + ScannerTestService(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext); + + virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException); + +public: + const static sal_Char SERVICE_NAME[40]; + const static sal_Char IMPLEMENTATION_NAME[40]; + +}; + +::rtl::OUString ScannerTestService_getImplementationName (); +sal_Bool SAL_CALL ScannerTestService_supportsService( const ::rtl::OUString& ServiceName ); +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL ScannerTestService_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ScannerTestService_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception ); + +} } /* end namespace writerfilter::rtftok */ + +#define RTFTOK_SCANNERTESTSERVICE_COMPONENT_ENTRY \ +{\ + writerfilter::rtftok::ScannerTestService_createInstance,\ + writerfilter::rtftok::ScannerTestService_getImplementationName,\ + writerfilter::rtftok::ScannerTestService_getSupportedServiceNames,\ + ::cppu::createSingleComponentFactory,\ + 0, 0\ +} + + +#endif /* INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX */ diff --git a/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx new file mode 100644 index 000000000000..4d5bc8dd6da0 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx @@ -0,0 +1,308 @@ +/** + Copyright 2005 Sun Microsystems, Inc. + */ + +#include "XMLScanner.hxx" +#include <stdio.h> +#include <wchar.h> +#include <rtftok/RTFScanner.hxx> +#include <rtftok/RTFScannerHandler.hxx> +#include <com/sun/star/io/XStream.hpp> +#include <com/sun/star/io/XInputStream.hpp> +#include <com/sun/star/io/XSeekable.hpp> +#include <com/sun/star/io/XTruncate.hpp> +#include <com/sun/star/task/XStatusIndicator.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <ucbhelper/contentbroker.hxx> +#include <com/sun/star/ucb/XSimpleFileAccess.hpp> +#include <osl/process.h> +#include <rtl/string.hxx> +#include <hash_set> +#include <assert.h> +#include <cppuhelper/implbase2.hxx> +#include <com/sun/star/embed/XTransactedObject.hpp> +#include <com/sun/star/embed/XStorage.hpp> +#include <com/sun/star/util/XCloseable.hpp> +#include <comphelper/storagehelper.hxx> +#include <com/sun/star/embed/XTransactedObject.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <comphelper/seqstream.hxx> + +#include <ctype.h> +#include <iostream> + +using namespace ::com::sun::star; +using namespace ::std; + +namespace writerfilter { namespace rtftok { + +const sal_Char XMLScanner::SERVICE_NAME[40] = "debugservices.rtftok.XMLScanner"; +const sal_Char XMLScanner::IMPLEMENTATION_NAME[40] = "debugservices.rtftok.XMLScanner"; + +class XmlRtfScannerHandler : public writerfilter::rtftok::RTFScannerHandler +{ + std::vector<unsigned char> binBuffer; + int objDataLevel; + int numOfOLEs; + unsigned char hb; + int numOfOLEChars; + uno::Reference<lang::XMultiServiceFactory> xServiceFactory; + uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess; + string charBuffer; + string ucharBuffer; + vector<string> vCloseTags; + + void xmlout(const string & str) + { + for (size_t n = 0; n < str.length(); ++n) + { + char c = str[n]; + + switch (c) + { + case '<': cout << "<"; break; + case '>': cout << ">"; break; + case '&': cout << "&"; break; + default: + cout << c; + + break; + } + } + } + + void clearBuffers() + { + if (charBuffer.length() > 0) + { + cout << "<text>"; + xmlout(charBuffer); + cout << "</text>" << endl; + } + + charBuffer = ""; + + if (ucharBuffer.length() > 0) + { + cout << "<utext>"; + xmlout(ucharBuffer); + cout << ucharBuffer << "</utext>" << endl; + } + + ucharBuffer = ""; + } + + void dest(char* token, char* value) + { + clearBuffers(); + cout << "<dest name=\"" << token << "\" value=\""<< value << "\">" << endl; + vCloseTags.push_back("</dest>"); + } + void ctrl(char*token, char* value) + { + clearBuffers(); + cout << "<" << token << ">" << value << "</" << token << ">" + << endl; + } + void lbrace(void) + { + clearBuffers(); + cout << "<brace>" << endl; + vCloseTags.push_back("</brace>"); + } + void rbrace(void) + { + clearBuffers(); + cout << vCloseTags.back() << endl; + vCloseTags.pop_back(); + } + void addSpaces(int count) + { + clearBuffers(); + cout << "<spaces count=\"" << count << "\"/>" << endl; + } + void addBinData(unsigned char /*data*/) + { + clearBuffers(); + cout << "<bindata/>" << endl; + } + void addChar(char ch) + { + charBuffer += ch; + } + void addCharU(sal_Unicode ch) + { + ucharBuffer += sal_Char(ch < 128 ? ch : '.'); + } + void addHexChar(char* hexch) + { + clearBuffers(); + cout << "<hexchar value=\"" << hexch << "\"/>" << endl; + } + +public: + XmlRtfScannerHandler(uno::Reference<lang::XMultiServiceFactory> &xServiceFactory_, uno::Reference<com::sun::star::ucb::XSimpleFileAccess> &xFileAccess_) : + objDataLevel(0), numOfOLEs(0), + xServiceFactory(xServiceFactory_), + xFileAccess(xFileAccess_) + { + } + + virtual ~XmlRtfScannerHandler() {} + + void dump() + { + } +}; + +class RtfInputSourceImpl : public rtftok::RTFInputSource +{ +private: + uno::Reference< io::XInputStream > xInputStream; + uno::Reference< io::XSeekable > xSeekable; + uno::Reference< task::XStatusIndicator > xStatusIndicator; + sal_Int64 bytesTotal; + sal_Int64 bytesRead; +public: + RtfInputSourceImpl(uno::Reference< io::XInputStream > &xInputStream_, uno::Reference< task::XStatusIndicator > &xStatusIndicator_) : + xInputStream(xInputStream_), + xStatusIndicator(xStatusIndicator_), + bytesRead(0) + { + xSeekable=uno::Reference< io::XSeekable >(xInputStream, uno::UNO_QUERY); + if (xSeekable.is()) + bytesTotal=xSeekable->getLength(); + if (xStatusIndicator.is() && xSeekable.is()) + { + xStatusIndicator->start(::rtl::OUString::createFromAscii("Converting"), 100); + } + } + + virtual ~RtfInputSourceImpl() {} + + int read(void *buf, int maxlen) + { + uno::Sequence< sal_Int8 > buffer; + int len=xInputStream->readSomeBytes(buffer,maxlen); + if (len>0) + { + sal_Int8 *_buffer=buffer.getArray(); + memcpy(buf, _buffer, len); + bytesRead+=len; + if (xStatusIndicator.is()) + { + if (xSeekable.is()) + { + xStatusIndicator->setValue((int)(bytesRead*100/bytesTotal)); + } + else + { + char buf1[100]; + sprintf(buf1, "Converted %Li KB", bytesRead/1024); + xStatusIndicator->start(::rtl::OUString::createFromAscii(buf1), 0); + } + } + return len; + } + else + { + if (xStatusIndicator.is()) + { + xStatusIndicator->end(); + } + return 0; + } + } +}; + +XMLScanner::XMLScanner(const uno::Reference< uno::XComponentContext > &xContext_) : +xContext( xContext_ ) +{ +} + +sal_Int32 SAL_CALL XMLScanner::run( const uno::Sequence< rtl::OUString >& aArguments ) throw (uno::RuntimeException) +{ + uno::Sequence<uno::Any> aUcbInitSequence(2); + aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local")); + aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office")); + uno::Reference<lang::XMultiServiceFactory> xServiceFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW); + uno::Reference<lang::XMultiComponentFactory> xFactory(xContext->getServiceManager(), uno::UNO_QUERY_THROW ); + if (::ucb::ContentBroker::initialize(xServiceFactory, aUcbInitSequence)) + { + rtl::OUString arg=aArguments[0]; + + uno::Reference<com::sun::star::ucb::XSimpleFileAccess> xFileAccess( + xFactory->createInstanceWithContext( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SimpleFileAccess")), + xContext), uno::UNO_QUERY_THROW ); + + rtl_uString *dir=NULL; + osl_getProcessWorkingDir(&dir); + rtl::OUString absFileUrl; + osl_getAbsoluteFileURL(dir, arg.pData, &absFileUrl.pData); + rtl_uString_release(dir); + + uno::Reference <lang::XSingleServiceFactory> xStorageFactory( + xServiceFactory->createInstance (rtl::OUString::createFromAscii("com.sun.star.embed.StorageFactory")), uno::UNO_QUERY_THROW); + +#if 0 + rtl::OUString outFileUrl; + { + rtl_uString *dir1=NULL; + osl_getProcessWorkingDir(&dir1); + osl_getAbsoluteFileURL(dir1, aArguments[1].pData, &outFileUrl.pData); + rtl_uString_release(dir1); + } + + uno::Sequence< uno::Any > aArgs( 2 ); + aArgs[0] <<= outFileUrl; + aArgs[1] <<= embed::ElementModes::READWRITE | embed::ElementModes::TRUNCATE; + uno::Reference<embed::XStorage> xStorage(xStorageFactory->createInstanceWithArguments(aArgs), uno::UNO_QUERY_THROW); + uno::Reference<beans::XPropertySet> xPropSet(xStorage, uno::UNO_QUERY_THROW); + xPropSet->setPropertyValue(rtl::OUString::createFromAscii("MediaType"), uno::makeAny(rtl::OUString::createFromAscii("application/vnd.oasis.opendocument.text"))); +#endif + uno::Reference<io::XInputStream> xInputStream = xFileAccess->openFileRead(absFileUrl); + uno::Reference< task::XStatusIndicator > xStatusIndicator; + + RtfInputSourceImpl rtfInputSource(xInputStream, xStatusIndicator); + XmlRtfScannerHandler eventHandler(xServiceFactory, xFileAccess); + writerfilter::rtftok::RTFScanner *rtfScanner=writerfilter::rtftok::RTFScanner::createRTFScanner(rtfInputSource, eventHandler); + + cout << "<out>" << endl; + rtfScanner->yylex(); + cout << "</out>" << endl; + delete rtfScanner; + + ::ucb::ContentBroker::deinitialize(); + } + else + { + fprintf(stderr, "can't initialize UCB"); + } + return 0; +} + +::rtl::OUString XMLScanner_getImplementationName () +{ + return rtl::OUString::createFromAscii ( XMLScanner::IMPLEMENTATION_NAME ); +} + +sal_Bool SAL_CALL XMLScanner_supportsService( const ::rtl::OUString& ServiceName ) +{ + return ServiceName.equals( rtl::OUString::createFromAscii( XMLScanner::SERVICE_NAME ) ); +} +uno::Sequence< rtl::OUString > SAL_CALL XMLScanner_getSupportedServiceNames( ) throw (uno::RuntimeException) +{ + uno::Sequence < rtl::OUString > aRet(1); + rtl::OUString* pArray = aRet.getArray(); + pArray[0] = rtl::OUString::createFromAscii ( XMLScanner::SERVICE_NAME ); + return aRet; +} + +uno::Reference< uno::XInterface > SAL_CALL XMLScanner_createInstance( const uno::Reference< uno::XComponentContext > & xContext) throw( uno::Exception ) +{ + return (cppu::OWeakObject*) new XMLScanner( xContext ); +} + +} } /* end namespace writerfilter::rtftok */ diff --git a/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx new file mode 100644 index 000000000000..0eea5c8ebc55 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx @@ -0,0 +1,55 @@ +/** + Copyright 2005 Sun Microsystems, Inc. +*/ + +#ifndef INCLUDED_RTFTOK_XMLSCANNER_HXX +#define INCLUDED_RTFTOK_XMLSCANNER_HXX + +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include <cppuhelper/implbase1.hxx> +#endif + +#ifndef _COM_SUN_STAR_LANG_XMAIN_HPP_ +#include <com/sun/star/lang/XMain.hpp> +#endif + +#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_ +#include <com/sun/star/uno/XComponentContext.hpp> +#endif + +namespace writerfilter { namespace rtftok { + +class XMLScanner : public cppu::WeakImplHelper1 < ::com::sun::star::lang::XMain > +{ +private: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xContext; + +public: + XMLScanner(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext); + + virtual ::sal_Int32 SAL_CALL run( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aArguments ) throw (::com::sun::star::uno::RuntimeException); + +public: + const static sal_Char SERVICE_NAME[40]; + const static sal_Char IMPLEMENTATION_NAME[40]; + +}; + +::rtl::OUString XMLScanner_getImplementationName (); +sal_Bool SAL_CALL XMLScanner_supportsService( const ::rtl::OUString& ServiceName ); +::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL XMLScanner_getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL XMLScanner_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > &xContext) throw( ::com::sun::star::uno::Exception ); + +} } /* end namespace writerfilter::rtftok */ + +#define RTFTOK_XMLSCANNER_COMPONENT_ENTRY \ +{\ + writerfilter::rtftok::XMLScanner_createInstance,\ + writerfilter::rtftok::XMLScanner_getImplementationName,\ + writerfilter::rtftok::XMLScanner_getSupportedServiceNames,\ + ::cppu::createSingleComponentFactory,\ + 0, 0\ +} + + +#endif /* INCLUDED_RTFTOK_SCANNERTESTSERVICE_HXX */ diff --git a/writerfilter/unocomponent/debugservices/rtftok/makefile.mk b/writerfilter/unocomponent/debugservices/rtftok/makefile.mk new file mode 100644 index 000000000000..a1e3637bbd56 --- /dev/null +++ b/writerfilter/unocomponent/debugservices/rtftok/makefile.mk @@ -0,0 +1,22 @@ +# +# Copyright 2005 Sun Microsystems, Inc. +# +PRJ=..$/..$/.. +PRJNAME=writerfilter +TARGET=debugservices_rtftok +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# --- Files -------------------------------------------------------- + +SLOFILES=\ + $(SLO)$/ScannerTestService.obj \ + $(SLO)$/XMLScanner.obj +#$(SLO)$/TestService.obj $(SLO)$/ResolverTestService.obj $(SLO)$/XmlParserTestService.obj $(SLO)$/RngService.obj + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk diff --git a/writerfilter/unocomponent/exports.dxp b/writerfilter/unocomponent/exports.dxp new file mode 100644 index 000000000000..028ac4175990 --- /dev/null +++ b/writerfilter/unocomponent/exports.dxp @@ -0,0 +1,3 @@ +component_getImplementationEnvironment +component_writeInfo +component_getFactory diff --git a/writerfilter/unocomponent/makefile.mk b/writerfilter/unocomponent/makefile.mk new file mode 100644 index 000000000000..0999d514b87a --- /dev/null +++ b/writerfilter/unocomponent/makefile.mk @@ -0,0 +1,60 @@ +# +# Copyright 2005 Sun Microsystems, Inc. +# +PRJ=.. +PRJNAME=writerfilter +TARGET=writerfilter.uno +LIBTARGET=NO +ENABLE_EXCEPTIONS=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION + +# --- Files -------------------------------------------------------- + +SLOFILES=$(SLO)$/component.obj + +SHL1TARGET=$(TARGET) + +.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" +ODIAPILIB=-lodiapi +RTFTOKLIB=-lrtftok +DOCTOKLIB=-ldoctok +.ELIF "$(GUI)"=="WNT" +ODIAPILIB=$(LB)$/iodiapi.lib +RTFTOKLIB=$(LB)$/irtftok.lib +DOCTOKLIB=$(LB)$/idoctok.lib +.ENDIF + +SHL1STDLIBS=$(SALLIB)\ + $(CPPULIB)\ + $(COMPHELPERLIB)\ + $(CPPUHELPERLIB)\ + $(UCBHELPERLIB)\ + $(ODIAPILIB) \ + $(RTFTOKLIB) \ + $(DOCTOKLIB) + +SHL1LIBS=\ + $(SLB)$/debugservices_xxml.lib \ + $(SLB)$/debugservices_rtftok.lib \ + $(SLB)$/debugservices_odsl.lib \ + $(SLB)$/debugservices_rtfsl.lib \ + $(SLB)$/debugservices_doctok.lib + +SHL1IMPLIB=i$(SHL1TARGET) + +SHL1OBJS = $(SLO)$/component.obj + +SHL1DEF=$(MISC)$/$(SHL1TARGET).def + +DEF1NAME=$(SHL1TARGET) +DEF1EXPORTFILE=exports.dxp + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk + diff --git a/writerfilter/util/exports.map b/writerfilter/util/exports.map new file mode 100644 index 000000000000..be4802aef7ab --- /dev/null +++ b/writerfilter/util/exports.map @@ -0,0 +1,9 @@ +WFT_1_0 { + global: + component_getImplementationEnvironment; + component_writeInfo; + component_getFactory; + local: + *; +}; + diff --git a/writerfilter/util/makefile.mk b/writerfilter/util/makefile.mk new file mode 100644 index 000000000000..839375f6b779 --- /dev/null +++ b/writerfilter/util/makefile.mk @@ -0,0 +1,72 @@ +# +# Copyright 2005 Sun Microsystems, Inc. +# + +PRJ=.. +PRJNAME=writerfilter +TARGET=odiapi +TARGET2=writerfilter +#LIBTARGET=NO +ENABLE_EXCEPTIONS=TRUE +#USE_DEFFILE=TRUE + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +CDEFS+=-DWRITERFILTER_DLLIMPLEMENTATION + +# --- Files -------------------------------------------------------- + +#SLOFILES=$(SLO)$/PropertiesImpl.obj + +LIB1TARGET=$(SLB)$/godiapi.lib +LIB1FILES= \ + $(SLB)$/xxml.lib \ + $(SLB)$/sl.lib \ + $(SLB)$/props.lib \ + $(SLB)$/qname.lib#\ +# $(SLB)$/core.lib + + +SHL1TARGET=$(TARGET) +SHL1LIBS=$(SLB)$/godiapi.lib +SHL1STDLIBS=$(SALLIB) ${LIBXML2LIB} $(CPPULIB) $(COMPHELPERLIB) $(CPPUHELPERLIB) $(UCBHELPERLIB) +SHL1IMPLIB=i$(SHL1TARGET) +SHL1USE_EXPORTS=ordinal +SHL1DEF= $(MISC)$/$(SHL1TARGET).def +DEF1NAME=$(SHL1TARGET) +DEFLIB1NAME=godiapi + +LIB2TARGET=$(SLB)$/$(TARGET2).lib +LIB2FILES= \ + $(SLB)$/doctok.lib \ + $(SLB)$/dmapper.lib \ + $(SLB)$/filter.lib + +SHL2LIBS=$(SLB)$/$(TARGET2).lib + + +SHL2TARGET=$(TARGET2)$(UPD)$(DLLPOSTFIX) +SHL2STDLIBS=\ + $(I18NISOLANGLIB) \ + $(CPPUHELPERLIB) \ + $(COMPHELPERLIB) \ + $(CPPULIB) \ + $(SALLIB) + + +SHL2DEPN= +SHL2IMPLIB= i$(SHL2TARGET) +#SHL2LIBS= $(SLB)$/$(TARGET2).lib +SHL2DEF= $(MISC)$/$(SHL2TARGET).def +SHL2VERSIONMAP=exports.map + +DEF2NAME=$(SHL2TARGET) + + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk + + |