İçindekilerGirişİndex
YukarıİlkÖnceki YokSonraki YokSon
Geriİleri
Yazdır

XML FAQ

Bu dosyada XML ile ilgili faq'ler bulunacaktır.

GENEL

S1 : XML nedir?

XML (Extensible Markup Language - Genişletilebilir İşaretleme Dili) yapılandırılmış belge ve verilerin evrensel formatıdır. XML sayesinde her birey ve kuruluş gerektiğinde kendi veri ve belgelerini belirtmek için kendi saklama ve aktarma biçimlerini belirlemek zorunda kalmaz. Farklı taraflar ortak bir formatta anlaşarak kolayca iletişim kurabilirler. Herhangi bir konuda bilgi içeren belge XML'le belirtilebilir. Örneğin şu okuduğunuz dokümanı XML'le belirtmek istersek şöyle yazmamız yeterlidir.

<faq id="XmlFaq">
	<info>
		<title> XML'de Sıkça Sorulan Sorular</title>
		<author> Önder Teker</author>		
	</info>
	<body>
		<item id="1">
			<question> XML Nedir? </question>
			<answer> İşte budur! </question>
		</item>
		<item id="2">
			<question> XML Nerelerde kullanılır? </question>
			<answer> İşte buralarda kullanılır! </question>
		</item>		
	</body>
</faq>

Bu veri, belli bir yapıda olduğu için herhangi bir şekilde kullanılmaya veya dönüştürülmeye uygun durumdadır. XSLT (Extensible Stylesheet Language Transformation) ile HTML çevrilebilir. XPath'la içerisindeki bir soru /faq/body/item[id="2"] şeklinde erişilebilir. (Not : Bu belge gerçekten bir XML'le yazılmış, XSL'le HTML'e transform edilmiştir.)

Aynı bilgiyi SQL'le yapmaya çalışsaydık bir çok tablo yapmamız gerekirdi. Kendimize göre bir format uydursaydık, onun içinden bir bilgiye erişmek için parse etmemiz, HTML' dönüştürmemiz için de tek tek her elemanı bulup başına sonuna HTML tag'ları eklememiz gerekirdir. Bütün bu işler XML'le birlikte kolayca yapılabilir hale gelmiştir. XML'in özellikleri arasında Unicode olması, metinli (insanlar tarafından okunabilir) olması da sayılabilir.

S2 : XML nerelerde kullanılır?

Her yerde! XML'in kullanılmadığı çok yer vardır ama kullanılamayacağı hemen hemen hiç bir yer yoktur. HTML üretmek için, makineler arasında iletişim kurmak için hatta veritabanı olarak bile kullanılabilir.

S3 : XML kimindir?

Kimsenin! XML kimsenin malı olmayan evrensel bir standarttır. W3 Consorsium (W3C) adlı kar amaçsız bir organizasyon tarafından geliştirilmiştir. IBM, Microsoft, Sun dahil bir çok büyük şirket W3C'nin çeşitli çalışmalara katılmaktadır.

S4 : XML hakkında nerden bilgi bulabilirim?

Google'da 'XML' yazarsanız bile çok sayıda kaynağa erişebilirsiniz. Burada sadece otorite sayılabilecek link'ler verilmiştir. Ancak bunlar daha çok, XML'i hiç bilmeyenler için değil öğrenmekte olanlar için bilgi içerir.

HTML

S5 : XML'le HTML arasındaki fark nedir?

ML genel amaçlı bir dilken HTML sadece web sayfalarını oluşturmak için kullanılır. HTML sabit etiketlerden oluşurken XML'de herkes istediği etiketi kullanabilir. HTML hatalara karşı nispeten hoşgörülüyken XML'de belgenin doğruluğunu sağlamak için sıkı bir kontrol vardır. Aslında XML'in geniş kullanım alanı düşünüldüğünde karşılaştırma yapmanın bile doğru olmayacağı görülür.

S6 : HTML'i geliştirmek yerine niye XML ortaya çıkartıldı?

HTML son gelişmelerle birlikte yetersiz kalmaya başladı. Radikal bir değişikliğe ihtiyaç duyulduğu için XML ortaya çıktı. XML ayrıca HTML'i kapsayan daha büyük bir sistem olduğundan, HTML hiç kullanılmadığı alanlarda da kullabilir durumdadır.

S7 : XML HTML'in yerine geçecek mi?

Hayır. Web sayfalarında HTML XML'in bir alt kümesi olarak (XHTML) kullanılmaya devam edecek. Bir çok yerde XML'deki veri yine XML formatı olan XSLT ile XHTML'e dönüştürülerek kullanılmaya devam edecektir.

S8 : XHTML XML midir, HTML midir?

XHTML, HTML'in işlevini gören ama XML'in kurallarına da uyan bir formattır. HTML'i üreten Web Concorsium'u artık XHTML kullanılmasını öneriyor.

S9 : HTML bilen biri kolayca XML öğrenebilir mi?

XML HTML'i çok aşan bir teknoloji. Ancak ikisi de <etiket name="value> şeklinde kullanılan birer markup dili olduğu için HTML bilenler bilmeyenlere göre daha avantajlı durumda olabilirler. Ancak HTML bilgisi XML'in bütün kullanımlar için yeterli değildir.

S10 : XML öğrenmeden önce HTML öğrenmek gerekir mi?

Hayır. Eğer XML'i web sayfalarında kullanmak gibi amaç yoksa HTML öğrenmeye gerek bile yok. Zaten XML öğrenen kolaylıkla HTML'i de öğrenebilir. Sadece HTML'e özgü etiketlerin anlamlarını bilmek yeterli olacaktır.

VERİ

S11 : Word, Excel varken niye XML?

Word ve Excel Microsoft firmasının kendine özel formatlarıyla (.doc ve .xls) çalışır. Bunlar açık ve herkesin kolaylıkta okuyabileceği veya üretebileceği formatlar değildir. Oysa İnternet biribirinden farklı işletim sistemlerine ve yazılım altyapılarına sahip bir çok firmanın anlaşması gereken bir ortam. Zaten Microsoft da bu sayılan ürünlerde bile en kısa zamanda XML'e geçiyor.

S12 : XML SQL Veritabanı yerine kullanılabilir mi?

Kısmen. Veritabanlarının iki işlevi vardır : Saklama ve Sorgulama. XML dosyalarında veri düz dosyalarla karşılaştırılamayacak kadar gelişmiş bir yapıda saklanabilir. Ancak XML dosyalarında normalde SQL'de yapılabilen sorgular yapılamaz. XQL (Extensible Query Language), X-Query, XML-Query gibi diller yaygın XML parser'lar tarafından desteklenmiyor. Bunları destekleyen sadece bazı XML Server'lar var. Ancak XML dosyaları üzerinde normalde sorgu gerektiren işlemler yapan XPath'le yapılabilir.

S13 : XPath nedir?

XML'de herhangi bir elemanın içindeki text'e ve attribute'lerine erişim için kullanılır. Örnekler.

/doc/chapter[5]/section[2] : doc'un 5.chapter'ının 2. section'unu ver
/doc/chapter[5]/@name : doc'un 5.chapter'ının name' attribute'sini ver.
chapter[@title="Introduction"]  : title'ı "Introduction" olan chapter'ları ver
chapter[content="XYZ"]  : içerisinde içeriği "XYZ" olan content elementleri bulunan chapter'ları ver

Görüldüğü gibi bu işlemler düz dosyalarla çalışan kişilerin çok uzun kodla yapabileceği işlemleri tek satırda hallediyor. Krmaşık bir belgenin SQL'de saklanmasının zorluğu dışında, sorgulama için kullanılması gereken SQL ifadesi de çok uzun olurdu. Ancak SQL sorgulama alanında oldukça güçlüdür.

S14 : XLink ve XPointer?

XLink farklı XML belgeleri arasında bağlantı kurmak için kullanılır. Bir belgenin içerisine diğerini koymak veya bir belgeden diğerine geçişi sağlamak gibi işelevleri içerir. (HTML'de 'IMG' ve 'A' etiketleri gibi). XPointer da Bir XML dosyası içerisindeki elementler arasında bağlantı kurar. (HTML'de HREF="#name" şeklinde kullanım gibi)

S15 : XSL (Extensible Style Language) nedir?

XML'le belirtilen verinin nasıl sunulacağını belirten, kendisi de XML'le tanımlanan dil. Bir sayfada verinin nasıl konumlandırılacağını ve gösterileceğini belirten dil XSL-FO'dur. Bir XML'i başka bir XML'e veya diğer bir formata dönüştüren dil de XSLT'dir. En yaygın kullanımıyla, XSL-FO XML'i bir borwser'da direk göstermek için kullanılırken, XSLT XML'i HTML'e çevirmek için kullanılır.

MESSAGING

S16 : XML-RPC, SOAP, WSDL, UDDI nedir?

RPC (Remote Procedure Call- Uzaktan Yordam Çağırma) bir makineden diğer bir makindeki porgram parçasına ait bir prosedürü çağırmak demektir. Bu işlem C++ ve Java gibi programlama dilleri ile yapan CORBA ve RMI gibi protokoller bulunmaktadır. XML-RPC iki makine arasında konuşmak için XML'le belirlenmiş bir protokol kullanılmasıdır. SOAP (Simple Object Access Protocol) bir makineden başka bir makindeki nesnenin bir metodunu çağırmak ve sonucunu almak için üretilmiş bir protokoldür. XML'le yazıldığı için elle üretilebilir veya düzenlenebilir. (RPC, CORBA, RMI'da bunu yapmak için bir araç kullanmak gerekir.) WSDL'se bir makineye diğer makinelerin erişebileceği bir servisi tanımlamaya yarar. UDDI (Universal Description, Discovery Integration) firmaların sağladığı servislerin belirlenmesini ve erişilebilmesini sağlayan sistemdir. Online olarak belli bir servisi veya işi arayan insanlar UDDI kullanrak aradıklarına erişebilirler. Bütün bu protokoller XML tabanlıdır ve işletim sistemi ve programlama dilinden bağımsızdır.

XML BELGELERİ

S17 : Well-Formed ve Valid ne demek?

Bir XML belgesinin, kurallara uygun olarak yazımış olmuşsa İyi-Oluşturulmuş (Well-Formed) denir. Etiket'ler "<tag>" şeklinde başlıyorsa "<tag>" şeklinde açılan bir etiket "</tag>" bitiyorsa iyi oluştuırulmuş demektir. Örneğin

<body>
	<item id="1">Xxx <item>
</body>

well-formed'dır. Ancak bir belgenin well-formed olması valid olduğu anlamına gelmez. Örneğin,

<item >
	<body> Zzz </body>
</item>

da iyi oluşturulmuştur ancak geçerli değildir. Etiket'lere 'body' yerine 'dody' yazılırsa yine iyi oluşturulmuş ama geçersiz bir belge olur. Valid olmayan ama Well-Formed belgeler XML'in kuralına uygun ama olması gerektiği gibi olmayan belgelerdir. Bir belgenin geçerliliği, hangi elemanın içerisinde hangisinin olacağı DTD'lerle belirlenir ve kontrol edilir.

S18 : Namespace ne demek?

Birden fazla etiket kümesiyle çalışılması durumunda isimlerin birbirine karşımasını engellemek için isim uzayı (namespace) kullanılır. Diyelim FAQ'ların da 'body' diye bir tag'i var ve content'in de. İkisini de aynı belgede kullanmak istersek body dediğimizde hangisinin anlaşılacağı karşır. O yüzden biri faqdoc:body diye kullanılırken diğeri contentdoc:body şeklinde kullanılır. Belge tek namespace'deki etiketlerle oluşmuşsa namespace önekinin belirtilmesine gerek yoktur.

S19 : DTD ile Schema arasındaki farklar nelerdir?

Her ikisi de bir belgenin geçerli olup olmadığını gösterir. Ancak DTD'nin sözdizimi biraz karşıktır. XSchema tanımlamayı kullanırken de XML kullanılabilmesini sağlamıştır. Ayrıca XSchema'da tip kontrolü gibi DTD'de omayan özellikler bulunmaktadır.

İçindekilerGirişİndex
YukarıİlkÖnceki YokSonraki YokSon
Geriİleri
Yazdır