HTML ile XML arasındaki fark nedir?

HTML ve XML, uygulama ve web geliştirmede kullanılan iki popüler işaretleme dilidir. Benzer isimlere sahip olmalarına karşın, kullanım durumları farklıdır. HTML öncelikle bir uygulamanın kullanıcı arayüzünü geliştirmek için kullanılır. Bir web sitesinde veya uygulamada görülen metni, görüntüleri, düğmeleri, onay kutularını ve açılır kutuları işler. Buna karşılık, XML'nin birincil amacı veri değişimi ve aktarımıdır. Verileri hem makineler hem de insanlar tarafından okunabilen bir biçimde kodlar. XML verilerin ne olduğunu açıklarken, HTML verilerin son kullanıcıya nasıl gösterileceğini belirler.

XML hakkında bilgi edinin »

HTML ile XML arasındaki benzerlikler nelerdir?

Hem XML hem HTML (LaTeX, SVG, Markdown ve SGML gibi diğer dillerle birlikte) işaretleme dilleri adı verilen bir programlama dilleri ailesine aittir.

İşaretleme dili, verileri hem insanlara hem diğer yazılım programlarına tanımlamak için kullanılan bir sistemdir. Verilerin yapısını, türünü, özniteliklerini, parçalar arasındaki ilişkileri, görüntülemesini ve anlamını tanımlayan, okunması kolay söz dizimini kullanır. 

İşaretleme dilleri olarak HTML ve XML'in birçok benzerliği vardır.

Söz dizimi

İşaretleme dilleri genellikle etiketler ve öznitelikler dahil olmak üzere benzer bir ssöz dizimie sahiptir.

Etiketler

Etiketler parantez, virgül ve nokta gibi sembollerle gösterilir. Veri öğelerine yapı ve tür katar. Her içerik öğesinin başlangıcını ve sonunu tanımlar. XML ve HTML'de etiketler, her bir öğe açılış ve kapanış etiketleri arasında olacak şekilde köşeli parantez içine alınır.

Öznitelikler

Öznitelikler, bir öğe hakkında daha fazla bilgi (ör. resim URL'si) sağlar. HTML ve XML'de, açılış etiketinin içinde bir öğenin özniteliklerini tanımlarsınız.

İyi tanımlanmış yapı

Hem HTML hem XML belgeleri, doğru işlem için ilgili dilin söz dizimi kurallarına uygun olmalıdır. Kurallara uygun bir belge, iyi biçimlendirilmiş bir belgedir. İyi biçimlendirilmiş bir belge aşağıdakileri gerektirir:

  1. Tek bir kök öğesi
  2. Tüm öğeler için kapatma etiketleri (veya kendi kendine kapanan etiketler)
  3. Diğer etiketlerde bulunan etiketlerle doğru şekilde yerleştirme
  4. Özel karakterlerin doğru açıklaması (ör. & simgesi için &)

Geliştiriciler, söz dizimini yazmak ve kontrol etmek için bir metin düzenleyici uygulaması veya entegre geliştirme ortamı (IDE) kullanır.

IDE'ler hakkında bilgi edinin »

Kullanım

Geliştiriciler genellikle HTML veya XML biçimlendirme dillerini tek başına kullanmazlar. Bu diller, dinamik web sayfaları ve uygulamalar oluşturmak için komut dosyası dilleriyle birleştirilir. Dinamik uygulamalar yeni gelen veriler nedeniyle değişikliğe uğrar.

HTML söz konusu olduğunda uygulama sayfaları, yeni HTML oluşturan komut dosyası dilleri aracılığıyla dinamiktir. XML'de komut dosyası dilleri, parametreleri güncellemek için yeni bilgiler kullanır.

Platform bağımsızlığı

Platform bağımsızlığı, bir dilin herhangi bir değişiklik gerektirmeden farklı işletim sistemleri ve platformlarda çalışabilmesidir. Hem XML hem HTML metin tabanlıdır ve basit söz diziminden yararlanır. Bu, farklı yazılım uygulamaları ve işletim sistemleri tarafından yorumlanmalarını kolaylaştırır. XML ve HTML kodu, tarayıcılarda ve farklı mobil platformlarda orijinal haliyle çalışır.

Temel söz dizimi farklılıkları: HTML ve XML

HTML ve XML arasındaki temel fark etiketlerindedir. HTML, herkesin kullanması gereken önceden tanımlanmış etiketlere sahiptir. HTML yazarken kendi etiketlerinizi oluşturamazsınız. Buna karşılık XML, belge oluşturucu olarak tanımlayabileceğiniz özel etiketler kullanır.

Sonraki bölümde, HTML ve XML'in etiketlerinde nasıl farklılıklar olduğu hakkında ayrıntılı bilgi verilmektedir.

Önceden tanımlanmış etiketler

HTML'de önceden tanımlanmış etiketler vardır. Bu, etiketin HTML standardı tarafından tanımlanan bir set listesinden geldiği anlamına gelir. Mevcut HTML standardı HTML5'tir. 

Önceden tanımlanmış HTML5 etiket örnekleri aşağıda verilmiştir:

  • <header> belgenin başlığının etiketidir.
  • <p> paragrafın etiketidir.
  • <h1> ila <h6> altı başlık düzeyini ifade eden etiketlerdir.
  • <a> bağlantı etiketidir.
  • <img> görüntü etiketidir.
  • <div>, container öğesinin diğer öğeleri gruplandırması için bir etikettir.
  • <body> ana içeriği tanımlayan bir etikettir.

Öte yandan XML için etiketler genişletilebilir. Bu da etiketlerin, belgenin amacına göre özel olarak oluşturulması anlamına gelir. Belge oluşturucu olarak, etiketleri ve öznitelikleri siz tanımlarsınız. Harflerin ve sayıların herhangi bir kombinasyonu olabilirler.

Genellikle belge oluşturucular, verileri tanımlayan sade sözcükler kullanır. Belge doğrulamak ve herkes tarafından anlaşılmak için etiketleri ve öznitelikleri tanımlayan bir XML şeması yazmanız gerekir.

Aşağıdaki tabloda bazı HTML ve XML söz dizimi örnekleri verilmiştir.

HTML

XML

<p class="body_paragraph">Bu bir paragraftır</p>

class=, öğenin stilleri uygulamak için kullanılabilen body_paragraph adlı bir sınıf özniteliğine sahip olduğunu belirtir.

<country language="English">Kanada</country>

country bir ülke öğesini ifade eder. language, öğenin bir dil özniteliğine sahip olduğunu belirtir: İngilizce.

<body>

<h1>Bu bir Başlıktır</h1>

<p class="body_paragraph">Bu bir paragraftır</p>

<div>

<h2>Bu bir alt başlıktır </h2>

<p>Bu başka bir paragraftır</p>

</div>

</body>

<continent name="Europe">

<country language="English">

Birleşik Krallık

<currency>GBP</currency>

</country>

<country language="German">

Almanya

<currency>EUR</currency>

</country>

</continent>

Kendi kendine kapanan etiketler

HTML'de bazı öğelerde, içerik eksikliğinden dolayı kendi kendine kapanan etiketler (eğik çizgi ile gösterilir) kullanılabilir. Sınırlı sayıda HTML etiketinde kendi kendine kapanan etiketler bulunabilir.

Buna karşılık, XML'de kendi kendine kapanan etiketler, içerik bulunmayan herhangi bir yerde olabilir.

HTML

XML

<img src="my_image.jpg" alt="My image" />

<country name="United Kingdom" currency="GBP" />

Diğer temel farklılıklar: HTML ve XML

Benzerliklerine rağmen XML ve HTML'in birkaç farklılığı vardır.

Amaç

HTML çoğunlukla web dili olarak bilinir. HTML'in birincil amacı, metin tabanlı bir belgede verilen içeriği tarayıcıda grafiksel bir biçimde görüntülemektir.

Buna karşılık XML, farklı uygulamaların verileri ve yapısını evrensel olarak anlaşılan bir şekilde değiş tokuş etmesine ve depolamasına olanak tanır. XML'in temel amacı, veritabanları gibi farklı uygulama türlerinin aynı verileri ve yapısını anlayıp kullanmasına izin vermektir. 

Yazma

HTML, öznitelik türlerinin çalışma zamanında beklenen veri türüne göre denetlendiği dinamik yazmayı kullanır. Örneğin, sayı olması beklenen bir öznitelik dize olarak girilmişse bu durum, çalışma zamanında web sayfalarında hataya veya beklenmeyen davranışlara neden olabilir. Dinamik yazma, web sayfalarında yeni gelen verilerle değişiklik yapılmasına olanak tanır.

Buna karşılık XML, statik yazmayı kullanır. Bu yazma türünde öznitelik türleri bir XML şemasında önceden tanımlanır ve derleme veya işleme başlamadan önce kontrol edilir. Statik yazma daha az hata verir ancak daha az dinamik içerikle sonuçlanır.

Şema

Belge türü tanımları (DTD'ler) veya şemalar, benzer belgeler için doğrulanabilen ve tekrarlanabilen bir yapı sağlar. Genellikle aşağıdaki gibi bilgileri içerirler:

  • Kullanılan HTML veya XML sürümü
  • İzin verilen öğeler ve nitelikler
  • Belge yapısı ve öğe ilişkileri için kurallar

HTML'de DTD, bir HTML belgesinin başında yer alan bir bildirimdir.

XML'de DTD ayrı bir dosyadır. XML etiketleri, belge oluşturucu tarafından tanımlandığı için DTD XML'de daha önemlidir. DTD, veri gönderici ve alıcı arasındaki etiketlerin iki taraftan da anlaşılmasına katkıda bulunur.

Ne zaman HTML, ne zaman XML kullanılır?

HTML, sunum dili olarak bilinen bir biçimlendirme türüdür. Sunum dili adı, görüntüleme amaçlı olmasından kaynaklanmaktadır. Web sayfaları ve istemci tarafı web uygulamaları oluşturmak için HTML kullanırsınız. Genellikle stil uygulama amaçları için Basamaklı Stil Sayfaları (CSS) ve dinamik davranışlar için JavaScript programlama dili ile birleştirilir.

Öte yandan, iki uygulama veya sistem arasında veri alışverişi için XML kullanırsınız. Aynı biçimi anlamak için uygulamalarda, XML dosyasının içeriğini tanımlayan ortak XML şemaları bulunur.

XML hâlâ yaygın olarak kullanılsa da, veri alışverişi için başka bir hafif biçimlendirme dili olan JSON, hızlı ayrıştırma özellikleri nedeniyle artık daha popüler. Kendiniz için en iyi veri alışverişi biçimini seçmek üzere JSON ve XML karşılaştırmasını okuyabilirsiniz.

HTML ve XML'i birlikte kullanma

XML, dinamik web sayfaları oluşturmak için HTML'e gömülebilir ve JavaScript programlama dili ile ayrıştırılabilir. Benzer şekilde HTML, gerekirse düz metin için karakter verileri (CDATA) kullanılarak XML'e de gömülebilir. Aşağıdaki örneklere bakın.

HTML'de XML

XML'de HTML

<html>

  <head>

    <title>Gömülü XML Sayfası</title>

    <script type="text/xml">

      <data>

        <item>

          <name>Elma</name>

          <price>1,00</price>

        </item>

        <item>

          <name>Çarkıfelek meyvesi</name>

          <price>2,00</price>

        </item>

      </data>

    </script>

  </head>

  <body>

    <h1>Dinamik Meyve Fiyatları</h1>

    <div id="output"></div>

    <script>

      var xml = document.querySelector('script[type="text/xml"]').textContent;

      var parser = new DOMParser();

      var doc = parser.parseFromString(xml, "text/xml");

      var output = document.querySelector('#output');

      var items = doc.getElementsByTagName('item');

      for (var i = 0; i < items.length; i++) {

        var item = items[i];

        var name = item.getElementsByTagName('name')[0].textContent;

        var price = item.getElementsByTagName('price')[0].textContent;

        output.innerHTML += '<div><strong>' + name + '</strong>: ' + price + '</div>';

      }

    </script>

  </body>

</html>

<embeddedHTML>

    <title>XML'de gömülü HTML kodu</title>

    <description><![CDATA[

        <div>

            <h1>Gömülü HTML üst bilgisi</h1>

            <p>Gömülü HTML paragrafı.</p>

        </div>

    ]]></description>

</embeddedHTML>

Genişletilebilir Köprü Metni İşaretleme Dili (XHTML), hem HTML hem XML'i söz diziminde birleştiren başka bir biçimlendirme dilidir.

Temel farklılıkların özeti: HTML ve XML

 

HTML

XML

Bu nedir?

Öncelikle yapılandırılmış içeriği bir tarayıcıda görüntülemek için kullanılan işaretleme dili.

Öncelikle bilgisayar sistemleri arasında yapılandırılmış veri alışverişi için kullanılan işaretleme dili.

Kullanıma sunulma yılı

1998.

1993.

Amaç

Sunum dili.

Veri alışverişi dili.

Kullanım senaryosu

İstemci tarafı web sayfaları veya web uygulamaları oluşturma.

İki sistem arasında veri alışverişi (ancak JSON'un sizin için daha uygun bir biçim olup olmadığını kontrol edin).

Etiketler

Önceden tanımlanmış etiketler.

Genişletilebilir etiketler.

Yazma

Dinamik.

XML şeması kullanırken düzeltildi.

AWS, HTML ve XML gereksinimlerinizi nasıl destekleyebilir?

Tüm Amazon Web Services (AWS) veri entegrasyonu hizmetleri, XML dosyalarını işleyebilir. Aşağıda iki örnek verilmiştir:

  • AWS Glue, kod yazmadan etkileşimli ve tıklayarak kullanılabilen görsel arabirimle veri hazırlamak için kullanabileceğiniz sunucusuz bir veri entegrasyon hizmetidir. AWS Glue DataBrew, XML de dâhil her türlü dosya formatını girebilir.
  • Amazon Basit Sıra Hizmeti (Amazon SQS), yazılım bileşenleri arasında herhangi bir birimde ileti göndermek, depolamak ve almak için kullanabileceğiniz, tam olarak yönetilen bir mesaj kuyruklama hizmetidir. Amazon SQS iletileri; XML, JSON ve biçimlendirilmemiş veri dâhil olmak üzere 256 KB'ye kadar metin verisi içerebilir.

Benzer şekilde AWS, uygulamalarınızı geniş ölçekte geliştirmek, dağıtmak ve çalıştırmak için geniş bir araç ve hizmet seti sunar. Örneğin, kullanabileceğiniz iki hizmet aşağıda verilmiştir:

  • AWS Amplify Stüdyo ile görsel olarak ayrıntılı bir kullanıcı arayüzü oluşturabilirsiniz. Ön uç kullanıcı arayüzünüzü birkaç tıklamayla bir bulut arka ucuna bağlayın.
  • Amazon Lightsail ile sadece birkaç tıklamayla özel uygulamalar ve web siteleri oluşturmak için önceden yapılandırılmış geliştirme yığınlarını kullanabilirsiniz.

Hemen bir hesap oluşturarak AWS'de uygulama geliştirmeye başlayın.