![]() | ||||
OOXML (Open Office XML ya da OpenXML)'e İlk Bakış | 31.01.2008 15:57:00 | |||
| Kategori : Sharepoint Özet : Office Open XML(diğer adları ile OOXML veya OpenXML) bilgisayar dünyası üzerinde kullanılan dosya formatlarının xml tabanlı bir standart haline gelmesidir. Yani tüm platformlarda(windows, linux, mac ...) ve yazılımlarda (.net, java, javascript ...) oluşturulan dosyaların ortak bir standart halinde oluşturulmasını ve oluşturulan bu formatın tüm platformlarda ve yazılımlarda kullanılabilmesi amaçlanmaktadır.Bilindiği gibi Open Document Format – ODF‘nin 2006 mayıs itibariyle ISO standardı olarak kabul edilmişti fakat bu standartta ortaya çıkan sıkıntılardan sonra Microsoft ve alanlarında uzman birkaç firma yeni bir standart üzerinde anlaştı, işte bu yeni standartı sizlere ayrıntılı olarak anlatacağım OOXML(Open Office XML ya da OpenXML)'dir. Bu yeni standart oluşturulduktan sonra tüm dünyada ISO ulusal birimleri Open Office XML’in standard olması konusunda incelemeler yapıp hatalarını bulup düzeltildikten sonra bu yeni standarta 'evet' ya da 'hayır' denilecek. Türkiye'de TSE tarafından yapılan incelemeler sonrasında şimdilik bu standarta evet denilmiştir. | ||||
OOXML (Open Office XML ya da OpenXML)'e İlk Bakış Office Open XML(diğer adları ile OOXML veya OpenXML) bilgisayar dünyası üzerinde kullanılan dosya formatlarının xml tabanlı bir standart haline gelmesidir. Yani tüm platformlarda(windows, linux, mac ...) ve yazılımlarda (.net, java, javascript ...) oluşturulan dosyaların ortak bir standart halinde oluşturulmasını ve oluşturulan bu formatın tüm platformlarda ve yazılımlarda kullanılabilmesi amaçlanmaktadır.Bilindiği gibi Open Document Format – ODF‘nin 2006 mayıs itibariyle ISO standardı olarak kabul edilmişti fakat bu standartta ortaya çıkan sıkıntılardan sonra Microsoft ve alanlarında uzman birkaç firma yeni bir standart üzerinde anlaştı, işte bu yeni standartı sizlere ayrıntılı olarak anlatacağım OOXML(Open Office XML ya da OpenXML)'dir. Bu yeni standart oluşturulduktan sonra tüm dünyada ISO ulusal birimleri Open Office XML’in standard olması konusunda incelemeler yapıp hatalarını bulup düzeltildikten sonra bu yeni standarta 'evet' ya da 'hayır' denilecek. Türkiye'de TSE tarafından yapılan incelemeler sonrasında şimdilik bu standarta evet denilmiştir. Tüm dünyada açık kaynak kodu destekçileri biraz bu standartı belirleyenlerin arasında Microsoft'un bulunmasından birazda standart hakkındaki düşüncelerinden dolayı standartı desteklememekte ve karşı çıkmaktadırlar. Desteklememe nedenlerini anlatan bir makaleyi http://www.noooxml.org/local--files/arguments/TheCaseAgainstOOXML.pdf adresinden ingilizce olarak ya da http://tr.pardus-wiki.org/OOXML'e_Dair_Kar%C5%9F%C4%B1_G%C3%B6r%C3%BC%C5%9F adresinden Türkçe çevirisini okuyabilirsiniz. Burada oylama sonuçlarından ya da standart haline gelip gelmemesinden bahsetmek yerine sizlere standart hakkında bilgi vereceğim. Öncelikle OOXML ile ilgili bilgi, haber ve kaynak dökümanları için http://openxmldeveloper.org/default.aspx , http://www.openxmlcommunity.org/ sitelerini incelemenizi hatta üye olmanızı öneririm. Bildiğiniz gibi Ms.Office 2007 çıkmadan önce ofis dökümanları binary tabanlı dosyalardı. Bu dosyaları sadece ofis programları ile anlamlı bir şekilde açabilirdik. Fakat OpenXml ile ofis dökümanları xml alt yapısına dayandırılmaktadır ve Ofis dökümanları ilgili markup(işaretleme) dili ile yazılmaktadır. OOXML içerisinde dökümanlar(word) için WordprocessingML(ML-markup language), çizelgeler(excel) için SpreadsheetML ve yansı(powerpoint) için PresentationML dilleri kullanılmaktadır. Bu dillerden ayrıca bu dillere destek olmak amacıyla resim çizmek ve resim işlemleri için DrawingML, Microsoft Office XML özel formatları için CustomXML, kaynak gösterimleri için Bibliography, vektörel çizimler için VML, metadata'lar için Metadata ve matematiksel işlemler için Equations yardımcı dilleri bulunmaktadır.Aşağıdaki şekil OOXML'e genel bir bakış sunmaktadır. Burada bulunan ZIP ve XML + Unicode temel OOXML parçası değil OOXML destekleyen teknolojilerdir.
WordprocessingML İle OpenOfficeXML'e Giriş
Yukarıdaki
tanımları okuduktan sonra benim de yukarıdaki bilgileri ilk bilgileri duyduğum
zaman yaptığım gibi hemen bir ofis 2007 word(docx uzantılı) dosyası oluşturup.
Sonra içerisine notepad ya da başka bir editörle baktıysanız büyük bir hayal
kırıklığına uğramışsınızdır. Çünkü xml tabanlı olan docx dosyasını notepad'de
açmaya çalıştığınızda notepad ya da kullandığınız editörde uyarı vererek dosyayı açacak
ve dosya içerisinde byte olarak yazılmış ve sizin anlamadığımız bir sürü
karakterin olduğunu göreceksiniz. Hemen paniğe kapılmayın ve üzülmeyin docx
dosya uzantısı hala :)) xml alt yapısını kullanmaktadır. Fakat sizin gördüğünüz dosyada
byte kodlarının olmasının nedeni dosyanın sıkıstırılmış olmasından
kaynaklanmaktadır. İşte yukarıdaki şekilde görülen ZIP
teknolojisi burada OOXML için kullanılmaktadır. Docx ile hazırlanmış dosyanın uzantısını
.zip haline getirip zipli dosyayı açtığınızda ofis içerisinde kullanılan Xml
teknolojisi karşınıza çıkacaktır. Açtığınız dosya üzerisinde birçok xml dosyası
ve dosyalar göreceksiniz. Bu dosyaların ve klasörlerin herbirinin birer anlamı
vardır. Bunlar az önce anlattığım gibi Word dökümanının birer yapısıdır. Sizlere
bir word dosyasının oluşturulması için gereken üç dosya olan document.xml, [Content_Types].xml
ve .rels dosyasını anlatacağım. İlerleyen makalelerde diğer dosyaların ne anlama
geldiğini adım adım göreceğiz. Bu anlattığım işlemin tam tersini yani bu döküman üzerinde tüm dosyaları seçip sağ tuş ile
Compressed (zipped) folder dediğinizde tekrar bu dosyalar .zip dosya haline
gelecektir. Bu zip dosyasının uzantısını .docx yaparak hazırladığınız dökümanı
.docx olarak kullanabilirsiniz. Şimdi bu açılan dosyaların anlamlarının ne
olduğu ve minimum bir word dosyası yapabilmek için gereken xml dosyalarının
hazırlanışını beraber oluşturacağız.. document.xml
Bu dosya word içerisine yazdığımız verileri tutacaktır. Mehmet Ali ECER yazılı bir word dökümanı için yukarıdaki gibi gözükecektir. Dosyayı zip yapıp word haline getirdiğimizde ilgili WordprocessingML çözüleceği için ilk tarafa bu tagler eklenmelidir. Burada bizi ilgilendiren ve daha sonra ayrıntılı olarak da irdeleyeceğimiz bölüm Mehmet Ali ECER yazan bölümdür. İleride bu bölüm üzerinde değişiklikler yaparak word dökümanı üzerinde istediğimiz işlemleri yapacağız. Sonuç olarak sadece ilgili bu bölümü oynayarak tam anlamıyla bir word dökümanı elde edebiliriz. <w:p w:rsidR="00000000" w:rsidRDefault="00A454EC"> [Content_Types].xml dosyası OOXML ile gelen xml dosyalarının teker teker sahip olacağı paket isimlerini(XML Namespace) tutar. ZIP yapılırken kullanılan dosyadır. Basit olarak gösterimi aşağıdadır. [Content_Types].xml
_rels klasörü altında bulunan
.rels dosyası tek tek döküman dosyalarının birbiri ile bağlantılarını tutar. Gösterimi
aşağıdadır. Aşağıdaki örnek üzerinden gitmek gerekirse word klasörünün altındaki
document.xml Type olarak belirtilen
http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument
ile ilişkilidir ve kullanılacak paketidir. Ayrıca klasör isimleri ve dosya
isimleri isim duyarlıdır(case sensitive)'dir, bu isimlendirmede yapılacak bir
hata docx dosyasının oluşmamasına neden olacaktır. Aşağıda gözüktüğü gibi
Relation tag'ları vasıtası ile ilişki verilir. Id tekil bir ilişki ismi alır,
Target ilgili dosyayı tam yol olarak alır. Type ise özel dosya tiplerini alır.
Yukarıda anlatılan 3 dosya ile bir docx dosya oluşturulabilir. Fakat şekilde gösterildiği gibi alanlar kullanılacaksa bunlar için gerekli xml dosyaları ve klasörleri eklenir ve buna uygun olarak _rel dosyası değiştirilir. Bundan sonra anlatacağım işlemler document nesnesini nasıl yazabileceğimiz ve bu nesne üzerine işlemler yapan nesneler olacaktır. Makalede ya da kodlarda bulunan hatalar ya da sorularınız için mehmetaliecer@gmail.com adresinden bana ulaşabilirsiniz. İyi çalışmalar. Mehmet Ali ECER
| ||||
Yazgelistir.com | ||||