xref: /trunk/odf_docs/ODF13-KNOWN-LIMITATIONS-PUBLIC.md (revision 30d2e6beba5b3cdbcaf7208028ffe084e446bfd6)
1<!--
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements.  See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership.  The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"); you may not use this file except in compliance
8 with the License.  You may obtain a copy of the License at
9
10   http://www.apache.org/licenses/LICENSE-2.0
11
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied.  See the License for the
16 specific language governing permissions and limitations
17 under the License.
18-->
19
20# DRAFT: Apache OpenOffice: ODF 1.3 known limitations
21
22> **DRAFT. Work in progress, for discussion only.** This document has not been reviewed or approved by the Apache OpenOffice project and may change or be withdrawn. It is not an announcement, and it makes no claim that Apache OpenOffice conforms to ODF 1.3.
23
24This lists the known deviations of Apache OpenOffice from ODF 1.3 in its "ODF 1.3" save mode (the producer) and when it reads ODF 1.3 documents (the consumer). It accompanies the implementation-defined values document. The "ODF 1.2" limitations list describes the 1.2 mode; its checks were not repeated item by item for the 1.3 mode. For the 1.3 mode, a corpus of 411 test packages saved in that mode validates with no error against the 1.3 schema.
25
26## Not supported
27
28- XAdES signatures, and OpenPGP key transport in the manifest (`manifest:encrypted-key`, `keyinfo`, `PGPData`, `PGPKeyID`, `PGPKeyPacket`, `PGPAlgorithm`, `CipherData`, `CipherValue`). AES-GCM and Argon2 are not part of ODF 1.3.
29- Documents newer than ODF 1.4 trigger the "created with a newer version" prompt; ODF 1.3 and 1.4 documents do not.
30
31## Reader: ODF 1.3 features that are not interpreted
32
33These are read without error and have no effect:
34
35- `number:forced-exponent-sign`, `number:exponent-interval` (engineering notation) and `number:max-denominator-value`.
36- `style:header-first` and `style:footer-first`: a first-page header or footer with content is dropped. Neither Writer nor Calc has a model for it.
37- `style:page-number="0"`: it is read like `auto`, so a restart of the page numbers at 0 is lost.
38- `style:contextual-spacing="true"`, `chart:data-label-series="true"` and the chart regression attributes.
39- The text content of `draw:image`; `draw:mime-type` on `draw:image` has no effect.
40
41## Reader: read with limits
42
43- `number:min-decimal-places`: the optional decimals become `#` in the number format, so `0.0##` shows 1.5 as 1.5. In scientific formats the optional digits are still shown as zeros (`0.0##E+00` shows 1.500E+05, not 1.5E+05).
44- `number:fill-character`: read into the number format as `*c`, one per format and one character in the Basic Multilingual Plane; further ones are ignored. How the fill appears on screen or in print was not checked.
45
46## Producer: the "ODF 1.3" save mode
47
48- `number:min-decimal-places` is written. The 1.2 modes write `0.0##` as fixed decimals, because they cannot express it.
49- `number:fill-character` is not written in any mode: a fill character is lost on save.
50- The standard ODF 1.3 forms are written for `chart:coordinate-region`, `table:tab-color`, `meta:creator-initials`, `text:drop-down`, scale-to-X/Y, the chart legend size, chart shapes and index link tokens. `text:help` and `text:hint` on a drop-down are written only in the "ODF 1.3 Extended" mode, in the `textooo:` namespace.
51- A formula that cannot be parsed is kept and written as typed, for example `of:=a0` (see the ODF 1.2 list).
52
53## Formulas
54
55- DCOUNT and DCOUNTA accept field 0, meaning the whole database, and ignore empty criteria cells.
56- LINEST and LOGEST accept as many observations as parameters plus one, with a constant, which leaves zero degrees of freedom.
57- Whitespace between a function name and `(` is written back.
58- Operators nested in a scalar parameter of HLOOKUP, VLOOKUP, MATCH, LINEST and LOGEST are evaluated in array mode.
59- WEEKDAY keeps its fallback for unspecified return types.
60- A missing parameter is 0 when it is the final value of a formula. A missing `IF` branch nested in a larger expression stays empty: `=IF(1;;5)&"x"` gives "x" and `=LEN(IF(1;;5))` gives 0.
61
62## Not verified
63
64Builds on Linux, FreeBSD and Windows; the options dialog in a running office; the function wizard path for `IF(c;)`; the translated option-page strings; the corpus in the 1.0 and 1.1 modes (only the fixtures run there).
65