Merhaba Değerli Java Dostları,
Daha önceki iki XML yazımda DOM ve SAX yöntemlerine değinmiştim. Şimdi ise bir diğer yöntem olan StAX konusuna değinmeye çalışacağım. Yazının pdf formatına buradan ulaşabilirsiniz. StAX, SAX’ a oldukça benzer; fakat birkaç noktada ayrılır. Örneğin; cursor ve iterator olmak üzere kendi içerisinde iki alt yöntem içerir. Bu yazımda cursora değineceğim. En önemli fark ise şudur. SAX’ da olaylar oluşturulur, kullanıcı uyarılır ve işlenir. StAX’ da ise kullanıcı uyarılmaz. Gereken durumlar da olaylar işletilir. Dolayısıyla kullanıcı olaylar arasında seçim yapabilir. Örnek üzerinde daha iyi anlaşılacaktır.
package com.farukbozan.ornekler.xml;import java.io.File; class StAXCursorOkuyucu private XMLStreamReader okuyucu; public StAXCursorOkuyucu(File xmlDosyasi) public void dosyayiOku() } public class MainStAX { public static void main(String[] args) { StAXCursorOkuyucu staxCursorOkuyucu = new StAXCursorOkuyucu(new File(“ornek.xml”)); staxCursorOkuyucu.dosyayiOku(); } } |
Örnek uygulamamız main bloğuna sahip bir sınıf üzerinden gidiyor. Yalnız olayı daha rahat görebilmemiz için bir iç sınıf kullandım. Yapılandırıcımız, SAX yapılandırıcımızdan biraz farklı şekilde bağlantı oluşturmaktadır; ama zor veya anlaşılmaz olduğunu söylemek mümkün değil :D. Asıl önemli, fark oluşturan kısma geliyoruz. Dikkat ederseniz SAX’ da bizi uyaran metotlar bir interface aracılığı ile oluşturuluyor ve otomatik çağrılıyordu. StAX’ da ise olay daha da kontrollü bir şekilde gidiyor. Olayların tiplerini kontrol edip, duruma göre işlem yapabiliyoruz. Yine her zamanki gibi oldukça basit işlemler; ama bir o kadar güçlü ve ihtiyaç karşılar türden.
Bol Java’ lı günler dileğiyle…
Yazan: Faruk BOZAN (Yazılım Mimarı / Software Architect)