SGML, XML, HTML ve XHTML arasındaki ilişki ve farklar


16
  1. Wikipedia'da "profil" in ne anlama geldiğini merak ediyordum :

    XML, bir ISO standardı SGML'nin profilidir ve XML'nin çoğu SGML'den değişmeden gelir.

  2. Göre http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    HTML, SGML'nin bir alt kümesidir.

    XML, SGML'nin oldukça işlevsel bir alt kümesidir.

    XHTML HTML'yi genişletir ve alt kümeler.

    "Biri diğerinin altkümesi", ilk kodun sözdizimsel olarak doğru ve anlamsal olarak ikincininkiyle aynı olduğu anlamına mı geliyor?

    Temel küme teorisi anlamında olduğu gibi,

    • , XML ve XHTML'nin SGML'nin tüm farklı alt kümeleri nelerdir?
    • XML ve HTML neredeyse birbiriyle kesişmiyor mu?
    • XHTML hem XML hem de HTML'nin bir üst kümesidir?
  3. Bu dördün amacındaki ve / veya ne zaman kullanılacağındaki farklılıkların yukarıdaki bağlantıdan biraz daha özlü ve net bir özetini bekleyebilir miyim? Amaçları arasındaki net çizgi hakkında gerçekten kafam karıştı.
  4. Göre http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML tek bir Biçimlendirme Dili değildir. Kullanıcıların kendi biçimlendirme dillerini tasarlamalarına izin veren bir meta dildir.

    Ben XML ve HTML anlamak için nasıl SGML alt kümeleri olduğunu merak ediyordum, ancak XML bir biçimlendirme dili değil, biçimlendirme dilleri tasarlamak için bir meta dil iken HTML bir biçimlendirme dilidir?

    SGML ve XHTML'nin ikisi de biçimlendirme dili tasarlamak için üstdil midir?

  5. Her iki bağlantıda olduğu gibi, HTML'nin SGML'nin bir uygulaması ve SGML'nin bir alt kümesi olduğunu ve XHTML'nin bir XML uygulaması olduğunu belirtin. Acaba bir dilin diğerinin uygulaması olduğunu ve bir dilin diğerinin altkümesi olduğunu söylemek arasındaki farklar nelerdir?

Yanıtlar:


8

HTML ve XML'nin ikisi de biçimlendirme dilleridir (bu nedenle * ML). XML, rastgele verileri göstermek için uygun genel bir biçimlendirme dilidir; HTML ise yalnızca web sayfalarını temsil etmek için uygun olan belirli bir biçimlendirme dilidir.

HTML ve XHTML'nin her ikisi de yalnızca SGML'nin alt kümeleridir, ancak XHTML'nin XML olarak da doğrulanması için ek spesifikasyonları vardır. XML'i XHTML'nin etkili vaftiz babası olarak düşünün.

Bu üç dilin tamamında SGML ile olan bu ilişki nedeniyle, birçok benzerlik vardır, ancak hepsi farklı diller olarak kabul edilir. Ancak, bu dilleri tanımlayanların çoğu SGML üzerindeki kısıtlamalarıdır.

  • HTML, kullanılmasına izin verilen bir etiket listesi tanımlayarak SGML'yi kısıtlar.
  • XML, kapatılmamış veya boş başlangıç ​​ve bitiş etiketlerine izin vermeyerek SGML'yi kısıtlar ve özniteliklerin açık olmasını sağlar. XML ayrıca SGML'de bulunmayan çok sayıda ek kısıtlamaya sahiptir.
  • XHTML, SGML'yi HTML'deki etiketlerle (çerçeve kümesi ve diğerleri gibi bazı hariç tutmalarla) ve XML'deki etiket ve varlık kısıtlamalarıyla kısıtlar.

Teknik şartları sindirmek zor olsa da, bu belgeyi yararlı bulabilirsiniz. http://www.w3.org/TR/NOTE-sgml-xml-971215

XML, biçimlendirme dillerini tanımlamak için bir meta dil değildir. Gerçekten bu sadece SGML. XML sadece bir veri biçimlendirme biçimlendirme dilidir. Alıntı yaptığınız kaynak teknik terimleri yanlış kullanıyor, bu yüzden kafa karıştırıcılar.

Amaçları

XML, kendi veri biçiminizi tanımlamak içindir. Verileri iki sistem arasında geçirmek istiyorsanız, XML genellikle bunu yapmanın yoludur.

Örneğin, web sitenizden faturalandırma sisteminize bir müşteri siparişi iletmeniz gerekiyorsa bu XML yükünü oluşturabilirsiniz:

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

Web siteniz daha sonra bu XML'i faturalandırma sisteminize gönderir;

XHTML ve HTML açıkçası sadece web sayfaları içindir. XHTML'nin temel amacı, web geliştirmenin önceki yıllarında (on yıllar) sahip olduğumuz belirsizliğin çoğunu ortadan kaldırmaktır. 90'lı yılların sonlarına doğru başladığımda ciddi şekilde özensiz kodlara izin veren HTML 3.2 kullanıyorduk. HTML 4+ ve XHTML, açık tarayıcı etiketlerini, açık öznitelikleri ve izin verilmeyen etiketleri güçlü bir şekilde önererek veya uygulayarak hem tarayıcılarda hem de insanlarda daha kolay olmasını ve tarayıcılar arası beklenmedik farklılıklardan kaçınmayı denemeye çalışır.


Teşekkürler! (1) XHTML'nin hem HTML hem de XML alt kümeleri var mı? (2) HTML'nin XML'in bir alt kümesi veya XML'in bir HTML alt kümesi olmaması doğru mu? HTML ve XML'de boş olmayan kavşak var mı, yoksa birbirinden tamamen ayrılmış mı?
Tim

(3) Bir dilin diğerinin uygulaması olduğunu ve bir dilin diğerinin alt kümesi olduğunu söylemek arasındaki farklar nelerdir?
Tim

Hem XML hem de HTML ile uyumlu belgeler vardır; HTML ile değil XML ile uyumlu belgeler ve XML ile değil HTML ile uyumlu belgeler vardır. Yani ikisi de diğerinin bir altkümesi değil, ama boş olmayan bir kavşakları var.
Michael Kay

@Tim: (1) HTML, XML ve XHTML, SGML dışında hiçbir şeyin alt kümesi değildir. Hepsi farklı. XML aslında HTML veya XHTML ile ilgisi yoktur ... farklı bir amaca hizmet eder. XHTML hem HTML hem de XML olarak ayrıştırılabilir, ancak yalnızca tarayıcılar tarafından HTML işaretlemesi olarak kullanılır. HTML ve XML'nin her ikisi de SGML'nin ortak bir atasına sahiptir, ancak başka türlü ilgisizdir. Her niyet için ayrıdırlar çünkü SGML çok geneldir.
Ürdün

Dürüst olmak gerekirse ben uygulama vs alt küme ile terminoloji çok derin dalış olduğunu düşünüyorum. Bu terimler arasında bir ayrım olduğunu düşünmüyorum ya da varsa, üzerinde anlaşmaya varıldığından şüpheliyim. XHTML'nin kavramları XML'den ödünç aldığını ve HTML'nin katı bir alt kümesi olarak kullanıldığını söylemek yeterlidir. Önce HTML geldi. XHTML daha sonra geldi.
Ürdün

6

XML'in SGML'nin bir alt kümesi olduğunu söyleyerek başlayacağım, sonra XHTML XML'nin bir alt kümesidir.

HTML, SGML'ye dayanmaktadır, ancak bazı farklı kurallara sahiptir. XHTML temel olarak güncellenmiş bir sürüm HTML'sidir, ancak bazı kurallarla doğru XML olması için yerleştirir.

HTML 5 Standard'ın diğer özelliklerle nasıl çalıştığına dair bazı notlar. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

SGML ve XML arasındaki farklardan veya birini diğerinden ne zaman kullanacağınızdan emin değilim. XML yaygın olarak kullanılsa da.

XHTML ve HTML için muhtemelen her zaman XHTML kullanmaktan daha iyidir. Hataların bulunması daha kolaydır ve bonus olarak da geçerli XML olacaktır.


Teşekkürler! (1) Görünüşte birbiriyle çelişen iki olguyu nasıl anlayacağımı merak ediyordum: XML ve HTML hem SGML'nin alt kümeleri, hem de HTML bir biçimlendirme dili iken XML bir biçimlendirme dili değil, biçimlendirme dilleri tasarlamak için bir meta dil mi? (2) Yanıtınıza göre, XHTML bir XML alt kümesidir. XHTML, yayınımdaki bir bağlantıdan alıntılanan "XHTML alt kümeleri HTML" olarak HTML'nin bir üst kümesidir. HTML, XML'in bir alt kümesidir? Bunun doğru olduğundan emin değilim.
Tim

HTML, XML olmak için çok fazla kural ihlal ediyor. HTML'nin SGML'ye daha yakın olduğuna inanıyorum. HTML etiketlerde gevşek ve belirli sayıda farklı etiket türü var. XHTML sadece HTML'nin XML sürümü.
WalterJ89

Teşekkürler! Her iki bağlantıda olduğu gibi, HTML'nin SGML'nin bir uygulaması ve SGML'nin bir alt kümesi olduğunu ve XHTML'nin bir XML uygulaması olduğunu belirtin. Acaba bir dilin diğerinin uygulaması olduğunu ve bir dilin diğerinin altkümesi olduğunu söylemek arasındaki farklar nelerdir?
Tim

2

Bunların tarihi sizi burada aydınlatabilir. Meta diller, profiller, altkümeler ve örnekler hakkında konuşmak biraz kurudur! Kısa ve basit tutmaya çalışacağım.

SGML, 1960'larda 3 IBM mühendisi tarafından ayrıntılı yasal, hükümet, endüstriyel ve askeri belgeleri saklama aracı olarak tasarlanan GML'den (Genelleştirilmiş İşaretleme Dili) gelişti. GML, 1986'da SGML olarak standardize edilene kadar yavaş yavaş rafine edildi.

GML / SGML kendi başına bir dil değildir . Daha çok bir meta-dil , yani uygun dilleri veya çeşitli ayrıntılı belgelerin biçimlendirilmesinin genel olarak tutarlı bir şekilde tasarlanabileceği "kuralları" tanımlayan bir dildir . Bu nedenle, her farklı belge türü, kendi SGML uyumlu etiket adları ve ilişkili özniteliklerin yanı sıra tanımlı herhangi bir resmi genel tanımlayıcı / ad alanı, şema, vb. Tanımlayacaktır. ilgili tür. SGML kurallarına uygun tüm belgeler arasındaki tutarlılık nedeniyle, bu belgelerdeki verileri harmanlamak / işlemek için kod yazmak ve ortak bir formatı paylaşan belgeler arasında veri aktarmak mümkündür.

SGML, çok sayıda ancak daha küçük boyutlu belge için çok ayrıntılı olarak bulundu. Bu nedenle XML, 1996 ve 2006 yılları arasında , SGML'nin hem küçük hem de büyük belgeleri işleyebilecek bir alt kümesi (sözcük profili etkili bir şekilde alt kümeyle aynı anlama gelir ) olarak geliştirildi. Bir meta dilin alt kümesi olan XML, daha basit olsa da, bir meta-dildir. XML'nin, bir ağdaki sistemler arasında hem kolay depolama hem de aktarma için uygun belge formatları tasarlamak için bir temel sağladığını söyleyebilirsiniz.

SGML'nin standartlaştırılmasından sonra ancak XML'e sadeleştirilmeden önce internet ortaya çıktı ve bununla birlikte hem belgelerin hem de gevşek verilerin kolay aktarılmasını ve görüntülenmesini sağlayan bir belge formatına ihtiyaç duyuluyor. Sonuç, metin, resim, ses, vb. Gibi çeşitli veri türlerini görüntülemek için standartlaştırılmış bir yol sağlayan 18 önceden tanımlanmış etiket içeren SGML'nin bir örneği (bazen uygulama olarak anılır ) HTML diliydi. başlangıç ​​veya bitiş etiketlerini atlamak için bazı öğeler. HTML'nin sonraki sürümleri buna yeni etiketler ve öznitelikler ekledi ve mevcut olanları geçersiz kıldı. HTML 5'e kadar, HTML'de her zaman SGML'nin alt dili olarak kalacak şekilde değişiklikler yapıldı.

XML standardize edildikten sonra, mevcut HTML etiketi adlarını etiket kapatma, ad alanları, şemalar, vb. Üzerindeki XML titizliği ile birleştiren XHTML adı verilen bir örneği çıktı. XHTML başlangıçta verilerin depolanması, aktarılması ve görüntülenmesi için yararlı olma vaadini taşıyordu. HTML 5 çıkana kadar HTML'yi web materyalini görüntülemenin en yaygın yolu olarak değiştirmek gibi görünüyordu. HTML 5, özellikle multimedya yüklü web siteleri için daha zengin bir veri görüntüleme sağlamak için SGML'de tanımlanan özelliklerin ötesine geçen bazı sözdizimsel özelliklere sahipti. Zaman geçtikçe, HTML 5'e, en azından ilgili verilerin görüntülenmesine kadar, yeni XHTML sürümlerinin yerini almasının mümkün olmadığı noktaya kadar veri görüntüleme / kullanım için kullanımını daha da zenginleştiren ek özellikler eklendi. HTML ve XHTML standartları W3C çalışma grupları tarafından yapılsa da, bu dillerin gerçekte "yerinde" yayılması ilerici web tasarımcıları tarafından yapılır ve medya (reklam / halkla ilişkiler / pazarlama) sektöründe çalışanlardan daha ilerici değildir: reklam ajansı sitelerinin diğer sitelere kıyasla yaratıcılığına bakmanız yeterlidir. Bu sektör, yeni HTML 5 dilini aldı ve SVG, ses, video veyeni API'lar . HTML 5'in hazır olarak benimsenmesi, genel olarak web tasarımcıları arasındaki popülerliğine yol açtı; bu, YouTube ve diğer çeşitli sitelerdeki çevrimiçi beceri ve püf noktalarının çevrimiçi alışverişi ile hızlandırıldı. Güncellenmiş bir XHTML sürümü, XHTML5 ortaya çıktı, ancak gerçekten katı bir XML türevi değil, XML-serileştirilmiş bir HTML5 sürümü. Sitelerin yalnızca küçük bir bölümünün bunun için herhangi bir faydası olduğu görülmektedir.

Bu veri dillerinin arkasındaki hikaye bu. Umarım hepsinin anlamını ve amacını ayırt etmenize yardımcı olur. Felsefi olarak, bu hikaye, yeni bir teknoloji (internet) için önemli bir etkinleştirme aracının (SGML), artan çeşitlilikte taleplerle yeni ortamda, orijinal sınırlarını aşabileceğini, ancak kavramsal olarak daha basit, pratik olarak daha çok yönlü ve etkileyici bir şekilde daha güçlü olabileceğini göstermektedir.


1

Genellikle standartlar dünyasında, bir standardın "profili" standardın sunduğu seçeneklerin bir seçimidir: örneğin, standart belgelerin UTF-8 veya UTF-16'da kodlanmasına izin veriyorsa, standardın bir profili gerekebilir UTF-8 ile kodlanacaktır. "Altküme" terimi çok benzer bir anlama sahiptir; tartışmasız "profil" terimi biraz daha geniştir.


Teşekkürler! (1) Sorularımın 5. Bölümünde olduğu gibi, "uygulama", "altküme" ve "profil" in anlamı ve arasındaki fark nedir? (2) "XHTML, HTML'yi genişleten ve alt kümelendiren gelecekteki belge türleri ailesinin temelidir", XHTML'nin HTML'nin bir alt kümesi olduğu veya HTML'nin XHTML'nin bir alt kümesi olduğu anlamına mı geliyor?
Tim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.