Vapaa ja avoin toimisto-ohjelmisto

XML-asiakirjat » Johdanto

OpenOffice.orgin XML-tiedostomuoto

Sekä vanha OpenOffice.org 1.1.x että uusi OpenOffice.org 2.0 käyttävät samankaltaista XML-pohjaista tiedostomuotoa. Uusi OASIS OpenDocument -tiedostomuoto on kansainvälisen OASIS-standardisointikonsortion kehittämä avoin dokumenttistandardi, joka pohjautuu vahvasti OpenOffice.org 1.1.x:n tiedostomuotoon.

Asiakirjapaketin sisältö

OpenDocument-asiakirjat ovat todellisuudessa pakattuja Zip-paketteja, jotka sisältävät useita tiedostoja. Kaikki asiakirjan sisältämät grafiikat ja muut erikoisobjektit on tallennettu paketissa erilliseen alikansioon.

Asiakirjapaketin tärkeimmät tiedostot ja kansiot ovat:

Tiedosto/Kansio Kuvaus
mimetype Asiakirjan tiedostomuodon MIME-tyyppi.
content.xml Asiakirjan varsinainen sisältö.
styles.xml Asiakirjan tyylit.
meta.xml Asiakirjan metatiedot, kuten luojan ja viimeisen muokkaajan tiedot.
settings.xml Asiakirjakohtaiset asetukset.
Pictures/ Asiakirjan kuvat sisältävä kansio.

Huomaa, että vaikka tyylit on määritelty styles.xml-tiedostossa, myös content.xml-tiedostossa on tyylimäärittelyjä. Styles-tiedostossa on myös jonkin verran asiakirjan sisältöä, kuten ylä- ja alatunnisteet.

Oleellisin tiedostoista on content.xml, joka sisältää asiakirjan varsinaisen sisällön. Sen rakenne on suurinpiirtein seuraavanlainen:

<office:document-content>
  <office:font-face-decls>
    ...fonttimäärittelyjä...
  </office:font-face-decls>
  <office:automatic-styles>
    ...tyylimäärittelyjä...
  </office:automatic-styles>
  <office:body>
    <office:text>
      ...asiakirjan teksti ja rakennesisältö...
    </office:text>
  </office:body>
</office:document-content>

Tässä on esitetty tekstiasiakirjan yleisrakenne, muilla asiakirjoilla se on vastaava.

Asiakirjan käsittely XSLT:llä

Asiakirjojen muuntaminen toiseen muotoon tapahtuu helpoiten XSLT-kielellä, joskin muitakin ohjelmointikieliä ja -työkaluja voi käyttää.

XSLT-kielellä tehdyt muuntimet on mahdollista asentaa OpenOffice.orgiin suodattimiksi.

Tämä ohje ei syvenny XSLT-kielen käyttöön. Ainoa mainittava asia on nimiavaruusmäärittelyt, jotka täytyy tehdä XSLT-ohjelman alussa:

Nimiavaruusmäärittelyt

XSLT-ohjelmassa täytyy tehdä nimiavaruusmäärittelyt niiden XML-koodien osalta, joita ohjelmassa käsitellään.

OpenOffice.org 1.1:n asiakirjojen vaatimat määrittelyt ovat seuraavanlaiset:

<?xml version="1.0"?>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  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:fo="http://www.w3.org/1999/XSL/Format"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:number="http://openoffice.org/2000/datastyle"
  xmlns:svg="http://www.w3.org/2000/svg"
  xmlns:chart="http://openoffice.org/2000/chart"
  xmlns:dr3d="http://openoffice.org/2000/dr3d"
  xmlns:math="http://www.w3.org/1998/Math/MathML"
  xmlns:form="http://openoffice.org/2000/form"
  xmlns:script="http://openoffice.org/2000/script"
  office:class="text"
  office:version="1.0"
  version="1.0">

  <!-- ... XSLT-ohjelman sisältö tulee tähän ... -->

</xsl:stylesheet>

OpenOffice.org 2.0:n käyttämän OASIS OpenDocument -tiedostomuodon vaatimat määrittelyt ovat seuraavanlaiset:

<?xml version="1.0"?>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  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="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="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
  xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
  xmlns:svg="http://www.w3.org/2000/svg"
  xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
  xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
  xmlns:math="http://www.w3.org/1998/Math/MathML"
  xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
  xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
  xmlns:ooo="http://openoffice.org/2004/office"
  xmlns:ooow="http://openoffice.org/2004/writer"
  xmlns:oooc="http://openoffice.org/2004/calc"
  xmlns:dom="http://www.w3.org/2001/xml-events"
  xmlns:xforms="http://www.w3.org/2002/xforms"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  office:version="1.0"
  version="1.0">

  <!-- ... XSLT-ohjelman sisältö tulee tähän ... -->

</xsl:stylesheet>

Tässä on lueteltu kaikki nimiavaruusmäärittelyt; niistä kuitenkin tarvitaan vain ne, joita XSLT-ohjelmassa käytetään.

Esimerkkejä

Marko Grönroos
magi42@openoffice.org