Tek Konuda XML Bilgisi!

Bunjo

Uzman üye
14 Ara 2020
1,591
1,890
I Won
ro3fzuc.png


lbn20fm.png
2q250vr.png


Merhaba ben saldırı timlerinden BUNJO, bu konuda "XML" yazılım dilini anlatacağım.

XML Nedir?


XML (eXtensible Markup Language), metin verilerini organize etmek ve taşımak için kullanılan bir işaretleme dilidir.
XML, veriyi belirli bir yapıda temsil etmek için etiketler kullanır.
XML'in diğer dillerle doğrudan bir ilişkisi olmasa da, genellikle veri alışverişi ve depolama için bir standart olarak kullanılır.

Biz bu konu dahilinde
XML işaretleme dilinin diğer yazılım ve programlama dilleri ile olan irtibatını öğrenmek yerine sadece XML içeriğini öğreneceğiz.


Konu Başlıkları

-
Elementler (Elements): Temel veri birimleridir ve etiketler arasında bulunurlar. Her bir element, başlangıç etiketi, içerik ve kapanış etiketi içerir.

-
Atribütler (Attributes): Elementlere ek bilgiler eklemek için kullanılırlar. Atribütler, etiketin açılış kısmına eklenir.

-
Döküman (Document): XML verileri bir döküman içinde bulunur. Genellikle bir başlangıç etiketi ve bir kapanış etiketi ile belirtilir.

-
XML Prolog (Processing Instructions): XML dökümanının işlenmesi için talimatlar içerir. Genellikle <?xml ... ?> ile başlar.


Elementler (Elements)

XML'de elementler, veri yapısını temsil eden temel birimlerdir. Bir element, açılış etiketi, içerik ve kapanış etiketi içerir.

Açılış Etiketi (Start Tag): Elementin başlangıcını tanımlayan etikettir. Açılış etiketi, < ile başlar, ardından elementin adı gelir ve son olarak > ile kapanır.
XML:
<kitap>

Kapanış Etiketi (End Tag): Elementin sonunu belirten etikettir. Kapanış etiketi, < ile başlar, ardından elementin adı gelir, ve son olarak / ve > ile kapanır.
XML:
</kitap>

İçerik (Content): Elementin içinde bulunan veriyi ifade eder. İçerik, açılış etiketi ve kapanış etiketi arasında yer alır.
XML:
<baslik>XML Temel Bilgileri</baslik>

Boş Element (Empty Element): İçeriği olmayan elementlere boş element denir. Boş elementler, açılış etiketi içinde kapanış etiketi olmadan oluşturulur.
XML:
<bosElement />

Gömülü Element (Nested Element): Elementler iç içe yerleştirilebilir. Yani bir elementin içinde başka bir element bulunabilir.
XML:
<kutuphane>
   <kitap>
      <baslik>XML Temel Bilgileri</baslik>
      <yazar>John Doe</yazar>
   </kitap>
</kutuphane>

Köşeli Parantez Notasyonu (CDATA): Element içinde metin verisi içeriyorsa ve bu veri HTML veya XML etiketleri içeriyorsa,
CDATA notasyonu kullanılabilir. CDATA, verinin etiketlerden etkilenmediği bir alandır.

XML:
<aciklama><![CDATA[Bu bir <bold>metin</bold> içerir.]]></aciklama>

Döküman (Document)

XML dokümanı, XML verilerinin bir bütün olarak temsil edildiği bir dosyadır.
Bir XML dokümanı, başlangıç ve bitiş etiketleri içindeki içeriği içerir.


XML Deklarasyonu (XML Declaration): XML dokümanının başında yer alır ve dokümanın XML sürümünü ve karakter setini belirtir.
XML:
<?xml version="1.0" encoding="UTF-8"?>

Kök Element (Root Element): XML dokümanının en dışındaki elementtir. Diğer tüm elementler genellikle bu kök elementin içinde bulunur.
XML:
<kutuphane>
   <!-- Diğer elementler burada bulunur -->
</kutuphane>

İçerik (Content): XML dokümanının asıl veri içeriğidir. Elementler, atribütler ve metin içeriği bu bölümde bulunur.
XML:
<kitap>
   <baslik>XML Temel Bilgileri</baslik>
   <yazar>John Doe</yazar>
</kitap>

Bahsettiğim her alt başlığın toplamı ile oluşan veri bütünlüğüne de döküman denir.
XML:
<?xml version="1.0" encoding="UTF-8"?>
<kutuphane>
   <kitap>
      <baslik>XML Temel Bilgileri</baslik>
      <yazar>John Doe</yazar>
   </kitap>
   <kitap>
      <baslik>Veritabanı Yönetimi</baslik>
      <yazar>Jane Smith</yazar>
   </kitap>
</kutuphane>


Atribütler (Attributes)

XML'de "Atribütler" (Attributes), elementlere ek bilgiler eklemek için kullanılır. Atribütler, elementin açılış etiketi içinde belirtilir.
Her bir atribüt, bir isim (attribute name) ve bir değer (attribute value) içerir. Atribüt değerleri genellikle çift tırnak içinde belirtilir.


Atribüt Tanımı (Attribute Definition): Atribütler, elementin açılış etiketi içinde belirtilir.

XML:
<ogrenci adi="Bunjo" soyadi="Ruby" numara="1881" />

XML:
<kitap baslik="Tek Konuda XML!" yazar="Bunjo" yayin="THT" />

Atribüt İsimi (Attribute Name): Atribütün adı, ek bilgiyi tanımlayan isimdir.

XML:
<urun adi="Akıllı Telefon" ozellikler="Renk: Siyah, Bellek: 64GB" />

Atribüt Değeri (Attribute Value): Atribütün değeri, isme karşılık gelen bilgidir. Değer, genellikle çift tırnak içinde belirtilir.

Yorum satırları ve ekstradan örnekler:

XML:
<!-- Örnek 1: Atribüt kullanımı -->
<ogrenci adi="Ahmet" soyadi="Yilmaz" numara="12345" />

<!-- Örnek 2: Birden fazla atribüt -->
<kitap baslik="XML Temel Bilgileri" yazar="John Doe" yayinevi="Bilgi Yayınevi" />

<!-- Örnek 3: Atribüt değeri içinde özel karakterler -->
<urun adi="Akıllı Telefon" ozellikler="Renk: Siyah, Bellek: 64GB" />

<!-- Örnek 4: Boş elementte atribüt kullanımı -->
<resim url="https://example.com/image.jpg" alt="Örnek Resim" />

<!-- Örnek 5: Atribütler iç içe elementlerde -->
<arac marka="Toyota">
    <model yil="2022">Corolla</model>
</arac>

XML Prolog (Processing Instructions)

XML dokümanlarında "İşleme Talimatları" (Processing Instructions), belirli bir işleme veya uygulama tarafından takip edilmesi gereken özel talimatları içerir. İşleme talimatları, XML dokümanının başında yer alır ve genellikle <? ile başlayıp ?> ile biter. İşleme talimatları, belirli bir uygulamanın veya işlemin gereksinimlerini belirtmek için kullanılır.

XML:
<?hedef talimat ?>

XML:
<?xml version="1.0" encoding="UTF-8"?>
<?stylesheet href="style.css" type="text/css"?>

Konuyla alakalı örnekler:

Film Bilgisi:

XML:
<film>
    <ad>Matrix</ad>
    <yonetmen>
        <ad>Lana</ad>
        <soyad>Wachowski</soyad>
    </yonetmen>
    <yil>1999</yil>
    <tur>
        <anaTur>Bilim Kurgu</anaTur>
        <altTur>Aksiyon</altTur>
    </tur>
    <oyuncular>
        <oyuncu>Keanu Reeves</oyuncu>
        <oyuncu>Carrie-Anne Moss</oyuncu>
        <!-- Diğer oyuncular -->
    </oyuncular>
</film>

Restorant Yemekleri:
XML:
<restoran>
    <menu>
        <kategori adi="Başlangıçlar">
            <yemek>
                <ad>Humus</ad>
                <fiyat>15.99</fiyat>
                <aciklama>Ev yapımı humus servis ile</aciklama>
            </yemek>
            <yemek>
                <ad>Deniz Mahsulleri Çorbası</ad>
                <fiyat>18.50</fiyat>
                <aciklama>Çeşitli deniz mahsulleri ile hazırlanan nefis bir çorba</aciklama>
            </yemek>
            <!-- Diğer başlangıçlar -->
        </kategori>
       
        <kategori adi="Ana Yemekler">
            <yemek>
                <ad>Izgara Bonfile</ad>
                <fiyat>45.99</fiyat>
                <aciklama>Özel sos ile ızgara bonfile</aciklama>
            </yemek>
            <yemek>
                <ad>Mantar Risotto</ad>
                <fiyat>28.75</fiyat>
                <aciklama>Taze mantarlarla hazırlanan lezzetli bir risotto</aciklama>
            </yemek>
            <!-- Diğer ana yemekler -->
        </kategori>
       
        <kategori adi="Tatlılar">
            <yemek>
                <ad>Çikolatalı Fondü</ad>
                <fiyat>22.99</fiyat>
                <aciklama>Çeşitli meyveler ile servis edilen çikolatalı fondü</aciklama>
            </yemek>
            <yemek>
                <ad>Sütlü İrmik Helvası</ad>
                <fiyat>12.50</fiyat>
                <aciklama>Fındık içi ile süslenmiş sıcak irmik helvası</aciklama>
            </yemek>
            <!-- Diğer tatlılar -->
        </kategori>
    </menu>
</restoran>

Ordu silah sistemi:
XML:
<orduSilahSistemi>
    <tanklar>
        <tank>
            <model>Leopard 2A4</model>
            <tip>Zırhlı Savaş Tankı</tip>
            <silahlar>
                <silah>
                    <tip>120mm L55 Tank Topçu Silahı</tip>
                    <muhimmat>Tank Atışı Sabot, Anti-Tank Güdümlü Füze</muhimmat>
                </silah>
                <!-- Diğer silahlar -->
            </silahlar>
            <ekDonanimlar>
                <donanim>
                    <tip>Zırh Paketi</tip>
                    <aciklama>Reaktif zırh ile güçlendirilmiş</aciklama>
                </donanim>
                <!-- Diğer ek donanımlar -->
            </ekDonanimlar>
        </tank>
        <!-- Diğer tanklar -->
    </tanklar>
   
    <uçaklar>
        <uçak>
            <model>F-16 Fighting Falcon</model>
            <tip>Çok Maksatlı Savaş Uçağı</tip>
            <silahlar>
                <silah>
                    <tip>M61 Vulcan 20mm Top</tip>
                    <muhimmat>Zırh Delici ve Patlayıcı Mermi</muhimmat>
                </silah>
                <!-- Diğer silahlar -->
            </silahlar>
            <ekDonanimlar>
                <donanim>
                    <tip>Hava-Aire Füze Sistemi</tip>
                    <aciklama>AIM-120 AMRAAM</aciklama>
                </donanim>
                <!-- Diğer ek donanımlar -->
            </ekDonanimlar>
        </uçak>
        <!-- Diğer uçaklar -->
    </uçaklar>
   
    <denizAraçları>
        <denizAraci>
            <model>Arleigh Burke-class Destroyer</model>
            <tip>Yok Edici Sınıfı Denizaltı Savunma Gemisi</tip>
            <silahlar>
                <silah>
                    <tip>Tomahawk Cruise Füzesi</tip>
                    <muhimmat>Nükleer ve Konvansiyonel Savaş Başlıkları</muhimmat>
                </silah>
                <!-- Diğer silahlar -->
            </silahlar>
            <ekDonanimlar>
                <donanim>
                    <tip>AN/SPY-1 Radar Sistemi</tip>
                    <aciklama>Aegis Füze Savunma Sistemi</aciklama>
                </donanim>
                <!-- Diğer ek donanımlar -->
            </ekDonanimlar>
        </denizAraci>
        <!-- Diğer deniz araçları -->
    </denizAraçları>
</orduSilahSistemi>

Bu konuda da size temelde yetecek XML bilgisini bir konuda toplayıp anlattım,
diğer dillerde parse edilip işlenmesi gibi konulara girmedim daha ileri zamanlarda anlatacağım.

Okuyan herkese teşekkür ederim.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.