Faq/General/045

    From The Document Foundation Wiki
    < Faq‎ | General
    This page is a translated version of the page Faq/General/045 and the translation is 100% complete.


    LibreOffice en XML

    Wat is XML?

    Het staat voor eXtensible Markup Language.

    XML is deel van de class metalanguages, een subset van SGML (Standard Generalized Markup Language). Dat is een taal waarin je gestructureerd en modulair documenten kunt aanmaken. Concreet betekent dit dat je een document kunt aanmaken van verschillende gegevens zoals geluid, databases, tekst of afbeeldingen. SGML is gedefinieerd voor veel verschillende applicaties en blijft lang een geldige maar complexe manier om data te beschrijven. XML is eigenlijk een eenvoudige benadering van SGML.


    Op het oog lijkt HTML op XML. Een taal met tags die geopend worden en gesloten worden. In HTML wordt echter gedefinieerd hoe de presentatie is en in XML hoe de inhoud is. HTML is ook een subset van SGML, alleen voor het verwerken van data op het internet.


    XML is een heldere manier (en geen programmeertaal of een nieuwe versie van HTML) voor het gestructureerd beschrijven en uitwisselen van gegevens. De inhoud en de lay-out zijn gescheiden. De inhoud kan worden hergebruikt voor andere formulieren of andere media. De gegevens kunnen van alles zijn: chemische formules, financiële gegevens, muziek, tekst ...

    Een voorbeeld met de XML-inhoud van een LibreOffice document :

    <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE office:document-meta PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">
      <office:meta>
            <meta:generator>LibreOffice/3.3$Win32 LibreOffice_project/330m18$Build-4</meta:generator>
            <meta:initial-creator>Sophie Gautier</meta:initial-creator>
            <meta:creation-date>2011-01-12T19:07:36</meta:creation-date>
            <meta:document-statistic meta:table-count="0" meta:image-count="31" meta:object-count="0" meta:page-count="17" meta:paragraph-count="213"
              meta:word-count="2647" meta:character-count="16353"/>
      </office:meta>

    Een <tag> wordt altijd afgesloten en het scheidt de beschrijving van de inhoud:   <office:meta> wordt afgesloten met   </office: meta> Om informatie toe te voegen geven we het attributen, die gevolgd worden door de waarde, bijvoorbeeld meta:page-count="17". Het attribuut is dan meta:page-count met de waarde value "17" (Het document heeft 17 pagina's). We kunnen ook commentaar toevoegen met:

    Wat is het doel van XML?

    In het stukje code hierboven vallen mogelijk sommige dingen op:

    • XML is iets wat je kunt lezen, het is geen programmeertaal, al heeft het wel een syntaxis.
    • Het is Unicode (Unicode: elke karakter heeft een eigen waarde, ongeacht platform, taal, programma). Het kan dus zonder problemen in een andere encoding worden opgeslagen. Bij documenten in ASCII heb je wel maar een alfabet en een schrijfsysteem. Het stukje code is in de encoding UTF-8, wat veel alfabetten ondersteund.
    • XML is object-georiënteerd: de gegevens worden dus niet genormaliseerd weergegeven met relaties, maar de objecten (concreet en abstract) worden met hun eigenschappen weergegeven, wat XML-documenten mogelijk meer intuïtief te begrijpen maakt.
    • XML maakt onderscheid tussen inhoud en lay-out, de lay-out van de gegevens worden dan aangeleverd door talen als CSS, XSL ...
    • XML heeft lage kosten voor de software componenten en is uitwisselbaar met anderen

    XML in LibreOffice

    LibreOffice heeft een gecomprimeerd intern xml-bestandsformaat. Uw LibreOffice-document is eigenlijk een archief met bestanden. Dit ziet u als u een bestand van LibreOffice met (7-zip) opent. U ziet een verzameling bestanden, waarvan enkel een xml-bestand zijn.

    Welke LibreOffice module gebruikt XML?

    Alle LibreOffice modules gebruiken XML als intern bestandsformaat. Bij Math is het gebruik iets anders, maar wel met xml (MathML is een XML standaard voor formules). Ook gebruiken enkele configuratie-bestanden XML. Deze bestandsstructuur is:

    • meta.xml bevat informatie over het document (auteur, datum laatste back-up).
    • styles.xml bevat de in het document gebruikte stijlen.
    • Content.xml bevat de inhoud (tekst, afbeeldingen, diagrammen, ...)
    • Settings.xml, specifiek per applicatie, bevat enkele parameters zoals bijvoorbeeld de geselecteerde printer.
    • META-INF/manifest.xml bevat aanvullende informatie over andere bestanden (MIME-type of encryptie).

    De afbeeldingen worden opgeslagen in het eigen formaat in de zip. Daarom blijft een LibreOffice bestand zo klein.

    Meer informatie over OpenOffice bestandstypes.

    Note pin.svg

    NB:
    Een XML-document kan niet worden getoond zoals het is, het moet omgezet worden met een taal als XSLT en een opmaaktaal voor objecten als XSL-FO om alle informatie correct weer te geven (als je document uit verschillende delen gescheiden is opgebouwd of als het een tabel bevat met opmaak.)

    DTD, XML schema, XSLT

    DTD Document Type definitie

    Een DTD beschrijft welke elementen en attributen worden gebruikt in het XML-document en beschrijft de structuur en de inhoud. De DTD kan deel uitmaken van het document of extern zijn in een eigen bestand of wordt aangeroepen met een URL. In de XML-standaard wordt de DTD niet gemandateerd, we praten over het XML-document alsof het een geldige DTD heeft en het XML-document goed is opgezet, als het niet de XML-standaard bevat maar die wel navolgt.

    Voorbeeld van de inhoud van LibreOffice DTD

                  List the initial writers in this form (with initial="true"). Initial Writers is a term from the PDL (License).
                  If one of these authors assigned copyright to somebody else, e.g. the company they are working for, use the attribute copyright="..."
                  and name the copyright holder.
          -->
          <!ELEMENT authors ( author+ ) >
          <!ELEMENT author (#PCDATA)>
          <!ATTLIST author
                      id      ID    #REQUIRED
                      initial CDATA #IMPLIED
                      email   CDATA #REQUIRED>
          <!--
    

    XML-schema

    Ook een schema definieert de structuur van een XML-document, het is wel meer flexibel dan een DTD bij het beschrijven van elementtypes. Het gebruikt de verplichte DTD om de modellen te definiëren. Schema's behoren tot de W3C specificatie.

    XSLT : eXtensible Style Language Transformation

    Dit is een programmeertaal om XML-documenten naar een andere vorm om te zetten, zoals RTF, HTML, PDF, enz. Deze taal is declaratief en niet-procedureel (geen algoritme), dit maakt het toegankelijk voor niet-programmeurs. Het is zelf geschreven in XML, het kan worden geïnterpreteerd. Eigenlijk zet XSLT de XML-boom om in modelregels die een style sheet beschrijven. Het wordt daarom vaak met CSS vergeleken, maar de volgorde van de regels maar hier niet uit. Bij meerde geldige regels is er een prioriteit.

    XPATH

    Dit is de declaratieve taal behorend bij XSLT waarmee de paden binnen de XML-boom gedefinieerd kunnen worden.

    XSL-FO : eXtensible Style Language for Formating Object

    Taal voor het definiëren van generieke objectpresentatie (zoals lijsten, tabellen ...) vaak gebruikt voor PDF uitvoer. Het komt na een XSLT transformatie en maakt een visuele interpretatie van de verwerkte objecten mogelijk.

    OASIS

    Oasis (Organisation for the Advancement of Structured Information Standard) is een consortium dat de ontwikkeling, afstemming en gebruik van standaarden voor e-business, bevorderd. Het definieert de XML-standaard. LibreOffice bestandsformaten gebruiken deze definitie, dit is een open definitie en consistent met een gepubliceerde DTD. Oasis

    Het bestandsformaat van LibreOffice is gelijk aan dat van OpenOffice.org en het wordt ook gebruikt door Calligra, Google Docs en Zoho.