# Office Open XML
Office Open XML ya da bilinen adıyla OOXML, XML tabanlı bir dosya sistemi olup, elektronik belgelerin (grafikler, sunumlar, çalışma kitaplar ve metinler gibi) saklanmasını amaçlar.
İlk olarak Microsoft tarafından Microsoft Office programı için ikili dosya sistemi olarak geliştirilen sistem, daha sonra Avrupa Bilgisayar Üreticileri Birliği ECMA'nın uluslararası teknik komitesi TC45 tarafından 376 numaralı standart olarak 2006 senesinin aralık ayında ilan edildi.
OOXML, ECMA tarafından ISO/IEC'e standart olabilmesi için sunulmuş ve DIS 29500 (Uluslararası Taslak Standart 29500) adıyla görüşülmeye başlandı. Taslak, Eylül 2007'de yapılan ilk oylamada ISO/IEC'ye üye ulusal komitelerden yeterli oyu alamamış ve uluslararası standart olarak kabul görmemişti. Bunun üzerine 24-25 Şubat 2008 tarihinde Cenevre kentinde bir çözüm toplantısı yapılması kararlaştırılarak, ikinci oylama mart sonuna bırakılmıştı.
30 Mart 2008 tarihindeki ikinci oylamada, OOXML bir ISO standardı olarak kabul edilmek için yeterli oyu aldı. Bu oylamada Türkiye, bir önceki oylamadaki kabul oyunu çekimsere çevirdi. Polonya, Almanya ve Malezya gibi ülkelerde yerel oylamalara yapılan itirazlar, sonucu değiştirmedi.


## Geçmiş.
MS Office programının 2007 yılı öncesi sürümlerinde firma programın bileşenlerinde saklama için ikili dosya türleri kullanıyordu. Bu dosyalar geliştiriciler için uyumlu programlar yapmayı zorlaştırmanın yanı sıra insanlara bu bilgilere rüçhan payı ödemeden ulaşmayı ve firmanın patentlerini çiğnemeden bu dosyaları kullanmasını engelliyordu. Microsoft her ne kadar bu dosyaların bir kısmını rüçhan bedeli istemeden ve tek taraflı dava açmama akdi yaparak kullanıma açmış bile olsa, 2004 yılında Avrupa Birliği tarafından ofis standartlarını açıklaması ve standart hale getirmesini önerdikten sonra firma Kasım 2005 tarihinde Microsoft Office XML (daha sonra bu biçim ECMA Office Open XML adını aldı) adlı biçimi standartlaştırma kararı aldı.


## Dosya Yapısı.
ECMA'nın standart ilan ettiği sürümden önce firma kendi programında monolitik yapıda tek bir dosya kullanarak dosyanın içinde geçen resim ya da diğer bileşenleri ikili kodlama şeklinde XML dosyasına dahil ediyordu. Office Open XML, tıpkı kendisinden önce var olan ve ISO/IEC tarafından da standart olarak kabul edilen OpenDocument biçimi gibi ZIP dosya sistemini kullanarak tüm bileşenleri ayrı ayrı dosyalarda tutar. Bu sayede PNG, BMP, AVI ve PDF gibi biçimler OOXML ile yaratılmış dosyaların içine eklenebilir.
Bir Office Open XML dosyası Microsoft ürünleri ile haberleşebilecek bir dili (89 şema modülü sayesinde) içerir ve firma sadece kendi ürünleri haberleşen bu dili standart hale getirmeye çalışmaktadır. Bunun dışında standart çeşitli ofis dosyalarının açılması için çeşitli ortak diller de ihtiva etmektedir.
Ortak diller aşağıda yer alan materyaller ile çalışır.
  - Office Math Markup Language (OMML)
  - Genişletilmiş özellikler
  - Kişiselleştirilmiş özellikler
  - Çeşitli tipler
  - Özel XML veri bilgileri
  - Kaynakça
Bu sayede OOXML yukarıda belirtilen standartları kullanarak geliştirilebilir.
OOXML'in XML şeması yükleme ve parçalama zamanlarını düşürdüğü söylenmektedir. 2007 Nisan ayında yapılan araştırma neticesinde ikili dosya tipine göre xml tabanlı daha hızlı yüklenmektedir. OOXML bu durumu aşabilmek için kısa genel öğe isimleri kullanmış ve özellikle çalışma kitaplarında yıllara göre indeksleme yapmıştır. Bu sayede dosya içeriği insanlar tarafından okunacak kadar sadeleştirilmiştir.


## Lisans.
ECMA, dosya biçimine ilişkin teknik şartnameyi "ilgilenen gruplar tarafından herhangi bir kısıtlamaya tabi olmadan kopyalanabilir" ibaresi ile sunmuştur. Bir standardın herkes tarafından eşit şartlarda kullanılmasını sağlamak için patent haklarından en azından makul ölçüde ve kimsenin aleyhine kullanmamak şartları ile vazgeçilmesi gerekmektedir. ECMA da standardı yayınlarken bu şartlara değinmiş ve bu yüzden dosya biçiminin asıl ve tek katkıcısı Microsoft olası patentleri için CNS (Dava Etmeme Akdi) ilan etmiştir. Bu ilan hukuk çevrelerinde görüş ayrılığına yol açmış, azınlık görüş problemin çözüldüğünü söylese bile çoğunluk bu durumu dikkat ve kuşku ile karşılamıştır.
Firma, CNS yanında ayrıca kendisinin geliştirdiği OSP (Açık Kaynak Sözü) programına da biçimi dâhil etmiştir. Basit bir söylem ile firma yazılım üreticilerini bu program dahilinde olan biçimleri kullanırken patentlerini ihlal etmesi nedeni ile dava etmeyeceğini tekrarlamıştır. Biçim istenirse CNS istenirse OSP şartları ile kullanabilir.
OSP programına da dâhil edilen metinler, ECMA tarafından ISO onayı için kuruma sunulmuş ve ECMA lisanslama konusuna getirilen eleştirilere şu ilkeler doğrultusunda cevap vermiştir:
  - Tüm katkılar ECMA'nın patent sorunları ile ilgili sözleşmeleri kapsamında yapılmıştır.
  - OSP programı sayesinde açık kaynak kodlu ve diğer ticari yazılımlar DIS 29500'den faydalanabilir.
Firma, ECMA'nın teknik şartnameleri ücretsiz olarak sunması ve OSP programının karakteristik özellikleri nedeniyle OOXML'in Avrupa Birliği açık kaynak kodu standartlarına uygun olduğunu düşünmektedir.


## Eleştiriler.
### Bakım Usulü.
OOXML'in bakım rejiminin nasıl olacağı şu ana kadar netleşmemiştir. Buna rağmen ECMA bir bakım programı teklif etmiştir.
Bakım ile ilgili hangi usul kabul edilirse edilsin, JTC 1 komitesinin direktiflerine göre aşağıda yer alan maddelerin karşılanması gerekmektedir.
  - Metne yapılacak olan düzeltme tekliflerinin kabulü ile metne yansıtılması, ISO oylama sürecinin doğal bir parçası olarak kabul edilmelidir.
  - JTC 1 oylamasının kesin sonucu oluşmadan önce standart kararlı (stabil) olarak ilan edilemez.
  - Metnin kararlı hale getirilmesi için JTC 1 komisyonunun bir "inceleme çemberini" tamamlaması gerekir. Bu incelemede metnin ISO direktiflerinde belirtilen tüm biçimlendirme ve diğer kurallara uygun hale getirilmesi gerekir.


### Ulusal Komite Süreçlerine Yöneltilen İtirazlar.
Beş aylık oylama sürecinde ulusal komite süreçlerinde yaşananlar ciddi itirazlara konu oldu. Avrupa Komisyonu OOXML'in birlikte işlerlik (birlikte çalışabilirlik - "interoperability" ) kapasitesinin ECIS kriterlerine uyumlu olup olmadığını araştırmak için bir soruşturma başlattı. Çeşitli kaynaklar bu soruşturmanın ISO/IEC süreçlerinde yaşananları da kapsadığını söylemektedir.
Konu ile ilgili bazı örnekler şunlardır:
  - Portekiz komitesi karar toplantısında Sun Microsystems firmasının da katılımı önerilmesine rağmen -resmi olmayan metne göre- bu istek yer yokluğu nedeni ile geri çevrilmiştir. OOXML karşıtları tarafından eleştirilen bu duruma komite başkanı olan Microsoft üye sayısının önceden alınan kararla 20 olarak belirlendiği cevabını vermiştir.
  - İsveç oylamasında Microsoft İsveç, ülkede bulunan partnerlerine toplantıya katılma çağrısında bulunmuş ve toplam 22 Microsoft üyesi toplantıdan önce 17.000 SEK ödeyerek komiteye üye olmuşlardır. Microsoft komite üyesi olan iki partnerine ise oylamada olumlu oy vermelerinin kendilerine ticari kolaylık olarak geri döneceğini bildirmiş olayın açığa çıkması ile firma bu davranışın şirket politikası değil bir çalışanlarının münferit bir eylemi olduğunu açıklamıştır. Tüm bu olaylar üzerine komite oylamayı -kendi kurallarına aykırı olmasına rağmen - iptal etmiştir.
  - İsviçre oylamasında, SNV'den "yorumlarla evet" oyu çıkmış fakat konuyu görüşen NK 149 komitesinin başkanı OOXML ile ilgili lisans, ekonomik ve politik argümanları tartışmaya açmadığı için eleştirilmiştir.
  - Kıbrıs Cumhuriyeti, oylamadan birkaç gün önce P-üyesi olarak kabul edilmiş ve OOXML'i yeterince analiz edemeden "Evet" oyu kullanmıştır.
  - Tarafsız üyelerden oluşması gereken Avustralya ülke komitesine, geçmişte Wikipedia'da OOXML ve OpenDocument maddelerini düzenlemesi için Microsoft'tan para aldığı ortaya çıkan ve bu yüzden "WikiGate 07" adı verilen skandala imza atan Rick Jelliffe üye olarak alınmıştır.
  - Polonya'daki nihai OOXML oylamasında Polonya Standartlar Enstitüsü'nün (PKN) direktiflerine uyulmamış ve oylarını kullanamayan üyelerin oyları "Evet" olarak sayılmıştır. Polonya'daki oylama hakkında Avrupa Komisyonu soruşturma başlatıldı ancak soruşturma oylamanın sonucunu değiştirmedi.
  - Norveç komitesi başkanı kurallara aykırı bir oylama ile komite üyelerinin dışarı çıkartılmasını sağladı. Toplantıya aralarında Microsoft temsilcisinin de bulunduğu sadece üç üye ile devam eden komite, bu üç kişinin yaptığı oylama neticesinde, Norveç halkı adına OOXML'e evet deme kararı aldı.


### Güvenlik Kaygıları.
Bağımsız güvenlik uzmanları OOXML ile ilgili çeşitli güvenlik kaygılarını dile getirmekteler.
7.228 sayfalık OOXML belirtim belgesinde makro kullanımı ile ilgili herhangi bir bilgi bulunmaması, bu güvenlik kaygılarının temelini oluşturuyor. Geçtiğimiz 15 yılda gelişen ofis programları kullanıcılarına zengin metin editörleri, çoklu ortam seçenekleri sunmanın yanı sıra ayrıca sayısal belgelerimizi programlama ve onları amaca göre uyarlama şansı da veriyordu. Makro, yeni bir kavram olmadığı gibi pek çok insanın özellikle hesap tablolarında kullandığı bir araç. OOXML metnini içeren ISO DIS 29500 ise makrolarla ilgili hiçbir tanımlama yapmıyor. Belgenin sadece bir makronun "Makro butonu" ile tetiklenebildiği belirtiliyor. OOXML standart belirtim metninde aşağıda yer alan sorular hâlâ cevapsız:
  - Taşıyıcı dosyada makro betiği nasıl ve nerede saklanacak?
  - Belge ile makro nasıl etkileşim kuracak?
  - Makro altyapısı hangi dille oluşturulacak?
  - Temel ve eklentiler ile makro API'si nasıl oluşturulacak?
  - Güvenlik modeli nedir?
OOXML'in standart belirtim belgesine göre, her üretici makrolar için kendi ikili dosyalarını belgeye ekleyebiliyor. Teorik olarak bir belgeyi açan kişinin sistemde yönetici olması durumunda kötü niyetli bir kod kullanıcının haklarına sahip olarak sistemde istediği değişikliği (dosya yazma, silme, kayıt defteri ayarlarını değiştirme, internetten dosya indirme ya da yükleme gibi) yapabilir. 1997 yılından başlayarak dünyayı saran makro virüsleri (Örneğin, 1999'da çok hızlı yayılan ve çok tehlikeli olan Melissa gibi) OOXML'in standart olması ile beraber çok daha gelişmiş ve tehlikeli bir şekilde yaygınlaşabilirler.
OOXML tabanlı bir üretim yapan üreticinin hangi dilde yazılmış makro API'sini kullanacağı belli olmadığından bu tip virüslerin ve zararlı kodların 3. parti güvenlik yazılımları tarafından yakalanması, OpenDocument'a kıyasla son derece güç. Bunun dışında OOXML ile birlikte çalışabilen programların makro ile ilgili standart bir çözüm olmaması nedeniyle başka üreticilerin programları ile yaratılan dosyaları açması, işlemesi ve çeşitli düzeylerde güvenlik önlemi alması da mümkün değil.


## Uyumlu Programlar.
OOXML (ECMA tarafından kabul edilen şekliyle) Microsoft Office ürünleri için temel kaydetme biçimdir. Programın eski sürümleri için uyumluluk kipleri vardır. Aşağıda, OOXML desteği sunan programlar sayılmıştır.
  - Microsoft Office (Standart hâlâ tam olarak karşılanamaktadır).
  - Apache OpenOffice 2.0+ OOXML dosyalarını okuyabilir ve yazabilir.
  - LibreOffice
  - Apple iWork '08 bazı hatalarla birlikte olmak üzere OOXML dosyalarını okuyabilir.
  - Apple iPhone OOXML tabanlı e-posta eklentilerini okuyabilir.
  - Corel Wordperfect Office X3 beta sürümü kısmen OOXML'i destekler.
  - Thinkfree Office, gelecekte destekleme planı yapmaktadır.
  - Calligra 2.2+
  - Gnumeric çok kısıtlı SpreadsheetMl desteği sunar.
  - QuickOffice (5.0+) sınırlı bir şekilde docx ve xlsx biçimlerini desteklemektedir.
  - AbiWord 2.6.0+