OpenDocument technical specification: Difference between revisions

Content deleted Content added
Objects: added other types of non-ODF files that can be embedded.
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(5 intermediate revisions by 2 users not shown)
Line 185:
** Drawings
** Presentations
* Objects that do not have an XML representation. These objectsand only have a binary representation. Examples for these kinds of objects are [[raster images]], recorded audios and videos, and [[Object Linking and Embedding|OLE]] objects.<ref>According to the OpenDocument 1.0 specification, OLE is defined in ''Kraig Brockschmidt, Inside OLE, Microsoft Press, 1995, {{ISBN|1-55615-843-2}}''.</ref>
 
Use of Microsoft Object Linking and Embedding (OLE) objects limits the interoperability, because these objects are not widely supported in programs for viewing or editing files (e.g. embedding of other files inside the file, such as tables or charts from a spreadsheet application in a text document or presentation file).<ref>{{cite web |url=https://www.linux.com/news/foss-word-processors-compared-ooo-writer-abiword-and-kword/ |title=FOSS word processors compared: OOo Writer, AbiWord, and KWord |author=Bruce Byfield |date=2005-08-23 |accessdate=2010-04-06}}</ref><ref>{{cite web |url=http://www.linux.com/archive/feed/46599 |title=Sharing files between OpenOffice.org and Microsoft Office |date=2005-07-28 |accessdate=2010-04-06 |url-status=dead |archiveurl=https://web.archive.org/web/20100204134005/http://www.linux.com/archive/feed/46599 |archivedate=2010-02-04 }}</ref><ref>{{cite web |url=https://www.linux.com/news/softmaker-office-2008-focuses-compatibility-microsoft-office/ |title=SoftMaker Office 2008 focuses on compatibility with Microsoft Office |date=2008-11-20 |accessdate=2010-04-06}}</ref><ref>{{cite web |url=https://www.linux.com/news/softmaker-office-2006-beta-not-killer-app/ |title=SoftMaker Office 2006 beta: Not a killer app |date=2006-11-21 |accessdate=2010-04-06 }}</ref><ref>{{citation |url=http://pacsec.jp/psj06/psj06lagadec-e.pdf |format=PDF |title=OpenOffice / OpenDocument and Microsoft Office 2007 / Open XML security |author=Philippe Lagadec |date=2006-11-30 |accessdate=2010-04-06 |archive-date=2011-07-22 |archive-url=https://web.archive.org/web/20110722122720/http://pacsec.jp/psj06/psj06lagadec-e.pdf |url-status=dead }}</ref> If a software that understands an OLE object is not available, the object is usually replaced by a picture (bitmap representation of the object) or not displayed at all.<ref>{{cite web |url=http://www.keyongtech.com/2560234-ole-object-bitmap-representation |title=OLE object - bitmap representation? |accessdate=2010-04-06 |url-status=dead |archiveurl=https://web.archive.org/web/20110724111954/http://www.keyongtech.com/2560234-ole-object-bitmap-representation |archivedate=2011-07-24 }}</ref><ref>{{cite web |url=http://www.codeproject.com/KB/edit/COleRichEditCtrl.aspx |title=A Rich Edit Control That Displays Bitmaps and Other OLE Objects |accessdate=2010-04-06}}</ref><ref>{{cite web |url=http://support.microsoft.com/kb/123151 |archive-url=https://web.archive.org/web/20091213042624/http://support.microsoft.com/kb/123151 |url-status=dead |archive-date=2009-12-13 |title=ACC: Why OLE Objects Cause Databases to Grow |date=2007-01-19 |accessdate=2010-04-29}}</ref>
 
===Formatting===
Line 215:
 
==Format internals==
An OpenDocument file commonly consists of a standard [[ZIP (file format)|ZIP]] archive ([[JAR (file format)|JAR]] archive<ref>{{cite web |last=Sobhi |first=Ali |date=2007-08-14 |orig-date=August 2006 |title=Introduction to OpenDocument Format |publication-place=Armonk, New York, United States |publisher=[[IBM]] |url=http://www-03.ibm.com/able/resources/odfintro.html |archive-url=https://web.archive.org/web/20080602152400/http://www-03.ibm.com/able/resources/odfintro.html |url-status=dead |archive-date=2008-06-02 |title=Web resources & interesting links - easy and simple introduction to OpenDocument Format (ODF) |accessdate=2010-06-07}}</ref>) containing a number of files and directories; but OpenDocument file can also consist only of a single XML document. An OpenDocument file is commonly a collection of several subdocuments within a (ZIP) ''package''. An OpenDocument file as a ''single XML'' is not widely used.
According to the OpenDocument 1.0 specification, the ZIP file specification is defined in ''Info-ZIP Application Note 970311, 1997''.<ref>{{cite web |url=http://tools.oasis-open.org/issues/browse/OFFICE-2205 |title=NEEDS-DISCUSSION: ZIP reference - N 1309 |accessdateaccess-date=2010-06-07}}</ref><ref>{{cite web |url=http://tools.oasis-open.org/issues/browse/OFFICE-2082 |title= Zip reference is neither public nor authoritative |date=2009-10-11 |accessdateaccess-date=2010-06-07}}</ref>
The simple compression mechanism used for a package normally makes OpenDocument files significantly smaller than equivalent Microsoft "<code>.doc</code>" or "<code>.ppt</code>" files. This smaller size is important for organizations who store a vast number of documents for long periods of time, and to those organizations who must exchange documents over low bandwidth connections. Once uncompressed, most data is contained in simple text-based XML files, so the uncompressed data contents have the typical ease of modification and processing of XML files. The standard also allows for the creation of a single XML document, which uses ''<office:document>'' as the root element, for use in document processing.
 
Line 306:
 
==History==
* Version 1.0 became an OASIS Standard on 2005-05-01;<ref>
{{cite web
| url = http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office
| title = OASIS Open Document Format for Office Applications (OpenDocument) TC
| work = OASIS website
| publisher = OASIS
| accessdate = 20102024-0211-0826
| quote = Open Document = The OpenDocumentFormat v1.0 specification was approved as an OASIS Standard on 1 May 2005.
}}
</ref>
* Version 1.1 became an OASIS Standard on 2007-02-07;<ref>
{{cite web
| url = http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#odf11
| title = OASIS Open Document Format for Office Applications (OpenDocument) TC
| title = OpenDocument v1.1 Specification
| work = OASIS website
| publisher = OASIS
| accessdate = 20102024-0211-0826
| quote = Open Document = The OpenDocumentFormat v1.1 specification was approved as an OASIS Standard on 2 February 2007.
}}
</ref>
* Version 1.2 became an OASIS Standard on 2011-09-29;<ref name="odf12">
{{cite web
| url = http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office
| title = OASIS Open Document Format for Office Applications (OpenDocument) TC
| work = OASIS website
| publisher = OASIS
| accessdate = 2024-11-26
| quote = Open Document Format v1.2 was approved as a OASIS Standard on 29 September 2011.
}}
</ref>
* Version 1.3 became an OASIS Standard on 2021-04-27.<ref>
{{cite web
| url = http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office
| title = OASIS Open Document Format for Office Applications (OpenDocument) TC
| work = OASIS website
| publisher = OASIS
| accessdate = 2024-11-26
| quote = Open Document Format for Office Applications (OpenDocument) Version 1.3 OASIS Standard was approved by the members of OASIS on 27 April 2021.
}}
</ref>
* Version 1.2 became an OASIS Standard on 2011-09-29<ref name="odf12">{{citation |url=http://www.oasis-open.org/news/pr/odf-1-2-approval |title=Members Approve OpenDocument Format (ODF) Version 1.2 as OASIS Standard |date=2011-10-05 |accessdate=2012-04-12}}</ref>
 
==Versions detection==
To indicate which version of the OpenDocument specification a file complies with, all root elements take an <code>office:version</code> attribute. The version number is (in the format ''revision.version'', (e.g.such as <code>office:version="1.1"). The <code>office:version</code>), attributewhich identifies the version of ODF specification that defined the associated element, its schema, its complete content, and its interpretation.
 
===ODF 1.0/1.1===
It is not mandatory to use <code>office:version</code> attribute in ODF 1.0 and ODF 1.1 files, so when an element has office:version omitted, the element is based on ODF 1.0 or 1.1. If the file has a version known to an XML processor, it may validate the document. Otherwise, it is optional to validate the document, but the document must be well formed. It is not mandatory to use <code>office:version</code> attribute in ODF 1.0 and ODF 1.1 files.
 
===ODF 1.2===
The <code>office:version</code> attribute shall be present in each and every <office:document>, <office:document-content>, <office:document-styles>, <office:document-meta>, and <office:document-settings> element in the XML documents that comprise an OpenDocument 1.2 document. The value of the office:version attribute shall be "1.2".
 
===ODF 1.2 and newer===
When an element has office:version="1.1" the element and its content are based on the OpenDocument v1.1 specification. For office:version="1.0" the element and its content are based on the OpenDocument v1.0 specification. When an element has office:version omitted, the element is based on a version of the OpenDocument specification earlier than v1.2. In these cases and in the case of values other than "1.2", the elements do not comprise an OpenDocument 1.2 document.<ref>{{cite web |url=http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1417682_253892949 |title=office:version attribute - OpenDocument Version 1.2, Part 1, 29 September 2011 |accessdate=2012-12-05}}</ref>
The <code>office:version</code> attribute shall be present in each and every <office:document>, <office:document-content>, <office:document-styles>, <office:document-meta>, and <office:document-settings> element in the XML documents that comprise an OpenDocument 1.2 or newer document. The value of the office:version attribute shall bereflect "1the OpenDocument version.<ref>{{cite web |url=https://docs.oasis-open.org/office/v1.2"/os/OpenDocument-v1.2-os-part1.html#__RefHeading__1417682_253892949 |title=office:version attribute - OpenDocument Version 1.2, Part 1, 29 September 2011 |accessdate=2024-11-26}}</ref>
 
==Conformance==