Makale Özeti

.NET Framework, .NET Framework XML sınıfları adında XML API’leri içerir. Bu sınıflar System.Xml ad uzayında bulunurlar. En önemli üçü XmlReader, XmlWriter ve XmlDocument’tir.

Makale


Mobil Uygulamalarda XML Kullanımı

.NET Framework, .NET Framework XML sınıfları adında XML API’leri içerir. Bu sınıflar System.Xml ad uzayında bulunurlar. En önemli üçü XmlReader, XmlWriter ve XmlDocument’tir. XmlReader, bir Xml dokümanı için sadece ileri yönlü okuma (forward-only, read-only) sağlar. XmlWriter, XML dokümanı oluşturmak için arayüz sağlar. XmlDocument ise bir XML dokümanının bellekteki halidir.

XmlTextWriter ve XmlTextReader adında XmlWriter ve XmlReader’den türetilmiş iki sınıf daha vardır. XmlTextReader ön belleğe almaya izin vermediği için çok hızlı okuma olanağı sağlar. XmlTextReader’in kursörü doküman içerisinde istediğiniz yere götürebilmenizi sağlayan metotları vardır. Örneğin Read metodu. Read metodu ile XML dokümanı içerisinde düğüm bazında ilerleyebilirsiniz. XmlTextReader ile DTD, XDR ve XML Schema’lar için geçerlilik kontrolü yapabilirsiniz.

XmlTextReader’in metotlarından GetXml, bir datasetin XML belirtimini bir string olarak döndürür; GetXmlSchema, XML şemayı bir string olarak döndürür; ReadXml, bir streamden ya da dosyadan XML verilerini okuyarak dataseti doldurur; ReadXmlSchema, bir XML dokümanından okuyarak şema bilgisini oluşturur fakat verileri dataset içerisine almaz; WriteXml, datasetin XML belirtimini bir streame ya da dosyaya yazar; WriteXmlSchema da datasetin şema bilgisini (veriler hariç) streame yazar.

XmlDocument için bir XML dokümanın bellekteki halidir demiştik. Mobil uygulamanız içerisinden programatik olarak bu doküman üzerinde istediğiniz gibi değişiklik yapabilirsiniz. XMLDocument, DOM’un ağaç yapısını belirten XmlNode nesneleri içerir.

XmlDocument ile DataSet arasında veri dönüşümü yapmak mümkündür. Bellekteki bir DataSet nesnesi ile XmlDocument nesnesi arasında önemli farklılıklar vardır. Örneğin XmlDocument’in şeması çok karmaşık olabilir ve bu şemanın kuvvetli tipli bir Dataset’e dönüştürülmesi zor olabilir. Ayrıca XmlDocument orijinal veriler üzerinde yapılan değişikliklerin kaydını tutmazken DataSet verilerin hem orijinal hallerini hem de değişikliğe uğramış halini tutar.

XML Schema’dan çok yerde bahsettik fakat bilmeyenler olabilir. XML Schema bir XML dokümanının elemanlarını ve özelliklerini tanımlar. Bir XML dokümanı ve ilişkili XML şeması mevcutsa dataseti şemasıyla birlikte dokümandan yükleyebilirsiniz. Doküman mevcut değilse bir XML dokümanını şemasıyla birlikte programatik olarak da oluşturabilirsiniz.

Yeni bir şema oluşturmak için Visual Studio .NET içersindeki görsel araçları kullanabilirsiniz ya da BuilXmlDocument fonksiyonundan yararlanarak programatik olarak da oluşturabilirsiniz. Örneğin:

Public XmlDocument XmlDokumaniOlustur(){
XmlDocument myXmlDoc = new XmlDocument();
XmlNode yeniDugum, personel;
yeniDugum = myXmlDoc.CreateElement("Calisanlar");
myXmlDoc.AppendChild(yeniDugum);
yeniDugum = myXmlDoc.CreateElement("Calisan");
yeniDugum.InnerText = "Tarık Özkan";
myXmlDoc.DocumentElement.AppendChild(yeniDugum);
personel = yeniDugum;
}

XML kaynağındaki veriler XmlDocument nesnesine yüklendikten sonra DOM içerisinde .NET Framework sınıfları sayesinde istediğiniz gibi dolaşabilir, veriler üzerinde değişiklik yapabilirsiniz.

DOM, XmlDocument içerisinde belleğe alındıktan sonra mevcut düğümler silinebilir, yenileri eklenebilir ya da değiştirilebilir. Aşağıda DOM içerisinde dolaşmayı sağlayan düğümlerin değerlerini öğrenmeye yarayan XmlNode sınıfı özelliklerinin bazıları verilmiştir:

Özellik Açıklama


Attributes O anki düğümün özelliklerini içeren bir koleksiyon döndürür.
BaseURI O anki düğümün taban URI’ını döndürür.
ChildNodes Düğümün tüm alt düğümlerini döndürür.
FirstChild Düğümün ilk alt düğümünü döndürür.
LastChild Düğümün son alt düğümünü döndürür.
NextSibling O anki düğümü takip eden bir sonraki düğümü döndürür.
Value Düğümün değerini döndürür ya da değiştirir.