Faq/General/045/da

LibreOffice og XML
Du har uden tvivl ofte hørt om XML, hørt at LibreOffices filformat er XML, men hvad er det præcis, hvad betyder det, og hvad er XML i den sidste ende?

Hvad er XML?
Dette akronym står for eXtensible Markup Language (udvidelsesbart opmærknings­sprog).

XML er en del af klassen metasprog, faktisk et undersæt af SGML. Okay, hvad er så SGML (Standard Generalized Markup Language – standard generaliseret opmærkningssprog)? Det er et sprog, der lader dig oprette strukturerede og modulære dokumenter, Konkret betyder det, at du kan oprette et dokument med så forskellige data som lyd, data fra en database eller tekst og billeder. SGML er blevet defineret til en bred vifte af applikationer og vil vil holde på meget lang sigt. Dette sprog er meget udstrakt og komplekst, XML blev skabt for at forenkle SGML.

Hvad der i starten kan være meget forvirrende er, at HTML ligner XML meget. Det er et sprog med mærker, der åbner og lukker. Den store forskel er imidlertid, at HTML blev defineret med mærker, der beskriver præsentationen, mens XML-mærker handler om indholdet. Men ja, HTML er et undersæt af SGML, men kun til at behandle data på nettet.

Kort og godt: XML er en klar måde (og ikke et programmeringssprog eller et nyt HTML) at strukturere, beskrive og udveksle data på. Indholdet og layoutet er adskilt for at tillade udvekslingen. Indholdet kan så genbruges i andre formularer eller andre medier: Data kan være af enhver art: kemiske formler, finansielle data, musikdata, tekst ...

Et eksempel på xml-indhold i et LibreOffice-dokument:  <!DOCTYPE office:document-meta PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "office.dtd">  LibreOffice/3.3$Win32 LibreOffice_project/330m18$Build-4 Sophie Gautier 2011-01-12T19:07:36  

Du kan se, at mærkerne <> kendetegner dokumentindholdet. Et åbent mærke skal altid lukkes:  vil blive afsluttet af  For at indsætte information i dokumentet, giver vi det attributter, altid fulgt af en værdi. Attributten  har   (dokumentet har 17 sider). Vi kan også sætte kommentarer som denne: indeholder information om dokumentet (forfatter, dato for seneste sikkerhedskopi). Billeder gemmes i deres medfødte format inde i zip-filen. Nu forstår du, hvorfor LibreOffice-filer optager så lidt plads på din harddisk!
 * indeholder de typografier, der bruges i dokumentet
 * indeholder hoveddokumentets indhold (tekst, billeder, grafik... )
 * er sædvanligvis specifikt for et program og indeholder nogle parametre såsom den valgte printer...
 * indeholder supplerende information om andre filer (såsom MIME-typen eller indkodningen).

Lær mere om LibreOffices filformater på webstedet http://xml.openoffice.org.

Bemærk, at et XML-dokument ikke kan vises, som det er, det har brug for et transformationssprog (XSLT) og et formateringssprog til objekter (XSL-FO) for at være i stand til at vise informationen korrekt (fx need: hvis dit dokument sammensat af forskellige dele, der er organiseret hver for sig eller hvis det indeholder en tabel med formatering ...)

DTD Document Type-definition
DTD'en vil specificere, hvilke elementer og attributter, der vil blive brugt i XML-dokumentet og vil beskrive dets struktur og indhold. DTD'en kan være internt i dokumentet (definitionerne er indeholdt i selve dokumentet) eller eksternt (det er placeret i en lokal fil eller kaldes af en URL). XML-standarden bemyndiger ikke DTD'en, og vi taler om et XML-dokument, hvis det har et gyldigt DTD eller et velformet XML-dokument, hvis det ikke indeholder den (men respekterer XML-standarden).

Indholdseksempel fra en LibreOffice DTD

Opregner de oprindelige forfattere af denne formular (med initial="true"). Initial Writers er et udtryk fra PDL (License). Hvis en af disse forfattere overdrog copyrighten til nogen anden fx firmaet, de arbejder for, bruger de attributten copyright="..." Og nævner indehaveren af copyrighten. -->   <!ELEMENT authors ( author+ ) > <!ELEMENT author (#PCDATA)> <!ATTLIST author id  ID  #REQUIRED initial CDATA #IMPLIED email CDATA #REQUIRED> <!--

XML-skema
Et skema definerer også strukturen i et XML-dokument; det er imidlertid mere fleksibelt end en DTD til at definere elementtyper. Det bruger det erhvervede DTD til at definere modellerne. Skemaer er underlagt en W3C-specifikation.

XSLT : eXtensible Style Language Transformation
Det er programmeringssprog til at transformere XML-dokumenter til andre formularer såsom RTF, HTML or PDF, osv.. Dette sprog er deklarativt og ikke-proceduralt (ingen algoritme), hvilket gør det lettere for ikke-udviklere at gå til. Det er selv skrevet i XML, det kan genfortolkes. XSLT transformerer faktisk XML-træet til regler for modeller, der beskriver et typografi-ark. Det sammenlignes ofte med CSS, fordi det lige som CSS producerer sådanne regler, fordi rækkefølgen af disse regler i dokumentet ikke betyder noget og det har også forrang, når flere regler kan anvendes. Forskellen er, at hvis en CSS er tom, vil det ikke påvirke det html-genererede dokument, det vil simpelthen blive ignoreret som bare et layout, mens XSLT'en vil generere et tomt dokument (det er faktisk ikke helt rigtigt, fordi specifikationen har defineret interne regler, der stadig findes, så dokumentet er aldrig rigtig tomt :-). Et meget godt sted, der er fuldt af ressourcer og XSLT-filtre til brug i LibreOffice: http://www.maxopeninfo.com/

XPATH
Dette er det deklarative sprog, der er forbundet med XSLT, der tillader definition af stiplacering inde i XML-træet.

XSL-FO: eXtensible Style Language for Formating Object
Sproget til at definere præsentationen af generiske objekter (såsom lister, tabeller …) og ofte bruges til PDF-output. Det kommer efter en XSLT-transformation og tillader en visuel fortolkning af de behandlede objekter.

OASIS
Oasis (Organisation for the Advancement of Structured Information Standard) er et globalt konsortium, der driver udviklingen, konvergensen og adoptionen af standarder for e-handel. Derfor definerer den XML-standarden. Denne definition er baseret på LibreOffices filformater, der er åbne og konsistente med en offentliggjort DTD. Mere information kan findes her: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office

LibreOffices filformat er det samme som OpenOffice.org's og bruges også af |KOffice |Calligra, |Lotus Symphony |Google Docs, |Zoho.