<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<link rel="stylesheet" type="text/css" href="xmloff.css" media="screen" />

<!-- no current top news!
<h2><strong>Top News</str
ong>: <a href="xml_specification_draft.pdf">XML File Format Specification Updated</a></h2>
-->
<h1>The OpenOffice.org <strong>XML</strong> Project</h1>               
<p>Lead: <a href="mailto:Michael.Brauer@sun.com">Michael Brauer</a><br>
Co-Lead: <a href="mailto:Svante.Schubert@sun.com">Svante Schubert</a><br>
<small>(Please use the provided <a href="/servlets/ProjectMailingListList">mailing lists</a> for discussion related to this project.</small>
</p>

<p>The OpenOffice.org <strong>XML project</strong> is the home of of XML related features of <a href="http://download.openoffice.org/">OpenOffice.org</a>, 
like its <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#technical">OASIS OpenDocument</a>/<a href="http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43485">ISO/IEC 26300</a> file format implementation. It further provides some XML base implementations,
like XML parser and printer components.</p>

<p>The following sub-projects are within the scope of the XML project:</p>
<ul>
<li><p>The <a href="#ODF">OASIS OpenDocument/ISO/IEC 26300 file format</a> implementation, and the implementation of its predecessor, <a href="#OOo-XML">OpenOffice.org XML</a>.</p>
<li><p>The <a href="#filter">framework for XML based filters</a>.</p>
<li><p><a href="#xforms">XForms</a>.</p>
<li><p><a href="#security">XML Security</a>.</p>
<li><p><a href="#parser">XML Parser and Writer</a>.</p>
</ul>
<p>Please follow above links to get more information about these sub projects.</p>
The XML project is one of the <a href="http://projects.openoffice.org/accepted.html">accepted projects</a> of <a href="http://www.openoffice.org">OpenOffice.org</a>.</p>
<p>Please visit the <a href="http://wiki.services.openoffice.org/wiki/Xml">XML project's wiki pages</a> for
more information about the project.</p>

<h2>Contributing to the XML Project</h2>
<p>If you are interested in contributing to this project, please don't hesitate to contact us at <a href="http://xml.openoffice.org/servlets/ProjectMailingListList">dev@xml.openoffice.org</a>. 
If you are looking for <a href="http://wiki.services.openoffice.org/wiki/Xml#Contribution_Areas">ideas</a> what you may contribute, please visit the <a href="http://wiki.services.openoffice.org/wiki/Xml">project's wiki</a>.


<h2 id="ODF">OASIS OpenDocument/ISO/IEC 26300 File Format</h2>
<p>The OpenOffice.org application uses the <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#technical">OpenDocument file format</a> as 
native file format. This means, OpenOffice.org stores all documents in 
OpenDocument file format unless the user requests to store them in a 
different file format.</p>
<p>The OpenDocument file format is developed by a <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office">technical committee</a> at <a href="http://www.oasis-open.org">OASIS</a>. 
It further is an approved and published ISO standard (<a href="http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43485">ISO/IEC 26300:2006</a>). The <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#technical">OpenDocument specification</a> is available at the <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office">OASIS OpenDocument TC's web page</a>. See
<a href="opendocument.xml.org">opendocument.xml.org</a> for more information on 
OpenDocument.</p>
<p>Several members of the OpenOffice.org XML project and other OpenOffice.org 
projects are <a href="http://www.oasis-open.org/committees/membership.php?wg_abbrev=office">members</a> of the OASIS OpenDocument technical committee, and 
collaborate there with members from other projects and vendors on the further 
development of the OpenDocument file format.</p>
<p>The XML project maintains the implementation of the OpenDocument file format 
in OpenOffice.org in very close collaboration and with large support of other 
OpenOffice.org projects, in particular the 
<a href="http://framework.openoffice.org/">application framework</a>, 
<a href="http://graphics.openoffice.org/">graphical application</a>, 
<a href="http://sc.openoffice.org">spreadsheet</a> and 
<a href="http://sw.openoffice.org/">word processing</a> 
projects.</p>

<h2 id="OOo-XML">OpenOffice.org XML File Format</h2>
<p>The <a href="general.html">OpenOffice.org XML file format</a> is the native 
file format of OpenOffice.org 1.0. It has been replaced by the 
<a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#technical">OASIS OpenDocument file format</a>
 in OpenOffice.org 2.0.</p>

<h2 id="filter">XML-Based Filters</h2>
<p>The XML project contains the framework for the <a href="http://wiki.services.openoffice.org/wiki/Xml#Filters_and_Conversions_based_on_OpenDocument.2FOpenOffice.org_XML">XML based filters</a>. More
information about the development of XML based filters is available in the <a href="filter">XML Based Filter Tutorial</a>.
A <a href="http://wiki.services.openoffice.org/wiki/Xml#Filters_and_Conversions_based_on_OpenDocument.2FOpenOffice.org_XML">list of XML based filters</a> available for OpenOffice.org is available <a href="http://wiki.services.openoffice.org/wiki/Xml#Filters_and_Conversions_based_on_OpenDocument.2FOpenOffice.org_XML">in the wiki</a>.

<h2 id="xforms">XForms</h2>
<p>The XML project maintains the base technology of 
OpenOffice.org's XForms feature, and cares about specifications in that area 
in collaboration with the <a href="http://sw.openoffice.org/">word processing</a>
and <a href="http://dba.openoffice.org/">database</a> projects. The Writer specific parts of the 
XForms feature is maintained by the <a href="http://sw.openoffice.org/">word processing</a>
project.</p>

<h2 id="security">XML Security</h2>
<p>In collaboration with the 
<a href="http://framework.openoffice.org/">application framework</a> project, the 
XML projects specifies and implements XML Security features of OpenOffice.org, 
like digital signatures. 

<h2 id="parser">XML Basis Implementations</h2>
Being an important client of XML parser and writer implementations, the 
XML project maintains these components in collaboration with the <a href="http://framework.openoffice.org/">application framwork</a> project project. 


</body>
</html>

