a 'mooh' point

clearly an IBM drone

Venstrehåndsarbejde på Version2

Version2 er jo en aflægger af Ingeniøren - det ugentlige fagblad for ingeniører. Ingeniøren har igennem mange år opbygget et renomé som en valid faktakilde og defacto-mediet for tekniske, ingeniørmæssige diskussioner og debatter. Ingeniøren har ry for at være et lødigt, teknisk blad og selvom ingeniørkunsten hurtigt bliver politisk i det øjeblik flere end tre interessenter skal dele viden, så har Ingeniøren ikke haft ry for at være farvet politisk den ene eller den anden vej. Ingeniøren har også (tidligere) været kendt og elsket for de dybdeborende artikler om emner, der var interessante for "omverden". Et eksempel på dette var artiklen om stråling fra mobiltelefoner og -master, der hamrede en tyk pæl igennem mange af de hysteriske kommentarer, som debatten i offentligheden på daværende tidspunkt flød over af.

Desværre har IT været underrepræsenteret i Ingeniøren og derfor glædede jeg mig, da jeg så de første udgaver af Version2. Der var for mig klare tegn i sol og måne på, at Version2 kunne udvikle sig til at blive "IT-branchens Ingeniøren" med fokus på teknik og IT og med en velafbalanceret dækning af relevante emner. Specielt glædede jeg mig til at se, hvordan de ville lave Version2s udgave af de dybdeborende artikler fra Ingeniøren - her med fokus på IT.

Jeg blev derfor positivt overrasket, da jeg på forsiden af Version2 for et par uger siden så, at der var en artikel omkring OOXML og ODF. Oplægget (vignetten, eller hvad det end hedder) talte om, at "Alle taler om dem, men få ved, hvad de taler om. Version2 blotlægger indmaden og stiller filer og mappestrukturer til skue". Min tanke var: "Hurra - nu kommer de dybdeborende artikler endeligt".

Artiklen er delt op i to - en ODF-del og en OOXML-del. OOXML-delen (som jeg vil kigge på her) er skrevet af journalist Jakob Møllerhøj. Lad mig slå fast med det samme - der er ikke noget faktuelt forkert i artiklen. Til gengæld er den et fremragende eksempel på, hvordan Version2 er softwarepolitisk farvet og i sine artikler har en åbenbar, tydelig snert af desavouering af OOXML.

Indledende kommentar

Jeg vil gerne understrege, at ovenstående ikke er et personligt angreb på journalisten men derimod en kritik af en artikel, som han har skrevet. I selvsamme udgave af Version2 er der andre artikler af ham, som jeg læste med glæde. Jeg anklager ham derfor ikke for at være en "dårlig journalist" men kritiserer blot, at han har kastet sig ud i at skrive en teknisk artikel,hvor han ikke er godt nok hjemme i stoffet til at gøre artiklen lødig.

MS Office er ikke OOXML

For det første laver journalisten fejlen, at han sammenligner MS Office og OOXML og sætter dem lige. Det er i øvrigt samme hul Finn Gruwier falder i (og naturligvis Stéphane Rodriguez), der har skrevet artiklens modpart om ODF, så man kan sige, at han er i godt selskab. For Finn er det blot ODF og OpenOffice. Jeg ved ikke, hvor misforståelsen kommer fra, men det giver ikke mening at sammenligne hverken ODF og OpenOffice eller OOXML og MS Office. Den af de to programmer genererede XML er naturligvis OOXML hhv ODF, men for begge programmer gælder det, at de ikke danner "minimal" XML men sovser det ind i snavs hist og pist.

OOXML er ikke forstået korrekt

For det andet viser artiklens gennemgang af OOXML, at journalisten ikke helt har forstået de mere basale, esoteriske detaljer og at han desværre bruger denne manglende viden (måske ubevidst?) til uretmæssigt at kritisere OOXML. Lad mig i flæng nævne de tilfælde, hvor kæden hopper af:

  • "Microsoft introducerede OOXML-formatet i den virkelige verden med lanceringen af Microsoft Office 2007-kontorpakken, og gik dermed væk fra det traditionelle binære filformat, som altid har været fremherskende i virksomhedens office-pakker."
    Excel 2003-filformatet var baseret på XML - det som nu er blevet til SpreadsheetML.

  • "En OOXML-fil er en samling af filer i pakkeformatet ZIP. Det vil sige, at eksempelvis OOXML-filtypen .docx, som Word 2007 fil-formatet hedder, kan udpakkes med et almindeligt pakkeprogram som WinZip eller i dette tilfælde Winrar."
    Det er ikke helt forkert men heller ikke helt rigtigt. Som beskrevet i Part 2 af OOXML er OPC-formatet "pakke-agnostisk" og det er kun den fysiske persistering af en OPC-pakke, der anvender ZIP. Dette er i øvrigt præcist som ODF gør det - og som Finn Gruwier Larsen også bemærker det i sin artikel om ODF.

  • "Den udpakkede fil Hello World.docx indeholder en række mapper heriblandt den applikationsspecifikke mappe 'word'."
    Mappen "word" er ikke applikationsspecifik men derimod persisteringsspecifik.

  • ".docProps indeholder egenskaber for den aktuelle applikation. Eksempelvis hvilken Word-skabelon, OOXML-filen skal anvende."
    Som navnet antyder er det ikke applikationsspecifikke ting, der gemmes i mappen docProps men derimod dokumentspecifikke ting. Det drejer sig heller ikke om en Word-specifik skabelon men om en OOXML-specifik skabelon.

Screenshots er misvisende

For det tredje vises der en række screen-shots, der skal underbygge teksten i artiklen. Ét af disse er et billede af den XML-fil, der dannes af MS Office med teksten "Hello World". Men eksemplet er ovenud komplekst og viser ikke reelt, hvad OOXML er. Ikke alene udgøres en del af XML-filen af data, der ikke er relevante for det aktuelle dokument, bla. referencer til skemaer for matematisk indhold, men der er også XML indeholdt, der hidrører fra stavekontrol af dokumentet. I XML-filen er inkluderet et skema med ordene "wordml" - ganske som ODF gør tilsvarende. Dette ord er søreme markeret med blåt, så det giver indtryk af, at det er et problem med denne tekst. Hvis jeg tæller i artiklen, så fremkommer ordet "applikationsspecifik" 4 gange - i øvrigt hver gang forkert - og screenshot er manipuleret, så det fremstår som om at OOXML i sig selv er applikationsspecifik for Word 2007.

Som jeg nævnte ovenfor, så er artiklen ikke en gennemgang af OOXML men derimod en (fejlbehæftet) gennemgang af den XML, som Word 2007 danner. Det er heller ikke et klassisk "Hello World!"-eksempel, da det er unødigt komplekst.

Hjælp til selvhjælp 

For nu at hjælpe journalisten lidt til næste artikel, så har jeg selv dannet mit eget "Hello World!"-OOXML dockument [ Minimal OOXML.docx (1,16 kb) ]. Det er dannet via applikationen "jlundstocholm", hvilket kan ses i mappestrukturen. Jeg har - i modsætning til artiklen - startet med OOXML og ender til sidst med at vise dokumentet i MS Office 2003. For at gøre eksemplet sammenligneligt med ODF-eksemplet er billedet fjernet fra dokumentet.

Indhold af OPC-pakken:

(læg mærke til den persisteringsspecifikke mappe 'jlundstocholm')

Indhold af XML-filen document.xml

(jeg er helt sikker på, at et ODF-dokument kan nedbarberes til tilsvarende størrelse) 

Og filen vist i MS Office 2003

 

For overskuelighedens skyld har jeg også postet indholdet af de to hovedfiler for et ODF-dokument og et OOXML-dokument. Dokumenterne er dannet af hh. OpenOffice 2.2 DA og MS Word 2003 DA. 

OOXML document.xml (1,02 kb)

ODF content.xml (2,57 kb)

Comments (5) -

Christian Schmidt

>Som beskrevet i Part 2 af OOXML er OPC-formatet "pakke-agnostisk"
>og det er kun den fysiske persistering af en OPC-pakke, der
>anvender ZIP.
Hvad betyder det i praksis? Kan man bruge et andet pakkeformat end ZIP og stadig kalde det en  OOXML-fil?

Hej Christian,

Det er faktisk én af de ting, der står på min todo-liste, som jeg skal have sat mig nærmere ind i - men lige nu kan jeg ikke give dig et klart svar. OOXML-spec taler kun om ZIP i forhold til fysisk persistering af OOXML-dokumentet, så jeg vil mene, at det ikke er muligt at lave et OOXML-dokument, hvor man har brugt WinRAR til at pakke data.

I Part 2, Afsnit 1 (Scope) står der:

"The physical mapping defines the mapping of the components of the package model to the features of a specific physical format, namely a ZIP archive."

Og i Afsnit 8 (Package Model) står der:

"[Example: A package could be physically represented in a collection of loose files, in a database, or ephemerally in transit over a network connection. end example]"

Spørgsmålet er jo: hvad pokker betyder det så? Jeg er lidt usikker på det, men jeg tror reelt ikke, at det er svært at finde ud af.

:o)

Jeg har tidligere læst denne artikel med "glæde" : msdn.microsoft.com/.../default.aspx

... og så fandt jeg lige ud af, at forkortelsen 'OPC' også anvendes om "Other People's Code". Det er jo ren OSS :o)

msdn.microsoft.com/.../drgui54.asp

Rene Løhde

Hej Jesper,

Dit arbejde bliver nu "endorsed" af den offentlige sektors bedste arkitekt!

blog.sweetxml.org/.../...rd-document-in-ooxml.html

Smile

-René

René,

Svedigt ... men med fare for at virke totalt ignorant - hvad er navnet på ham arkitekten?

Comments are closed