summaryrefslogtreecommitdiffstats
path: root/xmloff/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /xmloff/README.md
parentInitial commit. (diff)
downloadlibreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.tar.xz
libreoffice-ed5640d8b587fbcfed7dd7967f3de04b37a76f26.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xmloff/README.md')
-rw-r--r--xmloff/README.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/xmloff/README.md b/xmloff/README.md
new file mode 100644
index 000000000..4c08c6b31
--- /dev/null
+++ b/xmloff/README.md
@@ -0,0 +1,47 @@
+# ODF Import and Export Filter Logic
+
+The main library "xo" contains the basic ODF import/export filter
+implementation for most applications. The document is accessed
+via its UNO API, which has the advantage that the same import/export
+code can be used for text in all applications (from/to Writer/EditEngine).
+The filter consumes/produces via SAX UNO API interface (implemented in
+"sax"). Various bits of the ODF filters are also implemented in
+applications, for example `[git:sw/source/filter/xml]`.
+
+There is a central list of all element or attribute names in
+`[git:include/xmloff/xmltoken.hxx]`. The main class of the import filter
+is SvXMLImport, and of the export filter SvXMLExport.
+
+The Import filter maintains a stack of contexts for each element being
+read. There are many classes specific to particular elements, derived
+from SvXMLImportContext.
+
+Note that for export several different versions of ODF are supported,
+with the default being the latest ODF version with "extensions", which
+means it may contain elements and attributes that are only in drafts of
+the specification or are not yet submitted for specification. Documents
+produced in the other (non-extended) ODF modes are supposed to be
+strictly conforming to the respective specification, i.e., only markup
+defined by the ODF specification is allowed.
+
+There is another library "xof" built from the source/transform directory,
+which is the filter for the OpenOffice.org XML format. This legacy format
+is a predecessor of ODF and was the default in OpenOffice.org 1.x versions,
+which did not support ODF. This filter works as a SAX transformation
+from/to ODF, i.e., when importing a document the transform library reads
+the SAX events from the file and generates SAX events that are then
+consumed by the ODF import filter.
+
+[OpenOffice.org XML File Format](http://www.openoffice.org/xml/general.html)
+
+There is some stuff in the "dtd" directory which is most likely related
+to the OpenOffice.org XML format but is possibly outdated and obsolete.
+
+## Add New XML Tokens
+
+When adding a new XML token, you need to add its entry in the following three
+files:
+
+* `[git:include/xmloff/xmltoken.hxx]`
+* `[git:xmloff/source/core/xmltoken.cxx]`
+* `[git:xmloff/source/token/tokens.txt]`