Open XML kræver ikke implementering af proprietærer teknologier. Anvendelse af termen ”OLE” i Open XML specifikationen betyder ikke at man skal implementere en bestemt leverandørs teknologi for at kunne implementere Open XML.
Når man anvender OLE (eller andre former for objekter udenfor et dokument) så er det korrekt, at man kan løbe ind i problemstillinger, men dette har dog intet med implementering af gøre.
Lad mig illustrere dette i flere detaljer ved at behandle først anvendelsesscenariet (link problemet) og derefter implementeringsscenariet, som er de to scenarier som blandes sammen i forbindelse med misforståelserne omkring OLE i forhold til Open XML.
Link problemet
Er det muligt for en bruger at lave et dokument, som giver brugeren (eller en anden bruger) udfordringer ved flytning af dokumentet fra en PC til en anden? Ja da, det er super nemt! Og det er i øvrigt helt ligegyldigt på hvilken platform eller med hvilken kontorpakke man starter med at lave sit dokument på eller hvilket format man anvender (ODF eller Open XML).
Eksempel 1: Man lave f.eks. et tekstdokument, hvori man opretter et link til en fil (f.eks. et billede) på harddisken på den konkrete PC. Derefter flytter man dokumentet, men ikke filen (billedet), over på en anden PC og åbner det der. Dokumentet er der stadig, men linket er nu ’knækket’, for filen (billedet) ligger stadig på den oprindelige PC, men ikke på den PC som dokumentet er flyttet over på. Til dette eksperiment er det i øvrigt helt lige meget om man bruger Open XML, ODF, .doc eller noget helt fjerde! Det er med andre ord et generelt problem, man fristtes til at sige en egenskab, ved filformater til kontorpakker. Et problem, som altid har eksisteret og som intet specifikt har med Open XML at gøre.
Eksempel 2: Helt analogt med eksemplet ovenfor gælder det, at hvis man på én PC linker et objekt til et eksternt program (det kunne være Microsoft Visio eller måske ligefrem et program som man selv har skrevet) og dette program ikke findes på den PC, som man sender flytter dokumentet over til, ja så har man balladen igen for man har jo ikke længere har den ”nødvendige” funktionalitet til rådighed til f.eks. editering af objektet eller lignende. Dette eksempel er med andre ord blot en lidt mere avanceret udgave, at eksempel 1 ovenfor. Igen er eksemplet helt uafhængig af Open XML og kunne ligeledes fint illustreres ved f.eks. at anvende ODF på Linux med OpenOffice.
[Note: Bemærk at dette ikke er en kritik af ODF, Linux eller OpenOffice, men blot et faktum når vi taler om den type ”editér bare filformater” og kontorpakker generelt.]
Eksemplerne ovenfor vedrører begge det jeg vil kalde grænseområdet mellem et dokument og dets omverden eller blot link problemet. Det er korrekt at der er udfordringer i dette grænseområde, men det er i bedste fald misvisende at fremstille disse som udfordringer der hidrører fra Open XML. Det er derimod en generel problemstilling, som er uafhængig af format.
Implementering
Anvendelse af ordet ”OLE” i Open XML specifikationen har ikke nogen betydning i forhold til at Open XML er bundet til en given platform. I værste fald er det en politisk uheldig anvendelse af betegnelsen, fordi anvendelsen får nogen til at tro at der er en binding til en given teknologi, men i praksis kunne der lige så godt stå f.eks. Linking to any Object. Uanset om man kalder det Linking af any Object eller OLE vil det fortsat give de praktiske problemstillinger som illustreres ovenfor.
Men hvad står der konkret om OLE i Open XML specifikationen? Jo, lad og se på det og gøre det i forhold til de kommentarere som er kommet ind i Danmark i forbindelse med ISO ratificeres processen.
Lad os f.eks. se på to af de centrale danske kommentarer til ISO processen, som relevante for ”OLE spørgsmålet”: DK-30 og DK-31.
Med hensyn til DK-30 så henviser denne kommentar til afsnit 3.14.8 af part 4 af Open XML specifikationen.
Og hvad står der så her? Jo, der står at der kan anføres en henvisning til eksterne elementer og der listes til det formål fire forskellige typer henvisning som kan anvendes. Én af disse er oleLink, men som det ses i følgender er der også andre:
oleLink er ikke specificeret ovenfor, men der henvises i stedet videre til afsnit 3.14.11 af part 4 af Open XML specifikationen. Afsnit 3.14.11 er i øvrigt også det afsnit som DK-31 kommentaren vedrører. Lad se hvad der specifikt står om oleLink:
Sammenfattet er det som der står om oleLink følgede. Anvendelsen af oleLink sker ved at man anfører et relationship ”id” og en ”progID”. Det er det! Der står ikke mere.
Der er med andre ord ikke noget krav om at der findes en speciel teknologi til at fortolke disse to værdier. De kan fortolkes på én måde på en Windows platform (hvor man har Microsoft OLE) og på en anden måde på en Linux eller en anden platform.
Det er klart, at hvis en instans af et Open XML dokument rent faktisk indeholder et objekt udarbejdet med Visio eller noget andet program, som man f.eks. selv har skrevet, ja så kræver det naturligvis tilstedeværelsen af Visio eller dette andet program for at brugeren kan anvende objektet fuldt ud, men så er vi jo tilbage til link problemet som er beskrevet i indledningen af denne blog og dette har intet med implementering af gøre og problemstillingen er 100 % analog på f.eks. ODF.
Konklusion
Hvis man kikker nærmere på Open XML specifikationen vil man finde, at det som står i specifikationen er nogle XML elementer/attributter, som kan anvendes til at anføre Object, Linking & Embedding (OLE) information. Anvendelse af ordet OLE snyder lidt her, men faktum er at der intet er i Open XML specifikationen, som kræver en speciel teknologi eller som forhindrer andre programmer i at anvende denne information i deres egen implementering, nøjagtig som det paser dem. Der er ingen binding til DLL eller noget platforms specifikt anført i specifikationen.
Det er kompliceret stof og i praksis er der jo også et potentielt problem (link problemet), men dette problem har blot intet med Open XML at gøre og problemet findes også med ODF, som også har mekanismer til at opbevare eksterne objekter etc. ECMA skriver om problemstillingen i forbindelse med ISO ratificeringsprocessen:
Hvis man ønsker at et dokumentformat skal kunne koble sig op på omverden så følger link problemet med uanset hvad man gør.