DocBook XML Belgelerini Düzenlemek

ArticleCategory: [Artikel Kategorie]

Applications

AuthorImage:[Bild des Autors]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Egon Willighagen

en to tr E. Fatih Yetkin 

AboutTheAuthor:[Über den Autor]

Nijmegen Üniversitesi'nde kimya üzerine yüksek lisans yapmistir ve doktorasini ayni üniversitede moleküler sunum üzerine yapmistir. Basketbol oynar ve Java uygulamalari programlar.

Abstract:[Zusammenfassung]

Bu makalede, DocBook XML belgelerinin düzenlenmesi için Kate ve Kate'in XML eklentilerinin kullanımı aktarılmaktadır.

ArticleIllustration:[Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel]

Giriş

Açık kaynak XML düzenlemesi, uzun zamandır bir sorun halindedir. İnsanlar, doğru XML üretecek ve tercihen çıktısını anında gösterebilecek düzenleyicilere gereksinim duymaktadırlar.Bunu yapabilen düzenleyiciler olmasına karşın bunlar ticari yazılımlardır. Açık Kaynak dünyasında varolan az sayıdaki yazılımlar güzel bir önizleme olanağı sunmazlar ancak geçerli XML belgeleri üretebilirler ve bu belgeler içindeki bileşenler hakkında size doğru önerilerde bulunabilirler.

Elbette Emacs ve onun DocBook'un baskın modu oldukça iyi çalışmaktadır (bkz: DocBook article)Bu özel modda belge içerisinde halihazırda varolan bileşenlere bağlı olarak yeni bileşenlerin seçilmesine olanak tanımaktadır ve sekmenin sonlanmasını bu bilgiye dayandırmaktadır.

Ancak bu makalede bunlardan bahsetmeyeceğiz. DocBook XML düzenleyicisi yerine Kate'in tanıtımını yapacağız.

Kate

Kate, KDE masaüstü ortamının düzenleyicilerinden biridir.Çok sayıda dosya açma işlemine izin vermekte ve XML dahil pek çok yapı için dizim renklendirmesi yapabilmektedir.Ayrıca Daniel Naber tarafından geçtiğimiz sene geçerli XML belgeleri üretmenize yardımcı olabilecek bir XML eklentisi geliştirilmiştir. KDE 3.0 ile bu eklenti Kate için kde-addon pakedi içindedir.Eğer KDE 3.0'ın addon pakedi henüz yüklenmemişse aşağıdakileri yaparak yükleme işlemini gerçekleyebilirsiniz.

./configure --prefix=/path/where/your/kde3/is/installed
make
sudo make install

Yükleme işlemi tamamlandıktan sonra hala, Kate'i bundan haberdar etmeniz gerekmektedir.Bunu yapmak için, "Configure Kate" sekmesinden "Settings" menüsünü açmanız gerekmektedir. Burada eklenti yöneticisinde yüklü olan eklentiler arasına XML eklentisini yerleştirebilirsiniz.

[Kate'in eklenti yöneticisi]

Meta DTD'yi Derlemek

Meta DTD, Norman Walsh'ın SourceForge.net adresinden elde edilebilecek olan dtdparser pakedi kullanılarak oluşturulur.

Ben uyarlanmış bir sürüm olan 2.0beta6'yı kullandım. Örneğin, dtparse programının ilk satırındaki yolu kendi Perl kurulumumun olduğu yeri gösterecek şekilde uyarlamak gerekti. Programı çalıştırdıktan sonraki ekran çıktısı ise aşağıdaki gibi oldu: I

> ./dtdparse /path/to/docbookx.dtd
Public ID: unknown
System ID: /usr/share/sgml/docbook/dtd/xml/4.1.2/docbookx.dtd
SGML declaration: unknown, using defaults for xml and namecase
Loading dbnotnx.mod
Loading dbcentx.mod
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsa.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsb.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsc.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsn.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamso.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOamsr.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISObox.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOcyr2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOdia.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk3.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOgrk4.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat1.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOlat2.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOnum.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOpub.ent
Loading /usr/share/sgml/entities/xml-iso-entities-8879.1986/ISOtech.ent
Loading dbpoolx.mod
Loading calstblx.dtd
Loading dbhierx.mod
Loading dbgenent.mod
Parse complete.
Writing docbookx.dtd.xml...
Done.

Yüklenenlerin sayısının ne denli çok olduğuna dikkat ediniz. Bunun nedeni Meta DTD'nin 1.63 Mibibyte büyük olmasıdır. Ama bir XSLT işlemcisi ile (örneğin xsltproc) kde-addon pakedinden basitleştirilmiş bir simplify_dtd.xsl ile bu büyüklük 0.96 MiB 'a kadar düşürülebilmektedir.

> xsltproc simplify_dtd.xsl docbookx.dtd.xml > docbook-xml-4.1.2.dtd.xml

Sonuçta elde edilen docbook-xml-4.1.2.dtd.xml dosyası /path/to/kde3/share/apps/katexmltools/ dizinine kopyalanır. Buradaki /path/to adresi bilgisayarınızdaki KDE3'ünüzün yüklü olduğu yeri belirlemektedir. XML eklentisi yeni bir Meta DTD dosyası atanırken soracağı için ana dizin de aynı işi görebilir.

Düzenleme

Yeni bir DocBook XML belgesine başlarken, Meta DTD atanmaya ihtiyaç duyar. Bu işlem, "XML Plugin" menüsünden "Assign meta DTD" seçilerek yapılır. Bu seçimden sonra, kullanmak isteyeceğiniz DTD'yi seçeceğiniz bir dosya seçim kutusu gelecektir. Bu örnekte, biz Docbook XML 4.1.2 Meta DTD'yi seçeceğiz.

[Meta DTD parsing dialog]

Yeni olarak, boş belgeye "<book>" yazacağız. Elemanı kapamak için ise F11 kullanılacaktır. Eğer dizim renklendirme modu kendiliğinden açılmamışsa, "Document" sekmesinden "Highlight Mode" 'u seçerek elle de açabilirsiniz. XML dizim renklendirmesi "Markup" alt menüsünün içerisindedir.

"Book" bileşeninin ne tip niteliklerinin olduğunu belirtmemiş olduğumuzdan, imleci "book" kelimesinin sonuna getirip Ctrl+Return tuşlarına bastığımızda bileşen için olası tüm niteliklerin listesi yeni bir ekranda gelecektir.

[Inserting an attribute]

İmleci "'in kenarına getirerek Ctrl+Return'a basmamız halinde ise şayet DTD içinde tanımlı bir nitelik ise tüm olası değerleri listelenecektir. Bu durum "id" niteliği için denenmiştir.

Niteliği belirledikten sonra aşağıdaki DocBook XML koduna sahip oluruz:

<book id="SomeID">
</book>

İmleci "kitap" etiketinin başlangıcı ile sonu arasında tutar ve Ctrl+Return tuşlarına basarsak yeni bir pencere içerisinde "book" etiketinin olası çocuk bileşenleri listesini elde ederiz.Örneğin, "title" bileşeni için:

[Inserting an attribute]

Bu eklentinin bir eksik yanı sadece çocuk bileşenler ile ilgi- lenmesidir. Örneğin DTD, birden fazla başlıklı bileşenlere izin vermez ama XML eklentiniz sizi bu durum karşısında uyarmayacaktır. Eklenti doğrulayıcı bir opsiyona henüz sahip olmadığından yanlış belgeler üretmek çok kolay bir haldedir.

Eklentinin işlevselliği aşağıdaki tablo ile verilmiştir.

Görev Komut
XML'i yerleştir (bileşenler ve nitelikler) Ctrl+Return
Girş Yap F10
Etiketi Kapa F11

KDE DocBook

KDE projesi kendi belgelemesi için de DocBook'u kullanmaktadır. Böylellikle XML eklentisi öntanımlı olarak KDE için özelleştirilmiş bir DocBook sürümü ile gelmektedir.

MathML ve SVG

DocBook,belgelerin içine matematiksel yapıların da yerleştirilmesine olanak tanıyan MathML 'i de desteklemektedir. MathML içeren DocBook'ları doğrulamak için bir DTD sürümü iletisinden edinilebilir.

DocBook içerisinde kullanılabilecek SVG için DTD henüz maalesef yoktur. Ancak çalışmalar sürmektedir.

Kate'in XML eklentisini kullanmak için "dtdparse" ile tümleştirilmiş yeni bir Meta DTD'ye ihtiyaç olacaktır.

Sonuç

Kate'in XML eklentisi size en çok DocBook XML belgelerini düzenlemekte yardımcı olacaktır. Henüz mükemmel değil, ancak geliştirilmekte olduğunu gözönünde tutmak gerekli. KDE 3.0 ile pek çok insana ulaşmıştır.