You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by wa...@apache.org on 2020/11/02 20:37:38 UTC
[openoffice-org] 01/02: Migration of xml assets
This is an automated email from the ASF dual-hosted git repository.
wave pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openoffice-org.git
commit 8561dc7d8a419da303ecc81ba833e29d29c632f2
Author: Dave Fisher <da...@davefisher.tech>
AuthorDate: Mon Nov 2 12:37:15 2020 -0800
Migration of xml assets
---
assets/xml/__modules/left_sidebar_topics.htmlx | 14 +
assets/xml/faq.xml | 286 ++++
assets/xml/faq.xsl | 110 ++
assets/xml/filter/sveo1eo2.gif | Bin 0 -> 3549 bytes
assets/xml/filter/sveo1eo3.gif | Bin 0 -> 5163 bytes
assets/xml/filter/sveo1eo4.gif | Bin 0 -> 4751 bytes
assets/xml/filter/sveo1eo5.gif | Bin 0 -> 4308 bytes
assets/xml/filter/sveo1eo6.gif | Bin 0 -> 3894 bytes
assets/xml/filter/sveo1eo7.gif | Bin 0 -> 4780 bytes
assets/xml/oasis/extract-manifest.xsl | 73 +
assets/xml/oasis/extract-strict.xsl | 73 +
assets/xml/oasis/extract.xsl | 74 ++
assets/xml/oasis/oasis2ooo.xsl | 26 +
assets/xml/oasis/office-spec.sxw | Bin 0 -> 447172 bytes
assets/xml/oasis/ooo2oasis.xsl | 547 ++++++++
assets/xml/oasis/opendocument-package.odt | Bin 0 -> 42954 bytes
assets/xml/oasis/opendocument-spec.odt | Bin 0 -> 488069 bytes
assets/xml/oasis/process_xsd.xsl | 23 +
assets/xml/oasis/simplify_rng.xsl | 167 +++
assets/xml/odf2xhtml/index.fodt | 4 +
assets/xml/odf2xhtml/rdf-extract.xsl | 249 ++++
assets/xml/opendocument-cropped_0.jpg | Bin 0 -> 50427 bytes
.../optimization/current_optimization_status.sxc | Bin 0 -> 6504 bytes
assets/xml/optimization/downloads/libxmlwrap.zip | Bin 0 -> 9953 bytes
.../protocoll_export_simple_editcells.sxc | Bin 0 -> 130348 bytes
.../protocoll_export_simple_formulacells.sxc | Bin 0 -> 132728 bytes
.../protocoll_export_simple_numbercells.sxc | Bin 0 -> 131543 bytes
.../protocoll_export_simple_textcells.sxc | Bin 0 -> 132555 bytes
.../protocoll_import_simple_editcells.sxc | Bin 0 -> 123643 bytes
.../protocoll_import_simple_formulacells.sxc | Bin 0 -> 124998 bytes
.../protocoll_import_simple_numbercells.sxc | Bin 0 -> 115012 bytes
.../protocoll_import_simple_textcells.sxc | Bin 0 -> 122890 bytes
assets/xml/optimization/simple_editcells.sxc | Bin 0 -> 113470 bytes
assets/xml/optimization/simple_formulacells.sxc | Bin 0 -> 967815 bytes
assets/xml/optimization/simple_numbercells.sxc | Bin 0 -> 233109 bytes
assets/xml/optimization/simple_textcells.sxc | Bin 0 -> 86394 bytes
assets/xml/prj/build.lst | 3 +
assets/xml/prj/d.lst | 1 +
assets/xml/robots.txt | 7 +
assets/xml/saxecho/xmlflat.jpg | Bin 0 -> 321202 bytes
assets/xml/saxecho/xmltree.jpg | Bin 0 -> 170368 bytes
assets/xml/sx2ml/index.fodt | 4 +
assets/xml/sx2ml/master_document_support.zip | Bin 0 -> 41925 bytes
assets/xml/xmerge/docbook/images/DocumentTitle.jpg | Bin 0 -> 68685 bytes
assets/xml/xmerge/docbook/images/Navigator.gif | Bin 0 -> 9445 bytes
.../xml/xmerge/docbook/images/ParagraphStyles.png | Bin 0 -> 7810 bytes
assets/xml/xmerge/docbook/images/SaveAs.jpg | Bin 0 -> 29235 bytes
assets/xml/xmerge/docbook/images/Table.jpg | Bin 0 -> 84475 bytes
assets/xml/xmerge/docs/XMerge_sdk.pdf | Bin 0 -> 180235 bytes
assets/xml/xmerge/docs/XMerge_sdk.sxw | Bin 0 -> 116919 bytes
assets/xml/xmerge/docs/XSLTPlugin.pdf | Bin 0 -> 11428 bytes
assets/xml/xmerge/docs/XSLTPlugin.sxw | Bin 0 -> 9742 bytes
assets/xml/xmerge/docs/xmerge_javadoc.zip | Bin 0 -> 624359 bytes
assets/xml/xmerge/downloads/DocBookFilter.zip | Bin 0 -> 33385 bytes
assets/xml/xmerge/downloads/DocBookTemplate.stw | Bin 0 -> 6656 bytes
assets/xml/xmerge/downloads/InstallerSrc.zip | Bin 0 -> 360195 bytes
assets/xml/xmerge/downloads/XMergeInstall.jar | Bin 0 -> 762848 bytes
assets/xml/xmerge/downloads/docbook.jar | Bin 0 -> 14027 bytes
assets/xml/xmerge/downloads/docbook_template.sxw | Bin 0 -> 8454 bytes
assets/xml/xmerge/downloads/docbook_template.xml | 1 +
assets/xml/xmerge/downloads/docbooktosoff.xsl | 1404 ++++++++++++++++++++
assets/xml/xmerge/downloads/flatxmlbinaries.tar.gz | Bin 0 -> 86894 bytes
assets/xml/xmerge/downloads/gedit.sxw | Bin 0 -> 13498 bytes
assets/xml/xmerge/downloads/gedit.xml | 1079 +++++++++++++++
assets/xml/xmerge/downloads/smalldeviceSol.tar.gz | Bin 0 -> 406538 bytes
assets/xml/xmerge/downloads/sofftodocbook.xsl | 741 +++++++++++
.../xml/xmerge/downloads/sofftodocbookheadings.xsl | 844 ++++++++++++
assets/xml/xmerge/downloads/xmergesync.zip | Bin 0 -> 137429 bytes
.../xmerge/plugins/images/conversion-ppc2002.jpg | Bin 0 -> 21399 bytes
.../xml/xmerge/plugins/images/conversion-ppc2k.jpg | Bin 0 -> 21312 bytes
.../xml/xmerge/plugins/images/conversion-sxw.jpg | Bin 0 -> 75541 bytes
assets/xml/xmerge/plugins/images/formula_pxl.jpg | Bin 0 -> 30195 bytes
assets/xml/xmerge/plugins/images/formula_sxc.jpg | Bin 0 -> 69979 bytes
assets/xml/xmerge/plugins/images/moddoc.jpg | Bin 0 -> 74511 bytes
assets/xml/xmerge/plugins/images/mpdbmod.jpg | Bin 0 -> 29441 bytes
assets/xml/xmerge/plugins/images/mpdborig.jpg | Bin 0 -> 29571 bytes
assets/xml/xmerge/plugins/images/origdoc.jpg | Bin 0 -> 75134 bytes
assets/xml/xmerge/plugins/images/pdbmod.jpg | Bin 0 -> 27397 bytes
assets/xml/xmerge/plugins/images/pdborig.jpg | Bin 0 -> 27126 bytes
.../xml/xmerge/plugins/images/spreadsheetmod.jpg | Bin 0 -> 88920 bytes
.../xml/xmerge/plugins/images/spreadsheetorig.jpg | Bin 0 -> 89832 bytes
assets/xml/xmerge/smalldeviceWin.zip | Bin 0 -> 577873 bytes
assets/xml/xmerge/xmerge_src.zip | Bin 0 -> 762213 bytes
assets/xml/xml_specification.pdf | Bin 0 -> 1418866 bytes
assets/xml/xml_specification_draft.pdf | Bin 0 -> 1418866 bytes
assets/xml/xmloff.css | 70 +
86 files changed, 5800 insertions(+)
diff --git a/assets/xml/__modules/left_sidebar_topics.htmlx b/assets/xml/__modules/left_sidebar_topics.htmlx
new file mode 100755
index 0000000..36b80ba
--- /dev/null
+++ b/assets/xml/__modules/left_sidebar_topics.htmlx
@@ -0,0 +1,14 @@
+<dl id="wikibox" class="navgroup">
+ <dt><a href="http://wiki.services.openoffice.org/wiki/Xml"> XML Wiki</a></dt>
+ <dd>
+ <ul>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/Efforts">» Current Effort</a></li>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/ContributionAreas">» Contributions</a></li>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/ArticlesAndBooks">» Articles and Books</a></li>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/Research">» Reports and Research</a></li>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/Tools">» Tools</a></li>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/Filters">» Filters</a></li>
+<li style="margin: 0px 0px 0px 0px"><a href="http://wiki.services.openoffice.org/wiki/Xml/Modules">» Modules</a></li>
+ </ul>
+ </dd>
+</dl>
diff --git a/assets/xml/faq.xml b/assets/xml/faq.xml
new file mode 100644
index 0000000..b857a54
--- /dev/null
+++ b/assets/xml/faq.xml
@@ -0,0 +1,286 @@
+
+<faqs
+ maintainer="Daniel.Vogelheim@germany.sun.com"
+ maintainer-name="dvo" >
+
+ <faq>
+ <question>
+ Which OpenOffice.org application uses XML-based file formats?
+ </question>
+ <answer>
+ All OpenOffice.org applications use XML-based file formats. All
+ applications (except Math) use the same format as defined in our <a
+ href="xml_specification_draft.pdf">specification</a>.
+ The Math component uses our package structure and format (see
+ below), but uses <a href="http://www.w3.org/Math/">MathML</a>
+ inside the package.
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ What are the default file extensions for XML-based documents?
+ </question>
+ <answer>
+ <table summary="OpenOffice.org XML file types">
+ <tr> <th>Writer</th> <td>sxw</td> </tr>
+ <tr> <th>Calc</th> <td>sxc</td> </tr>
+ <tr> <th>Draw</th> <td>sxd</td> </tr>
+ <tr> <th>Impress</th> <td>sxi</td> </tr>
+ <tr> <th>Math</th> <td>sxm</td> </tr>
+ <tr> <th>Writer<br/>global document</th> <td>sxg</td> </tr>
+ </table>
+ <p>XML is also used in other OpenOffice.org files
+ (e.g. configuration) which are not covered in the <tt>xmloff</tt>
+ project.</p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ What is all that binary goo I see in your files?
+ </question>
+ <answer>
+ <p>Our documents use packages that contain the XML data alongside
+ binary data such as images. The packages use the well known ZIP format.
+ Just open an sxw/sxc/... file with a ZIP-tool of your choice, and
+ you get access to the unadulterated XML.</p>
+ <p>The document meta data (in the meta.xml stream) is not
+ compressed. This allows for easy searching and extraction of the
+ meta data.</p>
+ <p> For more information on our packages, see the next question. </p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ What package format do you use, and what do I find inside?
+ </question>
+ <answer>
+
+ <p>We use the well-known ZIP file format as a package format. In
+ addition, we store an XML-based manifest file that describes the
+ package content and may supply additional information about the
+ included files (e.g. encryption method). Since we use ZIP, most
+ archive programs can already handle our files.</p>
+
+ <p>Inside the package, you generally find several streams that
+ make up the full office document. These are: </p>
+
+ <table>
+ <tr>
+ <th>meta.xml</th>
+ <td>information about the document (author, time of last save, ...)</td>
+ </tr>
+ <tr>
+ <th>styles.xml</th>
+ <td>styles that are used in the document</td>
+ </tr>
+ <tr>
+ <th>content.xml</th>
+ <td>main document content (text, tables, graphical elements)</td>
+ </tr>
+ <tr>
+ <th>settings.xml</th>
+ <td>document and view settings (such as magnification level and
+ selected printer); these are usually application specific </td>
+ </tr>
+ <tr>
+ <th>META-INF/manifest.xml</th>
+ <td>provides additional information about the other files (such
+ as MIME type or encryption method)</td>
+ </tr>
+ <tr>
+ <th>Pictures/</th>
+ <td>directory containing images (in their native, binary formats)</td>
+ </tr>
+ <tr>
+ <th>Dialogs/</th>
+ <td>directory containing dialogs used by document macros</td>
+ </tr>
+ <tr>
+ <th>Basic/</th>
+ <td>directory containing StarBasic macros</td>
+ </tr>
+ <tr>
+ <th>Obj.../</th>
+ <td>directories containing embedded objects, such as charts;
+ each directory contains one such object, stored in its native format.
+ For OpenOffice.org objects that is its XML representation, for other
+ objects it's usually a binary format.</td>
+ </tr>
+ </table>
+
+ <p>For more information on why we chose ZIP, please read <a
+ href="package.html">package.html</a>. For more information on the
+ ZIP format itself, please look <a
+ href="http://www.wotsit.org/">here</a>.</p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ How can I put additional information into an XML file?
+ </question>
+ <answer>
+ <p><em>Alien</em> attributes, i.e. attributes not defined in the
+ OpenOffice.org DTD, will be preserved if they are attached to
+ <code><style:properties></code> elements in style
+ definitions. All other alien content will be discarded by the
+ OpenOffice.org import filters.</p>
+ <p>Since you can attach styles to arbitrary text ranges, you can
+ use this mechanism to attach your information to arbitrary text
+ ranges, too.</p>
+ <p><strong>Note:</strong> The above mechanism seems to only work
+ in Writer. The issue is under investigation.</p>
+ <p>It is planned that you can also put additional files with your
+ own content into the packages. However, this doesn't work yet.</p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ But I really, really want plain XML. No compression, no binary
+ data, no nothing. Just plain XML. Can I have that, please?
+ </question>
+ <answer>
+ <p>For purposes of import and export, we provide <a
+ href="http://udk.openoffice.org/">UNO</a>-based services that
+ allow you to import or export XML data through the SAX
+ interface. A documentation of this technique is available <a
+ href="filter/">here</a>.</p>
+ <p>Also, it is planned to allow plain XML files (without packages)
+ to be read and written. However, this is not implemented yet.</p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ Why are so many styles written out?
+ </question>
+ <answer>
+ <p>In general, styles that are used in the document or that have been
+ modified by the user are written to disk. The former is necessary
+ to render the document correctly. The latter is preserved because
+ if a user edited those styles, he/she is likely to use them later
+ on. Therefore, those styles should not be discarded, even though
+ they do not contribute to the document in its current form and
+ shape.</p>
+ <p>If styles that meet neither of these criteria are written, then
+ this is may be considered a bug. The Draw, Impress, and Calc
+ applications currently show this behavior. </p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ How are embedded images and binary data handled?
+ </question>
+ <answer>
+ Images and embedded objects are stored in their native formats
+ into the ZIP-based package format.
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ Why didn't you use XHTML, XSL-FO, SVG, etc. ?
+ </question>
+ <answer>
+ <p>Those formats are not used because they do not have a
+ suitable level of presentation for office documents. When we found an
+ established format (like the ones mentioned above) contains
+ concepts that are used in OpenOffice.org as well, then we
+ generally adopted their representation for those concepts in our
+ XML format. We hope this will ease transformation between the
+ formats.</p>
+
+<!--
+ <p>As an example for the unsuitable level of presentation consider
+ text fields: A text field contains a string of text that gets
+ automatically for this consider text fields: Text fields are
+ special regions of text strings that are automatically updated by
+ the application. The text fields must be preserved, of course, so
+ the application can continue to update them. While the above
+ formats easily accomodate the text field output (after all, it's
+ just a string of text), they can only be represented by some sort
+ of extension to the basic format. Since these sort of issues
+ occur quite a lot, it seemed more prudent to create an own format.</p>
+-->
+
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ Can I write an XML translation from or into ...?
+ </question>
+ <answer>
+ <p>You are absolutely welcome to write transformation from our
+ XML-based file format into and from anything you see fit.</p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ I found a bug. What do I do?
+ </question>
+ <answer>
+ <p>Report it using <a
+ href="http://www.openoffice.org/issues/enter_bug.cgi">IssueZilla</a>. Try
+ to give a detailed description of what went wrong. Don't forget to
+ include the document in which the error occurred. (After submission
+ of the bug, choose "create attachment".)</p>
+ <p><strong>DON'T BE SHY ABOUT REPORTING BUGS!</strong> All of us
+ are interested in stable and bug-free applications, and bug
+ reports from our users are a very important means towards that
+ end. Bug reports help all of us. If you don't report your
+ findings, we can't fix them, and so they will cause problems for
+ users as well.</p>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ Hey, I like your XML format. How can I help?
+ </question>
+ <answer>
+ There are many things you can do to help.
+ <ol>
+ <li>You can spread the word, e.g. by telling your friends and
+ co-workers about OpenOffice.org.</li>
+ <li>You can use the OpenOffice.org applications and report any
+ bugs you find.</li>
+ <li>You can program transformation from our format into others
+ (and vice versa).</li>
+ <li>You can implement one of the suggestions on the todo list on our homepage. </li>
+ </ol>
+ </answer>
+ </faq>
+
+ <faq>
+ <question>
+ But what about ...? And why isn't
+ my favorite question in here?
+ </question>
+ <answer>
+ If your question is not answered here, ask it on our mailing
+ list. You can view the archives <a
+ href="http://xml.openoffice.org/xml-dev/">here</a>. Instructions
+ for joining the list are on our <a
+ href="http://xml.openoffice.org">project homepage</a>.
+ </answer>
+ </faq>
+
+ <!-- faq template
+ <faq>
+ <question>
+ ...
+ </question>
+ <answer>
+ ...
+ </answer>
+ </faq>
+ -->
+
+</faqs>
diff --git a/assets/xml/faq.xsl b/assets/xml/faq.xsl
new file mode 100644
index 0000000..bf380c5
--- /dev/null
+++ b/assets/xml/faq.xsl
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+
+<!--
+ Transform FAQs into HTML.
+
+ Input XML is expected to look like this:
+
+ <faqs maintainer="...email..." maintainer-name="...name...">
+ <faq>
+ <question> ...? </question>
+ <answer> ... test with HTML ... </answer>
+ </faq>
+ <faq> ... </faq>
+ <faq> ... </faq>
+ <faq> ... </faq>
+ </faqs>
+-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+ <xsl:output method="html" indent="no"/>
+
+ <!-- document root: list questions, then q+a -->
+ <xsl:template match="faqs">
+
+ <!-- header question list -->
+ <a name="top"/>
+ <p><img src="http://www.openoffice.org/sharedimages/start_blue_bar.gif" alt=""/>  <font size="-1"><b>MOST FREQUENTLY ASKED QUESTIONS: QUESTIONS</b></font>  <img src="http://www.openoffice.org/sharedimages/end_blue_bar.gif" alt=""/></p>
+
+ <!-- list of questions -->
+ <ol>
+ <xsl:apply-templates mode="list"/>
+ </ol>
+
+ <!-- header answers -->
+ <p><img src="http://www.openoffice.org/sharedimages/start_blue_bar.gif" alt=""/>  <font size="-1"><b>MOST FREQUENTLY ASKED QUESTIONS: ANSWERS</b></font>  <img src="http://www.openoffice.org/sharedimages/end_blue_bar.gif" alt=""/></p>
+
+ <!-- list of q+answers -->
+ <xsl:apply-templates/>
+
+ <xsl:if test="@maintainer">
+ <p><small>FAQ maintained by <a href="mailto:{@maintainer}">
+ <xsl:choose>
+ <xsl:when test="@maintainer-name">
+ <xsl:value-of select="@maintainer-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@maintainer"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>.</small></p>
+ </xsl:if>
+
+ </xsl:template>
+
+
+
+ <!-- FAQ element (list mode) -->
+ <!-- <li><a href="#1">...</a></li> -->
+ <xsl:template mode="list" match="faq">
+ <li><a href="#{1+count(preceding::faq)}"><xsl:apply-templates select="question"/></a></li>
+ </xsl:template>
+
+ <!-- FAQ element (question + answer) -->
+ <!-- <ol>
+ <a name="1"></a>
+ <li value ="1">
+ <b>...?</b>
+ <p> ... </p>
+ <br/><br/>
+ </li>
+ </ol>
+ <a href="main_faq_new.html">Back to main question page</a><br/>
+ <a href="#top">Back to top</a>
+ <HR ALIGN=left SIZE="1" NOSHADE>
+ <br/>
+ -->
+ <xsl:template match="faq">
+ <ol>
+ <a name="{1+count(preceding::faq)}"/>
+ <li value="{1+count(preceding::faq)}">
+ <b> <xsl:apply-templates select="question"/> </b>
+ <xsl:choose>
+ <xsl:when test="answer/p">
+ <xsl:apply-templates select="answer" mode="copy"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <p>
+ <xsl:apply-templates select="answer" mode="copy"/>
+ </p>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br/>
+ </li>
+ </ol>
+
+ <a href="#top">Back to top</a>
+ <hr align="left" size="1" noshade="noshade"/>
+ <br/>
+ </xsl:template>
+
+
+ <!-- copy mode copies all content -->
+ <xsl:template mode="copy" match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates mode="copy" select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/filter/sveo1eo2.gif b/assets/xml/filter/sveo1eo2.gif
new file mode 100644
index 0000000..c30be3e
Binary files /dev/null and b/assets/xml/filter/sveo1eo2.gif differ
diff --git a/assets/xml/filter/sveo1eo3.gif b/assets/xml/filter/sveo1eo3.gif
new file mode 100644
index 0000000..8721406
Binary files /dev/null and b/assets/xml/filter/sveo1eo3.gif differ
diff --git a/assets/xml/filter/sveo1eo4.gif b/assets/xml/filter/sveo1eo4.gif
new file mode 100644
index 0000000..5b30ee4
Binary files /dev/null and b/assets/xml/filter/sveo1eo4.gif differ
diff --git a/assets/xml/filter/sveo1eo5.gif b/assets/xml/filter/sveo1eo5.gif
new file mode 100644
index 0000000..6e39d0d
Binary files /dev/null and b/assets/xml/filter/sveo1eo5.gif differ
diff --git a/assets/xml/filter/sveo1eo6.gif b/assets/xml/filter/sveo1eo6.gif
new file mode 100644
index 0000000..3638ec2
Binary files /dev/null and b/assets/xml/filter/sveo1eo6.gif differ
diff --git a/assets/xml/filter/sveo1eo7.gif b/assets/xml/filter/sveo1eo7.gif
new file mode 100644
index 0000000..42e121e
Binary files /dev/null and b/assets/xml/filter/sveo1eo7.gif differ
diff --git a/assets/xml/oasis/extract-manifest.xsl b/assets/xml/oasis/extract-manifest.xsl
new file mode 100644
index 0000000..602e06c
--- /dev/null
+++ b/assets/xml/oasis/extract-manifest.xsl
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:text="http://openoffice.org/2000/text"
+ xmlns:office="http://openoffice.org/2000/office"
+ xmlns:style="http://openoffice.org/2000/style">
+
+ <xsl:output method="text"/>
+
+ <!-- which paragraph styles do we wish to extract? Default: Code -->
+ <xsl:param name="style" select="'RelaxNG Manifest'"/>
+
+ <!-- default: don't output anything -->
+ <xsl:template match="text()"/>
+
+ <!-- paragraph with the proper style found? Then generate output! -->
+ <xsl:template match="text:p">
+
+ <!-- determine all parent styles of this paragraph; use key 'parents' -->
+ <xsl:variable name="parents"
+ select="@text:style-name |
+ key('parents',@text:style-name) |
+ key('parents',key('parents',@text:style-name)) |
+ key('parents',key('parents',key('parents',@text:style-name)))"/>
+
+ <!-- if proper parent style is found, generate output! -->
+ <xsl:if test="$parents = $style">
+ <xsl:apply-templates mode="output"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:key name="parents"
+ match="style:style/@style:parent-style-name"
+ use="../@style:name" />
+
+ <!-- generate output: just copy all text we find -->
+ <xsl:template mode="output">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template mode="output" match="text()">
+ <xsl:copy/>
+ </xsl:template>
+
+ <!-- white space handling: <text:s>, <text:tab> elements -->
+ <xsl:template mode="output" match="text:tab-stop">
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="output" match="text:s">
+ <xsl:call-template name="repeat">
+ <xsl:with-param name="count" select="@text:c"/>
+ <xsl:with-param name="string" select="' '"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="repeat">
+ <xsl:param name="count"/>
+ <xsl:param name="string"/>
+ <xsl:if test="$count > 0">
+ <xsl:value-of select="$string"/>
+ <xsl:call-template name="repeat">
+ <xsl:with-param name="count" select="$count -1"/>
+ <xsl:with-param name="string" select="$string"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/oasis/extract-strict.xsl b/assets/xml/oasis/extract-strict.xsl
new file mode 100644
index 0000000..3e582c4
--- /dev/null
+++ b/assets/xml/oasis/extract-strict.xsl
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:text="http://openoffice.org/2000/text"
+ xmlns:office="http://openoffice.org/2000/office"
+ xmlns:style="http://openoffice.org/2000/style">
+
+ <xsl:output method="text"/>
+
+ <!-- which paragraph styles do we wish to extract? Default: Code -->
+ <xsl:param name="style" select="'RelaxNG Strict'"/>
+
+ <!-- default: don't output anything -->
+ <xsl:template match="text()"/>
+
+ <!-- paragraph with the proper style found? Then generate output! -->
+ <xsl:template match="text:p">
+
+ <!-- determine all parent styles of this paragraph; use key 'parents' -->
+ <xsl:variable name="parents"
+ select="@text:style-name |
+ key('parents',@text:style-name) |
+ key('parents',key('parents',@text:style-name)) |
+ key('parents',key('parents',key('parents',@text:style-name)))"/>
+
+ <!-- if proper parent style is found, generate output! -->
+ <xsl:if test="$parents = $style">
+ <xsl:apply-templates mode="output"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:key name="parents"
+ match="style:style/@style:parent-style-name"
+ use="../@style:name" />
+
+ <!-- generate output: just copy all text we find -->
+ <xsl:template mode="output">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template mode="output" match="text()">
+ <xsl:copy/>
+ </xsl:template>
+
+ <!-- white space handling: <text:s>, <text:tab> elements -->
+ <xsl:template mode="output" match="text:tab-stop">
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="output" match="text:s">
+ <xsl:call-template name="repeat">
+ <xsl:with-param name="count" select="@text:c"/>
+ <xsl:with-param name="string" select="' '"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="repeat">
+ <xsl:param name="count"/>
+ <xsl:param name="string"/>
+ <xsl:if test="$count > 0">
+ <xsl:value-of select="$string"/>
+ <xsl:call-template name="repeat">
+ <xsl:with-param name="count" select="$count -1"/>
+ <xsl:with-param name="string" select="$string"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/oasis/extract.xsl b/assets/xml/oasis/extract.xsl
new file mode 100644
index 0000000..7202b85
--- /dev/null
+++ b/assets/xml/oasis/extract.xsl
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:text="http://openoffice.org/2000/text"
+ xmlns:office="http://openoffice.org/2000/office"
+ xmlns:style="http://openoffice.org/2000/style">
+
+ <xsl:output method="text"/>
+
+ <!-- which paragraph styles do we wish to extract? -->
+ <xsl:param name="style" select="'RelaxNG'"/>
+ <xsl:param name="style2" select="'Changed Relax NG'"/>
+
+ <!-- default: don't output anything -->
+ <xsl:template match="text()"/>
+
+ <!-- paragraph with the proper style found? Then generate output! -->
+ <xsl:template match="text:p">
+
+ <!-- determine all parent styles of this paragraph; use key 'parents' -->
+ <xsl:variable name="parents"
+ select="@text:style-name |
+ key('parents',@text:style-name) |
+ key('parents',key('parents',@text:style-name)) |
+ key('parents',key('parents',key('parents',@text:style-name)))"/>
+
+ <!-- if proper parent style is found, generate output! -->
+ <xsl:if test="$parents = $style or $parents = $style2">
+ <xsl:apply-templates mode="output"/>
+ <xsl:text>
+</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:key name="parents"
+ match="style:style/@style:parent-style-name"
+ use="../@style:name" />
+
+ <!-- generate output: just copy all text we find -->
+ <xsl:template mode="output">
+ <xsl:copy>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+
+ <xsl:template mode="output" match="text()">
+ <xsl:copy/>
+ </xsl:template>
+
+ <!-- white space handling: <text:s>, <text:tab> elements -->
+ <xsl:template mode="output" match="text:tab-stop">
+ <xsl:text> </xsl:text>
+ </xsl:template>
+
+ <xsl:template mode="output" match="text:s">
+ <xsl:call-template name="repeat">
+ <xsl:with-param name="count" select="@text:c"/>
+ <xsl:with-param name="string" select="' '"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="repeat">
+ <xsl:param name="count"/>
+ <xsl:param name="string"/>
+ <xsl:if test="$count > 0">
+ <xsl:value-of select="$string"/>
+ <xsl:call-template name="repeat">
+ <xsl:with-param name="count" select="$count -1"/>
+ <xsl:with-param name="string" select="$string"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/oasis/oasis2ooo.xsl b/assets/xml/oasis/oasis2ooo.xsl
new file mode 100644
index 0000000..9a154a4
--- /dev/null
+++ b/assets/xml/oasis/oasis2ooo.xsl
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:text="http://openoffice.org/2000/text"
+ xmlns:office="http://openoffice.org/2000/office"
+ xmlns:style="http://openoffice.org/2000/style" >
+
+
+ <xsl:output method="xml"/>
+
+ <!-- default: copy everything. -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+
+ <!-- #1: remove 'genre' elements -->
+ <xsl:template match="office:text|office:global-text|office:drawing|
+ office:presentation|office:spreadsheet|office:chart">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/oasis/office-spec.sxw b/assets/xml/oasis/office-spec.sxw
new file mode 100644
index 0000000..32a89a2
Binary files /dev/null and b/assets/xml/oasis/office-spec.sxw differ
diff --git a/assets/xml/oasis/ooo2oasis.xsl b/assets/xml/oasis/ooo2oasis.xsl
new file mode 100644
index 0000000..8cfe7ab
--- /dev/null
+++ b/assets/xml/oasis/ooo2oasis.xsl
@@ -0,0 +1,547 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:o-office="http://openoffice.org/2000/office"
+ xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0"
+ xmlns:o-meta="http://openoffice.org/2000/meta"
+ xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0"
+ xmlns:o-style="http://openoffice.org/2000/style"
+ xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0"
+ xmlns:o-script="http://openoffice.org/2000/script"
+ xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0"
+ xmlns:o-form="http://openoffice.org/2000/form"
+ xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0"
+ xmlns:o-number="http://openoffice.org/2000/datastyle"
+ xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0"
+ xmlns:o-config="http://openoffice.org/2001/config"
+ xmlns:config="urn:oasis:names:tc:openoffice:xmlns:config:1.0"
+ xmlns:o-text="http://openoffice.org/2000/text"
+ xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0"
+ xmlns:o-table="http://openoffice.org/2000/table"
+ xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0"
+ xmlns:o-draw="http://openoffice.org/2000/drawing"
+ xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0"
+ xmlns:o-presentation="http://openoffice.org/2000/presentation"
+ xmlns:presentation="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0"
+ xmlns:o-dr3d="http://openoffice.org/2000/dr3d"
+ xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0"
+ xmlns:o-chart="http://openoffice.org/2000/charting"
+ xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:charting:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ exclude-result-prefixes="o-office o-meta o-style o-config o-table o-text"
+>
+
+
+ <xsl:output method="xml"/>
+
+ <!-- default: copy everything. -->
+ <xsl:template match="o-office:*">
+ <xsl:element name="office:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-office:*">
+ <xsl:attribute name="office:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-meta:*">
+ <xsl:element name="meta:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-meta:*">
+ <xsl:attribute name="meta:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-style:*">
+ <xsl:element name="style:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-style:*">
+ <xsl:attribute name="style:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-script:*">
+ <xsl:element name="script:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-script:*">
+ <xsl:attribute name="script:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-form:*">
+ <xsl:element name="form:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-form:*">
+ <xsl:attribute name="form:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-number:*">
+ <xsl:element name="number:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-number:*">
+ <xsl:attribute name="number:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-config:*">
+ <xsl:element name="config:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-config:*">
+ <xsl:attribute name="config:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-text:*">
+ <xsl:element name="text:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-text:*">
+ <xsl:attribute name="text:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-table:*">
+ <xsl:element name="table:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-table:*">
+ <xsl:attribute name="table:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-draw:*">
+ <xsl:element name="draw:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-draw:*">
+ <xsl:attribute name="draw:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-presentation:*">
+ <xsl:element name="presentation:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-presentation:*">
+ <xsl:attribute name="presentation:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-dr3d:*">
+ <xsl:element name="dr3d:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-dr3d:*">
+ <xsl:attribute name="dr3d:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-chart:*">
+ <xsl:element name="chart:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-chart:*">
+ <xsl:attribute name="chart:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-draw:*">
+ <xsl:element name="draw:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-draw:*">
+ <xsl:attribute name="draw:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="dc:*">
+ <xsl:element name="dc:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+ <!-- also introduce a copy mode -->
+ <xsl:template mode="copy" match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+
+ <!-- uuh, that was easy. Now we only need to process all changes... -->
+
+
+
+ <!-- #1: add 'genre' elements instead of office:class -->
+ <xsl:template match="o-office:body">
+ <office:body>
+ <xsl:choose>
+
+ <xsl:when test="/node()[@o-office:class='text']">
+ <office:text><xsl:apply-templates/></office:text>
+ </xsl:when>
+
+ <xsl:when test="/node()[@o-office:class='text-global']">
+ <office:text text:global="true"><xsl:apply-templates/></office:text>
+ </xsl:when>
+
+ <xsl:when test="/node()[@o-office:class='drawing']">
+ <office:drawing><xsl:apply-templates/></office:drawing>
+ </xsl:when>
+
+ <xsl:when test="/node()[@o-office:class='presentation']">
+ <office:presentation><xsl:apply-templates/></office:presentation>
+ </xsl:when>
+
+ <xsl:when test="/node()[@o-office:class='spreadsheet']">
+ <office:spreadsheet>
+ <xsl:apply-templates select="@table:structure-protected"
+ mode="copy"/> <!-- cf. #3 -->
+ <xsl:apply-templates/>
+ </office:spreadsheet>
+ </xsl:when>
+
+ <xsl:when test="/node()[@o-office:class='chart']">
+ <office:chart><xsl:apply-templates/></office:chart>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:message>No known office:body/@office:class found</xsl:message>
+ </xsl:otherwise>
+
+ </xsl:choose>
+ </office:body>
+ </xsl:template>
+ <xsl:template match="@o-office:class"/>
+
+ <!-- #2: office:document-settings/office:settings optional: no transform -->
+
+ <!-- #3: move table:structure-protected attribute from body to 'genre' -->
+ <xsl:template match="o-office:body/@o-table:structure-protected"/>
+
+ <!-- #4: meta:keywords removed; multiple keywords may occur -->
+ <xsl:template match="o-meta:keywords">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <!-- #5: replace ordered + unordered lists by lists -->
+ <xsl:template match="o-text:ordered-list|o-text:unordered-list">
+ <text:list>
+ <xsl:apply-templates select="*|@*|text()"/>
+ </text:list>
+ </xsl:template>
+
+ <!-- #6: rename tab-stop to tab -->
+ <xsl:template match="o-text:tab-stop">
+ <text:tab><xsl:apply-templates select="@*"/></text:tab>
+ </xsl:template>
+
+ <!-- #7: new numbered-para element: no transform necessary -->
+
+ <!-- #8: move redline protection-key to app-specific settings -->
+ <xsl:template match="o-text:tracked-changes/@o-text:protection-key"/>
+
+ <xsl:template match="o-config:config-item-set[@config:name='configuration-settings']">
+ <config:config-item-set>
+ <xsl:apply-templates select="@*"/>
+ <xsl:apply-templates/>
+ <xsl:if test="/o-office:document/o-office:body/o-text:tracked-changes/@o-text:protection-key">
+ <config:config-item
+ config:name="ChangesProtectionKey"
+ config:type="string">
+ <xsl:value-of select="/o-office:document/o-office:body/o-text:tracked-changes/@o-text:protection-key"/>
+ </config:config-item>
+ </xsl:if>
+ </config:config-item-set>
+ </xsl:template>
+
+ <!-- #9: replace footnote/endnotes with generic note concept -->
+ <xsl:template match="o-text:footnote|o-text:endnote">
+ <text:note text:note-class="{local-name(.)}">
+ <xsl:apply-templates select="*|@*"/>
+ </text:note>
+ </xsl:template>
+ <xsl:template match="o-text:footnote-body|o-text:endnote-body">
+ <text:o-note-body>
+ <xsl:apply-templates/>
+ </text:o-note-body>
+ </xsl:template>
+ <xsl:template match="o-text:footnote-citation|o-text:endnote-citation">
+ <text:o-note-citation>
+ <xsl:apply-templates/>
+ </text:o-note-citation>
+ </xsl:template>
+ <xsl:template match="o-text:footnotes-configuration|o-text:endnotes-configuration">
+ <text:notes-configuration text:note-class="{substring-before(local-name(.),'s-')}">
+ <xsl:apply-templates select="*|@*"/>
+ </text:notes-configuration>
+ </xsl:template>
+ <xsl:template match="o-text:footnote-ref|o-text:endnote-ref">
+ <text:note-ref>
+ <xsl:apply-templates/>
+ </text:note-ref>
+ </xsl:template>
+
+ <!-- #10: replace subtable element with attribute -->
+ <xsl:template match="o-table:sub-table">
+ <table:table table:is-sub-table="true">
+ <xsl:apply-templates select="*|@*"/>
+ </table:table>
+ </xsl:template>
+
+ <!-- #11: replace text:level with text:outline-level -->
+ <xsl:template match="o-text:h/@o-text:level">
+ <xsl:attribute name="text:outline-level">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <!-- #12: replace *.value-type and *:value with office:* -->
+ <xsl:template match="@o-text:value-type|o-table:*[local-name(.) != 'null-date']/@o-table:value-type">
+ <xsl:attribute name="office:value-type">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-text:*[local-name(.) != 'database-row-number']/@o-text:value[local-name(.) != 'filter-condition']|@o-table:value">
+ <xsl:attribute name="office:value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-text:*[local-name(.) != 'page-continuation' and local-name(.) != 'hidden-text' and not(contains(local-name(.), 'mark'))]/@o-text:string-value|@o-table:string-value">
+ <xsl:attribute name="office:string-value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-text:*[not(contains(local-name(.), 'date'))]/@o-text:date-value|o-table:*[local-name(.) != 'null-date']/@o-table:date-value">
+ <xsl:attribute name="office:date-value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="o-text:*[not(contains(local-name(.), 'time'))]/@o-text:time-value|@o-table:time-value">
+ <xsl:attribute name="office:time-value">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <!-- #13: value-type="float" without value -->
+ <xsl:template match="o-table:table-cell[@o-table:value-type='float' and not(@o-table:value)]">
+ <table:table-cell office:value-type="string">
+ <xsl:apply-templates select="*|@*[local-name(.) != 'value-type']"/>
+ </table:table-cell>
+ </xsl:template>
+
+ <!-- #14: text:table-of-content-source/@text:outline-level="none" -->
+ <xsl:template match="o-text:table-of-content-source/@o-text:use-outline-level"/>
+ <xsl:template match="o-text:table-of-content-source/@o-text:outline-level">
+ <xsl:choose>
+ <xsl:when test="../@o-text:use-outline-level[.='false']">
+ <xsl:attribute name="text:outline-level">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- #15: <text:h text:restart-numbering=".." text:start-value=".." -->
+ <!-- no transform necessary -->
+
+ <!-- #16: office:change-info uses office:meta -->
+ <!-- TODO: determine if format of date values must be changed -->
+ <xsl:template match="o-office:change-info">
+ <office:change-info>
+ <office:meta>
+ <dc:creator><xsl:value-of select="@o-office:chg-author"/></dc:creator>
+ <dc:date><xsl:value-of select="@o-office:chg-date-time"/></dc:date>
+ </office:meta>
+ </office:change-info>
+ </xsl:template>
+
+ <!-- #17: replace text:merge-last-paragraph with new encoding -->
+ <!-- TODO: here, only the flag is deleted -->
+ <xsl:template match="o-text:merge-last-paragraph"/>
+
+ <!-- #18: replace index-entry-chapter-number -->
+ <xsl:template match="o-text:index-entry-chapter-number">
+ <text:index-entry-chapter text:display="number">
+ <xsl:apply-templates select="node()|@*"/>
+ </text:index-entry-chapter>
+ </xsl:template>
+
+ <!-- #19: properties -->
+ <xsl:template match="o-style:style[@o-style:family='text']/o-style:properties|o-style:default-style[@o-style:family='text']/o-style:properties">
+ <style:text-properties>
+ <xsl:apply-templates select="node()|@*" mode="text-props"/>
+ </style:text-properties>
+ </xsl:template>
+
+ <xsl:template match="o-style:style[@o-style:family='paragraph']/o-style:properties|o-style:default-style[@o-style:family='paragraph']/o-style:properties">
+ <style:paragraph-properties>
+ <xsl:apply-templates select="node()|@*" mode="para-props"/>
+ </style:paragraph-properties>
+ <style:text-properties>
+ <xsl:apply-templates select="node()|@*" mode="text-props"/>
+ </style:text-properties>
+ </xsl:template>
+
+ <xsl:template match="o-style:style[@o-style:family='graphics']/o-style:properties|o-style:default-style[@o-style:family='graphics']/o-style:properties">
+ <style:graphic-properties>
+ <xsl:apply-templates select="node()|@*" mode="graphic-props"/>
+ </style:graphic-properties>
+ <style:paragraph-properties>
+ <xsl:apply-templates select="node()|@*" mode="para-props"/>
+ </style:paragraph-properties>
+ <style:text-properties>
+ <xsl:apply-templates select="node()|@*" mode="text-props"/>
+ </style:text-properties>
+ </xsl:template>
+
+ <!-- text properties -->
+ <xsl:template match="o-text:*" mode="text-props">
+ <xsl:element name="text:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-text:*" mode="text-props">
+ <xsl:attribute name="text:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="o-style:*" mode="text-props">
+ <xsl:element name="style:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-style:*" mode="text-props">
+ <xsl:attribute name="style:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="@fo:*" mode="text-props">
+ <xsl:copy/>
+ </xsl:template>
+ <xsl:template match="text()" mode="text-props">
+ <copy/>
+ </xsl:template>
+ <xsl:template match="node()|@*" mode="text-props"/>
+
+ <!-- paragraph properties -->
+ <xsl:template match="o-text:*" mode="para-props">
+ <xsl:element name="text:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-text:*" mode="para-props">
+ <xsl:attribute name="text:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="o-style:*" mode="para-props">
+ <xsl:element name="style:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-style:*" mode="para-props">
+ <xsl:attribute name="style:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="@fo:*" mode="para-props">
+ <xsl:copy/>
+ </xsl:template>
+ <xsl:template match="node()|@*" mode="para-props"/>
+
+ <!-- graphic properties -->
+ <xsl:template match="@o-text:*" mode="graphic-props">
+ <xsl:if test="starts-with(local-name(.), 'animation')">
+ <xsl:attribute name="text:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="o-draw:*" mode="graphic-props">
+ <xsl:element name="draw:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-draw:*" mode="graphic-props">
+ <xsl:attribute name="draw:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="o-dr3d:*" mode="graphic-props">
+ <xsl:element name="dr3d:{local-name(.)}">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="@o-dr3d:*" mode="graphic-props">
+ <xsl:attribute name="dr3d:{local-name(.)}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="@svg:*" mode="graphic-props">
+ <xsl:copy/>
+ </xsl:template>
+ <xsl:template match="node()|@*" mode="graphic-props"/>
+
+ <!-- #20: page-master becomes page layout -->
+ <xsl:template match="o-style:page-master">
+ <style:page-layout>
+ <xsl:apply-templates select="*|@*"/>
+ </style:page-layout>
+ </xsl:template>
+ <xsl:template match="@o-style:page-master-name">
+ <xsl:attribute name="style:page-layout-name">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/oasis/opendocument-package.odt b/assets/xml/oasis/opendocument-package.odt
new file mode 100644
index 0000000..ad790ec
Binary files /dev/null and b/assets/xml/oasis/opendocument-package.odt differ
diff --git a/assets/xml/oasis/opendocument-spec.odt b/assets/xml/oasis/opendocument-spec.odt
new file mode 100644
index 0000000..9762e36
Binary files /dev/null and b/assets/xml/oasis/opendocument-spec.odt differ
diff --git a/assets/xml/oasis/process_xsd.xsl b/assets/xml/oasis/process_xsd.xsl
new file mode 100644
index 0000000..3d6f28c
--- /dev/null
+++ b/assets/xml/oasis/process_xsd.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+>
+
+ <xsl:output method="xml"/>
+
+ <!-- default: copy everything. -->
+ <xsl:template match="length">
+ <xsl:element name="xs:length">
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/oasis/simplify_rng.xsl b/assets/xml/oasis/simplify_rng.xsl
new file mode 100644
index 0000000..e93be70
--- /dev/null
+++ b/assets/xml/oasis/simplify_rng.xsl
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet
+ version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:rng="http://relaxng.org/ns/structure/1.0"
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ exclude-result-prefixes="#default rng"
+>
+
+ <xsl:output method="xml"/>
+
+ <!-- unify type of "table:protection-key" attribute -->
+ <xsl:template match="rng:attribute[@name='table:protection-key']/rng:text">
+ <ref name="string"/>
+ </xsl:template>
+
+ <!-- simplify "form-property-type-and-value-list" -->
+ <xsl:template match="rng:define[@name='form-property-type-and-value-list']">
+ <define name="form-property-type-and-value-list">
+ <attribute name="office:value-type">
+ <choice>
+ <value>float</value>
+ <value>percentage</value>
+ <value>currency</value>
+ <value>date</value>
+ <value>time</value>
+ <value>boolean</value>
+ <value>string</value>
+ <value>void</value>
+ </choice>
+ </attribute>
+ <zeroOrMore>
+ <element name="form:list-value">
+ <optional>
+ <attribute name="office:value">
+ <ref name="double"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="office:currency">
+ <ref name="string"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="office:date-value">
+ <ref name="dateOrDateTime"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="office:time-value">
+ <ref name="duration"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="office:boolean-value">
+ <ref name="boolean"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="office:string-value">
+ <ref name="string"/>
+ </attribute>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </define>
+ </xsl:template>
+
+ <!-- simplify "style-style-content" -->
+ <xsl:template match="rng:define[@name='style-style-content']">
+ <xsl:if test=".//rng:value='text'">
+ <define name="style-style-content" combine="choice">
+ <attribute name="style:family">
+ <choice>
+ <value>text</value>
+ <value>paragraph</value>
+ <value>section</value>
+ <value>ruby</value>
+ <value>table</value>
+ <value>table-column</value>
+ <value>table-row</value>
+ <value>table-cell</value>
+ <value>graphic</value>
+ <value>presentation</value>
+ <value>drawing-page</value>
+ <value>chart</value>
+ </choice>
+ </attribute>
+ <optional>
+ <ref name="style-table-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-table-column-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-table-row-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-table-cell-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-chart-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-graphic-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-section-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-paragraph-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-text-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-ruby-properties"/>
+ </optional>
+ <optional>
+ <ref name="style-drawing-page-properties"/>
+ </optional>
+ </define>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- simplify "table-rows-and-groups" -->
+ <xsl:template match="rng:define[@name='table-rows-and-groups']">
+ <define name="table-rows-and-groups">
+ <oneOrMore>
+ <choice>
+ <ref name="table-table-row-group"/>
+ <ref name="table-table-header-rows"/>
+ <ref name="table-table-rows"/>
+ <ref name="table-table-row"/>
+ </choice>
+ </oneOrMore>
+ </define>
+ </xsl:template>
+
+ <xsl:template match="rng:define[@name='table-rows-no-group']"/>
+ <xsl:template match="rng:define[@name='table-rows']"/>
+
+ <!-- simplify "table-columns-and-groups" -->
+ <xsl:template match="rng:define[@name='table-columns-and-groups']">
+ <define name="table-columns-and-groups">
+ <oneOrMore>
+ <choice>
+ <ref name="table-table-column-group"/>
+ <ref name="table-table-header-columns"/>
+ <ref name="table-table-columns"/>
+ <ref name="table-table-column"/>
+ </choice>
+ </oneOrMore>
+ </define>
+ </xsl:template>
+
+ <xsl:template match="rng:define[@name='table-columns-no-group']"/>
+ <xsl:template match="rng:define[@name='table-columns']"/>
+
+ <!-- default: copy everything. -->
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/odf2xhtml/index.fodt b/assets/xml/odf2xhtml/index.fodt
new file mode 100644
index 0000000..3464356
--- /dev/null
+++ b/assets/xml/odf2xhtml/index.fodt
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?><office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="ht [...]
+ <ooo:libraries>
+ <ooo:library-embedded ooo:name="Standard"/>
+ </ooo:libraries></office:script></office:scripts><office:font-face-decls><style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/><style:font-face style:name="Tahoma1" svg:font-family="Tahoma"/><style:font-face style:name="Andale Sans UI" svg:font-family="'Andale Sans UI'" style:font-pitch="variable"/><style:font-face style:name="Arial Unicode MS" svg:font-family="'Arial Unicode MS'" style:font-pitch="variable"/><style:font-face style:name=" [...]
\ No newline at end of file
diff --git a/assets/xml/odf2xhtml/rdf-extract.xsl b/assets/xml/odf2xhtml/rdf-extract.xsl
new file mode 100644
index 0000000..e4ae1c3
--- /dev/null
+++ b/assets/xml/odf2xhtml/rdf-extract.xsl
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2008 by Sun Microsystems, Inc.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ $RCSfile: rdf-extract.xsl,v $
+
+ $Revision: 1.1 $
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet
+ xmlns:xsl ="http://www.w3.org/1999/XSL/Transform"
+ xmlns:h ="http://www.w3.org/1999/xhtml"
+ xmlns ="http://www.w3.org/1999/xhtml"
+ xmlns:data-view="http://www.w3.org/2003/g/data-view"
+ xmlns:dc ="http://purl.org/dc/elements/1.1/"
+ xmlns:dcterms ="http://purl.org/dc/terms/"
+ xmlns:dctype ="http://purl.org/dc/dcmitype/"
+ xmlns:dcam ="http://purl.org/dc/dcam/"
+ xmlns:xlink ="http://www.w3.org/1999/xlink"
+ xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs ="http://www.w3.org/2000/01/rdf-schema#"
+ exclude-result-prefixes="#default h xlink rdfs data-view dc dcterms dctype dcam"
+ version="1.0">
+
+ <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+ <xsl:variable name="uc">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
+
+ <xsl:variable name="lc">abcdefghijklmnopqrstuvwxyz</xsl:variable>
+
+ <xsl:param name="xmlfile">./.</xsl:param>
+
+ <xsl:variable name="baseURI">
+ <xsl:choose>
+ <xsl:when test="//h:meta[./@name='DCTERMS.identifier'][./@scheme='DCTERMS.URI']/@content">
+ <xsl:value-of select="//h:meta[./@name='DCTERMS.identifier'][./@scheme='DCTERMS.URI']/@content"/>
+ </xsl:when>
+ <xsl:when test="//h:html/@xml:base">
+ <xsl:value-of select="//h:html/@xml:base"/>
+ </xsl:when>
+ <xsl:when test="//h:base/@href">
+ <xsl:value-of select="//h:base/@href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$xmlfile"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+
+ <xsl:variable name="ele" select="document('./dcelements.rdf')" />
+
+ <xsl:variable name="eleterm" select="document('./dcterms.rdf')" />
+
+ <xsl:variable name="eletype" select="document('./dctype.rdf')" />
+
+ <xsl:variable name="model" select="document('./dcam.rdf')" />
+
+
+ <xsl:template match="/">
+ <rdf:RDF>
+ <xsl:comment>DCMI Abstract Model</xsl:comment>
+ <xsl:comment>Instance Document</xsl:comment>
+
+
+ <rdf:Description>
+ <xsl:attribute name="rdf:about">
+ <xsl:value-of select="$baseURI" />
+ </xsl:attribute>
+
+ <xsl:apply-templates select="//h:html/h:head/h:meta" />
+
+ <xsl:apply-templates select="//h:html/h:head/h:link" />
+
+
+ </rdf:Description>
+ </rdf:RDF>
+ </xsl:template>
+
+
+ <xsl:template match="h:meta">
+
+ <xsl:call-template name="item">
+ <xsl:with-param name="n" select="@name" />
+ <xsl:with-param name="val" select="@content" />
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template match="h:link">
+
+
+ <xsl:call-template name="item">
+ <xsl:with-param name="n" select="@rel" />
+ <xsl:with-param name="ref" select="@href" />
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="item">
+ <xsl:param name="n" />
+ <xsl:param name="val" />
+ <xsl:param name="ref" />
+
+ <xsl:variable name="ns">
+ <xsl:call-template name="get-ns">
+ <xsl:with-param name="n" select="$n" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="string-length($ns) > 0">
+ <xsl:variable name="ln">
+ <xsl:call-template name="get-ln">
+ <xsl:with-param name="n" select="$n" />
+ <xsl:with-param name="ns" select="$ns" />
+ </xsl:call-template>
+ </xsl:variable>
+
+
+ <xsl:element name="{$ln}" namespace="{$ns}">
+ <xsl:choose>
+ <xsl:when test="$ref">
+ <rdf:Description rdf:about="{$ref}">
+ <xsl:if test="@hreflang">
+ <dc:language>
+ <xsl:value-of select="@hreflang" />
+ </dc:language>
+ </xsl:if>
+ </rdf:Description>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="@xml:lang">
+ <xsl:attribute name="xml:lang">
+ <xsl:value-of select="@xml:lang" />
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="@scheme">
+ <rdf:Description>
+ <rdf:value>
+ <xsl:if test="@scheme">
+ <xsl:variable name="dt">
+ <xsl:call-template name="get-dt">
+ <xsl:with-param name="n" select="@scheme" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="string-length($dt) > 0">
+ <xsl:attribute name="rdf:datatype">
+ <xsl:value-of select="$dt" />
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:value-of select="$val" />
+ </rdf:value>
+ </rdf:Description>
+ </xsl:if>
+
+ <xsl:if test="not(@scheme)">
+ <xsl:value-of select="$val" />
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="get-ns">
+ <xsl:param name="n" />
+
+ <xsl:variable name="pfx" select='substring-before(translate($n, $uc, $lc), ".")' />
+ <xsl:variable name="binding" select='../h:link[translate(@rel, $uc, $lc) = concat("schema.", $pfx)]' />
+
+ <xsl:if test="$binding">
+ <!-- @@TODO: absolutize @href -->
+ <xsl:variable name="ns1" select="$binding/@href" />
+
+ <xsl:variable name="ln1" select="substring( translate($n, $uc, $lc), string-length($pfx) + 1, string-length($n))" />
+
+ <xsl:variable name="ns">
+ <xsl:choose>
+ <xsl:when test='contains(substring-after($ln1, "."), ".")'>
+ <xsl:value-of select='"http://purl.org/dc/terms/"'/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ns1" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$ns" />
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="get-ln">
+ <xsl:param name="n" />
+ <xsl:param name="ns" />
+
+ <xsl:variable name="ln1" select='substring-after($n, ".") ' />
+
+ <xsl:variable name="ln">
+ <xsl:choose>
+ <xsl:when test='contains($ln1, ".") and $ns = "http://purl.org/dc/terms/"'>
+ <xsl:value-of select='substring-after($ln1, ".") '/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ln1" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$ln" />
+ </xsl:template>
+
+ <xsl:template name="get-dt">
+ <xsl:param name="n" />
+
+ <xsl:variable name="ns">
+ <xsl:call-template name="get-ns">
+ <xsl:with-param name="n" select="$n" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="ln" select='substring-after($n, ".")' />
+
+ <xsl:value-of select="concat($ns, $ln)" />
+ </xsl:template>
+
+
+ <!-- don't pass text thru -->
+ <xsl:template match="text()|@*"></xsl:template>
+</xsl:stylesheet>
diff --git a/assets/xml/opendocument-cropped_0.jpg b/assets/xml/opendocument-cropped_0.jpg
new file mode 100644
index 0000000..d312cde
Binary files /dev/null and b/assets/xml/opendocument-cropped_0.jpg differ
diff --git a/assets/xml/optimization/current_optimization_status.sxc b/assets/xml/optimization/current_optimization_status.sxc
new file mode 100644
index 0000000..f0a6d87
Binary files /dev/null and b/assets/xml/optimization/current_optimization_status.sxc differ
diff --git a/assets/xml/optimization/downloads/libxmlwrap.zip b/assets/xml/optimization/downloads/libxmlwrap.zip
new file mode 100644
index 0000000..12f9cec
Binary files /dev/null and b/assets/xml/optimization/downloads/libxmlwrap.zip differ
diff --git a/assets/xml/optimization/protocoll_export_simple_editcells.sxc b/assets/xml/optimization/protocoll_export_simple_editcells.sxc
new file mode 100644
index 0000000..39fdc59
Binary files /dev/null and b/assets/xml/optimization/protocoll_export_simple_editcells.sxc differ
diff --git a/assets/xml/optimization/protocoll_export_simple_formulacells.sxc b/assets/xml/optimization/protocoll_export_simple_formulacells.sxc
new file mode 100644
index 0000000..15322d5
Binary files /dev/null and b/assets/xml/optimization/protocoll_export_simple_formulacells.sxc differ
diff --git a/assets/xml/optimization/protocoll_export_simple_numbercells.sxc b/assets/xml/optimization/protocoll_export_simple_numbercells.sxc
new file mode 100644
index 0000000..1509043
Binary files /dev/null and b/assets/xml/optimization/protocoll_export_simple_numbercells.sxc differ
diff --git a/assets/xml/optimization/protocoll_export_simple_textcells.sxc b/assets/xml/optimization/protocoll_export_simple_textcells.sxc
new file mode 100644
index 0000000..f71b64e
Binary files /dev/null and b/assets/xml/optimization/protocoll_export_simple_textcells.sxc differ
diff --git a/assets/xml/optimization/protocoll_import_simple_editcells.sxc b/assets/xml/optimization/protocoll_import_simple_editcells.sxc
new file mode 100644
index 0000000..b91ebde
Binary files /dev/null and b/assets/xml/optimization/protocoll_import_simple_editcells.sxc differ
diff --git a/assets/xml/optimization/protocoll_import_simple_formulacells.sxc b/assets/xml/optimization/protocoll_import_simple_formulacells.sxc
new file mode 100644
index 0000000..32d4c6c
Binary files /dev/null and b/assets/xml/optimization/protocoll_import_simple_formulacells.sxc differ
diff --git a/assets/xml/optimization/protocoll_import_simple_numbercells.sxc b/assets/xml/optimization/protocoll_import_simple_numbercells.sxc
new file mode 100644
index 0000000..4b9ed4e
Binary files /dev/null and b/assets/xml/optimization/protocoll_import_simple_numbercells.sxc differ
diff --git a/assets/xml/optimization/protocoll_import_simple_textcells.sxc b/assets/xml/optimization/protocoll_import_simple_textcells.sxc
new file mode 100644
index 0000000..56a1952
Binary files /dev/null and b/assets/xml/optimization/protocoll_import_simple_textcells.sxc differ
diff --git a/assets/xml/optimization/simple_editcells.sxc b/assets/xml/optimization/simple_editcells.sxc
new file mode 100644
index 0000000..bc8185e
Binary files /dev/null and b/assets/xml/optimization/simple_editcells.sxc differ
diff --git a/assets/xml/optimization/simple_formulacells.sxc b/assets/xml/optimization/simple_formulacells.sxc
new file mode 100644
index 0000000..8c155cc
Binary files /dev/null and b/assets/xml/optimization/simple_formulacells.sxc differ
diff --git a/assets/xml/optimization/simple_numbercells.sxc b/assets/xml/optimization/simple_numbercells.sxc
new file mode 100644
index 0000000..96ccf63
Binary files /dev/null and b/assets/xml/optimization/simple_numbercells.sxc differ
diff --git a/assets/xml/optimization/simple_textcells.sxc b/assets/xml/optimization/simple_textcells.sxc
new file mode 100644
index 0000000..b9a4bdd
Binary files /dev/null and b/assets/xml/optimization/simple_textcells.sxc differ
diff --git a/assets/xml/prj/build.lst b/assets/xml/prj/build.lst
new file mode 100644
index 0000000..f38a1ee
--- /dev/null
+++ b/assets/xml/prj/build.lst
@@ -0,0 +1,3 @@
+xw xmlwww : soltools solenv NULL
+xw xmlwww usr1 - all xw_root NULL
+xw xmlwww\prj get - all xw_prj NULL
diff --git a/assets/xml/prj/d.lst b/assets/xml/prj/d.lst
new file mode 100644
index 0000000..792d9ce
--- /dev/null
+++ b/assets/xml/prj/d.lst
@@ -0,0 +1 @@
+..\xml_specification_draft.pdf %_DEST%\inc%_EXT%\xml_specification_draft.pdf
diff --git a/assets/xml/robots.txt b/assets/xml/robots.txt
new file mode 100644
index 0000000..7e0b2af
--- /dev/null
+++ b/assets/xml/robots.txt
@@ -0,0 +1,7 @@
+User-Agent: *
+Disallow: /source/
+Disallow: /issues/
+Disallow: /search/
+Disallow: /servlets/
+Disallow: /project/
+Disallow: /nonav/
diff --git a/assets/xml/saxecho/xmlflat.jpg b/assets/xml/saxecho/xmlflat.jpg
new file mode 100644
index 0000000..94333b6
Binary files /dev/null and b/assets/xml/saxecho/xmlflat.jpg differ
diff --git a/assets/xml/saxecho/xmltree.jpg b/assets/xml/saxecho/xmltree.jpg
new file mode 100644
index 0000000..41b30c8
Binary files /dev/null and b/assets/xml/saxecho/xmltree.jpg differ
diff --git a/assets/xml/sx2ml/index.fodt b/assets/xml/sx2ml/index.fodt
new file mode 100644
index 0000000..b5b26b1
--- /dev/null
+++ b/assets/xml/sx2ml/index.fodt
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?><office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="ht [...]
+ <ooo:libraries>
+ <ooo:library-embedded ooo:name="Standard"/>
+ </ooo:libraries></office:script></office:scripts><office:font-face-decls><style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/><style:font-face style:name="Tahoma1" svg:font-family="Tahoma"/><style:font-face style:name="Andale Sans UI" svg:font-family="'Andale Sans UI'" style:font-pitch="variable"/><style:font-face style:name="Arial Unicode MS" svg:font-family="'Arial Unicode MS'" style:font-pitch="variable"/><style:font-face style:name=" [...]
\ No newline at end of file
diff --git a/assets/xml/sx2ml/master_document_support.zip b/assets/xml/sx2ml/master_document_support.zip
new file mode 100644
index 0000000..0f27919
Binary files /dev/null and b/assets/xml/sx2ml/master_document_support.zip differ
diff --git a/assets/xml/xmerge/docbook/images/DocumentTitle.jpg b/assets/xml/xmerge/docbook/images/DocumentTitle.jpg
new file mode 100755
index 0000000..c61490d
Binary files /dev/null and b/assets/xml/xmerge/docbook/images/DocumentTitle.jpg differ
diff --git a/assets/xml/xmerge/docbook/images/Navigator.gif b/assets/xml/xmerge/docbook/images/Navigator.gif
new file mode 100755
index 0000000..041ef57
Binary files /dev/null and b/assets/xml/xmerge/docbook/images/Navigator.gif differ
diff --git a/assets/xml/xmerge/docbook/images/ParagraphStyles.png b/assets/xml/xmerge/docbook/images/ParagraphStyles.png
new file mode 100755
index 0000000..5ab5fb6
Binary files /dev/null and b/assets/xml/xmerge/docbook/images/ParagraphStyles.png differ
diff --git a/assets/xml/xmerge/docbook/images/SaveAs.jpg b/assets/xml/xmerge/docbook/images/SaveAs.jpg
new file mode 100755
index 0000000..a85ab72
Binary files /dev/null and b/assets/xml/xmerge/docbook/images/SaveAs.jpg differ
diff --git a/assets/xml/xmerge/docbook/images/Table.jpg b/assets/xml/xmerge/docbook/images/Table.jpg
new file mode 100755
index 0000000..a5ab2c2
Binary files /dev/null and b/assets/xml/xmerge/docbook/images/Table.jpg differ
diff --git a/assets/xml/xmerge/docs/XMerge_sdk.pdf b/assets/xml/xmerge/docs/XMerge_sdk.pdf
new file mode 100644
index 0000000..7eba057
Binary files /dev/null and b/assets/xml/xmerge/docs/XMerge_sdk.pdf differ
diff --git a/assets/xml/xmerge/docs/XMerge_sdk.sxw b/assets/xml/xmerge/docs/XMerge_sdk.sxw
new file mode 100644
index 0000000..80157c8
Binary files /dev/null and b/assets/xml/xmerge/docs/XMerge_sdk.sxw differ
diff --git a/assets/xml/xmerge/docs/XSLTPlugin.pdf b/assets/xml/xmerge/docs/XSLTPlugin.pdf
new file mode 100644
index 0000000..30b8fe0
Binary files /dev/null and b/assets/xml/xmerge/docs/XSLTPlugin.pdf differ
diff --git a/assets/xml/xmerge/docs/XSLTPlugin.sxw b/assets/xml/xmerge/docs/XSLTPlugin.sxw
new file mode 100644
index 0000000..dabe0c2
Binary files /dev/null and b/assets/xml/xmerge/docs/XSLTPlugin.sxw differ
diff --git a/assets/xml/xmerge/docs/xmerge_javadoc.zip b/assets/xml/xmerge/docs/xmerge_javadoc.zip
new file mode 100644
index 0000000..4d2095d
Binary files /dev/null and b/assets/xml/xmerge/docs/xmerge_javadoc.zip differ
diff --git a/assets/xml/xmerge/downloads/DocBookFilter.zip b/assets/xml/xmerge/downloads/DocBookFilter.zip
new file mode 100644
index 0000000..98be6f6
Binary files /dev/null and b/assets/xml/xmerge/downloads/DocBookFilter.zip differ
diff --git a/assets/xml/xmerge/downloads/DocBookTemplate.stw b/assets/xml/xmerge/downloads/DocBookTemplate.stw
new file mode 100755
index 0000000..b6e0e19
Binary files /dev/null and b/assets/xml/xmerge/downloads/DocBookTemplate.stw differ
diff --git a/assets/xml/xmerge/downloads/InstallerSrc.zip b/assets/xml/xmerge/downloads/InstallerSrc.zip
new file mode 100755
index 0000000..29342d6
Binary files /dev/null and b/assets/xml/xmerge/downloads/InstallerSrc.zip differ
diff --git a/assets/xml/xmerge/downloads/XMergeInstall.jar b/assets/xml/xmerge/downloads/XMergeInstall.jar
new file mode 100755
index 0000000..10c4adb
Binary files /dev/null and b/assets/xml/xmerge/downloads/XMergeInstall.jar differ
diff --git a/assets/xml/xmerge/downloads/docbook.jar b/assets/xml/xmerge/downloads/docbook.jar
new file mode 100644
index 0000000..48a375d
Binary files /dev/null and b/assets/xml/xmerge/downloads/docbook.jar differ
diff --git a/assets/xml/xmerge/downloads/docbook_template.sxw b/assets/xml/xmerge/downloads/docbook_template.sxw
new file mode 100755
index 0000000..7fd56db
Binary files /dev/null and b/assets/xml/xmerge/downloads/docbook_template.sxw differ
diff --git a/assets/xml/xmerge/downloads/docbook_template.xml b/assets/xml/xmerge/downloads/docbook_template.xml
new file mode 100755
index 0000000..fbd69cf
--- /dev/null
+++ b/assets/xml/xmerge/downloads/docbook_template.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?> <!--<!DOCTYPE article PUBLIC '-//OASIS//DTD DocBook XML V4.1.2//EN' 'http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd'>--> <!-- <!DOCTYPE article SYSTEM "file:///i:/DocBook/DocBookDTD/docbookx.dtd"> --> <article id="index" lang="en"> <articleinfo> <title>Article Info title</title> <copyright> <year>Copyright Year 1: 2003</year> <holder>Copyright holder 1: holder 1</holder> </copyright> <copyright> <year>Copyright Year 2 [...]
\ No newline at end of file
diff --git a/assets/xml/xmerge/downloads/docbooktosoff.xsl b/assets/xml/xmerge/downloads/docbooktosoff.xsl
new file mode 100644
index 0000000..2e46b59
--- /dev/null
+++ b/assets/xml/xmerge/downloads/docbooktosoff.xsl
@@ -0,0 +1,1404 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ # The Contents of this file are made available subject to the terms of
+ # either of the following licenses
+ #
+ # - GNU Lesser General Public License Version 2.1
+ # - Sun Industry Standards Source License Version 1.1
+ #
+ # Sun Microsystems Inc., October, 2000
+ #
+ # GNU Lesser General Public License Version 2.1
+ # =============================================
+ # Copyright 2000 by Sun Microsystems, Inc.
+ # 901 San Antonio Road, Palo Alto, CA 94303, USA
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+ # License version 2.1, as published by the Free Software Foundation.
+ #
+ # This library is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ # Lesser General Public License for more details.
+ #
+ # You should have received a copy of the GNU Lesser General Public
+ # License along with this library; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ # MA 02111-1307 USA
+ #
+ #
+ # Sun Industry Standards Source License Version 1.1
+ # =================================================
+ # The contents of this file are subject to the Sun Industry Standards
+ # Source License Version 1.1 (the "License"); You may not use this file
+ # except in compliance with the License. You may obtain a copy of the
+ # License at http://www.openoffice.org/license.html.
+ #
+ # Software provided under this License is provided on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ # See the License for the specific provisions governing your rights and
+ # obligations concerning the Software.
+ #
+ # The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ #
+ # Copyright: 2000 by Sun Microsystems, Inc.
+ #
+ # All Rights Reserved.
+ #
+ # Contributor(s): _______________________________________
+ #
+ #
+ -->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
+xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.o [...]
+ <xsl:decimal-format name="staff" digit="D" />
+<xsl:template match="/">
+ <xsl:element name="office:document">
+ <office:meta>
+ <meta:generator>StarOffice 6.1 (Solaris Sparc)</meta:generator>
+ <dc:title><xsl:value-of select="/article/articleinfo/title"/></dc:title>
+ <dc:description></dc:description>
+ <dc:subject></dc:subject>
+ <meta:creation-date>2002-07-15T12:38:53</meta:creation-date>
+ <dc:date><xsl:value-of select="article/articleinfo/pubdate"/></dc:date>
+ <dc:language><xsl:value-of select="article/@lang"/></dc:language>
+ <meta:editing-cycles>21</meta:editing-cycles>
+ <meta:editing-duration>P1DT0H11M54S</meta:editing-duration>
+ <meta:user-defined meta:name="Info 1"/>
+ <meta:user-defined meta:name="Info 2"/>
+ <meta:user-defined meta:name="Info 3"/>
+ <meta:user-defined meta:name="Info 4"/>
+ <meta:document-statistic meta:table-count="1" meta:image-count="0" meta:object-count="0" meta:page-count="1" meta:paragraph-count="42" meta:word-count="144" meta:character-count="820"/>
+ </office:meta>
+ <office:styles>
+ <style:default-style style:family="graphics">
+ <style:properties draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:use-window-font-color="true" style:font-name="Thorndale" fo:font-size="12pt" fo:language="en" fo:country="US" style:font-name-asian="Andale Sans UI" style:font-size-asian="12pt" style:language-asian="none" style:country-asian="none" style:font-name-complex="Arial Unicode MS" style:font-size-c [...]
+ <style:tab-stops/>
+ </style:properties>
+ </style:default-style>
+ <style:default-style style:family="paragraph">
+ <style:properties style:use-window-font-color="true" style:font-name="Thorndale" fo:font-size="12pt" fo:language="en" fo:country="US" style:font-name-asian="Andale Sans UI" style:font-size-asian="12pt" style:language-asian="none" style:country-asian="none" style:font-name-complex="Arial Unicode MS" style:font-size-complex="12pt" style:language-complex="none" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2" fo:hyp [...]
+ </style:default-style>
+ <text:list-style style:name="Ordered List" ><text:list-level-style-number text:level="1" text:style-name="Numbering Symbols" style:num-suffix="." style:num-format="1" ><style:properties text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number></text:list-style>
+ <text:list-style style:name="UnOrdered List" ><text:list-level-style-bullet text:level="1" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="2" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="0.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol" ></style:properties>
+</text:list-level-style-bullet></text:list-style>
+
+
+<text:list-style style:name="Var List" ><text:list-level-style-bullet text:level="1" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet></text:list-style>
+
+ <style:style style:name="Standard" style:family="paragraph" style:class="text"/>
+ <style:style style:name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
+ <style:properties fo:margin-top="0cm" fo:margin-bottom="0.212cm"/>
+ </style:style>
+ <style:style style:name="Mediaobject" style:family="paragraph" style:class="text"/>
+ <style:style style:name="Highlight" style:family="text" >
+ <style:properties style:text-background-color="#fff000" />
+ </style:style>
+ <style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" style:font-name="Albany" fo:font-size="14pt" style:font-name-asian="HG Mincho Light J" style:font-size-asian="14pt" style:font-name-complex="Arial Unicode MS" style:font-size-complex="14pt" fo:keep-with-next="true"/>
+ </style:style>
+ <style:style style:name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-style-complex="italic" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Table Contents" style:family="paragraph" style:parent-style-name="Text body" style:class="extra">
+ <style:properties text:number-lines="false" text:line-number="0"/>
+ </style:style>
+ <style:style style:name="Table Heading" style:family="paragraph" style:parent-style-name="Table Contents" style:class="extra">
+ <style:properties fo:font-style="italic" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold" fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0"/>
+ </style:style>
+ <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" fo:font-size="10pt" fo:font-style="italic" style:font-size-asian="10pt" style:font-style-asian="italic" style:font-size-complex="10pt" style:font-style-complex="italic" text:number-lines="false" text:line-number="0"/>
+ </style:style>
+ <style:style style:name="Table" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
+ <style:style style:name="Object" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
+ <style:style style:name="Frame contents" style:family="paragraph" style:parent-style-name="Text body" style:class="extra"/>
+ <style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="chapter">
+ <style:properties fo:font-size="14pt" fo:font-style="italic" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-size-complex="14pt" style:font-style-complex="italic" fo:text-align="center" style:justify-single-word="false"/>
+ </style:style>
+ <style:style style:name="Section Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="14pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Appendix Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="14pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Section1 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="14pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Section2 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="13pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Section3 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="12pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Section4 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="12pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Section5 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:text-transform="capitalize" style:font-name="Albany1" fo:font-size="12pt" fo:line-height="200%" style:page-number="0"/>
+ </style:style>
+ <style:style style:name="Footnote" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:properties fo:margin-left="0.499cm" fo:margin-right="0cm" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt" fo:text-indent="-0.499cm" style:auto-text-indent="false" text:number-lines="false" text:line-number="0"/>
+ </style:style>
+ <style:style style:name="Document Title" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Document SubTitle">
+ <style:properties style:font-name="Albany1" fo:font-size="20pt" fo:text-align="center" style:justify-single-word="false"/>
+ </style:style>
+ <style:style style:name="Document SubTitle" style:family="paragraph" style:parent-style-name="Document Title" style:next-style-name="Text body">
+ <style:properties fo:font-size="14pt"/>
+ </style:style>
+ <style:style style:name="Section SubTitle" style:family="paragraph" style:parent-style-name="Section Title"/>
+ <style:style style:name="CopyRight" style:family="paragraph" style:parent-style-name="Text body"/>
+ <style:style style:name="Sect1" style:family="section" style:parent-style-name="Section Title">
+ <style:properties fo:color="#ffffff" style:font-name="Arial" fo:background-color="#ff0000" fo:font-size="18pt">
+ <style:background-image/>
+ </style:properties>
+ </style:style>
+ <style:style style:name="KeyCap" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="Command" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="Application" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="FileName" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="SuperScript" style:family="text" >
+ <style:properties style:text-position="super 58%" />
+ </style:style>
+ <style:style style:name="SubScript" style:family="text" >
+ <style:properties style:text-position="sub 58%" />
+ </style:style>
+ <style:style style:name="SystemItem" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="ComputerOutput" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="KeyCombo" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="KeySym" style:family="text" >
+ <style:properties fo:font-weight="bold" />
+ </style:style>
+ <style:style style:name="VarList Item" style:family="paragraph" style:list-style-name="Var List" style:parent-style-name="Text body" style:class="text">
+ <style:properties fo:margin-left="3.001cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="0cm"/>
+ </style:tab-stops>
+ </style:properties>
+ </style:style>
+ <style:style style:name="VarList Term" style:family="paragraph" style:list-style-name="Var List" style:parent-style-name="Text body" style:class="text">
+ <style:properties fo:margin-left="1.001cm" fo:margin-right="0cm" fo:text-indent="-4.5cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="0cm"/>
+ </style:tab-stops>
+ </style:properties>
+ </style:style>
+ <style:style style:name="Bullet Symbols" style:family="text">
+ <style:properties style:font-name="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-size-complex="9pt"/>
+ </style:style>
+ <style:style style:name="Source Text" style:family="text">
+ <style:properties style:font-name="Cumberland" style:font-name-asian="Cumberland" style:font-name-complex="Cumberland"/>
+ </style:style>
+ <style:style style:name="Frame" style:family="graphics">
+ <style:properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" fo:margin-left="0.201cm" fo:margin-right="0.201cm" fo:margin-top="0.201cm" fo:margin-bottom="0.201cm" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:padding="0.15cm" fo:border="0.002cm solid #000000"/>
+ </style:style>
+ <style:style style:name="GuiMenu" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#000fff"/>
+ </style:style>
+ <style:style style:name="GuiSubMenu" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#000fff"/>
+ </style:style>
+ <style:style style:name="GuiButton" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#000fff"/>
+ </style:style>
+ <style:style style:name="GuiMenuItem" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#00ffff"/>
+ </style:style>
+ <style:style style:name="GuiButton" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#00f0ff"/>
+ </style:style>
+ <style:style style:name="GuiLabel" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#00777f"/>
+ </style:style>
+ <style:style style:name="Emphasis" style:family="text">
+ <style:properties fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="GuiSubMenu" style:family="text">
+ <style:properties fo:font-style="italic" fo:color="#ff9966"/>
+ </style:style>
+<text:outline-style>
+ <text:outline-level-style text:level="1" style:num-format=""/>
+ <text:outline-level-style text:level="2" style:num-format=""/>
+ <text:outline-level-style text:level="3" style:num-format=""/>
+ <text:outline-level-style text:level="4" style:num-format=""/>
+ <text:outline-level-style text:level="5" style:num-format=""/>
+ <text:outline-level-style text:level="6" style:num-format=""/>
+ <text:outline-level-style text:level="7" style:num-format=""/>
+ <text:outline-level-style text:level="8" style:num-format=""/>
+ <text:outline-level-style text:level="9" style:num-format=""/>
+ <text:outline-level-style text:level="10" style:num-format=""/>
+ </text:outline-style>
+ <text:footnotes-configuration style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="document"/>
+ <text:endnotes-configuration style:num-format="i" text:start-value="0"/>
+ <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
+ <style:style style:name="Bullet Symbols" style:family="text" ><style:properties style:font-name="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-size-complex="9pt" ></style:properties>
+</style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:style style:name="fr1" style:family="graphics" style:parent-style-name="Graphics" ><style:properties style:horizontal-pos="center" style:horizontal-rel="paragraph" style:mirror="none" fo:clip="rect(0cm 0cm 0cm 0cm)" draw:luminance="0%" draw:contrast="0%" draw:red="0%" draw:green="0%" draw:blue="0%" draw:gamma="1" draw:color-inversion="false" draw:transparency="-100%" draw:color-mode="standard" ></style:properties>
+</style:style>
+
+ <style:style style:name="Table1" style:family="table">
+ <style:properties style:width="14.649cm" table:align="margins"/>
+ </style:style>
+ <style:style style:name="Table1.A" style:family="table-column">
+ <style:properties style:column-width="2.93cm" style:rel-column-width="13107*"/>
+ </style:style>
+ <style:style style:name="Table1.A1" style:family="table-cell">
+ <style:properties fo:padding="0.097cm" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000" fo:border-bottom="0.002cm solid #000000"/>
+ </style:style>
+ <style:style style:name="Table1.E1" style:family="table-cell">
+ <style:properties fo:padding="0.097cm" fo:border="0.002cm solid #000000"/>
+ </style:style>
+ <style:style style:name="Table1.A2" style:family="table-cell">
+ <style:properties fo:padding="0.097cm" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.002cm solid #000000"/>
+ </style:style>
+ <style:style style:name="Table1.E2" style:family="table-cell">
+ <style:properties fo:padding="0.097cm" fo:border-left="0.002cm solid #000000" fo:border-right="0.002cm solid #000000" fo:border-top="none" fo:border-bottom="0.002cm solid #000000"/>
+ </style:style>
+ <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Text body" style:list-style-name="Ordered List"/>
+ <style:style style:name="T1" style:family="text" style:parent-style-name="Source Text">
+ <style:properties fo:font-style="normal"/>
+ </style:style>
+ <style:style style:name="Sect1" style:family="section">
+ <style:properties fo:font-size="18pt">
+ <style:columns fo:column-count="1" fo:column-gap="0cm">
+ <style:column style:rel-width="65535*" fo:margin-left="0cm" fo:margin-right="0cm" />
+ </style:columns>
+ </style:properties>
+ </style:style>
+ <style:style style:name="Sect2" style:family="section">
+ <style:properties fo:font-size="16pt">
+ <style:columns fo:column-count="0" fo:column-gap="0cm"/>
+ </style:properties>
+ </style:style>
+ <style:style style:name="ArticleInfo" style:family="section">
+ <style:properties fo:font-size="18pt">
+ <style:columns fo:column-count="1" fo:column-gap="0cm">
+ <style:column style:rel-width="65535*" fo:margin-left="0cm" fo:margin-right="0cm" />
+ </style:columns>
+ </style:properties>
+ </style:style>
+ <style:style style:name="Appendix" style:family="section">
+ <style:properties fo:font-size="18pt">
+ <style:columns fo:column-count="1" fo:column-gap="0cm">
+ <style:column style:rel-width="65535*" fo:margin-left="0cm" fo:margin-right="0cm" />
+ </style:columns>
+ </style:properties>
+ </style:style>
+ <text:list-style style:name="Ordered List">
+ <text:list-level-style-number text:level="1" text:style-name="Numbering Symbols" style:num-suffix="." style:num-format="1" ><style:properties text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="2" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="0.501cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="3" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="1cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="4" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="1.501cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="5" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="2cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="6" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="2.501cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="7" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="3.001cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="8" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="3.502cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="9" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="4.001cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="10" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="4.502cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+ </text:list-style>
+<text:list-style style:name="Var List" ><text:list-level-style-bullet text:level="1" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-number text:level="2" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="0.501cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="3" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="1cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="4" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="1.501cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="5" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="2cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="6" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="2.501cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="7" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="3.001cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="8" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="3.502cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="9" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="4.001cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+<text:list-level-style-number text:level="10" style:num-suffix="." style:num-format="1" ><style:properties text:space-before="4.502cm" text:min-label-width="0.499cm" ></style:properties>
+</text:list-level-style-number>
+</text:list-style>
+ <text:list-style style:name="UnOrdered List" ><text:list-level-style-bullet text:level="1" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties></text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:min-label-width="0.499cm" style:font-name="StarSymbol" style:font-charset="x-symbol" ></style:properties></text:list-level-style-bullet>
+
+ <text:list-level-style-bullet text:level="3" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="1cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+ </text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="4" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="1.501cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="5" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="2cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="6" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="2.501cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="7" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="3.001cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="8" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="3.502cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="9" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="4.001cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+<text:list-level-style-bullet text:level="10" text:style-name="Bullet Symbols" text:bullet-char="•" ><style:properties text:space-before="4.502cm" text:min-label-width="0.499cm" style:font-name="StarSymbol" ></style:properties>
+</text:list-level-style-bullet>
+</text:list-style>
+ <style:page-master style:name="pm1">
+ <style:properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2.54cm" fo:margin-bottom="2.54cm" fo:margin-left="3.175cm" fo:margin-right="3.175cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-master>
+ </office:automatic-styles>
+ <office:master-styles>
+ <style:master-page style:name="Standard" style:page-master-name="pm1"/>
+ </office:master-styles>
+ <office:body>
+
+ <xsl:apply-templates/>
+ </office:body>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="subtitle">
+<xsl:choose>
+ <xsl:when test="parent::table">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="parent::informaltable">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Section SubTitle</xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+
+
+
+<xsl:template match="title">
+<xsl:choose>
+ <xsl:when test="parent::figure">
+ </xsl:when>
+ <xsl:when test="parent::table">
+ </xsl:when>
+ <xsl:when test="parent::informaltable">
+ <xsl:apply-templates/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:element name="text:p">
+ <xsl:choose>
+ <xsl:when test="parent::sect1">
+ <xsl:attribute name="text:style-name">Section1 Title</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::sect2">
+ <xsl:attribute name="text:style-name">Section2 Title</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::sect3">
+ <xsl:attribute name="text:style-name">Section3 Title</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::sect4">
+ <xsl:attribute name="text:style-name">Section3 Title</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::sect5">
+ <xsl:attribute name="text:style-name">Section3 Title</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::appendix">
+ <xsl:attribute name="text:style-name">Appendix Title</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">Section Title</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="articleinfo">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">ArticleInfo</xsl:attribute>
+ <xsl:attribute name="text:name">ArticleInfo</xsl:attribute>
+ <xsl:if test="/article/articleinfo/title !=''">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Document Title</xsl:attribute>
+ <xsl:value-of select="/article/articleinfo/title"/>
+ </xsl:element>
+ <xsl:if test="/article/articleinfo/subtitle !=''">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Document SubTitle</xsl:attribute>
+ <xsl:value-of select="/article/articleinfo/subtitle"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+</xsl:template>
+
+<xsl:template match="appendix">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Appendix</xsl:attribute>
+ <xsl:attribute name="text:name">Appendix</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+</xsl:template>
+
+<!--
+<xsl:template match="author">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="firstname">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/author">
+ <xsl:text disable-output-escaping="yes">articleinfo.author</xsl:text><xsl:value-of select="count(parent::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.firstname</xsl:text><xsl:value-of select="count(preceding-sibling::firstname)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+</xsl:template>-->
+
+<xsl:template match="articleinfo/title">
+ <!-- <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.title</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.title</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>-->
+</xsl:template>
+
+<xsl:template match="articleinfo/subtitle">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.subtitle</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.subtitle</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="articleinfo/edition">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.edition</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.edition</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="articleinfo/releaseinfo">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.releaseinfo_</xsl:text><xsl:value-of select="count(preceding-sibling::releaseinfo)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.releaseinfo_</xsl:text><xsl:value-of select="count(preceding-sibling::releaseinfo)"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="author/firstname">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(parent::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.firstname_</xsl:text><xsl:value-of select="count(preceding-sibling::firstname)"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(parent::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.firstname_</xsl:text><xsl:value-of select="count(preceding-sibling::firstname)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+
+
+<xsl:template match="articleinfo/copyright/year">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text><xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/><xsl:text disable-output-escaping="yes">.year_</xsl:text><xsl:value-of select="count(preceding-sibling::year)"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text><xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/><xsl:text disable-output-escaping="yes">.year_</xsl:text><xsl:value-of select="count(preceding-sibling::year)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="authorgroup">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="articleinfo/copyright/holder">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text><xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/><xsl:text disable-output-escaping="yes">.holder_</xsl:text><xsl:value-of select="count(preceding-sibling::holder)"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text><xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/><xsl:text disable-output-escaping="yes">.holder_</xsl:text><xsl:value-of select="count(preceding-sibling::holder)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+
+
+
+<xsl:template name="affiliation">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="author/affiliation/address">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.affiliation_</xsl:text><xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/><xsl:text disable-output-escaping="yes">.address_</xsl:text><xsl:value-of select="count(preceding-sibling::address)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.affiliation_</xsl:text><xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/><xsl:text disable-output-escaping="yes">.address_</xsl:text><xsl:value-of select="count(preceding-sibling::address)"/>
+
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="author/affiliation/orgname">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.affiliation_</xsl:text><xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/><xsl:text disable-output-escaping="yes">.orgname_</xsl:text><xsl:value-of select="count(preceding-sibling::orgname)"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.affiliation_</xsl:text><xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/><xsl:text disable-output-escaping="yes">.orgname_</xsl:text><xsl:value-of select="count(preceding-sibling::orgname)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+
+
+<xsl:template match="author/surname">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(parent::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.surname_</xsl:text><xsl:value-of select="count(preceding-sibling::surname)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text><xsl:value-of select="count(parent::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.surname_</xsl:text><xsl:value-of select="count(preceding-sibling::surname)"/>
+
+
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="para">
+ <xsl:element name="text:p">
+<xsl:choose>
+ <xsl:when test="ancestor-or-self::footnote">
+ <xsl:attribute name= "text:style-name"><xsl:text>Footnote</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::informaltable">
+ <xsl:if test="ancestor-or-self::informaltable">
+ <xsl:attribute name="text:style-name">Table Contents</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::thead ">
+ <xsl:attribute name="text:style-name">Table Heading</xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::table">
+ <xsl:if test="ancestor-or-self::table">
+ <xsl:attribute name="text:style-name">Table Contents</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::thead ">
+ <xsl:attribute name="text:style-name">Table Heading</xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">Text body</xsl:attribute>
+ </xsl:otherwise>
+</xsl:choose>
+ <xsl:apply-templates/>
+</xsl:element>
+</xsl:template>
+
+<xsl:template match="section">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="abstract">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Abstract</xsl:attribute>
+ <xsl:attribute name="text:name">Abstract</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+
+<xsl:template match="sect1">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="sect2">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect3">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect4">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="sect5">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="informaltable">
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:name"></xsl:attribute>
+ <xsl:attribute name="table:style-name">Table1</xsl:attribute>
+ <xsl:attribute name="table:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="table">
+ <xsl:variable name="tabletitle"><xsl:value-of select="title"/></xsl:variable>
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:name"></xsl:attribute>
+ <xsl:attribute name="table:style-name">Table1</xsl:attribute>
+ <xsl:attribute name="table:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ <xsl:if test="not($tabletitle='')">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Table</xsl:attribute>
+ <xsl:value-of select="$tabletitle"/>
+ </xsl:element>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="tgroup">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:style-name">Table1.A</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@cols >0">
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="@cols"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="count(child::tbody/row/entry) div count(child::tbody/row) "/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="indexterm">
+</xsl:template>
+
+<xsl:template match="thead">
+ <xsl:element name="table:table-header-rows">
+ <xsl:apply-templates />
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="tbody">
+ <xsl:apply-templates />
+</xsl:template>
+
+<xsl:template match="row">
+ <xsl:element name="table:table-row">
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="entry">
+ <xsl:element name="table:table-cell">
+ <xsl:if test="ancestor-or-self::thead">
+ <xsl:attribute name="table:style-name">Table1.A1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(ancestor-or-self::thead)">
+ <xsl:attribute name="table:style-name">Table1.A2</xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@spanname">
+ <!--<xsl:if test="@spanname">-->
+ <xsl:variable name="sname" >
+ <xsl:value-of select="@spanname"/>
+ </xsl:variable>
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:variable name="colnamestart">
+ <xsl:value-of select="ancestor::tgroup/spanspec[@spanname=$sname]/@namest"/>
+ </xsl:variable>
+ <xsl:variable name="colnameend">
+ <xsl:value-of select="ancestor::tgroup/spanspec[@spanname=$sname]/@nameend"/>
+ </xsl:variable>
+ <xsl:variable name="colnumstart">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnamestart]/@colnum"/>
+ </xsl:variable>
+ <xsl:variable name="colnumend">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnameend]/@colnum"/>
+ </xsl:variable>
+ <xsl:value-of select="$colnumend - $colnumstart + 1"/>
+ </xsl:attribute >
+ </xsl:when>
+ <xsl:when test="@namest and @nameend">
+ <!--<xsl:if test="@namest and @nameend">-->
+ <xsl:variable name="colnamestart">
+ <xsl:value-of select="@namest"/>
+ </xsl:variable>
+ <xsl:variable name="colnameend">
+ <xsl:value-of select="@nameend"/>
+ </xsl:variable>
+
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:variable name="colnumstart">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnamestart]/@colnum"/>
+ </xsl:variable>
+ <xsl:variable name="colnumend">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnameend]/@colnum"/>
+ </xsl:variable>
+ <xsl:value-of select="$colnumend - $colnumstart + 1"/>
+
+ </xsl:attribute >
+ </xsl:when>
+ </xsl:choose>
+ <!--
+ <xsl:if test="not(@namest = '' ) ">
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:value-of select="(substring-after(@nameend,'c')-substring-after(@namest,'c'))+1"/>
+
+ </xsl:attribute>
+ </xsl:if>
+ -->
+ <xsl:choose>
+ <xsl:when test="not(child::para)">
+ <xsl:element name="text:p">
+ <xsl:if test="ancestor-or-self::thead">
+ <xsl:attribute name="text:style-name">Table Heading</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::tbody">
+ <xsl:attribute name="text:style-name">Table Contents</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+</xsl:template>
+
+
+
+
+
+
+<xsl:template match="figure">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<!-- lists Section -->
+
+
+
+<xsl:template match="itemizedlist">
+ <xsl:element name="text:unordered-list">
+ <xsl:attribute name="text:style-name">UnOrdered List</xsl:attribute>
+ <xsl:attribute name="text:continue-numbering">false</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="variablelist">
+ <xsl:element name="text:unordered-list">
+ <xsl:attribute name="text:style-name">Var List</xsl:attribute>
+ <xsl:attribute name="text:continue-numbering">false</xsl:attribute>
+ <xsl:apply-templates />
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="orderedlist">
+<xsl:element name="text:ordered-list">
+ <xsl:attribute name="text:style-name">Ordered List</xsl:attribute>
+ <xsl:attribute name="text:continue-numbering">false</xsl:attribute>
+ <xsl:apply-templates/>
+</xsl:element>
+</xsl:template>
+
+<xsl:template match="term">
+ <xsl:if test="parent::varlistentry">
+ <text:list-item>
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">VarList Term</xsl:attribute>
+ <xsl:apply-templates />
+ </xsl:element>
+ </text:list-item>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template match="listitem">
+ <xsl:choose>
+ <xsl:when test="parent::varlistentry">
+ <text:list-item>
+ <xsl:apply-templates/>
+ </text:list-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:list-item>
+ <xsl:apply-templates/>
+ </text:list-item>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<!-- end of lists-->
+
+<xsl:template match="menuchoice">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="guimenuitem">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiMenuItem</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="guibutton">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiButton</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiSubMenu</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="emphasis">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Emphasis</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="guimenu">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiMenu</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="guisubmenu">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiSubMenu</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="guilabel">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiLabel</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="guibutton">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiButton</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="keycap">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">KeyCap</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="keysym">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">KeySym</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+<xsl:template match="keycombo">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">KeyCombo</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="command">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Command</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="application">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Application</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="filename">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">FileName</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="systemitem">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">SystemItem</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="computeroutput">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">ComputerOutput</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="inlinegraphic">
+ <xsl:element name="draw:image">
+ <xsl:attribute name="draw:style-name">
+ <xsl:text>fr1</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:name">
+ </xsl:attribute>
+ <xsl:attribute name="text:anchor-type">
+ </xsl:attribute>
+ <xsl:attribute name="draw:z-index">
+ </xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:type">
+ </xsl:attribute>
+ <xsl:attribute name="svg:width">
+ <!--<xsl:value-of select="@width"/>-->
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:show">
+ <xsl:text>embed</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:actuate">
+ <xsl:text>onLoad</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:filter-name">
+ <xsl:text disable-output-escaping="yes"><All formats></xsl:text>
+ </xsl:attribute>
+</xsl:element>
+</xsl:template>
+
+
+<xsl:template match="footnote">
+ <xsl:element name="text:footnote">
+ <!--<xsl:element name="text:footnote-citation">Aidan</xsl:element>-->
+ <xsl:element name="text:footnote-body">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="highlight">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">
+ <xsl:text>Highlight</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="ulink">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type"><xsl:text>simple</xsl:text></xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@url"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+</xsl:template>
+
+<xsl:template match="link">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type"><xsl:text>simple</xsl:text></xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:text>#</xsl:text>
+ <xsl:value-of select="@linkend"/>
+ <xsl:text>%7Cregion</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+</xsl:template>
+
+<xsl:template match="olink">
+<xsl:element name="text:a">
+ <xsl:attribute name="xlink:type"><xsl:text>simple</xsl:text></xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@targetdocent"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="note">
+ <office:annotation>
+ <text:p>
+ <xsl:apply-templates/>
+ </text:p>
+ </office:annotation>
+</xsl:template>
+
+<xsl:template match="imageobject">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="textobject">
+</xsl:template>
+
+<xsl:template match="caption">
+ <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="imagedata">
+ <xsl:element name="draw:image">
+ <xsl:attribute name="draw:style-name">
+ <xsl:text>fr1</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:name">
+ </xsl:attribute>
+ <xsl:attribute name="text:anchor-type">
+ </xsl:attribute>
+ <xsl:attribute name="draw:z-index">
+ </xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:type">
+ </xsl:attribute>
+ <xsl:attribute name="svg:width">
+ <!--<xsl:value-of select="@width"/>-->
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:show">
+ <xsl:text>embed</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:actuate">
+ <xsl:text>onLoad</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:filter-name">
+ <xsl:text disable-output-escaping="yes"><All formats></xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="audioobject">
+ <xsl:element name="draw:plugin">
+ <xsl:attribute name="draw:style-name">
+ <xsl:text>fr1</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:name">
+ </xsl:attribute>
+ <xsl:attribute name="text:anchor-type">
+ </xsl:attribute>
+ <xsl:attribute name="draw:z-index">
+ </xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:type">
+ </xsl:attribute>
+ <xsl:attribute name="svg:width">
+ <!--<xsl:value-of select="@width"/>-->
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:show">
+ <xsl:text>embed</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:actuate">
+ <xsl:text>onLoad</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:filter-name">
+ <xsl:text disable-output-escaping="yes"><All formats></xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="remark">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="mediaobject">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name"><xsl:text>Mediaobject</xsl:text></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="superscript">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">
+ <xsl:text>SuperScript</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="subscript">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">
+ <xsl:text>SubScript</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/assets/xml/xmerge/downloads/flatxmlbinaries.tar.gz b/assets/xml/xmerge/downloads/flatxmlbinaries.tar.gz
new file mode 100644
index 0000000..33279d4
Binary files /dev/null and b/assets/xml/xmerge/downloads/flatxmlbinaries.tar.gz differ
diff --git a/assets/xml/xmerge/downloads/gedit.sxw b/assets/xml/xmerge/downloads/gedit.sxw
new file mode 100644
index 0000000..ddca2af
Binary files /dev/null and b/assets/xml/xmerge/downloads/gedit.sxw differ
diff --git a/assets/xml/xmerge/downloads/gedit.xml b/assets/xml/xmerge/downloads/gedit.xml
new file mode 100644
index 0000000..94d47ed
--- /dev/null
+++ b/assets/xml/xmerge/downloads/gedit.xml
@@ -0,0 +1,1079 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY appversion "1.121.0">
+ <!ENTITY manrevision "2.1">
+ <!ENTITY date "June 2002">
+ <!ENTITY app "gedit">
+]>
+<!--
+ (Do not remove this comment block.)
+ Maintained by the GNOME Documentation Project
+ http://developer.GNOME.org/projects/gdp
+ Template version: 2.0 beta
+ Template last modified Jan 30, 2002
+-->
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+ <articleinfo>
+ <title>&app; Manual V&manrevision;</title>
+ <copyright>
+ <year>2002</year>
+ <holder>Sun Microsystems</holder> </copyright>
+ <copyright>
+ <year>2000</year>
+ <holder>Eric Baudais</holder> </copyright>
+
+<!-- translators: uncomment this:
+
+ <copyright>
+ <year>2002</year>
+ <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
+ </copyright>
+
+ -->
+ <publisher>
+ <publishername> GNOME Documentation Project </publishername>
+ </publisher>
+ <authorgroup>
+ <author>
+ <firstname>Sun </firstname>
+ <surname>GNOME Documentation Team</surname>
+ <affiliation>
+ <orgname>Sun Microsystems</orgname>
+ <address> <email>gdocteam@sun.com</email> </address>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Eric</firstname>
+ <surname>Baudais</surname>
+ <affiliation>
+ <orgname>GNOME Documentation Project</orgname>
+ <address> <email>baudais@okstate.edu</email> </address>
+ </affiliation>
+ </author>
+<!-- This is appropriate place for other contributors: translators,
+ maintainers, etc. Commented out by default.
+ <othercredit role="translator">
+ <firstname>Latin</firstname>
+ <surname>Translator 1</surname>
+ <affiliation>
+ <orgname>Latin Translation Team</orgname>
+ <address> <email>translator@gnome.org</email> </address>
+ </affiliation>
+ <contrib>Latin translation</contrib>
+ </othercredit>
+-->
+ </authorgroup>
+
+
+<!-- According to GNU FDL, revision history is mandatory if you are -->
+<!-- modifying/reusing someone else's document. If not, you can omit it. -->
+ <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+ than the current revision. -->
+ <revision>
+ <revnumber>&app; Manual V&manrevision;</revnumber>
+ <date>&date;</date>
+ <revdescription>
+ <para role="author">Sun GNOME Documentation Team
+ <email>gdocteam@sun.com</email> </para>
+ <para role="publisher">GNOME Documentation Project</para>
+ </revdescription>
+ </revision>
+ <revision>
+ <revnumber>gedit Manual V2.0</revnumber>
+ <date>March 2002</date>
+ <revdescription>
+ <para role="author">Sun GNOME Documentation Team
+ <email>gdocteam@sun.com</email> </para>
+ <para role="publisher">GNOME Documentation Project</para>
+ </revdescription>
+ </revision>
+ <revision>
+ <revnumber>gedit V1.0</revnumber>
+ <date>2000</date>
+ <revdescription>
+ <para role="author">Eric Baudais <email>baudais@okstate.edu</email>
+ </para>
+ <para role="publisher">GNOME Documentation Project</para>
+ </revdescription>
+ </revision>
+ </revhistory>
+ <releaseinfo> This manual describes version &appversion; of &app;.
+ </releaseinfo>
+ <legalnotice>
+ <title>Feedback</title>
+ <para>To report a bug or make a suggestion regarding the &app; application or
+ this manual, follow the directions in the
+ <ulink url="ghelp:gnome-feedback" type="help">GNOME Feedback Page</ulink>.
+ </para>
+<!-- Translators may also add here feedback address for translations -->
+ </legalnotice>
+ </articleinfo>
+ <indexterm><primary>gedit</primary></indexterm>
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+ <sect1 id="gedit-intro">
+ <title>Introduction</title>
+ <para>The <application>&app;</application> application is a simple text
+ editor. You can use <application>&app;</application> to create and edit text
+ files. You can use <application>&app;</application> plugins to perform a
+ variety of tasks related to text-editing from within the
+ <application>&app;</application> window.</para>
+ </sect1>
+<!-- ============= Getting Started =========================== -->
+ <sect1 id="gedit-getting-started">
+ <title>Getting Started</title>
+
+<!-- ============= To Start gedit ============================ -->
+ <sect2 id="gedit-to-start">
+ <title>To Start &app;</title>
+ <para>You can start <application>&app;</application> in the following ways:</para>
+ <variablelist>
+ <varlistentry>
+ <term><guimenu>Applications</guimenu> menu</term>
+ <listitem>
+ <para>Choose
+ <menuchoice>
+ <guisubmenu>Accessories</guisubmenu>
+ <guimenuitem>Text Editor</guimenuitem>
+ </menuchoice>. </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Command line</term>
+ <listitem>
+ <para>Type <command>gedit</command>, then press <keycap>Return</keycap>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="gedit-when-you-start">
+
+ <title>When You Start &app;</title>
+ <para>When you start <application>&app;</application>, the following window is displayed:</para>
+
+ <figure id="gedit-window">
+ <title>&app; Window</title>
+ <screenshot>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="figures/gedit_window.png" format="PNG"/>
+ </imageobject>
+ <textobject> <phrase>Screenshot of the gedit main window.</phrase>
+ </textobject>
+ </mediaobject>
+ </screenshot>
+ </figure>
+
+ <para>The <application>&app;</application> window contains the following
+ elements: </para>
+ <variablelist>
+ <varlistentry> <term>Menubar</term>
+ <listitem>
+ <para>The menus on the menubar contain all of the commands you need
+ to work with files in <application>&app;</application>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term>Toolbar</term>
+ <listitem>
+ <para> The toolbar contains a subset of the commands that you can
+ access from the menubar.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term>Display area</term>
+ <listitem>
+ <para> The display area contains the text of the file that you are
+ editing. </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term>Statusbar</term>
+ <listitem>
+ <para>The statusbar displays information about current
+ <application>&app;</application> activity and contextual information about the
+ menu items. </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>When you right-click in the <application>&app;</application>
+ window, the application displays a popup menu. The popup menu contains the most
+ common text editing commands. </para>
+ </sect2>
+<!-- ============= To Open a File ============================= -->
+ <sect2 id="gedit-open-file">
+ <title>To Open a File</title>
+ <para>To open a file, choose
+ <menuchoice> <guimenu>File</guimenu> <guimenuitem>Open</guimenuitem>
+ </menuchoice>
+ to display the <guilabel>Open File</guilabel> dialog. Select the file
+ that you want to open, then click <guibutton>OK</guibutton>. The file is
+ displayed in the <application>&app;</application> window. </para>
+ <para>You can open multiple files in <application>&app;</application>.
+ The application displays one file at a time in the application window. The
+ application adds a tab for each open file to the window. To display another
+ open file, click on the tab that corresponds to the file. To create a new
+ <application> &app;</application> window for each file that is open, drag the
+ tab corresponding to each file to the desktop. You can also use the
+ <guimenu>Documents</guimenu> menu to move between the open files.</para>
+ <para>The application records the paths and filenames of the last
+ four files that you edited and displays the files as menu items on the <menuchoice>
+ <guimenu>File</guimenu> <guisubmenu>Recent Files</guisubmenu> </menuchoice> menu.
+ </para>
+ </sect2>
+<!-- ============= To Open Multiple Files from the Command Line ========= -->
+ <sect2 id="gedit-run-from-cmd-line">
+ <title>To Open Multiple Files from a Command Line</title>
+ <para>You can run <application>&app;</application> from a command line
+ and open a single file or multiple files. To open multiple files from a command
+ line, type the following command, then press <keycap>Return</keycap>:</para>
+ <para><command>gedit <replaceable>file1.txt file2.txt file3.txt</replaceable></command></para>
+ <para>When the application starts, the files that you specified are
+ displayed in the <application>&app;</application> window.</para>
+ </sect2>
+ </sect1>
+<!-- ================ Usage ================================ -->
+ <sect1 id="gedit-usage">
+ <title>Usage</title>
+
+<!-- ============= To Create a New File ======================== -->
+ <sect2 id="gedit-create-new-file">
+ <title>To Create a New File</title>
+ <para>To create a new file, choose
+ <menuchoice> <guimenu>File</guimenu> <guimenuitem>New</guimenuitem>
+ </menuchoice>. The application displays a new file in the
+ <application>&app;</application> window.</para>
+ </sect2>
+<!-- ============= To Save a File ============================== -->
+ <sect2 id="gedit-save-file">
+ <title>To Save a File</title>
+ <para>You can save files in the following ways:</para>
+ <itemizedlist>
+ <listitem><para>To save changes to the current file, choose
+ <menuchoice> <guimenu>File</guimenu>
+ <guimenuitem>Save</guimenuitem> </menuchoice> or click <guibutton>Save</guibutton>
+ on the toolbar. If the file does not have a filename, <application>&app;</application>
+ displays the <guilabel>Save As</guilabel> dialog. Enter a name for the file in the
+<guilabel>Save
+ As</guilabel> dialog, then click <guibutton>OK</guibutton>.</para>
+ </listitem>
+ <listitem><para>To save a new file or to save an existing file under a new filename, choose
+ <menuchoice> <guimenu>File</guimenu> <guimenuitem>Save
+ As</guimenuitem> </menuchoice>. Enter a name for the file in the <guilabel>Save
+ As</guilabel> dialog box, then click <guibutton>OK</guibutton>. </para>
+ </listitem>
+ <listitem><para>To save all of the files that are currently open in
+ <application>&app;</application>, choose
+ <menuchoice> <guimenu>File</guimenu> <guimenuitem>Save
+ All</guimenuitem> </menuchoice>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+<!-- ============= To Edit Text ================================ -->
+ <sect2 id="gedit-edit-text">
+ <title>To Edit Text</title>
+ <para>You can edit the text of a file in the following ways:</para>
+ <itemizedlist>
+ <listitem><para>Type new text from the keyboard. </para>
+ </listitem>
+ <listitem><para>Use the <keycap>Delete</keycap> key to delete text.
+ </para>
+ </listitem>
+ <listitem><para>Use the <guimenuitem>Cut</guimenuitem>,
+ <guimenuitem>Copy</guimenuitem>, <guimenuitem>Paste</guimenuitem>, and
+ <guimenuitem>Delete</guimenuitem> menu items to edit text. </para>
+ </listitem>
+ </itemizedlist>
+ <para>When you select text with the mouse,
+ <application>&app;</application> automatically copies the selected text to a
+ buffer. You can perform any of the following actions on the selected text:
+ </para>
+ <itemizedlist>
+ <listitem><para>To delete the selected text from the file and move the
+ selected text to a buffer, choose
+ <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Cut</guimenuitem>
+ </menuchoice>.</para>
+ </listitem>
+ <listitem><para>To permanently delete the selected text from the file, choose
+ <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Delete</guimenuitem>
+ </menuchoice>.</para>
+ </listitem>
+ <listitem><para>To insert the contents of the buffer at the cursor
+ position, middle-click or choose
+ <menuchoice> <guimenu>Edit</guimenu>
+ <guimenuitem>Paste</guimenuitem> </menuchoice>. You must cut or copy text
+ before you can paste text into the file.</para>
+ </listitem>
+ <listitem><para>To select all of the text in a file, choose
+ <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Select
+ All</guimenuitem> </menuchoice>. </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+<!-- ============== To Undo or Redo Edits ====================== -->
+ <sect2 id="gedit-undo-redo-edits">
+ <title>To Undo or Redo Edits</title>
+ <para>To undo an edit, choose
+ <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Undo</guimenuitem>
+ </menuchoice>. To redo an edit, choose
+ <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Redo</guimenuitem>
+ </menuchoice>. The number of previous edits that you can undo is determined by
+ the <guilabel>Set limit on undo levels to</guilabel> setting in the
+ <xref linkend="gedit-prefs-undo"/> tabbed section of the
+ <guilabel>Preferences</guilabel> dialog. By default, the number of actions that you
+ can undo is 25.</para>
+ </sect2>
+<!-- ============= To Find Text ================================ -->
+ <sect2 id="gedit-find-text">
+ <title>To Find Text</title>
+ <para>To search a file for a string, perform the following steps:</para>
+ <orderedlist>
+ <listitem><para>Choose
+ <menuchoice> <guimenu>Search</guimenu>
+ <guimenuitem>Find</guimenuitem> </menuchoice>
+ to display the <guilabel>Find</guilabel> dialog.</para>
+ </listitem>
+ <listitem><para>Type the string that you want to find in the
+ <guilabel>Search for</guilabel> field.</para>
+ </listitem>
+ <listitem><para>Select one of the following options:</para>
+ <itemizedlist>
+ <listitem><para><guilabel>Search from the beginning of the
+ document</guilabel></para>
+ </listitem>
+ <listitem><para><guilabel>Search from the cursor position
+ </guilabel></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem><para>Select the <guilabel>Case sensitive</guilabel> option
+ to only find occurrences of the string that match the case of the text that you
+ type. </para>
+ </listitem>
+ <listitem><para>Click <guibutton>Find</guibutton> to search the file
+ for the first occurrence of the string. If <application>&app;</application>
+ finds the string, the application moves the cursor to the string, and selects
+ the string.</para>
+ </listitem>
+ <listitem><para>To find the next occurrence of the string, click
+ <guibutton>Find Next</guibutton>.</para>
+ </listitem>
+ <listitem><para>To finish the search, click
+ <guibutton>Close</guibutton>. </para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+<!-- ============= To Find and Replace Text =================== -->
+ <sect2 id="gedit-find-replace-text">
+ <title>To Find and Replace Text</title>
+ <para>To search a file for a string, and replace the string with an
+ alternative string, perform the following steps:</para>
+ <orderedlist>
+ <listitem><para>Choose
+ <menuchoice> <guimenu>Search</guimenu>
+ <guimenuitem>Replace</guimenuitem> </menuchoice>
+ to display the <guilabel>Replace</guilabel> dialog.</para>
+ </listitem>
+ <listitem><para>Type the string that you want to find in the
+ <guilabel>Search for</guilabel> field. </para>
+ </listitem>
+ <listitem><para>Type the string that you want to use to replace the
+ string that you find in the <guilabel>Replace with</guilabel> field.</para>
+ </listitem>
+ <listitem><para>Select one of the following options:</para>
+ <itemizedlist>
+ <listitem><para><guilabel>Search from the beginning of the
+ document</guilabel></para>
+ </listitem>
+ <listitem><para><guilabel>Search from the cursor
+ position</guilabel></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem><para>Select the <guilabel>Case sensitive</guilabel> option
+ to only find occurrences of the string that match the case of the text that you
+ enter. </para>
+ </listitem>
+ <listitem><para>Click <guibutton>Find</guibutton> to search the file
+ for the first occurrence of the string. If <application>&app;</application>
+ finds the string, the application moves the cursor to the string, and selects
+ the string. </para>
+ </listitem>
+ <listitem><para>Click on <guibutton>Replace</guibutton> to replace the
+ occurrence of the string with the text that you typed in the <guilabel>Replace
+ with</guilabel> field. Click on <guibutton>Replace All</guibutton> to replace
+ all occurrences of the string.</para>
+ </listitem>
+ <listitem><para>To find the next occurrence of the string, click
+ <guibutton>Find Next</guibutton>.</para>
+ </listitem>
+ <listitem><para>To finish the search, click
+ <guibutton>Close</guibutton>. </para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+<!-- ============= To Open a File from a URI ======================= -->
+ <sect2 id="gedit-open-from-uri">
+ <title>To Open a File from a URI</title>
+ <para>To open a file from a Uniform Resource Identifier (URI), perform one of the following steps:</para>
+ <itemizedlist>
+ <listitem>
+ <para>Choose <menuchoice> <guimenu>File</guimenu> <guimenuitem>Open Location</guimenuitem>
+ </menuchoice>
+to display the <guilabel>Open from URI</guilabel>
+dialog. Enter the URI of the
+ file that you want to
+open, then click <guibutton>Open</guibutton>.</para>
+ </listitem>
+ <listitem>
+ <para>Type <command>gedit <replaceable>http://...</replaceable></command> at a command line, where
+ <replaceable>http://...</replaceable> is the URI of the file that you want to open, then press
+ <keycap>Return</keycap>.</para>
+ </listitem>
+ </itemizedlist>
+ <para>The application opens the file located at the URI in readonly mode.</para>
+ </sect2>
+<!-- ============= To Pipe the Output of a Command to a File ======= -->
+ <sect2 id="gedit-pipe-output">
+ <title>To Pipe the Output of a Command to a File</title>
+ <para>You can use <application>&app;</application> to pipe the output of
+ a command to a text file. For example, to pipe the output of an <command>ls
+ </command> command to a text file, type the following command, then press
+ <keycap> Return</keycap>:</para>
+ <para><command>ls | gedit</command></para>
+ <para>The output of the <command>ls</command> command is displayed in a
+ new text file in the <application>&app;</application> window.</para>
+ <para>Alternatively, you can use the Shell Output plugin to pipe command
+ output to the current file. To use the Shell Output plugin, perform the
+ following steps:</para>
+ <orderedlist>
+ <listitem><para>Load the Shell Output plugin. See <xref linkend="gedit-install-plugins"/> for
+ information about how to load a plugin.</para>
+ </listitem>
+
+ <listitem><para>Choose
+ <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Insert Shell
+ Output</guimenuitem> </menuchoice>
+ to display the <guilabel>Shell output</guilabel> dialog.
+ </para>
+ </listitem>
+ <listitem><para>Type the shell command that you want to execute in the
+ <guilabel>Shell command</guilabel> field.</para>
+ </listitem>
+ <listitem><para>Edit the <guilabel>Working directory</guilabel> field
+ if necessary. By default, the Shell Output plugin executes the command you
+ specify in the current directory.</para>
+ </listitem>
+ <listitem><para>Click <guibutton>Run</guibutton>. The Shell Output
+ plugin executes the command and inserts the text output into the current file.
+ </para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+<!-- ============= To Go to a Specific Line ======================= -->
+ <sect2 id="gedit-goto-line">
+ <title>To Go to a Specific Line</title>
+ <para>To go to a specific line in the current file, perform the following
+ steps:</para>
+ <orderedlist>
+ <listitem><para>Choose
+ <menuchoice> <guimenu>Search</guimenu> <guimenuitem>Goto
+ Line</guimenuitem> </menuchoice>
+ to display the <guilabel>Goto line</guilabel> dialog.</para>
+ </listitem>
+ <listitem><para>Type the number of the line that you want to move the
+ cursor to in the <guilabel>Line number</guilabel> field.</para>
+ </listitem>
+ <listitem><para>Click <guibutton>Goto line</guibutton>. The application
+ moves the cursor to the line number that you specify.</para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+ <sect2 id="gedit-input-mode">
+ <title>To Change the Input Mode</title>
+ <para>To change the input mode, right-click in the text window, then select <guimenuitem>Input Methods</guimenuitem>.
+ The <guimenuitem>Insert Unicode control character</guimenuitem> menu item provides character layout
+ options that are useful for working with non-Latin character sets.</para>
+ </sect2>
+<!-- ============= To Print a File ============================ -->
+ <sect2 id="gedit-print-file">
+ <title>To Print a File</title>
+ <para>You can use <application>&app;</application> to perform the
+ following print operations:</para>
+ <itemizedlist>
+ <listitem><para>Print a file to a printer. </para>
+ </listitem>
+ <listitem><para>Print the output of the print command to a file.</para>
+ </listitem>
+ </itemizedlist>
+ <para>If you print to a file, <application>&app;</application> sends the
+ output of the file to a pre-press format file. The most common pre-press
+ formats are PostScript and Portable Document Format (PDF).</para>
+
+ <para>To preview the pages that you want to print, choose
+ <menuchoice> <guimenu>File</guimenu>
+ <guimenuitem>Print Preview</guimenuitem> </menuchoice>
+to display the <guilabel>gedit - Print Preview
+ </guilabel> dialog.</para>
+
+ <para>To print the current file to a printer or a file, choose
+ <menuchoice> <guimenu>File</guimenu>
+ <guimenuitem>Print</guimenuitem> </menuchoice>
+ to display the <guilabel>Print</guilabel> dialog.</para>
+
+ <para>The <guilabel>Print</guilabel> dialog allows you to specify the following
+ print options:</para>
+
+ <sect3 id="print-dialog-job">
+ <title>Job Tabbed Section</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Print range</guilabel> </term>
+ <listitem>
+ <para>Select one of the following options to determine how
+ many pages to print:</para>
+ <itemizedlist>
+ <listitem>
+ <para><guilabel>All</guilabel></para>
+ <para>Select this option to print all of the pages in the file.</para>
+ </listitem>
+ <listitem>
+ <para><guilabel>Selection</guilabel></para>
+ <para>Select this option to print the selected text only. This option
+ is only available if you selected text.</para>
+ </listitem>
+
+ </itemizedlist>
+ <para>Default: <guilabel>All</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Copies</guilabel> </term>
+ <listitem>
+ <para>Use this spin box to specify the number of copies of the file that
+ you want to print.</para>
+ <para>Default: 1.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Collate</guilabel> </term>
+ <listitem>
+ <para>If you are printing multiple copies of the file, select this option
+ to collate the printed copies.</para>
+ <para>Default: unselected.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="print-dialog-printer">
+ <title>Printer Tabbed Section</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Printer</guilabel> </term>
+ <listitem>
+ <para>Use this drop-down list box to select the printer to which you want
+ to print the file.</para>
+ <para>Default: <guilabel>Gnome default printer</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Settings</guilabel> </term>
+ <listitem>
+ <para>Use this drop-down list box to select the printer settings. To configure
+ the printer, click <guibutton>Configure</guibutton>.</para>
+ <para>Default: Default.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Location</guilabel> </term>
+ <listitem>
+ <para>Use this drop-down list box to select the print destination. To print the
+ file to a printer, choose <guilabel>lpr</guilabel>. To print the file
+ to a print file, choose <guilabel>File</guilabel>. If you select <guilabel>File</guilabel>,
+ type the name of the output file in the text box provided.</para>
+ <para>Default: <guilabel>lpr</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="print-dialog-paper">
+ <title>Paper Tabbed Section</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Paper size</guilabel> </term>
+ <listitem>
+ <para>Use this drop-down list box to select the size of the paper to
+ which you want to print the file.</para>
+ <para>Default: <guilabel>A4</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Width</guilabel> </term>
+ <listitem>
+ <para>Use this spin box to specify the width of the paper. Use the
+ <guilabel>Centimeters</guilabel> drop-down list box to change the
+ measurement unit for specifying the paper size.</para>
+ <para>Default: 21.00 centimeters.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Height</guilabel> </term>
+ <listitem>
+ <para>Use this spin box to specify the height of the paper.</para>
+ <para>Default: 29.70 centimeters.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Page orientation</guilabel> </term>
+ <listitem>
+ <para>Use this drop-down list box to select the page orientation.</para>
+ <para>Default: <guilabel>Portrait</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Layout</guilabel> </term>
+ <listitem>
+ <para>Use this drop-down list box to select the page layout. A preview
+ of each layout that you select is displayed in the <guilabel>Preview</guilabel>
+ area.</para>
+ <para>Default: <guilabel>Plain</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ </sect2>
+<!-- ============= To Use the gedit Plugins ========================= -->
+ <sect2 id="gedit-use-plugins">
+ <title>To Use the &app; Plugins</title>
+ <para>A plugin is a supplementary program that enhances the functionality
+ of an application. The <application>&app;</application> plugins enable you to
+ perform a variety of functions related to text editing from within the
+ <application> &app;</application> window. The following table lists the plugins
+ that are available.</para>
+ <informaltable frame="topbot">
+ <tgroup cols="2">
+ <colspec colname="col1"/>
+ <colspec colname="col2"/>
+ <thead>
+ <row valign="top">
+ <entry colname="col1" colsep="0" valign="top"><para>Plugin Name</para></entry>
+ <entry colname="col2" valign="top"><para>Purpose</para></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row valign="top">
+ <entry><para>ASCII table</para></entry>
+ <entry><para>Displays a dialog that contains an ASCII table. You can use the ASCII table to insert characters into a file.</para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Compare files</para></entry>
+ <entry><para>Compares two files and displays the differences between the files in a new <application>&app;</application> window.
+ This plugin uses the <application>diff</application> program to compare the files.</para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>CVS ChangeLog</para></entry>
+ <entry><para>Opens the log messages associated with CVS commit commands.</para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Insert Date/Time</para></entry>
+ <entry><para>Inserts the current date and time into a file.</para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Shell Output</para></entry>
+ <entry><para>Inserts the text output of a shell command into a file. </para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Tag list</para></entry>
+ <entry><para>Displays a dialog that contains a list of common tags. You can use the dialog to
+ insert a tag into a file. </para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>User name</para></entry>
+ <entry><para>Inserts the username of the current user into the file. </para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Word count</para></entry>
+ <entry><para>Counts the number of lines, words, characters with spaces, characters without spaces, and bytes in the current file. The plugin
+ displays the results in a <guilabel>Word count</guilabel> window. </para></entry>
+ </row>
+
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+<!-- ============= To Load gedit Plugins ========================= -->
+ <sect2 id="gedit-install-plugins">
+ <title>To Load &app; Plugins</title>
+ <para>To load <application>&app;</application> plugins, choose
+ <menuchoice>
+ <guimenu>Edit</guimenu>
+ <guimenuitem>Plugin Manager</guimenuitem>
+ </menuchoice>.
+ The <guilabel>Plugin Manager</guilabel> dialog displays the following information:</para>
+ <itemizedlist>
+ <listitem><para>A list of the plugins that are available.</para>
+ </listitem>
+ <listitem><para>A <guibutton>Configure plugin</guibutton> button. You can use this button to open a
+ configuration dialog for the plugins that you can configure.</para>
+ </listitem>
+ <listitem><para>A brief description of each plugin. To display a description,
+ select the plugin from the list of plugins.</para>
+ </listitem>
+ <listitem><para>Details about the author of the plugin and the name of the module.</para>
+ </listitem>
+ </itemizedlist>
+ <para>To load a plugin, select the check box next to the name of the plugin. The <application>&app;</application> application
+ adds the plugin to the appropriate <application>&app;</application> menu, as described in the following table.</para>
+ <informaltable frame="topbot">
+ <tgroup cols="2">
+ <colspec colname="col1"/>
+ <colspec colname="col2"/>
+ <thead>
+ <row valign="top">
+ <entry colname="col1" colsep="0" valign="top"><para>Plugin Name</para></entry>
+ <entry colname="col2" valign="top"><para>Added to Menu</para></entry>
+ </row>
+ </thead>
+ <tbody>
+ <row valign="top">
+ <entry><para>ASCII table</para></entry>
+ <entry><para><menuchoice><guimenu>View</guimenu> <guimenuitem>ASCII Table</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Compare files</para></entry>
+ <entry><para><menuchoice><guimenu>File</guimenu> <guimenuitem>Compare files</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>CVS ChangeLog</para></entry>
+ <entry><para><menuchoice><guimenu>File</guimenu> <guimenuitem>Open CVS ChangeLogs</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Word count</para></entry>
+ <entry><para><menuchoice><guimenu>Search</guimenu> <guimenuitem>Word Count</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Shell Output</para></entry>
+ <entry><para><menuchoice><guimenu>Edit</guimenu> <guimenuitem>Insert Shell Output</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Tag list</para></entry>
+ <entry><para><menuchoice><guimenu>View</guimenu> <guimenuitem>Tag List</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>Insert Date/Time</para></entry>
+ <entry><para><menuchoice><guimenu>Edit</guimenu> <guimenuitem>Insert Date/Time</guimenuitem></menuchoice></para></entry>
+ </row>
+ <row valign="top">
+ <entry><para>User name</para></entry>
+ <entry><para><menuchoice><guimenu>Edit</guimenu> <guimenuitem>Insert User Name</guimenuitem></menuchoice></para></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>To remove a plugin, deselect the check box next to the name of the plugin.</para>
+ <para>To close the <guilabel>Plugin Manager</guilabel> dialog,
+ click <guibutton>Close</guibutton>.</para>
+ </sect2>
+
+ <sect2 id="gedit-customize-bars">
+ <title>To Customize the Toolbar and Statusbar</title>
+
+ <para>To display or hide the toolbar, choose <menuchoice> <guimenu>View</guimenu>
+ <guimenuitem>Toolbar</guimenuitem> </menuchoice>. To customize how <application>&app;</application>
+ displays the toolbar, choose <menuchoice> <guimenu>View</guimenu>
+ <guisubmenu>Customize Toolbar</guisubmenu> </menuchoice>, then select one of the following
+ menu items:</para>
+ <itemizedlist>
+ <listitem>
+ <para><guimenuitem>Desktop Default</guimenuitem>: display the default toolbar.</para>
+ </listitem>
+ <listitem>
+ <para><guimenuitem>Icon</guimenuitem>: display icons only.</para>
+ </listitem>
+ <listitem>
+ <para><guimenuitem>Icon and Text</guimenuitem>: display icons and text.</para>
+ </listitem>
+ </itemizedlist>
+ <para>To display or hide the statusbar, choose <menuchoice> <guimenu>View</guimenu>
+ <guimenuitem>Statusbar</guimenuitem> </menuchoice>. To customize how <application>&app;</application>
+ displays the statusbar, choose <menuchoice> <guimenu>View</guimenu>
+ <guisubmenu>Customize Statusbar</guisubmenu> </menuchoice>, then select one of the following
+ menu items:</para>
+ <itemizedlist>
+ <listitem>
+ <para><guimenuitem>Show Cursor Position</guimenuitem>: display the line number
+ and column number where the cursor is located.</para>
+ <para>Default: selected.</para>
+ </listitem>
+ <listitem>
+ <para><guimenuitem>Show Overwrite Mode</guimenuitem>: display the editing mode.
+ If the editor is in insert mode, the statusbar contains the word INS. If the editor is in
+ overwrite mode, the statusbar contains the word OVR.</para>
+ <para>Default: selected.</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+<!-- ============= Customization ============================= -->
+ <sect1 id="gedit-prefs">
+ <title>Settings</title>
+
+ <para>To configure <application>&app;</application>, choose
+ <menuchoice> <guimenu>Edit</guimenu>
+ <guimenuitem>Preferences</guimenuitem> </menuchoice>.</para>
+ <para>The <guilabel>Preferences</guilabel> dialog contains the following
+ categories:</para>
+ <itemizedlist>
+ <listitem><para><xref linkend="gedit-prefs-editor"/></para>
+ </listitem>
+ <listitem><para><xref linkend="gedit-prefs-print"/></para>
+ </listitem>
+ </itemizedlist>
+
+
+ <sect2 id="gedit-prefs-editor">
+ <title>Editor</title>
+ <para>The <guilabel>Editor</guilabel> category is subdivided into the following
+ subcategories:</para>
+
+ <sect3 id="gedit-prefs-fontsandcolors">
+ <title>Fonts and Colors</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Use default theme font</guilabel> </term>
+ <listitem>
+ <para>Select this option to use the default system font for the text in the <application>&app;</application> text window. </para>
+ <para>Default: unselected.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Font used by the editor</guilabel> </term>
+ <listitem>
+ <para>This field displays the font that <application>&app;</application> uses to display text.
+ Click on the button to specify the font type, style, and size to use for text. </para>
+ <para>Default: Courier Medium 12 point.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Use default theme colors</guilabel> </term>
+ <listitem>
+ <para>Select this option to use the default theme colors in the <application>&app;</application> text window. </para>
+ <para>Default: selected.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Text color</guilabel> </term>
+ <listitem>
+ <para>Click on the <guibutton>Text color</guibutton> button to
+ display the color selector dialog. Select a color to use to display text in the <application>&app;</application>
+ text window. </para>
+ <para>Default: black.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Background color</guilabel> </term>
+ <listitem>
+ <para>Click on the <guibutton>Background color</guibutton> button to
+ display the color selector dialog. Select a background color for the <application>&app;</application>
+ text window. </para>
+ <para>Default: white.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Selected text color</guilabel> </term>
+ <listitem>
+ <para>Click on the <guibutton>Selected text color</guibutton> button to
+ display the color selector dialog. Select a color to use to display selected text.
+ </para>
+ <para>Default: white.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Selection color</guilabel> </term>
+ <listitem>
+ <para>Click on the <guibutton>Selection color</guibutton> button to
+ display the color selector dialog. Select a background color to use to highlight a text selection.
+ </para>
+ <para>Default: blue.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="gedit-prefs-tabs">
+ <title>Tabs</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Set tabs width equivalent to</guilabel> </term>
+ <listitem>
+ <para>Use this spin box to specify the width of the space that
+ <application> &app;</application> inserts when you press the
+ <keycap>Tab</keycap> key. </para>
+ <para>Default: 8 characters.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="gedit-prefs-wrapmode">
+ <title>Wrap Mode</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Wrap mode</guilabel> </term>
+ <listitem>
+ <para>Select one of the following options to determine how
+ <application>&app;</application> wraps text in the <application>&app;</application>
+ window:
+</para>
+ <itemizedlist>
+ <listitem>
+ <para><guilabel>Never wrap lines</guilabel></para>
+ <para>Select this option to never wrap lines. The text that you type is displayed in one line until you press
+ <keycap>Return</keycap>.</para>
+ </listitem>
+ <listitem>
+ <para><guilabel>Wrap lines at word boundaries</guilabel></para>
+ <para>Select this option to wrap text onto the next line, at a word level, when you reach the text window boundary. </para>
+ </listitem>
+ <listitem>
+ <para><guilabel>Wrap lines at character boundaries</guilabel></para>
+ <para>Select this option to wrap text onto the next line, at a character level, when you reach the text window boundary.</para>
+ </listitem>
+ </itemizedlist>
+ <para>Default: <guilabel>Wrap lines at character boundaries</guilabel>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="gedit-prefs-linenumbers">
+ <title>Line numbers</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Display line numbers</guilabel> </term>
+ <listitem>
+ <para>Select this option to display lines numbers on the left side of the
+ <application>&app;</application> window. </para>
+ <para>Default: unselected.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="gedit-prefs-save">
+ <title>Save</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Create a backup copy of files before saving</guilabel> </term>
+ <listitem>
+ <para>Select this option create a backup copy of a file each time you save the file. The backup
+ copy of the file has a <filename>.bak</filename> extension.</para>
+ <para>Default: unselected.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Autosave current file every</guilabel> </term>
+ <listitem>
+ <para>Select this option to automatically save the current file at regular intervals. Use the spin box
+ to specify the interval at which you want to save the file.</para>
+ <para>Default: unselected, 10 minutes.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>When saving</guilabel> </term>
+ <listitem>
+ <para>Select one of the following save options:</para>
+ <itemizedlist>
+ <listitem>
+ <para><guilabel>Always use UTF-8 encoding (faster)</guilabel></para>
+ <para>Select this option to save files using UTF-8 bit encoding.</para>
+ </listitem>
+ <listitem>
+ <para><guilabel>Use current locale when possible</guilabel></para>
+ <para>Select this option to save files using the current locale. You can set up locales for
+ different input methods. </para>
+ </listitem>
+ <listitem>
+ <para><guilabel>Use current locale only if the file already uses it</guilabel></para>
+ <para>Select this option to save a file using the current locale if the file was already saved in the current locale.</para>
+ </listitem>
+ </itemizedlist>
+ <para>Default: <guilabel>Always use UTF-8 encoding (faster)</guilabel></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+
+ </sect3>
+
+ <sect3 id="gedit-prefs-undo">
+ <title>Undo</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Set limit on undo levels to</guilabel> </term>
+ <listitem>
+ <para>Select this option to set a limit on the number of editing actions that you
+ can undo. Use the spin box to specify the maximum number of actions that you
+ can undo. </para>
+ <para>Default: selected, 25 actions.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ </sect2>
+
+ <sect2 id="gedit-prefs-print">
+ <title>Print</title>
+ <para>The <guilabel>Print</guilabel> category is subdivided into the following
+ subcategories:</para>
+
+ <sect3 id="gedit-prefs-page">
+ <title>Page</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Print page headers</guilabel> </term>
+ <listitem>
+ <para>Select this option to include a header on each page that you
+ print. You can not configure the header. </para>
+ <para>Default: selected.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Wrap lines (at character boundaries)</guilabel> </term>
+ <listitem>
+ <para>Select this option to automatically wrap text at a character level when you print
+ a file. The application counts wrapped lines as one line for line numbering purposes.
+ </para>
+ <para>Default: selected.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Print line numbers every</guilabel>
+ </term>
+ <listitem>
+ <para>Select this option to include line numbers when you print a
+ file. Use the spin box to specify how often to print the line numbers, for
+ example every 5 lines, every 10 lines, and so on. </para>
+ <para>Default: unselected, 1 line.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="gedit-prefs-fonts">
+ <title>Fonts</title>
+ <variablelist>
+ <varlistentry> <term><guilabel>Font used to print the body</guilabel> </term>
+ <listitem>
+ <para>Click on this button to select the font to use to print the body text of a
+ file.</para>
+ <para>Default: Courier 9.0.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Font used to print headers</guilabel> </term>
+ <listitem>
+ <para>Click on this button to select the font to use to print the headers in a
+ file. </para>
+ <para>Default: Helvetica 11.0.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term><guilabel>Font used to print line numbers</guilabel>
+ </term>
+ <listitem>
+ <para>Click on this button to select a font to use to print line numbers.</para>
+ <para>Default: Helvetica 8.0.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ <para>To reset the fonts to the default fonts for printing a file from <application>&app;</application>
+ click on the <guibutton>Restore default fonts</guibutton> button.</para>
+ </sect3>
+
+ </sect2>
+
+
+ </sect1>
+</article>
diff --git a/assets/xml/xmerge/downloads/smalldeviceSol.tar.gz b/assets/xml/xmerge/downloads/smalldeviceSol.tar.gz
new file mode 100644
index 0000000..3fa37e5
Binary files /dev/null and b/assets/xml/xmerge/downloads/smalldeviceSol.tar.gz differ
diff --git a/assets/xml/xmerge/downloads/sofftodocbook.xsl b/assets/xml/xmerge/downloads/sofftodocbook.xsl
new file mode 100644
index 0000000..f4baccb
--- /dev/null
+++ b/assets/xml/xmerge/downloads/sofftodocbook.xsl
@@ -0,0 +1,741 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!-- # The Contents of this file are made available subject to the terms of
+ # either of the following licenses
+ #
+ # - GNU Lesser General Public License Version 2.1
+ # - Sun Industry Standards Source License Version 1.1
+ #
+ # Sun Microsystems Inc., October, 2000
+ #
+ # GNU Lesser General Public License Version 2.1
+ # =============================================
+ # Copyright 2000 by Sun Microsystems, Inc.
+ # 901 San Antonio Road, Palo Alto, CA 94303, USA
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+ # License version 2.1, as published by the Free Software Foundation.
+ #
+ # This library is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ # Lesser General Public License for more details.
+ #
+ # You should have received a copy of the GNU Lesser General Public
+ # License along with this library; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ # MA 02111-1307 USA
+ #
+ #
+ # Sun Industry Standards Source License Version 1.1
+ # =================================================
+ # The contents of this file are subject to the Sun Industry Standards
+ # Source License Version 1.1 (the "License"); You may not use this file
+ # except in compliance with the License. You may obtain a copy of the
+ # License at http://www.openoffice.org/license.html.
+ #
+ # Software provided under this License is provided on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ # See the License for the specific provisions governing your rights and
+ # obligations concerning the Software.
+ #
+ # The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ #
+ # Copyright: 2000 by Sun Microsystems, Inc.
+ #
+ # All Rights Reserved.
+ #
+ # Contributor(s): _______________________________________
+ #
+ #-->
+<xsl:stylesheet version="1.0" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:office="http://openoffice.org/2000/office" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyl [...]
+<xsl:output method="xml" indent="yes" omit-xml-declaration="no" />
+<!--<xsl:output method="xml" version="1.0" encoding="UTF-8" doctype-public="-//Sun Microsystems//DTD Simplified DocBook XML V1.0CR2-Based SupportDoc Subset
+V1.0//EN" doctype-system="file:///e:/temp/dtd/docbookx.dtd" />-->
+
+
+<xsl:variable name="varname">1</xsl:variable>
+
+<xsl:template match="/office:document">
+ <article>
+ <xsl:attribute name="lang"><xsl:value-of select="/office:document/office:meta/dc:language"/>
+ </xsl:attribute>
+ <xsl:apply-templates />
+ </article>
+</xsl:template>
+
+<xsl:template match="office:meta">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="text:ordered-list">
+ <orderedlist>
+ <xsl:apply-templates/>
+ </orderedlist>
+</xsl:template>
+
+
+
+<xsl:template match="meta:editing-cycles">
+</xsl:template>
+
+<xsl:template match="meta:user-defined">
+</xsl:template>
+
+<xsl:template match="meta:editing-duration">
+</xsl:template>
+
+<xsl:template match="dc:language">
+</xsl:template>
+
+<xsl:template match="dc:date">
+ <!--<pubdate>
+ <xsl:value-of select="substring-before(.,'T')"/>
+ </pubdate>-->
+</xsl:template>
+
+<xsl:template match="meta:creation-date">
+</xsl:template>
+
+<xsl:template match="office:body">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="office:styles">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="office:script">
+</xsl:template>
+
+
+<xsl:template match="office:settings">
+</xsl:template>
+
+<xsl:template match="office:font-decls">
+</xsl:template>
+
+<xsl:template match="text:section">
+<xsl:choose>
+ <xsl:when test="@text:name='ArticleInfo'">
+ <articleinfo>
+ <title><xsl:value-of select="text:p[@text:style-name='Document Title']"/></title>
+ <subtitle><xsl:value-of select="text:p[@text:style-name='Document SubTitle']"/></subtitle>
+ <edition><xsl:value-of select="text:p/text:variable-set[@text:name='articleinfo.edition']"/></edition>
+ <xsl:for-each select="text:p/text:variable-set[substring-after(@text:name,'articleinfo.releaseinfo')]">
+ <releaseinfo>
+ <xsl:value-of select="."/>
+ </releaseinfo>
+ </xsl:for-each>
+ <xsl:call-template name="ArticleInfo"><xsl:with-param name="level" select="0"/></xsl:call-template>
+
+ </articleinfo>
+ </xsl:when>
+ <xsl:when test="@text:name='Abstract'">
+ <abstract>
+ <xsl:apply-templates/>
+ </abstract>
+ </xsl:when>
+ <xsl:when test="@text:name='Appendix'">
+ <appendix>
+ <xsl:apply-templates/>
+ </appendix>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="sectvar"><xsl:text>sect</xsl:text><xsl:value-of select="count(ancestor::text:section)+1"/></xsl:variable>
+ <xsl:variable name="idvar"><xsl:text> id="</xsl:text><xsl:value-of select="@text:name"/><xsl:text>"</xsl:text></xsl:variable>
+ <xsl:text disable-output-escaping="yes"><</xsl:text><xsl:value-of select="$sectvar"/><xsl:value-of select="$idvar"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text disable-output-escaping="yes"></</xsl:text><xsl:value-of select="$sectvar"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ </xsl:otherwise>
+
+
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="ArticleInfo">
+ <xsl:param name="level"/>
+ <xsl:variable name="author"><xsl:value-of select="concat('articleinfo.author_','', $level)"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name, $author )]">
+ <xsl:call-template name="Author"><xsl:with-param name="AuthorLevel" select="0"/></xsl:call-template>
+ <xsl:call-template name="Copyright"><xsl:with-param name="CopyrightLevel" select="0"/></xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="Copyright">
+ <xsl:param name="CopyrightLevel"/>
+
+ <xsl:variable name="Copyright"><xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[contains(@text:name,$Copyright)]">
+ <copyright>
+ <xsl:call-template name="Year">
+ <xsl:with-param name="CopyrightLevel" select="$CopyrightLevel"/>
+ <xsl:with-param name="YearlLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Holder">
+ <xsl:with-param name="CopyrightLevel" select="$CopyrightLevel"/>
+ <xsl:with-param name="HolderlLevel" select="0"/>
+
+ </xsl:call-template>
+ </copyright>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Year">
+ <xsl:param name="CopyrightLevel"/>
+ <xsl:param name="YearLevel"/>
+ <xsl:variable name="Copyright"><xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/></xsl:variable>
+<xsl:variable name="Year"><xsl:value-of select="concat($Copyright,'',concat('.year_','',$YearLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Year]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Year]"/>
+ </orgname>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Holder">
+ <xsl:param name="CopyrightLevel"/>
+ <xsl:param name="HolderLevel"/>
+ <xsl:variable name="Copyright"><xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/></xsl:variable>
+<xsl:variable name="Holder"><xsl:value-of select="concat($Copyright,'',concat('.holder_','',$HolderLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Holder]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Holder]"/>
+ </orgname>
+ </xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="Author">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name, $Author )]">
+ <author>
+ <xsl:call-template name="Surname"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/><xsl:with-param name="SurnameLevel" select="0"/></xsl:call-template>
+ <xsl:call-template name="Firstname"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/><xsl:with-param name="FirstnameLevel" select="0"/></xsl:call-template>
+ <xsl:call-template name="Affiliation"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/><xsl:with-param name="AffilLevel" select="0"/></xsl:call-template>
+ </author>
+ <xsl:call-template name="Author"><xsl:with-param name="AuthorLevel" select="$AuthorLevel+1"/></xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Surname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="SurnameLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:variable name="Surname"><xsl:value-of select="concat($Author,'',concat('.surname_','',$SurnameLevel))"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[@text:name=$Surname]">
+ <surname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Surname]"/>
+ </surname>
+ <xsl:call-template name="Surname"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="SurnameLevel" select="SurnameLevel+1"/>
+ </xsl:call-template>
+
+ </xsl:if>
+</xsl:template>
+
+
+
+
+<xsl:template name="Firstname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="FirstnameLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:variable name="Firstname"><xsl:value-of select="concat($Author,'',concat('.firstname_','',$FirstnameLevel))"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[@text:name=$Firstname]">
+ <firstname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Firstname]"/>
+ </firstname>
+ <xsl:call-template name="Surname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="FirstnameLevel" select="FirstnameLevel+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="Affiliation">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:variable name="Affil"><xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name,$Affil)]">
+ <affiliation>
+ <xsl:call-template name="Orgname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="$AffilLevel"/><xsl:with-param name="OrgLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Address">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="$AffilLevel"/><xsl:with-param name="AddressLevel" select="0"/>
+
+ </xsl:call-template>
+ </affiliation>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="Orgname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:param name="OrgLevel"/>
+
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+<xsl:variable name="Affil"><xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/></xsl:variable>
+ <xsl:variable name="Org"><xsl:value-of select="concat($Affil,'',concat('.orgname_','',$OrgLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Org]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Org]"/>
+ </orgname>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="Address">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:param name="AddressLevel"/>
+
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+<xsl:variable name="Affil"><xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/></xsl:variable>
+ <xsl:variable name="Address"><xsl:value-of select="concat($Affil,'',concat('.address_','',$AddressLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Address]">
+ <address>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Address]"/>
+ </address>
+ </xsl:if>
+</xsl:template>
+
+
+
+
+<xsl:template match="text:p[@text:style-name='Document Title']">
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Document SubTitle']">
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='Section Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Appendix Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='VarList Item']">
+ <xsl:if test="not(preceding-sibling::text:p[@text:style-name='VarList Item'])">
+ <xsl:text disable-output-escaping="yes"><listitem></xsl:text>
+ </xsl:if>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ <xsl:if test="not(following-sibling::text:p[@text:style-name='VarList Item'])">
+ <xsl:text disable-output-escaping="yes"></listitem></xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='VarList Term']">
+ <term>
+ <xsl:apply-templates/>
+ </term>
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Section1 Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='Section2 Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='Section3 Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+<xsl:template match="text:footnote-citation">
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Mediaobject']">
+ <mediaobject>
+ <xsl:apply-templates/>
+ </mediaobject>
+</xsl:template>
+
+<xsl:template match="office:annotation/text:p">
+ <note>
+ <remark>
+ <xsl:apply-templates/>
+ </remark>
+ </note>
+</xsl:template>
+
+<!--<xsl:template match="meta:initial-creator">
+ <author>
+ <xsl:apply-templates />
+ </author>
+</xsl:template>-->
+
+<xsl:template match="table:table">
+ <xsl:choose>
+ <xsl:when test="following-sibling::text:p[@text:style-name='Table']">
+ <table frame="all">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@table:name"/>
+ </xsl:attribute>
+ <title>
+ <xsl:value-of select="following-sibling::text:p[@text:style-name='Table']"/>
+ </title>
+ <xsl:call-template name="generictable"/>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <informaltable frame="all">
+ <xsl:call-template name="generictable"/>
+ </informaltable>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="generictable">
+ <xsl:variable name="cells" select="count(descendant::table:table-cell)" ></xsl:variable>
+ <xsl:variable name="rows"><xsl:value-of select="count(descendant::table:table-row) "/></xsl:variable>
+ <xsl:variable name="cols"><xsl:value-of select="$cells div $rows"/></xsl:variable>
+ <xsl:variable name="numcols">
+ <xsl:choose>
+ <xsl:when test="child::table:table-column/@table:number-columns-repeated">
+ <xsl:value-of select="number(table:table-column/@table:number-columns-repeated+1)"/>
+ </xsl:when>
+ <xsl:otherwise >
+ <xsl:value-of select="$cols"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="tgroup">
+ <xsl:attribute name="cols">
+ <xsl:value-of select="$numcols"/>
+ </xsl:attribute>
+ <xsl:call-template name="colspec"><xsl:with-param name="left" select="1" /></xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+
+<xsl:template name="colspec">
+ <xsl:param name="left"/>
+ <xsl:if test="number($left < ( table:table-column/@table:number-columns-repeated +2) )">
+ <xsl:element name="colspec">
+ <xsl:attribute name="colnum"><xsl:value-of select="$left"/></xsl:attribute>
+ <xsl:attribute name="colname">c<xsl:value-of select="$left"/></xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="colspec"><xsl:with-param name="left" select="$left+1" /></xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+
+<xsl:template match="table:table-column">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="table:table-header-rows">
+ <thead>
+ <xsl:apply-templates/>
+ </thead>
+</xsl:template>
+
+<xsl:template match="table:table-header-rows/table:table-row">
+ <row>
+ <xsl:apply-templates />
+ </row>
+</xsl:template>
+
+<xsl:template match="table:table/table:table-row">
+ <xsl:if test="not(preceding-sibling::table:table-row)">
+ <xsl:text disable-output-escaping="yes"><tbody></xsl:text>
+ </xsl:if>
+ <row>
+ <xsl:apply-templates />
+ </row>
+ <xsl:if test="not(following-sibling::table:table-row)">
+ <xsl:text disable-output-escaping="yes"></tbody></xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="table:table-cell">
+ <xsl:element name="entry">
+ <xsl:if test="@table:number-columns-spanned >'1'">
+ <xsl:attribute name="namest"><xsl:value-of select="concat('c',count(preceding-sibling::table:table-cell[not(@table:number-columns-spanned)]) +sum(preceding-sibling::table:table-cell/@table:number-columns-spanned)+1)"/></xsl:attribute>
+ <xsl:attribute name="nameend"><xsl:value-of select="concat('c',count(preceding-sibling::table:table-cell[not(@table:number-columns-spanned)]) +sum(preceding-sibling::table:table-cell/@table:number-columns-spanned)+ @table:number-columns-spanned)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates />
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="text:p">
+<xsl:choose>
+ <xsl:when test="@text:style-name='Table'">
+ </xsl:when>
+ <xsl:otherwise>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="text:unordered-list">
+ <xsl:if test="@text:style-name='Var List'">
+ <variablelist>
+ <xsl:apply-templates/>
+ </variablelist>
+ </xsl:if>
+ <xsl:if test="@text:style-name='UnOrdered List'">
+ <itemizedlist>
+ <title></title>
+ <xsl:apply-templates/>
+ </itemizedlist>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text:list-item">
+ <xsl:if test="parent::text:unordered-list/@text:style-name='Var List'">
+ <varlistentry>
+ <xsl:for-each select="text:p[@text:style-name='VarList Term']">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </varlistentry>
+ </xsl:if>
+ <xsl:if test="not(parent::text:unordered-list/@text:style-name='Var List')">
+ <listitem>
+ <xsl:apply-templates/>
+ </listitem>
+ </xsl:if>
+</xsl:template>
+
+
+
+
+
+<xsl:template match="dc:title">
+</xsl:template>
+
+<xsl:template match="dc:description">
+ <abstract><para>
+ <xsl:apply-templates/>
+ </para>
+ </abstract>
+</xsl:template>
+
+<xsl:template match="dc:subject">
+</xsl:template>
+
+
+<xsl:template match="meta:generator">
+</xsl:template>
+
+<xsl:template match="draw:plugin">
+<xsl:element name="audioobject">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:attribute name="width">
+ </xsl:attribute>
+</xsl:element>
+</xsl:template>
+
+<xsl:template match="text:footnote">
+ <footnote>
+ <xsl:apply-templates/>
+ </footnote>
+</xsl:template>
+
+<xsl:template match="text:footnote-body">
+ <xsl:apply-templates/>
+</xsl:template>
+
+
+
+<xsl:template match="draw:image">
+<xsl:choose>
+ <xsl:when test="parent::text:p[@text:style-name='Mediaobject']">
+ <xsl:element name="imageobject">
+ <xsl:element name="imagedata">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ </xsl:element>
+ <xsl:element name="caption">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="inlinegraphic">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:attribute name="width"></xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+
+
+
+
+<xsl:template match="text:span">
+
+ <xsl:if test="./@text:style-name='GuiMenu'">
+ <xsl:element name="guimenu">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="./@text:style-name='GuiSubMenu'">
+ <xsl:element name="guisubmenu">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='GuiMenuItem'">
+ <xsl:element name="guimenuitem">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='GuiButton'">
+ <xsl:element name="guibutton">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='GuiButton'">
+ <xsl:element name="guibutton">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='GuiLabel'">
+ <xsl:element name="guilabel">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='Emphasis'">
+ <xsl:element name="emphasis">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='FileName'">
+ <xsl:element name="filename">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='Application'">
+ <xsl:element name="application">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='Command'">
+ <command>
+ <xsl:apply-templates/>
+ </command>
+ </xsl:if>
+ <xsl:if test="@text:style-name='SubScript'">
+ <subscript>
+ <xsl:apply-templates/>
+ </subscript>
+ </xsl:if>
+ <xsl:if test="@text:style-name='SuperScript'">
+ <superscript>
+ <xsl:apply-templates/>
+ </superscript>
+ </xsl:if>
+ <xsl:if test="@text:style-name='SystemItem'">
+ <systemitem>
+ <xsl:apply-templates/>
+ </systemitem>
+ </xsl:if>
+ <xsl:if test="@text:style-name='ComputerOutput'">
+ <computeroutput>
+ <xsl:apply-templates/>
+ </computeroutput>
+ </xsl:if>
+ <xsl:if test="@text:style-name='Highlight'">
+ <highlight>
+ <xsl:apply-templates/>
+ </highlight>
+ </xsl:if>
+ <xsl:if test="@text:style-name='KeyCap'">
+ <keycap>
+ <xsl:apply-templates/>
+ </keycap>
+ </xsl:if>
+ <xsl:if test="@text:style-name='KeySym'">
+ <xsl:element name="keysym">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name='KeyCombo'">
+ <keycombo>
+ <xsl:apply-templates/>
+ </keycombo>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template match="text:a">
+ <xsl:choose>
+ <xsl:when test="contains(@xlink:href,'://')">
+ <xsl:element name="ulink">
+ <xsl:attribute name="url">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="not(contains(@xlink:href,'#'))">
+ <xsl:element name="olink">
+ <xsl:attribute name="targetdocent">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="linkvar" select="substring-after(@xlink:href,'#')"/>
+ <xsl:element name="link">
+ <xsl:attribute name="linkend">
+ <xsl:value-of select="substring-before($linkvar,'%')"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/assets/xml/xmerge/downloads/sofftodocbookheadings.xsl b/assets/xml/xmerge/downloads/sofftodocbookheadings.xsl
new file mode 100644
index 0000000..dd6345c
--- /dev/null
+++ b/assets/xml/xmerge/downloads/sofftodocbookheadings.xsl
@@ -0,0 +1,844 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!-- # The Contents of this file are made available subject to the terms of
+ # either of the following licenses
+ #
+ # - GNU Lesser General Public License Version 2.1
+ # - Sun Industry Standards Source License Version 1.1
+ #
+ # Sun Microsystems Inc., October, 2000
+ #
+ # GNU Lesser General Public License Version 2.1
+ # =============================================
+ # Copyright 2000 by Sun Microsystems, Inc.
+ # 901 San Antonio Road, Palo Alto, CA 94303, USA
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+ # License version 2.1, as published by the Free Software Foundation.
+ #
+ # This library is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ # Lesser General Public License for more details.
+ #
+ # You should have received a copy of the GNU Lesser General Public
+ # License along with this library; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ # MA 02111-1307 USA
+ #
+ #
+ # Sun Industry Standards Source License Version 1.1
+ # =================================================
+ # The contents of this file are subject to the Sun Industry Standards
+ # Source License Version 1.1 (the "License"); You may not use this file
+ # except in compliance with the License. You may obtain a copy of the
+ # License at http://www.openoffice.org/license.html.
+ #
+ # Software provided under this License is provided on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ # See the License for the specific provisions governing your rights and
+ # obligations concerning the Software.
+ #
+ # The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ #
+ # Copyright: 2000 by Sun Microsystems, Inc.
+ #
+ # All Rights Reserved.
+ #
+ # Contributor(s): _______________________________________
+ #
+ #-->
+<xsl:stylesheet version="1.0" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:office="http://openoffice.org/2000/office" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyl [...]
+<xsl:output method="xml" indent="yes" omit-xml-declaration="no" />
+<!--<xsl:output method="xml" version="1.0" encoding="UTF-8" doctype-public="-//Sun Microsystems//DTD Simplified DocBook XML V1.0CR2-Based SupportDoc Subset
+V1.0//EN" doctype-system="file:///e:/temp/dtd/docbookx.dtd" />-->
+
+
+
+<xsl:key name='headchildren' match="text:p |table:table | text:span | text:ordered-list | office:annotation | text:unordered-list | text:footnote | text:a | text:list-item | draw:plugin | draw:text-box | text:footnote-body | text:section"
+ use="generate-id((..|preceding-sibling::text:h[@text:level='1']|preceding-sibling::text:h[@text:level='2']|preceding-sibling::text:h[@text:level='3']|preceding-sibling::text:h[@text:level='4']|preceding-sibling::text:h[@text:level='5'])[last()])"/>
+
+<xsl:key name="children" match="text:h[@text:level='2']"
+ use="generate-id(preceding-sibling::text:h[@text:level='1'][1])"/>
+
+<xsl:key name="children" match="text:h[@text:level='3']"
+ use="generate-id(preceding-sibling::text:h[@text:level='2' or @text:level='1'][1])"/>
+
+<xsl:key name="children" match="text:h[@text:level='4']"
+ use="generate-id(preceding-sibling::text:h[@text:level='3' or @text:level='2' or @text:level='1'][1])"/>
+
+<xsl:key name="children" match="text:h[@text:level='5']"
+ use="generate-id(preceding-sibling::text:h[@text:level='4' or @text:level='3' or @text:level='2' or @text:level='1'][1])"/>
+
+
+<xsl:template match="text:h[@text:level='1']">
+<xsl:choose>
+ <xsl:when test=".='Abstract'">
+ <abstract>
+ <xsl:apply-templates select="key('headchildren', generate-id())"/>
+ <xsl:apply-templates select="key('children', generate-id())"/>
+ </abstract>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="current" select="@text:level"/>
+ <xsl:with-param name="prev" select="1"/>
+ </xsl:call-template>
+ <!--<sect1>
+ <title>
+ <xsl:apply-templates/>
+ </title>
+ <xsl:apply-templates select="key('headchildren', generate-id())"/>
+ <xsl:apply-templates select="key('children', generate-id())"/>
+ </sect1>-->
+ </xsl:otherwise>
+</xsl:choose>
+
+</xsl:template>
+
+<xsl:template match="text:h[@text:level='2'] | text:h[@text:level='3']| text:h[@text:level='4'] | text:h[@text:level='5']">
+<xsl:variable name="level" select="@text:level"></xsl:variable>
+<xsl:call-template name="make-section">
+ <xsl:with-param name="current" select="$level"/>
+ <xsl:with-param name="prev" select="preceding-sibling::text:h[@text:level < $level][1]/@text:level "/>
+</xsl:call-template>
+
+</xsl:template>
+
+<xsl:template name="make-section">
+ <xsl:param name="current"/>
+ <xsl:param name="prev"/>
+ <xsl:choose>
+ <xsl:when test="$current > $prev+1">
+ <xsl:text disable-output-escaping="yes"><sect</xsl:text><xsl:value-of select="$prev +1"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ <title>
+ </title>
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="current" select="$current"/>
+ <xsl:with-param name="prev" select="$prev +1"/>
+ </xsl:call-template>
+ <xsl:text disable-output-escaping="yes"></sect</xsl:text><xsl:value-of select="$prev +1 "/><xsl:text disable-output-escaping="yes">></xsl:text>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:text disable-output-escaping="yes"><sect</xsl:text><xsl:value-of select="$current"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ <title>
+ <xsl:apply-templates/>
+ </title>
+ <xsl:apply-templates select="key('headchildren', generate-id())"/>
+ <xsl:apply-templates select="key('children', generate-id())"/>
+ <xsl:text disable-output-escaping="yes"></sect</xsl:text><xsl:value-of select="$current"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="text:p">
+ <para>
+ <xsl:apply-templates/>
+ </para>
+</xsl:template>
+
+
+
+<xsl:template match="/office:document">
+ <article>
+ <xsl:attribute name="lang"><xsl:value-of select="/office:document/office:meta/dc:language"/>
+ </xsl:attribute>
+ <xsl:apply-templates />
+ </article>
+</xsl:template>
+
+<xsl:template match="office:meta">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="text:ordered-list">
+ <orderedlist>
+ <xsl:apply-templates/>
+ </orderedlist>
+</xsl:template>
+
+
+
+<xsl:template match="meta:editing-cycles">
+</xsl:template>
+
+<xsl:template match="meta:user-defined">
+</xsl:template>
+
+<xsl:template match="meta:editing-duration">
+</xsl:template>
+
+<xsl:template match="dc:language">
+</xsl:template>
+
+<xsl:template match="dc:date">
+ <!--<pubdate>
+ <xsl:value-of select="substring-before(.,'T')"/>
+ </pubdate>-->
+</xsl:template>
+
+<xsl:template match="meta:creation-date">
+</xsl:template>
+
+<xsl:template match="office:body">
+<xsl:apply-templates select="key('headchildren', generate-id())"/>
+ <xsl:apply-templates select="text:h[@text:level='1']"/>
+ <!--<xsl:apply-templates/>-->
+</xsl:template>
+
+<xsl:template match="office:styles">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="office:script">
+</xsl:template>
+
+
+<xsl:template match="office:settings">
+</xsl:template>
+
+<xsl:template match="office:font-decls">
+</xsl:template>
+
+<xsl:template match="text:section">
+<xsl:choose>
+ <xsl:when test="@text:name='ArticleInfo'">
+ <articleinfo>
+ <title><xsl:value-of select="text:p[@text:style-name='Document Title']"/></title>
+ <subtitle><xsl:value-of select="text:p[@text:style-name='Document SubTitle']"/></subtitle>
+ <edition><xsl:value-of select="text:p/text:variable-set[@text:name='articleinfo.edition']"/></edition>
+ <xsl:for-each select="text:p/text:variable-set[substring-after(@text:name,'articleinfo.releaseinfo')]">
+ <releaseinfo>
+ <xsl:value-of select="."/>
+ </releaseinfo>
+ </xsl:for-each>
+ <xsl:call-template name="ArticleInfo"><xsl:with-param name="level" select="0"/></xsl:call-template>
+
+ </articleinfo>
+ </xsl:when>
+ <xsl:when test="@text:name='Abstract'">
+ <abstract>
+ <xsl:apply-templates/>
+ </abstract>
+ </xsl:when>
+ <xsl:when test="@text:name='Appendix'">
+ <appendix>
+ <xsl:apply-templates/>
+ </appendix>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="sectvar"><xsl:text>sect</xsl:text><xsl:value-of select="count(ancestor::text:section)+1"/></xsl:variable>
+ <xsl:variable name="idvar"><xsl:text> id="</xsl:text><xsl:value-of select="@text:name"/><xsl:text>"</xsl:text></xsl:variable>
+ <xsl:text disable-output-escaping="yes"><</xsl:text><xsl:value-of select="$sectvar"/><xsl:value-of select="$idvar"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ <xsl:apply-templates/>
+ <xsl:text disable-output-escaping="yes"></</xsl:text><xsl:value-of select="$sectvar"/><xsl:text disable-output-escaping="yes">></xsl:text>
+ </xsl:otherwise>
+
+
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="ArticleInfo">
+ <xsl:param name="level"/>
+ <xsl:variable name="author"><xsl:value-of select="concat('articleinfo.author_','', $level)"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name, $author )]">
+ <xsl:call-template name="Author"><xsl:with-param name="AuthorLevel" select="0"/></xsl:call-template>
+ <xsl:call-template name="Copyright"><xsl:with-param name="CopyrightLevel" select="0"/></xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="Copyright">
+ <xsl:param name="CopyrightLevel"/>
+
+ <xsl:variable name="Copyright"><xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[contains(@text:name,$Copyright)]">
+ <copyright>
+ <xsl:call-template name="Year">
+ <xsl:with-param name="CopyrightLevel" select="$CopyrightLevel"/>
+ <xsl:with-param name="YearlLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Holder">
+ <xsl:with-param name="CopyrightLevel" select="$CopyrightLevel"/>
+ <xsl:with-param name="HolderlLevel" select="0"/>
+
+ </xsl:call-template>
+ </copyright>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Year">
+ <xsl:param name="CopyrightLevel"/>
+ <xsl:param name="YearLevel"/>
+ <xsl:variable name="Copyright"><xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/></xsl:variable>
+<xsl:variable name="Year"><xsl:value-of select="concat($Copyright,'',concat('.year_','',$YearLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Year]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Year]"/>
+ </orgname>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Holder">
+ <xsl:param name="CopyrightLevel"/>
+ <xsl:param name="HolderLevel"/>
+ <xsl:variable name="Copyright"><xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/></xsl:variable>
+<xsl:variable name="Holder"><xsl:value-of select="concat($Copyright,'',concat('.holder_','',$HolderLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Holder]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Holder]"/>
+ </orgname>
+ </xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="Author">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name, $Author )]">
+ <author>
+ <xsl:call-template name="Surname"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/><xsl:with-param name="SurnameLevel" select="0"/></xsl:call-template>
+ <xsl:call-template name="Firstname"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/><xsl:with-param name="FirstnameLevel" select="0"/></xsl:call-template>
+ <xsl:call-template name="Affiliation"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/><xsl:with-param name="AffilLevel" select="0"/></xsl:call-template>
+ </author>
+ <xsl:call-template name="Author"><xsl:with-param name="AuthorLevel" select="$AuthorLevel+1"/></xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="Surname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="SurnameLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:variable name="Surname"><xsl:value-of select="concat($Author,'',concat('.surname_','',$SurnameLevel))"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[@text:name=$Surname]">
+ <surname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Surname]"/>
+ </surname>
+ <xsl:call-template name="Surname"><xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="SurnameLevel" select="SurnameLevel+1"/>
+ </xsl:call-template>
+
+ </xsl:if>
+</xsl:template>
+
+
+
+
+<xsl:template name="Firstname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="FirstnameLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:variable name="Firstname"><xsl:value-of select="concat($Author,'',concat('.firstname_','',$FirstnameLevel))"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[@text:name=$Firstname]">
+ <firstname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Firstname]"/>
+ </firstname>
+ <xsl:call-template name="Surname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="FirstnameLevel" select="FirstnameLevel+1"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+
+<xsl:template name="Affiliation">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+ <xsl:variable name="Affil"><xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/></xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name,$Affil)]">
+ <affiliation>
+ <xsl:call-template name="Orgname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="$AffilLevel"/><xsl:with-param name="OrgLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Address">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="$AffilLevel"/><xsl:with-param name="AddressLevel" select="0"/>
+
+ </xsl:call-template>
+ </affiliation>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="Orgname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:param name="OrgLevel"/>
+
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+<xsl:variable name="Affil"><xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/></xsl:variable>
+ <xsl:variable name="Org"><xsl:value-of select="concat($Affil,'',concat('.orgname_','',$OrgLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Org]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Org]"/>
+ </orgname>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="Address">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:param name="AddressLevel"/>
+
+ <xsl:variable name="Author"><xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/></xsl:variable>
+<xsl:variable name="Affil"><xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/></xsl:variable>
+ <xsl:variable name="Address"><xsl:value-of select="concat($Affil,'',concat('.address_','',$AddressLevel))"/></xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Address]">
+ <address>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Address]"/>
+ </address>
+ </xsl:if>
+</xsl:template>
+
+
+
+
+<xsl:template match="text:p[@text:style-name='Document Title']">
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Document SubTitle']">
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='Section Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Appendix Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='VarList Item']">
+ <xsl:if test="not(preceding-sibling::text:p[@text:style-name='VarList Item'])">
+ <xsl:text disable-output-escaping="yes"><listitem></xsl:text>
+ </xsl:if>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ <xsl:if test="not(following-sibling::text:p[@text:style-name='VarList Item'])">
+ <xsl:text disable-output-escaping="yes"></listitem></xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='VarList Term']">
+ <term>
+ <xsl:apply-templates/>
+ </term>
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Section1 Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='Section2 Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+
+<xsl:template match="text:p[@text:style-name='Section3 Title']">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+</xsl:template>
+
+<xsl:template match="text:footnote-citation">
+</xsl:template>
+
+<xsl:template match="text:p[@text:style-name='Mediaobject']">
+ <mediaobject>
+ <xsl:apply-templates/>
+ </mediaobject>
+</xsl:template>
+
+<xsl:template match="office:annotation/text:p">
+ <note>
+ <remark>
+ <xsl:apply-templates/>
+ </remark>
+ </note>
+</xsl:template>
+
+<!--<xsl:template match="meta:initial-creator">
+ <author>
+ <xsl:apply-templates />
+ </author>
+</xsl:template>-->
+
+<xsl:template match="table:table">
+ <xsl:choose>
+ <xsl:when test="following-sibling::text:p[@text:style-name='Table']">
+ <table frame="all">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@table:name"/>
+ </xsl:attribute>
+ <title>
+ <xsl:value-of select="following-sibling::text:p[@text:style-name='Table']"/>
+ </title>
+ <xsl:call-template name="generictable"/>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <informaltable frame="all">
+ <xsl:call-template name="generictable"/>
+ </informaltable>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template name="generictable">
+ <xsl:variable name="cells" select="count(descendant::table:table-cell)" ></xsl:variable>
+ <xsl:variable name="rows"><xsl:value-of select="count(descendant::table:table-row) "/></xsl:variable>
+ <xsl:variable name="cols"><xsl:value-of select="$cells div $rows"/></xsl:variable>
+ <xsl:variable name="numcols">
+ <xsl:choose>
+ <xsl:when test="child::table:table-column/@table:number-columns-repeated">
+ <xsl:value-of select="number(table:table-column/@table:number-columns-repeated+1)"/>
+ </xsl:when>
+ <xsl:otherwise >
+ <xsl:value-of select="$cols"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="tgroup">
+ <xsl:attribute name="cols">
+ <xsl:value-of select="$numcols"/>
+ </xsl:attribute>
+ <xsl:call-template name="colspec"><xsl:with-param name="left" select="1" /></xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>
+
+
+
+<xsl:template name="colspec">
+ <xsl:param name="left"/>
+ <xsl:if test="number($left < ( table:table-column/@table:number-columns-repeated +2) )">
+ <xsl:element name="colspec">
+ <xsl:attribute name="colnum"><xsl:value-of select="$left"/></xsl:attribute>
+ <xsl:attribute name="colname">c<xsl:value-of select="$left"/></xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="colspec"><xsl:with-param name="left" select="$left+1" /></xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+
+
+<xsl:template match="table:table-column">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="table:table-header-rows">
+ <thead>
+ <xsl:apply-templates/>
+ </thead>
+</xsl:template>
+
+<xsl:template match="table:table-header-rows/table:table-row">
+ <row>
+ <xsl:apply-templates />
+ </row>
+</xsl:template>
+
+<xsl:template match="table:table/table:table-row">
+ <xsl:if test="not(preceding-sibling::table:table-row)">
+ <xsl:text disable-output-escaping="yes"><tbody></xsl:text>
+ </xsl:if>
+ <row>
+ <xsl:apply-templates />
+ </row>
+ <xsl:if test="not(following-sibling::table:table-row)">
+ <xsl:text disable-output-escaping="yes"></tbody></xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="table:table-cell">
+ <xsl:element name="entry">
+ <xsl:if test="@table:number-columns-spanned >'1'">
+ <xsl:attribute name="namest"><xsl:value-of select="concat('c',count(preceding-sibling::table:table-cell[not(@table:number-columns-spanned)]) +sum(preceding-sibling::table:table-cell/@table:number-columns-spanned)+1)"/></xsl:attribute>
+ <xsl:attribute name="nameend"><xsl:value-of select="concat('c',count(preceding-sibling::table:table-cell[not(@table:number-columns-spanned)]) +sum(preceding-sibling::table:table-cell/@table:number-columns-spanned)+ @table:number-columns-spanned)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates />
+ </xsl:element>
+</xsl:template>
+
+<xsl:template match="text:p">
+<xsl:choose>
+ <xsl:when test="@text:style-name='Table'">
+ </xsl:when>
+ <xsl:otherwise>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="text:unordered-list">
+<xsl:choose>
+ <xsl:when test="@text:style-name='Var List'">
+ <variablelist>
+ <xsl:apply-templates/>
+ </variablelist>
+ </xsl:when>
+ <xsl:when test="@text:style-name='UnOrdered List'">
+ <variablelist>
+ <xsl:apply-templates/>
+ </variablelist>
+ </xsl:when>
+ <xsl:otherwise>
+ <itemizedlist>
+ <title></title>
+ <xsl:apply-templates/>
+ </itemizedlist>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template match="text:list-item">
+ <xsl:if test="parent::text:unordered-list/@text:style-name='Var List'">
+ <varlistentry>
+ <xsl:for-each select="text:p[@text:style-name='VarList Term']">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </varlistentry>
+ </xsl:if>
+ <xsl:if test="not(parent::text:unordered-list/@text:style-name='Var List')">
+ <listitem>
+ <xsl:apply-templates/>
+ </listitem>
+ </xsl:if>
+</xsl:template>
+
+
+
+
+
+<xsl:template match="dc:title">
+</xsl:template>
+
+<xsl:template match="dc:description">
+ <abstract><para>
+ <xsl:apply-templates/>
+ </para>
+ </abstract>
+</xsl:template>
+
+<xsl:template match="dc:subject">
+</xsl:template>
+
+
+<xsl:template match="meta:generator">
+</xsl:template>
+
+<xsl:template match="draw:plugin">
+<xsl:element name="audioobject">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:attribute name="width">
+ </xsl:attribute>
+</xsl:element>
+</xsl:template>
+
+<xsl:template match="text:footnote">
+ <footnote>
+ <xsl:apply-templates/>
+ </footnote>
+</xsl:template>
+
+<xsl:template match="text:footnote-body">
+ <xsl:apply-templates/>
+</xsl:template>
+
+
+<xsl:template match="draw:text-box">
+</xsl:template>
+
+
+
+<xsl:template match="draw:image">
+<xsl:choose>
+ <xsl:when test="parent::text:p[@text:style-name='Mediaobject']">
+ <xsl:element name="imageobject">
+ <xsl:element name="imagedata">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ </xsl:element>
+ <xsl:element name="caption">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="inlinegraphic">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:attribute name="width"></xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+
+
+
+
+<xsl:template match="text:span">
+<xsl:choose>
+<xsl:when test="./@text:style-name='GuiMenu'">
+ <xsl:element name="guimenu">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="./@text:style-name='GuiSubMenu'">
+ <xsl:element name="guisubmenu">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiMenuItem'">
+ <xsl:element name="guimenuitem">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiButton'">
+ <xsl:element name="guibutton">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiButton'">
+ <xsl:element name="guibutton">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiLabel'">
+ <xsl:element name="guilabel">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Emphasis'">
+ <xsl:element name="emphasis">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='FileName'">
+ <xsl:element name="filename">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Application'">
+ <xsl:element name="application">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Command'">
+ <command>
+ <xsl:apply-templates/>
+ </command>
+ </xsl:when>
+ <xsl:when test="@text:style-name='SubScript'">
+ <subscript>
+ <xsl:apply-templates/>
+ </subscript>
+ </xsl:when>
+ <xsl:when test="@text:style-name='SuperScript'">
+ <superscript>
+ <xsl:apply-templates/>
+ </superscript>
+ </xsl:when>
+ <xsl:when test="@text:style-name='SystemItem'">
+ <systemitem>
+ <xsl:apply-templates/>
+ </systemitem>
+ </xsl:when>
+ <xsl:when test="@text:style-name='ComputerOutput'">
+ <computeroutput>
+ <xsl:apply-templates/>
+ </computeroutput>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Highlight'">
+ <highlight>
+ <xsl:apply-templates/>
+ </highlight>
+ </xsl:when>
+ <xsl:when test="@text:style-name='KeyCap'">
+ <keycap>
+ <xsl:apply-templates/>
+ </keycap>
+ </xsl:when>
+ <xsl:when test="@text:style-name='KeySym'">
+ <xsl:element name="keysym">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='KeyCombo'">
+ <keycombo>
+ <xsl:apply-templates/>
+ </keycombo>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+</xsl:choose>
+
+</xsl:template>
+
+
+<xsl:template match="text:a">
+ <xsl:choose>
+ <xsl:when test="contains(@xlink:href,'://')">
+ <xsl:element name="ulink">
+ <xsl:attribute name="url">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="not(contains(@xlink:href,'#'))">
+ <xsl:element name="olink">
+ <xsl:attribute name="targetdocent">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="linkvar" select="substring-after(@xlink:href,'#')"/>
+ <xsl:element name="link">
+ <xsl:attribute name="linkend">
+ <xsl:value-of select="substring-before($linkvar,'%')"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/assets/xml/xmerge/downloads/xmergesync.zip b/assets/xml/xmerge/downloads/xmergesync.zip
new file mode 100644
index 0000000..326b148
Binary files /dev/null and b/assets/xml/xmerge/downloads/xmergesync.zip differ
diff --git a/assets/xml/xmerge/plugins/images/conversion-ppc2002.jpg b/assets/xml/xmerge/plugins/images/conversion-ppc2002.jpg
new file mode 100644
index 0000000..56565f2
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/conversion-ppc2002.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/conversion-ppc2k.jpg b/assets/xml/xmerge/plugins/images/conversion-ppc2k.jpg
new file mode 100644
index 0000000..b86a64e
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/conversion-ppc2k.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/conversion-sxw.jpg b/assets/xml/xmerge/plugins/images/conversion-sxw.jpg
new file mode 100644
index 0000000..83328ee
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/conversion-sxw.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/formula_pxl.jpg b/assets/xml/xmerge/plugins/images/formula_pxl.jpg
new file mode 100644
index 0000000..957c1f4
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/formula_pxl.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/formula_sxc.jpg b/assets/xml/xmerge/plugins/images/formula_sxc.jpg
new file mode 100644
index 0000000..87e62e3
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/formula_sxc.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/moddoc.jpg b/assets/xml/xmerge/plugins/images/moddoc.jpg
new file mode 100755
index 0000000..71d98c3
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/moddoc.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/mpdbmod.jpg b/assets/xml/xmerge/plugins/images/mpdbmod.jpg
new file mode 100755
index 0000000..fcd546d
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/mpdbmod.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/mpdborig.jpg b/assets/xml/xmerge/plugins/images/mpdborig.jpg
new file mode 100755
index 0000000..6af4382
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/mpdborig.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/origdoc.jpg b/assets/xml/xmerge/plugins/images/origdoc.jpg
new file mode 100755
index 0000000..930fa74
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/origdoc.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/pdbmod.jpg b/assets/xml/xmerge/plugins/images/pdbmod.jpg
new file mode 100755
index 0000000..51c5ca0
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/pdbmod.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/pdborig.jpg b/assets/xml/xmerge/plugins/images/pdborig.jpg
new file mode 100755
index 0000000..c4b6b85
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/pdborig.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/spreadsheetmod.jpg b/assets/xml/xmerge/plugins/images/spreadsheetmod.jpg
new file mode 100755
index 0000000..9a7a3f9
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/spreadsheetmod.jpg differ
diff --git a/assets/xml/xmerge/plugins/images/spreadsheetorig.jpg b/assets/xml/xmerge/plugins/images/spreadsheetorig.jpg
new file mode 100755
index 0000000..8e814b1
Binary files /dev/null and b/assets/xml/xmerge/plugins/images/spreadsheetorig.jpg differ
diff --git a/assets/xml/xmerge/smalldeviceWin.zip b/assets/xml/xmerge/smalldeviceWin.zip
new file mode 100755
index 0000000..f8866ee
Binary files /dev/null and b/assets/xml/xmerge/smalldeviceWin.zip differ
diff --git a/assets/xml/xmerge/xmerge_src.zip b/assets/xml/xmerge/xmerge_src.zip
new file mode 100644
index 0000000..d1df1af
Binary files /dev/null and b/assets/xml/xmerge/xmerge_src.zip differ
diff --git a/assets/xml/xml_specification.pdf b/assets/xml/xml_specification.pdf
new file mode 100644
index 0000000..ac82390
Binary files /dev/null and b/assets/xml/xml_specification.pdf differ
diff --git a/assets/xml/xml_specification_draft.pdf b/assets/xml/xml_specification_draft.pdf
new file mode 100644
index 0000000..ac82390
Binary files /dev/null and b/assets/xml/xml_specification_draft.pdf differ
diff --git a/assets/xml/xmloff.css b/assets/xml/xmloff.css
new file mode 100644
index 0000000..ddb79fb
--- /dev/null
+++ b/assets/xml/xmloff.css
@@ -0,0 +1,70 @@
+
+table.infotable
+{
+ background-color: #ffffff ;
+
+ width: 100% ;
+ border-spacing: 1px ;
+ padding: 4px ;
+}
+
+
+/* Unfortunately, Internet Explorer doesn't know attribute dependent CSS rules,
+so to color the table tops appropriatly, we can't use the following rule:
+
+ table.infotable th[colspan]
+
+Instead, I decided to use 'td' inside 'thead' as a marker for this kind of
+formatting.
+*/
+
+table.infotable thead td
+{
+ color: #ffffff ;
+ background-color: #00315a ;
+
+ text-align: center ;
+ padding: 4px ;
+
+ font-family: arial, helvetica ;
+ font-weight: bold ;
+ font-size: smaller ;
+}
+
+table.infotable th[colspan]
+{
+ color: #ffffff ;
+ background-color: #00315a ;
+
+ /* others inherited from "table.infotable th" below */
+}
+
+table.infotable th
+{
+ color: #00315a ;
+ background-color: #99ccff ;
+
+ text-align: center ;
+ padding: 4px ;
+
+ font-family: arial, helvetica ;
+ font-weight: bold ;
+ font-size: smaller ;
+}
+
+table.infotable td
+{
+ background-color: #f0f0f0 ;
+ vertical-align: top ;
+ padding: 4px ;
+}
+
+p
+{
+ text-align: justify;
+}
+
+dt
+{
+ font-weight: bold
+}
\ No newline at end of file