İzafet.com - Forumex.net Türkçe Forumunuz  

Geri Git   İzafet.com - Forumex.net Türkçe Forumunuz > Programlama Bölümü > ASP, Perl, Php, Html

Yeni Konu Aç Cevapla
 
LinkBack Konu araçları
Eski 28-10-2006, 08:11   #1 (permalink)
..ıɯıʎǝsɹǝɥ ɯıpʎɐs ʞoʎ..
 
x_m.e.e's Avatar
 
Kayıt Tarihi: 20-03-06
Yer: LanetDoLu
Mesajlar: 80,956
Konu Sayısı: 24189
Blog Başlıkları: 260
İtibar Gücü: 500
x_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond repute
Rep Puanı: 124809
Standart XML ve XML Uygulamaları

I. GİRİŞ


XML açılımı Extensible Markup Language (Genişleyebilir İşaretleme Dili)’dir.
XML, elektronik ticaret, elektronik veri değişimi, terdarik zinciri bütünleştirmesi, veri yönetimi, akıllı arama makinaları gibi bir çok alanda stratejik bir araç olarak kullanılacak basit ve esnek metin biçimi teknolojisidir. XML’in özellikleri veri yapılarını, içeriklerini ve kavramlarını platform, şirket ve dilden bağımsız bir yapıda temsiline imkan vermektedir. XML uygulamalarımıza özel kendi işaretleme dilleri tanımlamamızı sağlayan bir meta dildir.

Bu seminer notunda işaretleme dilleri ve tarihçesi, HTML dili ve sınırlamaları, XML dili ve XML tabanlı teknolojiler ve uygulamalar, XML söz dizimi (syntax) kuralları, XML DTD belge tipi tanımlamaları, XML şemaları, CSS ve XSL ile XML belgelerinin biçimlendirilmesi, XML belgelerinin işlenmesi gibi XML temel konular örnekler verilerek açıklanmıştır.



II. İŞARETLEME DİLLERİ VE TARİHÇESİ


XML’in ne olduğunu tanımlayabilmemiz için önce Markup Language (İşaretleme Dili) ne anlama geldiğini açıklamakta fayda var. Basılı yayının gelişmesiyle yayıncıların yazılı metinlerin baskı makinalarında nasıl bir şekilde biçimde yayınlanması için hazırladıkları notlar ve özel sembolller markup olarak ifade edilmekteydi. Bu metinin belirli kısımlarının özel bir anlam kazandırmak üzere işaretlenmesi işlemidir. Bu amaçla kullanılan işaretler, kurallar ve gramer kümesi markup language (işaretleme dili) tanımlanır. Bu tip işaretleme yapılarını biz bir çok ortamda görebiliriz. Örneğin ASCII kodlama standardının içerdiği bir çok kontrol karakteri veri iletişimi için kullanmaktadır. Kelime işlem programları bir metin’nin içerdiği kısımları, yazı tiplerini, font ve stilleri ayırmak için metin içeririsine gömülü bir çok işaret’leri içermektedir. Programlama dilleri fonsiyonları, data yapılarını, verileri ayırmak için bir takım sembolller veya işaretler kullanmaktdadır. Bu tip bir standard ayıraç, işaret veya etiketler kümesi kullanmadan taşınabilir ve paylaşılabilir bir uygulama geliştirilebilmesi çok güçtür.

Metin ve belgelerin kolay bir şekilde taşınabilmesi, paylaşılabilmesi ve işlenebilmesi için ilk işaretleme dili GML (Generalized Markup Language) 1960 sonlarında IBM’de yapılan araştırma çalışmaları sonunda ortaya çıktı. GML daha sonra ANSI (American Natitional Stardard Institute) 1978 te oluştuturlan bir grup tarafından geliştirilerek SGML (Standardized Generalized Markup Language) adı altında 1986 yılında ISO (the International Organization for Standardization) kurumunca uluslararası bir standard olarak kabül edildi [1]. SGML bir metin veya belge kümesinde kullanılan dilin gramer ve sözlük yapısını belirtmek için kullanılan bir dildir. SGML Amerikan hükümeti kuruluşlarında, havacılık ve otomobil gibi büyük endüstri kuruluşları ve basın endüstrisinde bir belgeleme standardı olarak kullanılmaktadır. SGML çok güçlü bir dil olmasına rağmen son derece karmaşık yapısı ve yüksek uygulama geliştirme maliyeti bu dilin yaygın bir şekilde kullanımını engellemiştir.

Tim Berners-Lee ve Anders Berlung 1989 yılında internet ortamında belge paylaşımını kolaylaştırmak için Web uygulamalarının temel öğelerinden biri olan HTML (Hypertext Markup Language) dilini geliştirdiler. HTML bir SGML uygulaması olarak geliştirildi. Diğer bir deyişle HTML dilinin yapısı SGML dilinde tanımlandı. HTML dili çok basit yapısı ile son derece başarılı oldu. Albert Einstein’nin dediği gibi her şey daha basit olmamalı ama mümkün olduğunca basitleştirilmelidir[2]. HTML dili bir belgenin içerdiği başlık, font, resim ve tablo gibi bilgileri bilgisayar ortamında standard bir şekilde görüntülemek ve biçimlendirmek için geliştirilmiş bir dildir. Belgenin istenen formatta sunulması tag (etiket) olarak ifade edilen işaretler ile sağlanmaktadır. Bu dilin geliştirilmesindeki temel amaç belgenin standard bir formatta görüntülenerek sunulmasıdır. Bu dilin yalnızca web tarayıcıları için sunum amaçlı olarak geliştirilmesi bugunkü web uygulamalarının gerekirdiği daha sonra açıklayacağımız bir çok kısıtlamalar XML dilinin geliştirilmesine yol açtı.

1996 yılında Word Wide Consortium (W3C, http://www.w3.org)’u SGML güç ve esnekliğini içereçek basit bir işaretleme dili oluşturmak amaçıyla XML dilini tasarlamaya başladı. Şubat 1998’de XML 1.0 bir standard olarak W3C tarafından yayınlandı. XML dili SGML dilinin bir çok özelliğini içeren basitleştirilmiş dildir. SGML dilinin bir alt kümesidir. XML SGML gibi bir meta dildir. Yani başka dillerin yapısını tanımlamakta kullanılan bir dildir.

III. HMTL : Biçimsel ve İçeriksiz


HTML dili bir belgenin formatlanması amaçıyla daha önceden tanımlanmış bir etiket (tag) kümesine sahiptir. Her bir etiket özel bir formatlama anlamı içerir. Şekil 1’deki HTML örneğine bakalım. Burdaki <P> etiketi bir paragrafın başını göstermektekdir. </P> ise paragrafın bitiş etiketidir. Tarayıcı bu etiketlere bakarak bu başlangıç ve bitiş etiketleri arasındaki metini bir paragraf olarak yorumlayarak buna göre biçimlendirme işlemini gerçekleştirecektir. <b> ve </b> ekiteleri ise bu iki etiket arasındaki metinin bold (kalın) fontta basımı sağlayaktır. <br> etiketi ise yeni bir satır başına geçilmesini ifade eden satır atlama etiketidir.
<Bu örnekte gördüğümüz gibi HTML dilindeki bir çok etiket yalnızca biçimlendirme ile ilgili tarayıcın kullandığı bir anlam ifade etmektedir. HTML’in bu yapısı esnek, güçlü ve çok amaçlı bilgi sistemlerinin geliştirilmesini engellemektedir. HTML’in bu anlamda getirdiği bu takım sınırlamalar şunlardır[2|:

HTML genişleyebilir bir dil değildir. HTML daha öceden tanımlanmış sabit bir etiket kümesi içermektedir. Bu etiket kümesini uygulamara özgü kendimizin ekleyeceği yeni etketlerle genişletemeyiz.
HTML yalnızca sunum amaçlıdır. HTML etiketlerinin bir çoğu tarayıcının metni yalnızca nasıl biçimlendirmesi ile ilgili bilgi içermektedir. Veri kopyalama, paylaşımı, iletişimi ve uygulama bütünlenleştirmesi gibi diğer ağ uygulmalarının gereksinimlerine cevap vermemektedir.
HTML belgeleri genellikle direkt olarak yeniden kullanılamazlar. Örneğin, bir hava tahminleri hakkında bilgi veren bir sitedeki bir HTML belgesindeki sıcaklık, ve hava tahminleri ile ilgili bilgileri kendi uygulamamızda kullandığımızı düşünelim. Kendi uygulamamız bu sayfanın yapısını inceleyerek bu bilgileri istediğiz formata dönüştürsün. Hava tahmini sitesindeki en ufak bir değişiklik olması durumunda bizim uygulamamızı değiştirmemiz gerekeçektir. Bunun temel nedeni bir HMTL belgesi içindeki bilgi içeriğiyle sunum yapısının birbirinden ayrılmamasıdır.
HTML verilerinizin yalnızca bir "görüntüsü"nü sağlar. Kullanıcı isteklerine bağlı olarak bir HTML belgesindeki bilgilerin farklı formatlarda görüntülenmesini istersek bu işlem HTML ortamında çok zor olaçaktır. Bunun işlemi gerçekleştirmek için çok fazla script kodu yazmamız gerekçektir.
HTML verileri çok az veya hiçbir anlamsal yapı bilgisi içermezler. Örneğin yukarıda vermiş olduğumuz adres örneğinde metin içeriği hakkında ise hiç bir bilgi yoktur. Bu metne bakarak bir uygulamanın bu metindeki hangi verinin ad, soyad veya posta kodu olduğunu anlaması zordur.

x_m.e.e kişi çevrimdışı   Alıntı Yaparak Cevapla
Eski 28-10-2006, 08:11   #2 (permalink)
..ıɯıʎǝsɹǝɥ ɯıpʎɐs ʞoʎ..
 
x_m.e.e's Avatar
 
Kayıt Tarihi: 20-03-06
Yer: LanetDoLu
Mesajlar: 80,956
Konu Sayısı: 24189
Blog Başlıkları: 260
İtibar Gücü: 500
x_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond repute
Rep Puanı: 124809
Standart

IV. XML NEDİR ?

XML’de HTML gibi işaretleme etiketlerini kullanan dildir. HTML ve XML arasındaki temel fark XML işaretleme etiketlerinin bilginin i&#231;eriğini tanımlamak i&#231;in kullanılmasıdır. XML bir meta dildir. Diğer bir deyişle diğer yeni işaretleme dillerini tanımlamak i&#231;in kullanılan bir dildir. XML ile herhangi bir uygulama i&#231;in bir XML belgesinin i&#231;inde bulunacak verinin i&#231;eriği ve i&#231;erdiği veri tiplerini tanımlayacak uygulamaya &#246;zel bir işaretleme dili tanımlayabilirsiniz. Meta veri (Metadata veya Metainformation) veri hakındaki bilgidir. XML etiketleri veri hakındaki meta bilgiyi tanımlamaktadır. Şekil 2’deki XML adres listesi belgesi &#246;rneğindeki etiketler adres i&#231;inde ge&#231;en veriler hakkında bilgi vermektedir. Başlagı&#231; <contact> ve bitiş </contact> etiketleri arasındaki verilerin adres bilgisi olduğunu bildirmektedir. Bu belgenin i&#231;indeki başlagı&#231; ve bitiş etiketlerine bakarak bir uygulama bu bilgilerin ne gibi bilgi i&#231;erdiklerini kolay bir şekilde &#231;ıkarabilir. &#214;rneğin <city> başlangı&#231; ve </city> arasındaki “New yok” verisinin şehir bilgisi olduğunu kolayca anlaşılabilir.
<?xml version="1.0"?>
<!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [
<!ENTITY amp "&">
<!ENTITY apos "'">
]>

<addressbook>
<!-- This is my good friend Frank. -->
<contact>
<name>Frank Rizzo</name>
<address>1212 W 304th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1212</voice>
<fax>212-555-1213</fax>
</phone>
<email>frizzo@fruity.com</email>
<web>http://www.fruity.com/rizzo</web>
<company>Frank&apos;s Ratchet Service</company>
</contact>
<!-- This is my old college roommate Sol. -->
<contact>
<name>Sol Rosenberg</name>
<address>1162 E 412th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1818</voice>
<fax>212-555-1819</fax>
</phone>
<email>srosenberg@fruity.com</email>
<web>http://www.fruity.com/rosenberg</web>
<company>Rosenberg&apos;s Shoes & Glasses</company>
</contact>
</addressbook>


Bu belge &#246;rneğinde g&#246;rd&#252;ğ&#252;m&#252;z gibi XML belge i&#231;indeki verinin i&#231;eriği tanımlayan
etiketler i&#231;ermekdedir. Belgenin web tarayıcılarında nasıl formatlanacağı konusunda herhangi bir bilgi yoktur. Belgenin formatlanması daha sonra g&#246;receğimiz CSS veya XSL teknolojileri yapılabilir.

Şu ana kadar bu &#246;rnekte belge i&#231;inde hangi etiketler hangi yapıda kullanılabilir belirmedik. Bir belge i&#231;erisinde her hangi bir etiket ismi verip bu etiketi belge i&#231;inde kullanabilirmiyiz? Elbeteki hayır. Bir uygulamadaki XML belgesinin yapısı ve i&#231;ere&#231;eği etiketler o uygulama i&#231;in geliştirilmiş olan olan &#246;zel işaretleme dili ile tanımlanır. Bu işaretleme dilinin yapısı ise XML DTD (Document Type Definition) veya XML schema olarak adlandırılan belge tanımlama dosyalarında belirtilir. Şekil 3’te yukarıdaki adres listesi &#246;rneği i&#231;in tanımlanmış bir DTD dosyasını g&#246;stermektedir. Bu dosyada bu DTD’ye g&#246;re oluşturulmuş bir adres listesinde hangi etiketlerin bulunabile&#231;eğini, bu etiketlerin hangi etiketleri i&#231;erebileceği gibi bilgiler vermektedir. İlk satır <adressbook> etiketinin bir veya daha fazla <contact> etiketi i&#231;ereceğini belirmektedir. İkinci satır ise bir <contact> etiketinin i&#231;inde ge&#231;ecek elemanları belirlemektedir.
<!ELEMENT addressbook (contact)+>
<!ELEMENT contact (name, address+, city, state, zip,
phone, email, web, company)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT zip (#PCDATA)>
<!ELEMENT phone (voice, fax?)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT web (#PCDATA)>
<!ELEMENT company (#PCDATA)>



V. XML TABANLI TEKNOLOJİLER VE UYGULAMALAR
XML değişik veri, kavram ve i&#231;eriklerin tanımlanması ve temsil edilmesi i&#231;in uygun bir ortam sunmaktadır. Bu nedenle XML farklı alanlarda uygulama verilerinin tanımlanması ve taşınması i&#231;in &#252;retici, dil, ve platformdan bağımsız stratejik bir ara&#231; olarak hızla yaygınlaşmaktadır. Aşağıda XML’in kullanıldığı ve kullanıla&#231;ağı bazı temel uygulama alanları tanıtılmıştır.

Internet Arama Makinaları
Internet &#231;ok b&#252;y&#252;k bir ha&#231;imdeki yapısal olmayan veri i&#231;ermektedir. Bir arama makinasının (search engine) ingiliz&#231;e “chip” kelimesini aradğını d&#252;ş&#252;nelim. Karşımıza “chip” kelimesini i&#231;eren binlerce dok&#252;man gelecektir. Bu dok&#252;manlar patates “chip”leri, bilgisayar “chip”leri veya “chip” isimli kişiler hakında olabilir. Şu anda Internet belgeleri HTML ortamında saklandığından veri i&#231;eriği hakkında her hangi bilgi yoktur. XML yaygın bir şekilde Internet’te belge saklama ortamı olarak kullanıldığında, arama makinaları veriler hakında verilen bilgileri (metadata) kullanarak daha akıllı se&#231;imler sunabilecektir.

Aygıt ve Uygulamadan bağımsız Veri Erişimi
Şu andaki Web ortamındaki HTML belgelerine masa&#252;st&#252; bilgisayarlardaki tarayıcı (browser) programları kullanarak erişilmektedir. Bu yapı değişmeye başlamıştır. Cep telefonları ve kişisel sayısal yardımcı PDA (Personel Digital Assistant) gibi ara&#231;lar ile bug&#252;n web erişimi hızla artmaktadır. Bu ara&#231;lardaki g&#246;r&#252;nt&#252;, band genişliği, bellek ve işlem&#231;i sınırlamaları Web’te yeniden bir yapılanmayı gerektirmektedir.

HTML dili belgelerin Web tarayıcılarında g&#246;sterilmesi ama&#231;ı ile geliştirlmiştir. XML belge i&#231;eriğini belge sunumundan ayırmaktadır. XML ortamındaki belgeler aygıtın yapısına bağlı olarak istenilen şekilde formatlanarak sunulabilir. XML tabanlı bilgilere erişim cep telefonu gibi bir aygıtla erişileceği gibi bu iş ama&#231;lı bir web uygulaması ilede olabilir. Bu uygulama XML ortamındaki bilgi i&#231;eriğini alarak istediği şekilde kullanabilir veya formatlayabilir. &#214;rneğin aşağıda bir &#252;r&#252;n hakındaki bilgiler XML formatında verilmiştir. Bu &#252;r&#252;n hakkındaki bilgiler Şekil 4’te g&#246;r&#252;ld&#252;ğ&#252; gibi XML işlemcisi tarafından farklı ortamlarda sunulabilir.
<product> <id>12345678-Q</id> <description>Thinkpad 2000D</description> <price>$999.99</price></product>

Elektronik Veri Değişimi ve Elektronik Ticaret
XML’in en fazla ilgi &#231;eken tarafı e-ticaret, tedarik zinciri y&#246;netimi ve iş akışı (workflow) y&#246;netimi gibi elektronik iş web uygulamalarında bir veri değişim formatı olarak kullanılmasıdır. Bug&#252;nk&#252; bilgisayar iletişimindeki &#231;ok b&#252;y&#252;k gelişimlere ve birikime rağmen, bilgisayar sistemlerindeki ve veritabanlarındaki farklı formatlardaki verilerin şirket i&#231;i ve şirketler arası taşınması ve işlenmesi en b&#252;y&#252;k problemlerden birisidir. Bu verilerin XML formatına d&#246;n&#252;şt&#252;r&#252;lerek taşınması bu problemin &#231;&#246;z&#252;m&#252;n&#252; kolaylaştırmaktadır
x_m.e.e kişi çevrimdışı   Alıntı Yaparak Cevapla
Eski 28-10-2006, 08:12   #3 (permalink)
..ıɯıʎǝsɹǝɥ ɯıpʎɐs ʞoʎ..
 
x_m.e.e's Avatar
 
Kayıt Tarihi: 20-03-06
Yer: LanetDoLu
Mesajlar: 80,956
Konu Sayısı: 24189
Blog Başlıkları: 260
İtibar Gücü: 500
x_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond repute
Rep Puanı: 124809
Standart

Basın ve Yayıncılık

XML basın ve yayıncılık i&#231;in geliştirilmiş olan SGML dilinin basitleştirilerek t&#252;retilmiş bir dil olduğundan bu konuda aynı ama&#231;la kullanılabilir. XML formatında saklanan belgeler bir &#231;ok farklı ortama XML ara&#231;larını kullarak d&#246;n&#252;ş&#252;r&#252;lebilir ve kullanılabilir. Klasik yayıncılığın yanı sıra XML yeni elektronik yayıncılıktada kullanılabilir. Elektronik yayın ortamındaki g&#246;r&#252;nt&#252;, video, ses ve diğer sayısal veri nesneleri XML ile formatlanarak saklanabilir, taranabilir ve sunulabilir.





Şirket Uygulamarı B&#252;t&#252;nleştirmesi
Şirket Uygulamaları B&#252;t&#252;nleştirilmesi kavramı farklı uygulamaların tek bir uygulama gibi davranması olarak ifade edilebilir. Bu işlem farklı sistemlerdeki veri kopyalarının ve dağıtık bir yapıdaki verilerin doğru zamanda ve doğru yerde bulunmasını gerektirir. &#214;rneğin bir muhasebe sistemi ile satış sistemini birleştirmek i&#231;in satış siparişi bilgilerinin faturaların oluşması i&#231;in muhasebe sistemine aktarılması gerekebilir. Aynı şekilde fatura verilerininde muhasebe sistemine aktarılması gerekebilir. Bu aktarma işlemleri doğru bir şekilde yapıldığında her bir iş hareketi otomatik olarak gerekli uygulama sistemlerine işlenerek g&#252;ncellecektir.

Yazılım Geliştirme
XML b&#252;y&#252;k &#231;aplı uygulama gelişmede uygulama mimarilerinin paylaşımını kolaylaştıracaktır. OMG (Object Management Group) bir XML tabanlı bir uygulama olan XMI (XML Metadata Interchange) spesifikasyonunu kullanacağını belirmiştir. XMI, UML (Unified Modelling Language) kullanarak tasarlanmış olan uygulamaları tanımlamada kullanılan bir dildir. XMI, geliştirme ekibinin &#231;ok farklı uygulama geliştirme ara&#231;larını kullanarak, tek bir UML modelinin paylaşımına imkan vermektedir. Bu yazılım geliştirme s&#252;recinde geliştirme ekibi arasındaki iletişimi artırarak geliştirme s&#252;recini kısaltmakta ve ekibi daha &#252;retken kılmaktadır.

Yazılım geliştiricileri XML meta bir dil olduğundan uygulamalarının gerektirdiği yeni dilleri gelişitirebilir. Bu dillerde tanımlanmış olan verileri ve yapıları hazır olarak bulunan XML k&#252;t&#252;paneleri ve ara&#231;ları ile kolaylıkla işleyebilir.
x_m.e.e kişi çevrimdışı   Alıntı Yaparak Cevapla
Eski 28-10-2006, 08:13   #4 (permalink)
..ıɯıʎǝsɹǝɥ ɯıpʎɐs ʞoʎ..
 
x_m.e.e's Avatar
 
Kayıt Tarihi: 20-03-06
Yer: LanetDoLu
Mesajlar: 80,956
Konu Sayısı: 24189
Blog Başlıkları: 260
İtibar Gücü: 500
x_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond repute
Rep Puanı: 124809
Standart

VI. XML S&#214;Z DİZİMİ (SYNTAX)
XML belgeleri işaretleme ifadeleri ve veri i&#231;eriğinden oluşan bir veri dosyası veya paketidir. İşaretleme ifadeleri elemanlar (elements), varlık referansları (entity refererences), a&#231;ıklamalar (comments), işleme komutları (processing instructions), CDATA b&#246;l&#252;mleri ve veri tipi tanımlamalarından (document type declaretions) oluşur.

XML’de ge&#231;en temel işaretleme ifadelerini detaylı incelemeden &#246;nce aşağıdaki Şekil ‘teki &#246;rneği inceleyelim. Bu &#246;rnekte XML dilinde tanımlanmış basit bir elektronik posta verilmiştir. Belgenin ilk satırı <?xml ... ?> her zaman tanımlanması gereken XML işlem komutu deklarasyonudur. Bu belgenin bir XML belgesi olduğunu ve hangi versiyonu kullandığını belirmektedir. İkinci satır opsiyonel olarak tanımlanabilen belge tipi deklarasyonunudur. Bu belge i&#231;in tanımlanmış olan DTD (Veri Tipi Tanımlama) dosyasının isminin e_posta.dtd olduğunu ifade etmektedir. Bunların altındaki kısım XML belgesinin g&#246;vdesini oluşturmaktadır. XML belgesi g&#246;vdesi hiyerarşik bir ağa&#231; yapısında oluşmuş belge elemanlarından oluşur. Her bir eleman bir başlangı&#231; ve bitiş etiketi i&#231;erir. &#214;rneğin aşağıdaki tarih elemanı <tarih> başlangı&#231; etiketini, 7 Eyl&#252;l 2000 karakter verisini ve </tarih> bitiş etiketindan oluşmaktadır. Elemanlar diğer elemanları veya karakter verileri i&#231;erebilir. Bu &#246;rnekte e_posta elemanı kime, kimden, tarih, konu, ve mesaj elemanlarını i&#231;ermektedir. Bir belgenin en &#252;st seviyesinde bulunan eleman k&#246;k eleman olarak adlandırılır. Bu &#246;rnekte k&#246;k eleman e_posta’dır.

<?xml version="1.0" ?><!DOCTYPE e_posta SYSTEM "e-posta.dtd">
<e_posta> <kime>Herkese</kime> <kimden> Selim Akyokuş</kimden> <tarih> 7 Eyl&#252;l 2000</tarih> <konu>XML ve XML Uygulamaları</konu> <mesaj> XML HTML gibi etiket tabanlı bir dildir</mesaj></e_posta>


Elemanlar (Elements)

Elemanlar XML dilinin en temel yapı taşlarıdır. Bir eleman veri i&#231;eriğini kapsayan bir kutudur. Karakter verileri, diğer elemanları veya diğer işaretleme yapılarını i&#231;erebilirler. Elemanlar etiketlerle ayrılırlar. Her bir etiket bir eleman tip ismi (element type name) i&#231;erir ve bir &#231;ift (“<>”) a&#231;ı parantezle i&#231;e alınır. Eleman tip isimlerini oluşturmakta olan kurallar diğer programlama dillerindeki isim kurallarına benzemektedir. Her bir isim bir harfle veya alt &#231;izgi (_) başyababilir. Tire (-) veya sayı ile başlayan isimler kulanılamazlar.

Boş elemanlar (empty elements) haricindeki her bir elemanın bir başlagı&#231; etiketi bir de bitiş etiketi bulunur.

Başlangı&#231; Etiketleri

Bir elemanın başlama ayıra&#231;ı başlangı&#231; etiketi (start-tag) olarak adlandırılır ve bir &#231;ift (“<>”) a&#231;ı parateziyle kapatılır. Aşağıda bir bazı doğru başlangı&#231; etiketleri verilmiştir.
<kime>
<kimden>
<Kitap>
<kitap>



Unutulmaması gereken bir diğer kural XML dili harflerin b&#252;y&#252;k veya k&#252;&#231;&#252;k olmasına duyarlı (case sensitive) olduğudur. &#214;rnekteki <Kitap> ve <kitap> etiketleri aynı değildirler.

Bitiş etiketleri

Bir elemanın bitiş ayıra&#231;ı bitiş etiketi (end-tag) olarak adlandırılır. Bitiş etiketi eleman tip ismi &#246;cesinde bir b&#246;l&#252; (“/”) karakteri i&#231;erir ve a&#231;ı parantezleri ile kapatılır. Aşağıda bitiş etiketi &#246;rnekleri verilmiştir.
</kime>
</kimden>
</Kitap>
</kitap>

XML’de her bir başlangı&#231; etketi bir bitiş etiketi ile mutlaka kapatılmalıdır. Başlangı&#231; bitiş etiketi ile kapatılmış bir tam XML elemanı aşağıdaki gibidir.
</kitap> XML Unleashed </kitap>


Boş Eleman Etiketleri

Aşağıdaki &#246;rnekteki ilk satırda olduğu gibi boş elemanlar (empty elements) her hangi bir i&#231;erik i&#231;ermezler. Boş etiketler istenirse etkiketin sonuna tek bir bol&#252; (/) işareti eklenerek kısatılmış bir bi&#231;imde g&#246;sterilebilir. İkinci satırda bunun bir &#246;rneği verilmiştir.
</br></br>
<br/>

Belge Elemanı

XML belgeleri mutlaka hiyerarşik etiket yapısında olmalıdır. Etiket hiyerarşisi i&#231;indeki en &#252;st sevyideki etiket k&#246;k etiket (Root tag) veya belge k&#246;k&#252; (Document root) olarak adlandırılır. K&#246;k etiketin oluşturduğu eleman Belge elemanı (Document Element) olarak adlandırılır. Bu eleman belgenin ağa&#231; yapısındaki diğer b&#252;t&#252;n elemanları i&#231;ine alır ve diğer bir elemanın i&#231;inde bulunamaz. &#214;rneğin Şekil 4’te verilen elektronik posta &#246;rneğinde belge k&#246;k&#252; e_posta’dır.

Elemanlar i&#231; i&#231;e yuvalandığında yuvalama (nesting) kurallarına uymalıdırlar. Yoksa bu bir XML belgesinin hiyerarşik ağa&#231; yapısını bozacaktır. Aşağıda bir yanlış yuvalama &#246;rneği verilmiştir.
HTML allows <B>
<I> improper nesting <B>
<I>

Aşağıda doğru bir yuvalama &#246;rneği verilmiştir.
XML requires <B>
<I> improper nesting <I>
<B>


&#214;zellikler (Attributes)
Elemanlara eklemek istediğimiz ek bilgiler &#246;zellikler olarak ifade edilir. &#214;zelikler başlangı&#231; etiketi i&#231;erisinde isim ve değer ikilileri olarak ge&#231;er. Aşağıda bir &#246;zellik &#246;rneği verilmiştir:
<kitap kitap_no=”123456”>


Buradaki kitap_no kitabın bir &#246;zelliğidirr. &#214;zellik değerleri mutlaka &#231;ift tırnak (“) veya tek tırnak (‘) i&#231;ine alınmalıdır.

Karakter Veri

Bir elemanın başlangı&#231; ve bitiş etiketleri i&#231;inde ge&#231;en metin i&#231;eriği karakter veri (character data) olarak adlandırılır. XML i&#231;inde &#246;zel ama&#231;lı olarak kullanılan (&,<,>,”,’) karaterleri olduğu gibi bir karakater veri i&#231;erisinde ge&#231;emezler. Bu karakterler işaretleme etiketleri i&#231;inde &#246;zel ama&#231;larla kullanılan ayıra&#231;lardır.

XML’de HTML’den farklı olarak etiketler i&#231;ine yazılmış olan veri i&#231;erisinde ge&#231;en boşluklar (White Space) korunur ve uygulamalara iletilir. Etiket tanımları i&#231;erisinde veya &#246;zellik tanımı i&#231;erisinde ge&#231;en boşluklar ise HTML’de olduğu gibi parser tarafından yok edilir.


Karakter ve Varlık referansları

SGML ve HTML gibi ASCII karakter seti i&#231;inde karakterleri g&#246;stermek i&#231;in XML iki y&#246;ntem kullanmaktadır. Birinici y&#246;ntem karater refereranslarıdır. Karater referansları gosterilecek karateri onluk bir sayının başına “&#”, onaltılık bir sayının başına ise “&#x” ekleyerek g&#246;sterme imkanı sağlar. &#214;rneğin copyright karateri &#227; ondalık olarak “&#169” veya onaltılık olarak “&#xA9” XML’de g&#246;sterlebilir.

Varlık referansları verilecek bir isim vasıtasıyla istenilen karaterleri g&#246;stermek i&#231;in kullanılır. Varlık referansları bir amersend (&) karateri, bir isim ve noktalı virg&#252;lden ( oluşur. &#214;rneğin XML’de &#246;zel olarak kullanılan (&,<,>,’,”) karakterleri (& < > &apos; ") varlık referansları ile g&#246;sterilir. Bu referanslar XML de daha &#246;nce tanımlanmış standard referanslardır. Bu referanslar haricinde &#246;zel olarak kullanmak isteiğimiz varlık referansları DTD i&#231;inde tanımlanmalıdır.

A&#231;ıklamalar (Comments)
A&#231;ıklamalar HTML’de olduğu gibi “<!--“ ile başlar ve “-->” ile biter. A&#231;ıklamalar bir XML belgesinin herhangi bir kısmında ge&#231;ebilir ve belgenin bir par&#231;ası sayılmazlar.

İşlem Komutları (Processing Instructions)
XML belgelerini kullanan uygulamalara her hangi bir komut ge&#231;ilmesi istenildiğinde bu işlem komutları ile yapılır. İşlem komutları aşağdaki yapıya sahiptir:
<?hedef ...komutlar ... ?>







İşlem komutları XML işlemi&#231;isi tarafından uygulamaya iletilir. İşlem komutları a&#231;ıklamalar gibi bir XML belgesinin par&#231;ası sayılmazlar.

CDATA b&#246;l&#252;mleri (CDATA Sections)
CDATA b&#246;l&#252;mleri XML’de kullanılan işaretleme ifadelerinin g&#246;z ardı edilmesi gereken metinleri yazmada kullanılır. XML parsır’ı bu b&#246;l&#252;mde metin i&#231;erisinde yer alan işaretleme ayıra&#231;larını ve etiketlerini normal karaterker olarak algılar. Bir CDATA b&#246;l&#252;m&#252; şu yapıya sahiptir:
<![CDATA[ ... ]]>



Bu yapıda “...” olarak ifade edilen kısım “]]” hari&#231; herhangi bir metini i&#231;erebilir. Aşağıda bir CDATA b&#246;l&#252;m&#252; &#246;rneği verilmiştir.
<![CDATA[
*P = &A
C = (i <= 5) ;
]]>




Belge Tipi Deklarasyonu (Document Type Declaration)
Belge tipi deklarasyonları bir XML belgesinin giriş kısmında tanımlanan belgenin gramer tanım kurallarını belirleyen hangi harici ve dahili DTD (Document Type Definiton)’yi kullandığını belirtir. Bu kısım varlık referansı tanımlamaları gibi ek bilgilerde i&#231;erebilir. Harici belge tipi deklarasyonları şu formatta olabilir:
<!DOCTYPE k&#246;k_eleman_ismi SYSTEM "sistem_tanımlayıcısı">
<!DOCTYPE k&#246;k_eleman_ismi PUBLIC
"public_tanımlayıcısı""sistem_tanımlayıcısı">

Bu tanımdaki k&#246;k_eleman_ismi belge DTD’sinde en &#252;st seviyede tanımlanan k&#246;k elemanı belirtir. Sistem_tanımlayıcısı ise harici olarak kullanılan DTD’ye URI (Uniform Resource Idenifier) bir referansı i&#231;erir. İkinci satırdaki formatta XML parser’ı ilk &#246;nce public_tanımlayıcısı’nı kullarak bir URI referansı oluşturmaya &#231;alışır. Eğer bu m&#252;mk&#252;n olmazsa sistem_tanımlayıcısı’ndaki referansı kullanır. Aşağıdaki Şekil 2’de verilen adres belgesinin belge tipi deklarasyonu kısmı g&#246;sterilmiştir:
<?xml version="1.0"?>
<!DOCTYPE addressbook SYSTEM "http://xyz.com/AddressBook.dtd" [
<!ENTITY amp "&">
<!ENTITY apos "'">
]>





İlk satır adres belgesindeki k&#246;k elemanın adressbook olduğunu belirtmektedir. Belgenin DTD’si http://xyz.com/AddressBook.dtd dosyasında saklanır. Bunun haricinde k&#246;şeli parantez i&#231;inde tanımlanan kısım ise varlık referanslarını tanımlamaktadır. Bu kısımda istenirse dahili belge tipi tanımlamalarıda bulunabilir.


İyi Oluşmuş (Well-formed) ve Doğru (Valid) Belgeler

XML s&#246;z dizimi (syntax) kurallarına uyan XML belgeler iyi-oluşmuş (Well-formed) belgeler olarak adlandırılır. Eğer belge i&#231;in tanımlanmış olan DTD’de ge&#231;en gramer kurallarına uyuyorsa bu durumdaki belgelerde doğru (Valid) belgeler olarak adlandırılır.

VII. DTD (DOCUMENT TYPE DEFINITION) BELGE TİPİ TANIMLAMALARI
DTD’ler bir belgenin yapısını belirlerler. XML’in ilk harfinde ge&#231;en genişleyebilir kelimesinin (Extensible - X) anlamını ifade eden yeni yapılar tanımlamamıza imkan verir. Herhangi bir alandaki uygulamalarda kullanılacak yeni işaretleme dillerini (markup languages) DTD’ler ile geliştirebiliriz. Bu ama&#231;la geliştirilmekte şu anda onlarca XML işaretleme dili vardır. Bu diller XML uygulaması (application) veya XML s&#246;zl&#252;ğ&#252; (vocabulary) olarak anılmaktadır. XML s&#246;zl&#252;kleri bir alandaki bilgi değişimi ortamını sağlamak i&#231;in tanımlanmış işaretleme dilleridir. Bazı XML s&#246;zl&#252;kleri &#246;rnekleri aşağıda verilmiştir:

Synchonized Multimedia Integreration Language (SMIL)
Chemical Markup Language (CML)
Bioinformatic Sequence Markup Language (BSML)
Common Business Library (CBL)
Bu yeni diller i&#231;in tanımlanan DTD’ler bu dilin hangi etiketleri i&#231;erbileceği, etiketlerin sahip olabileceği &#246;zellikleri, hangi elemanların diğer hangi elemanları i&#231;erebileceği gibi dil yapısı bilgilerini (gramer) i&#231;erir.

Bilgisayar ortamında dillerin gramer’leri genellikle EBNF (Extended Backus-Naur Form)’da tanımlanır. XML belirtimide (XML Specification) original olarak EBNF notasyonunda belirtilmiştir. XML 1.0 belirtimi http://www.w3.org/TR/REC-xml adresinden elde edilebilir. EBNF dili yapı kurallarını i&#231;erir. Her bir yapı kuralının sol tarafı yapının ismini sağ tarafı ise yapıyı tanımlar. Bir kişinin bir isminin şart olmasının gerektiğini ve opsiyonel olarak telefon numaralarının bulunabileceğini EBNF’de şu şekilde ifade edebiliriz.


Aynı yapı DTD’de şu şekilde tanımlanabilir.
<!ELEMENT kişi (isim telefon-no*)>


Bir XML belgesinin yapısı DTD’de aşağıda verilan d&#246;rt &#231;eşit işaretleme ifadesi ile tanımlanır.


DTD ifadesi
Anlamı
ELEMENT

ATTLIST


ENTITY


NOTATION
Bir XML elemanı tanımlar.

Bir eleman tipinin alabileceği &#246;zellikleri tanımlar.

Belli bir i&#231;eriğin bir isme bağlanarak o isimle ilişkilendirilmesini sağlar.

XML hari&#231;i i&#231;eriğin tanımlanmasını sağlar. Bu tanımlaran i&#231;erik XML belgesinin bir par&#231;ası olarak parse edilmez.


Elemanlar

Elemanlar bir XML belgesinin en temel yapılarıdır ve ELEMENT etiketi ile tanımlanırlar. D&#246;rt &#231;eşit eleman tipi vardır:

&#183; Empty (Boş) : Eleman herhangi bir i&#231;erik i&#231;ermez. Elemanın &#246;zellikleri olabilir.
&#183; Element Only (Yalnızca Eleman) : Eleman yalnızca alt seviye (child) elemanları i&#231;erebilir.
&#183; Mixed (Karışık) : Eleman alt seviye elemanlar ve karakter veri karışımını i&#231;erebilir.
&#183; Any : Eleman DTD’in izin verdiği i&#231;eriği i&#231;erebilir.


Boş (Empty) Elemanlar

Boş elemanlar aşağıdaki formatta tanımlanır.
<!ELEMENT Elemanİsmi EMPTY>


&#214;rneğin
<!ELEMENT img EMPTY)>


Boş eleman XML belgesi i&#231;erisinde daha &#246;nce a&#231;ıklandığı gibi eğer bir &#246;zelliği yoksa
aşağıdaki ilk iki satırdaki gibi ge&#231;ecektir:
<img/>
<img></img>
<img src=”resim.gif”/>
<img src=”resim.gif”/><img>




Yukarıdaki &#246;rnekte alttaki iki satırda img elemanı src adlı bir &#246;zellik i&#231;ermektedir.


Yalnızca Eleman İ&#231;eren (Element Only) Elemanlar

Bu tipteki elemanlar aşağıdaki formattadır.
<!ELEMENT Elemanİsmi İ&#231;erik-Modeli>


Bu yapıda İ&#231;erik-Modeli yalnızca bu elemanın altında kalacak alt elemanları i&#231;erebilir.
&#214;rneğin Şekil 4’te verilen elektronik posta k&#246;k elemanı e-posta’nın tanımı aşağıdaki gibidir.
<!ELEMENT e-posta kime kimden tarih? konu? mesaj>


Bu &#246;rnek e-posta elemanı kime, kimden ve mesaj alt elemanlarını mutlaka g&#246;sterilen sırada XML belgesi i&#231;inde ge&#231;mesi gerektiğini g&#246;stermektedir. Tarih ve konu elemanları ise opsiyoneldir.
x_m.e.e kişi çevrimdışı   Alıntı Yaparak Cevapla
Eski 28-10-2006, 08:13   #5 (permalink)
..ıɯıʎǝsɹǝɥ ɯıpʎɐs ʞoʎ..
 
x_m.e.e's Avatar
 
Kayıt Tarihi: 20-03-06
Yer: LanetDoLu
Mesajlar: 80,956
Konu Sayısı: 24189
Blog Başlıkları: 260
İtibar Gücü: 500
x_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond reputex_m.e.e has a reputation beyond repute
Rep Puanı: 124809
Standart

Aşağıdaki bu sembolleri kullanan bir &#246;zge&#231;miş elemanı &#246;rneği verilmiştir:
<!ELEMENT &#246;zge&#231;miş (giriş, (eğitim | deneyim+)+, hobiler?, referanslar*>









Karışık (Mixed) Elemanlar
Karışık elemanlar hem karakter veri hemde alt elemanları i&#231;erebilirler. Karakter veri #PCDATA terimi ile g&#246;sterilir ve parsed karakter veri anlamındadır. Aşağıda Karışık eleman &#246;rnekleri verilmiştir:
<!ELEMENT konu (#PCDATA)>
<!ELEMENT not (#PCDATA | tarih | konu)*>











İlk satırdaki ifade konu elemanının yalnızca karakter veri i&#231;ere&#231;eğini g&#246;stermektedir. Bu tip yalnızca veri i&#231;eren eleman tanımlarında #PCDATA parantez i&#231;ine alınmalıdır.
İkinci satırdaki karmaşık not elemanın karakter veri, tarih veya konu elemanlarından oluşabileceğini g&#246;stermektedir. Aşağıda buna bir &#246;rnek verilmiştir.

<not>
<tarih> 1 Ekim 2000 </tarih>
Okul kayıtları başlayacak.
</not>












ANY elemanları
ANY tanımının formatı aşağıdaki şekildedir.
<!ELEMENT Elemanİsmi ANY>








ANY elemanları herhangi bir yapıya sahip değildir. ANY elemanı karakter veri, tanımlanmış elemanlar veya bunların bir karışımını i&#231;erebilir. ANY elemanları her hangi bir yapı belirtmediği i&#231;in kullanılması tavsiye edilmez.


&#214;zellikler (Attributes)
Daha &#246;ncede belirtildiği gibi &#246;zellikler elemanlar hakında ek bilgi tanımlamak i&#231;in kullanılır. Bir eleman hakkındaki &#246;zellik bilgileri aşağıdaki formatta tanımlanır.
<!ATTLIST Elemanİsmi &#214;zellikİsmi &#214;zellikTipi Default>








Bir &#246;zellik bir isim ve tip bilgisini i&#231;erir. Default bir değer olabilir veya &#246;zellik kullanımı hakkında bilgi verir. D&#246;rt &#231;eşit default değer tipi aşağıda verilmiştir.

Default

Anlamı

#REQUIRED

#IMPLIED

#FIXED Değer




Değer
&#214;zellik her zaman tanımlanmalıdır.

&#214;zellik opsiyoneldir.

&#214;zellik sabit bir Değer’e sahiptir. &#214;zellik eleman i&#231;inde tanımlı olmazsa, parser bu sabit değer’in olduğunu varsayar.

&#214;zellik eleman i&#231;inde tanımlı olmazsa, parser bu değer’in olduğunu varsayar. Eğer tanımlı ise &#246;zellik farklı bir değer i&#231;erebilir.


&#214;rneğin aşağıdaki &#246;rnekte Kitap elemanının BasımTarihi diye bir &#246;zelliğinin olduğu ve bu &#246;zelliğin karater veri olduğu (CDATA) belirtilmektedir.
<!ATTLIST Kitap BasımTarihi CDATA #REQUIRED>








Bu &#246;zellik bir XML belgesi i&#231;inde şu şekilde ge&#231;ebilir:
<Kitap BasımTarihi=”1.1.2000”> ...... </Kitap>








Aşağıdaki &#246;rnek kitap Basım-Sayısı &#246;zelliğinin opsiyonel olduğunu g&#246;stermektedir.
<!ATTLIST Kitap Basım-Sayısı CDATA #IMPLIED>










Aşağıdaki &#246;rnek deniz elemanının renk &#246;zelliğin sabit olarak mavi değerine sahip olduğunu g&#246;stermektedir.
<!ATTLIST deniz renk #FIXED “mavi”>









Aşağıdaki &#246;rnek elma elemanının renk &#246;zelliğinin default olarak kırmızı olduğunu g&#246;stermektedir.
<!ATTLIST elma renk “kırmızı”>









XML 10 değişik &#246;zellik tipini destekler. Bu &#246;zellik tipleri şunlardır.

&#214;zellik Tipi


Anlamı


CDATA

Enumarated

NOTATION

ENITITY

ENTITIES

ID


IDREF

IDREFS

NMTOKEN


NMTOKENS

Karakter veri (Unparsed)

&#214;zelliğin sahip olabile&#231;eği değerler k&#252;mesi

DTD’de tanımlanmış herhangi bir notation.

Harici bir varlık.

Bir den fazla boşlukla (white space) ayrılmış varlıklar.

Bir belge i&#231;erisinde ge&#231;ebilecek tek tanımlayıcı bir değer (unique identifier).

DTD’te tanımlanmış olan bir ID’ye olan referans.

Boşlukla (white space) ayrılmış ID’ler serisine referans.

XML token karaklerlerinden (harf, sayı, nokta, tire, iki nokta, alt cizgi) oluşan bir isim.

XML token karakterlerinden oluşan boşlukla ayrılmış bir &#231;ok isim.


Enumerated &#246;zellikler bir dizi değer k&#252;mesi i&#231;erir. &#214;zellik bunlardan bir değeri alabilir:
Aşağıdaki &#246;rnek kalem elemanının renk &#246;zeliğininin mavi, kırmızı, yeşil veya beyaz olabileceğini g&#246;stermektedir. Eğer bir renk se&#231;ilmezse default olarak kırmızı renk alınır.
<!ATTLIST kalem renk (mavi | kırmızı | yeşil | beyaz) “kırmızı”>









Aşağıdaki &#246;rnek DTD’de tanımlanmış olan notation’ları &#246;zellik olarak kullanmaktadır.
Notation XML harici veri tiplerini tanımlamakta kullanılır. Bu &#246;rnek resim formatının gif veya jpeg olabileceğini belirtmektedir.
<!ATTLIST resim format NOTATION (gif | jpeg) #REQUIRED>










ID tipindeki &#246;zellikler değerleri bir belge i&#231;erisinde yalnız&#231;a bir defa ge&#231;ebilir. Bu bize bir elemanı unique olarak tanımlamamızı sağlar. &#214;rnegin personel diye bir elemanımız olsun. Her personel personel-no adlı bir &#246;zellik i&#231;ersin. Her personelin numarası farklı olacağından bu &#246;zellik ID olarak tanımlanır.
<!ATTLIST personel personel-no ID #REQUIRED>









IDREF, ID tipindeki elemanlara referans vermemizi sağlar. &#214;rneğin m&#252;hendis adlı bir elemanımız olsun. M&#252;hendis ile personel arasındaki bire bir ilişkiyi IDREF ile belirtebiliriz.
<!ELEMENT m&#252;hendis EMPTY>
<!ATTLIST m&#252;hendis per-no IDREF #REQUIRED>










Bu bize m&#252;hendisin personel bilgilerini personel elemanından elde etmemizi sağlar. Aşağıda bir XML belgesi &#246;rneği verilmiştir.
<personel personel-no=”12345”>
<isim> Ali Veli </isim>
.....
</personel>
.....

<m&#252;hendis per-no=”12345”/>














IDREFS iki eleman arasındaki bire &#231;oklu ilişkileri g&#246;stermekte kullanılabilir.
&#214;rneğin proje-gurubu adlı bir elemanımız olsun. Bir proje gurubu bir &#231;ok personel i&#231;erecektir. Bu ilişkiyi şu şekilde belirtebiliriz:
<!ELEMENT proje-gurubu EMPTY>
<!ATTLIST proje-gurubu per-no IDREFS #REQUIRED>










Bu yapıdaki bir XML belgesi aşağıda verilmiştir. Bu belge 12345, 67891, 23456 nolu personelin proje gurubunda yer aldığını belirtmektedir.
<proje-gurubu per-no=”12345 67891 23456”










&#214;zellik değerlerininin token olarak varsayılması gereken durumlarda NMTOKEN veya NMTOKENS tipini kullanılır. Token boşluk i&#231;ermeyen bir değerdir. XML parser’ı bir &#246;zelliği token olarak işlemesi durumumda aradaki boşlukları (white space) tek boşluğa indirger ve baş ve sondaki boşlukları siler. Bu işlem &#246;zellik değeri normalizasyonu (attribute value normalization) olarak adlandırılır. Aşağıda bir &#231;ok token i&#231;eren bir NMTOKENS &#246;zellik tipi tanımı ve XML ifadesi verilmiştir.
<!ATTLIST personel eğitim NMTOKENS #IMPLIED>

<personel eğitim=”ilkokul ortaokul lise ”










Varlıklar (Entities)
Varlıklar herhangi bir veri par&#231;asına bir isim vererek bu veri par&#231;alarına referrans vermemizi sağlar. Bunu C dilindeki DEFINE fonksiyonu gibi d&#252;ş&#252;nebiliriz. Varlık tanımlamaları bir defa tanıladığımız bir değeri bir &#231;ok yerde ismi ile refereans vererek tekrar kullanabiliriz. &#220;&#231; &#231;eşit varlık tanımlaması vardır:


Genel Varlıklar (General Entities)
Parametre Varlıklar (Parameter Entities)
Karakter Varlıklar (Character Entities)

Genel Varlıklar

Genel varlıklar bir metin par&#231;asına bir isim vererek bu isimle metini kullanmamızı sağlar.
&#214;rneğin aşağıda bir şirket ismi i&#231;in yapılmış tanımlama g&#246;sterilmiştir.
<!ENTITY şirket “XYZ Bilgisayar Limited Şirketi A.Ş.”>







Tanımlamayı aşağıdaki gibi ismin başına (&) harfi ve sonunna ( ekleyerek kullanabiliriz.
<reklam> Firmamız &şirket; internet danışmanlığı hizmeti sunar. </reklam>







Bu ifadedeki &şirket referansı tanımlamadaki metinle yer değiştirecektir.
Genel varlık tanımlamalarını harici bir dosyaya ulaşmak i&#231;inde kullanabiliriz. &#214;rneğin aşağıdaki tanımlaman readme.txt dosyasına referans tanımlamaktadır.

<!ENTITY aciklama SYSTEM “http://www.xyz.com/readme.txt”>







SYSTEM ve URL dosyanın bulunduğu yeri belirtmektedir.


Parametre Varlıklar (Parameter Entities)
Genel varlık tanımlamaları XML belgesi i&#231;inde bir metin i&#231;in tanımladığımız isimle belgenin i&#231;inde yer almasını sağlar. Parametre varlık tanımlamaları aynı işlevi bize DTD’nin i&#231;inde yapmamızı sağlar. Parametre varlık tanımlamaları aşağıdaki formattadır:
<!ENTITY % Varlıkİsmi VarlıkTanımı>






Aşağıdaki &#246;rnekte boyut isimli bir parametre tanımı yapılmıştır.
<!ENTITY % boyut “uzunluk genişlik y&#252;kseklik”>







Parametre varlıkları varlık ismi başına (%) sonuna ( konarak DTD i&#231;inde referans edilir. Aşağıda boyut’a yapılmış olan referansları g&#246;rmekteyiz.
<!ELEMENT tavan (%boyut>
<!ELEMENT &#231;atı (%boyut>
<!ELEMENT duvar (%boyut>








Her &#252;&#231; eleaman tanımındada %boyut; isminin ge&#231;tiği yerlerde (uzunluk genişlik y&#252;kseklik)metni yer ala&#231;aktır.

Karakter Varlıklar (Character Entities)
Karakter varlık referansları verilecek bir isim vasıtasıyla istenilen karaterleri g&#246;stermek i&#231;in kullanılır. Karakter varlık referans tanımlamaları aşağıdaki &#246;rnekte olduğu gibi yapılır:

<!ENTITY copyright “&#169” >







Bu tanımlamada ASCII kodlamada 169 copyright karakterini (&#227 belirtmektedir. Karakter varlık referansları bir amersend (&) karakteri, bir isim ve noktalı virg&#252;lden ( oluşur. XML metninde &copyright; yazdığımız yerler &#227; sembol&#252; ile yer değiştirecektir.

Notation (G&#246;sterim)
Notation tanımlamaları XML harici verinin ve bu harici ile ilişkindirilecek bir yardımcı uygulamanın (helper application) tanımlanmasını sağlar. XML parser XML verisi &#252;zerinde parse işlemini yapar. XML harici verilerin işlenmesi, &#246;rneğin gif formatında tanımlanmış bir resim verisini, ancak bu veri formatları ile ilişkilendirilecek bir uygulama ile yapabilir. Aşağıdaki &#246;rnekte jpg ve gif formatındaki tanımlanmış verileri ilgili uygulamalarla ilişkilendirmektedir.
<!NOTATION jpg SYSTEM “jpgviewer.exe”>
<!NOTATION gif SYSTEM “gifviewer.exe”>








Bu notation jpg dosyalarını jpgviewer.exe, gif dosyalarının gifviewer.exe uygulaması ile işlenmesi gerektiğini belirtmektedir.


VIII. XML ŞEMALARI (XML SCHEMAS)
XML şemaları XML belgelerinin yapısını DTD’te olduğu gibi tanımlada kullanılan yeni bir y&#246;ntemdir. World Wide Web Konsonsiyumu (W3C) DTD’nin bazı sınırlamaları nedeniyle yeni bir alternative olarak 1998 yılında XML-Data note yayınladı. XML-Data note’u belge yapılarının bir XML s&#246;zl&#252;ğ&#252; olarak tanımlanmasını &#246;nermiştir. Bu yeni belge yapısı tanımlama y&#246;ntemi XML şema (XML Schema) olarak adlandırılmakta ve Microsoft tarafından desteklenmektedir.
W3C standardlaştırma &#231;alışmaları aşamalarında farklı seviyelerde standard spesifikasyonları yayınlamaktadır. Bunlar şunlardır:
Note: Bir fikir veya a&#231;ıklamayı i&#231;eren en aşağı seviyedeki spesifikasyon
Working Draft : Standardlaştırma &#231;alışmalarının devam ettiğini s&#252;rede yayınlanan spesifikasyonlar.
Recommendation : Working Draft aşaması sonucu elde edilen en son seviye standard specifikasyonu.











XML şemaları ilgili iki tane Working Draft yayınlanmıştır. Bunlar şunlardır:

XML Schema Part 1 : Structures (http://www.w3.org/TR/xmlschema-1/)
XML Schema Part 2 : Datatypes (http://www.w3.org/TR/xmlschema-2/)


XML şemaları bir XML s&#246;zl&#252;ğ&#252; olarak tanımlandığından normal bir XML belgesi olarak işlenebilir ve parse edilebilir. Bunun yanında bir &#231;ok veri tipini desteklemesi, a&#231;ık bir model olarak genişleyebilmesi, katılım (inheritance) ilişkilerini desteklemesi gibi avantajları vardır. Bu y&#246;ntem gelişme aşamasında olması nedeniyle hen&#252;z son şeklini (recommendation) alamamıştır.


x_m.e.e kişi çevrimdışı   Alıntı Yaparak Cevapla
Cevapla

Bookmarks

XML ve XML Uygulamaları

 Programlama Bölümü Katagorisinde ve  ASP, Perl, Php, Html Forumunda Bulunan  XML ve XML Uygulamaları Konusunu Görüntülemektesiniz.=>I. GİRİŞ XML açılımı Extensible Markup Language (Genişleyebilir İşaretleme Dili)’dir. XML, elektronik ticaret, elektronik veri değişimi, terdarik zinciri bütünleştirmesi, veri ...

Konu ile alakalı etiketler: xml hangi uygulamalarda kullanılabilir, xmlade veri ile sayfa görüntüsü birbirinden ayrılır, xml de referans göstermek, uml açılımı, xml ile web uygulamari, xml uygulama, xml içinde video, xml içinde html, xml içinde attribute tarama, xml belgeleme, dtd xml tasarlamak, xml dili tarihi, xml kod uygulamaları, xml uygulamaları, xml belgelerinin html içerisinde gösterilmesi, html satır atlama kodu, xml başka formata, xml metadata nedir, xmi nedir, attlist neyi tanımlar, xml data metadata arasındaki fark, xmlde data metadata nedir, xml kitap, xml satır, xdtd referans,


Konu araçları

Gönderi Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smilies are Açık
[IMG] Kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Kapalı


Benzer Konular
Konu Konuyu Başlatan Forum Cevap Son Mesaj
ABD Ordusuna IFS Uygulamaları тне јіģѕαw Bilim & Teknik 0 05-03-2010 22:44
Ev için desen uygulamaları KusuRsuZ HatA Ev Dekorasyon 0 12-06-2009 22:52
En Popüler iPhone Uygulamaları тне јіģѕαw Bilim & Teknik 0 24-05-2009 17:46
yaz kış saati uygulamaları _ece_ Bilim & Teknik 0 13-11-2007 13:53


Forum saati Türkiye saatine göredir. GMT +2. Şuan saat: 19:00 .
(Türkiye için GMT +2 seçilmelidir.)



Powered by vBulletin® Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.5.1 PL1
İçerik sağlayacı paylaşım sitelerinden biri olan İzafet.com Adresimizde 5651 Sayılı Kanun'un 8. Maddesine ve T.C.K'nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. İzafet.com hakkında yapılacak tüm hukuksal Şikayetler Şikayet adresi ile iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde İzafet.com yönetimi olarak tarafımızdan gereken işlemler yapılacak ve Avukatlarımız size dönüş yapacaktır.
uslanmam - TEKplatform - webhatti - araba - tedavin

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365