Hata ayıklamaktansa hatasız yazmayı tercih etmelisiniz. Bu Kate kullanınca hiç zor değil. Kate XML dosyaları yazmak için bir eklenti içeriyor. Bu eklenti sayesinde etiketleri yazmak zorunda kalmıyorum, basitçe bir menüden seçiyorum. Dolayısıyla dosyada bir hata olmuyor. Bu özelliğinden yararlanabilmek için kullanılan DTD'nin Kate'e tanıtılması gerekiyor. Sitemizin DTD'sini Kate ile kullanılabilecek biçeme dönüştürdüm. Bu dosyayı proje sayfamıza indirilebilirsiniz: belgeler.dtd.xml-1.0.bz2 (19kB). Belgeler-DTD, ihtiyaçlar doğrultusunda geliştirilmektedir. Bu bakımdan yeni sürümler hakkında otomatik olarak bilgilendirilmek isterseniz, paket bağının yanındaki küçük zarfa tıklayın ve istenen bilgileri verin.
Bu dosyayı Kate ile nasıl kullanacağız?
Önce Red Hat dağıtımını kullandığımı belirtmeliyim. Çünkü bu dosyayı kopyalayacağınız yer sizin dağıtımınızda farklı bir yerde olabilir. Bunzip2 ile önce dosyayı açın, yaklaşık 1.1 MB.lık bir dosya oluşacak. Bu dosyayı (belgeler.dtd.xml) /usr/share/apps/katexmltools/ dizinine kopyalayın.
Kate'i çalıştırın. Menüsünden sırayla Ayarlar -> Kate Programını Yapılandır -> Eklentiler üzerinden Kate XML Tamamlama seçeneğini işaretleyin. Menü çubuğundan XML -> Meta DTD Ata ... seçerek açılan dosya yükleme penceresinden belgeler.dtd.xml dosyasını seçin. Kısa sürede Kate bu dosyayı yükleyecek.
Ne zaman bir etikete ihtiyacınız olursa yapacağınız şey ctrl+enter veya %lt; tuşlamak olacak. Etiketleri kullandıkça, açılan DTD menüsünün içeriğinin değiştiğini farkedeceksiniz. Bu DTD'nin bir özelliğidir. Etiketler, bir diğerinin yorum aralığında farklı etiketler kabul eder. Bu özellik sayesinde yazdığınız XML dosya, DTD'ye uyumlu olur ve derleme sırasında hata vermez. Ayrıca, imleç bir etiketin yorum alanında değil de etiketin içindeyken menü isterseniz bu kez etiketle birlikte kullanılabilecek parametrelerin listesini alacaksınız.
Kate'i bu eklentisi ile kullandığınızda tamamen hatasız bir dosya üreteceğinizi sanmayın. İnsanız, mutlaka bir yerde hata yaparız. Bu bakımdan okumayı burada bırakmayıp belgenin devamını okuyun.
Belgemizi hazırlarken ve/veya hazırladıktan sonra hataları ayıklamamız ve sunuma hazırlamamız lazım. Bunun için, konsolda basit bir komut yazıyoruz:
$ xsltproc -o index.html belgem.xsl belgem.xml
Burada ilk parametre olan -o ile belgemizin HTML çıktısının ismini belirtiyoruz: index.html. Sıradaki parametre hazırladığımız belgenin HTML olarak derlenmesini sağlayan XSL dönüşüm betiği, son parametre de hazırladığımız dosyadır. Bu komutu çalıştırdığınızda belgem.xml hatasızsa bir dizi HTML dosya üretilecektir. Komut, dosyaların hepsinin aynı dizinde olduğu varsayılarak hazırlanmıştır. Her terim için göreli dizin isimleri belirtebilirsiniz.
belgem.xsl dosyası için şu kod işinizi görecektir:
<?xml version='1.0' encoding="UTF-8"?>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  version='1.0'>
  <xsl:import
    href="docbook/xsl/html/chunk.xsl"/>

  <xsl:param name="chunk.sections" select="'1'"/>
  <xsl:param name="chunk.first.sections" select="1"/>
  <xsl:param name="chunk.section.depth" select="1"/>
  <xsl:param name="root.filename"/>

  <xsl:param name="html.stylesheet" select="'../belgelerim.css'"/>

  <xsl:param name="admon.graphics.path">../images/xsl/</xsl:param>
  <xsl:param name="callout.graphics.path" select="'../images/xsl/callouts/'"/>
  <xsl:param name="navig.graphics.path">../images/xsl/</xsl:param>
</xsl:stylesheet>
Kullandığımız komut derleme sırasında dosyada bir hata olduğunda bir sürü hata üretir. İlk belirtilen hatayı giderdikten sonra komutu tekrar çalıştırın. Diğer hatalar, dosya ardışık işlendiği için ardışık üretilen hatalardır. Daima ilk hatayı gidererek kısa sürede sonuca ulaşırsınız. Dosyayı yazarken hep derlenebilecek şekilde yazmanızı ve yazdıkça hatalar bakımından denetlemenizi öneririm. Böylece hatayı hep son yazdığınız kısımlarda arama lüksünüz olur. Aksi takdirde hatayı bulmak çok güç olabilir.
Belgeleri istenen biçemde biçimlemekte kullanılan XSL dili hakkında burada bilgi verilmeyecektir. Bu dil hakkında fikir edinmek için xsl-stylesheet belgelerine ve koduna bakabilir, daha ayrıntılı bilgi edinmek için aşağıdaki adresleri ziyaret edebilirsiniz:
XSL Dönüşümleri (XSLT) Sürüm 1.0
Biçembentlerin XML Belgelerle İlişkilendirilmesi
XML Adresleme Dili (XPath) 1.0
Belgeleri, SGML araçları ile denetlemenizi önermeyeceğim. Diğer belge biçemlerini elde ederken SGML araçlarını kullanmadığımız için belge taslaklarında SGML uyumluluğu aranmamaktadır. XML uyumluluğu yeterlidir. (XML, SGML'nin alt kümesi olarak tasarlanmışsa da SGML araçları XML belgeler için yeterli olamamaktadır; bu durum standardın değil, araçların yetersizliğinden kaynaklanmaktadır.)