7bbe74b2be
and cid#1556865 COPY_INSTEAD_OF_MOVE cid#1556871 COPY_INSTEAD_OF_MOVE cid#1556939 COPY_INSTEAD_OF_MOVE cid#1556951 COPY_INSTEAD_OF_MOVE cid#1556964 COPY_INSTEAD_OF_MOVE cid#1556966 COPY_INSTEAD_OF_MOVE cid#1556968 COPY_INSTEAD_OF_MOVE cid#1556971 COPY_INSTEAD_OF_MOVE cid#1556989 COPY_INSTEAD_OF_MOVE cid#1557001 COPY_INSTEAD_OF_MOVE cid#1557011 COPY_INSTEAD_OF_MOVE cid#1557032 COPY_INSTEAD_OF_MOVE cid#1557038 COPY_INSTEAD_OF_MOVE cid#1557041 COPY_INSTEAD_OF_MOVE cid#1557055 COPY_INSTEAD_OF_MOVE cid#1557056 COPY_INSTEAD_OF_MOVE cid#1557057 COPY_INSTEAD_OF_MOVE cid#1557065 COPY_INSTEAD_OF_MOVE cid#1557068 COPY_INSTEAD_OF_MOVE cid#1557087 COPY_INSTEAD_OF_MOVE cid#1557090 COPY_INSTEAD_OF_MOVE cid#1557093 COPY_INSTEAD_OF_MOVE cid#1557113 COPY_INSTEAD_OF_MOVE cid#1557122 COPY_INSTEAD_OF_MOVE cid#1557126 COPY_INSTEAD_OF_MOVE cid#1557145 COPY_INSTEAD_OF_MOVE cid#1557151 COPY_INSTEAD_OF_MOVE cid#1557152 COPY_INSTEAD_OF_MOVE cid#1557197 COPY_INSTEAD_OF_MOVE cid#1557216 COPY_INSTEAD_OF_MOVE cid#1557245 COPY_INSTEAD_OF_MOVE cid#1557272 COPY_INSTEAD_OF_MOVE cid#1557310 COPY_INSTEAD_OF_MOVE cid#1557314 COPY_INSTEAD_OF_MOVE cid#1557318 COPY_INSTEAD_OF_MOVE cid#1557333 COPY_INSTEAD_OF_MOVE cid#1557340 COPY_INSTEAD_OF_MOVE cid#1557358 COPY_INSTEAD_OF_MOVE cid#1557359 COPY_INSTEAD_OF_MOVE cid#1557365 COPY_INSTEAD_OF_MOVE cid#1557367 COPY_INSTEAD_OF_MOVE cid#1557395 COPY_INSTEAD_OF_MOVE cid#1557418 COPY_INSTEAD_OF_MOVE cid#1557488 COPY_INSTEAD_OF_MOVE cid#1557493 COPY_INSTEAD_OF_MOVE cid#1557506 COPY_INSTEAD_OF_MOVE cid#1557514 COPY_INSTEAD_OF_MOVE cid#1557528 COPY_INSTEAD_OF_MOVE cid#1557534 COPY_INSTEAD_OF_MOVE cid#1557537 COPY_INSTEAD_OF_MOVE cid#1557562 COPY_INSTEAD_OF_MOVE cid#1557563 COPY_INSTEAD_OF_MOVE cid#1557592 COPY_INSTEAD_OF_MOVE cid#1557608 COPY_INSTEAD_OF_MOVE cid#1557615 COPY_INSTEAD_OF_MOVE cid#1557619 COPY_INSTEAD_OF_MOVE cid#1557637 COPY_INSTEAD_OF_MOVE cid#1557648 COPY_INSTEAD_OF_MOVE cid#1557712 COPY_INSTEAD_OF_MOVE cid#1557750 COPY_INSTEAD_OF_MOVE cid#1557762 COPY_INSTEAD_OF_MOVE cid#1557765 COPY_INSTEAD_OF_MOVE Change-Id: I10db1910627e04a26e25836c05ad5c2707abd18b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175696 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins |
||
---|---|---|
.. | ||
documentation | ||
dtd | ||
inc | ||
qa | ||
source | ||
util | ||
CppunitTest_xmloff_draw.mk | ||
CppunitTest_xmloff_style.mk | ||
CppunitTest_xmloff_text.mk | ||
CppunitTest_xmloff_uxmloff.mk | ||
CustomTarget_generated.mk | ||
IwyuFilter_xmloff.yaml | ||
JunitTest_xmloff_unoapi.mk | ||
Library_xo.mk | ||
Library_xof.mk | ||
Makefile | ||
Module_xmloff.mk | ||
Package_dtd.mk | ||
README.md |
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
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]