XML ad alanları için neden URI'lara ihtiyacımız var?


23

XML ad alanları için neden URI'lara ihtiyaç duyduğumuzu anlamaya çalışıyorum ve bunun için bir amaç bulamıyorum. Biri beni biraz somut bir örnek üzerinde kullandıklarını göstererek aydınlatabilir mi?

DÜZENLE:

Mesela tamam: Bu w3schools gelen var

<root
xmlns:h="http://www.w3.org/TR/html4/"
 xmlns:f="http://www.w3schools.com/furniture">

 <h:table>
   <h:tr>
     <h:td>Apples</h:td>
     <h:td>Bananas</h:td>
   </h:tr>
 </h:table>

 <f:table>
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
 </f:table>

 </root>

Öyleyse ne http://www.w3schools.com/furnituretutmalı?



7
Zorunlu w3fools yorum.
yannis

Öyleyse XML ad alanlarının URI biçiminde olması gerekiyor mu? Veya 'My.Namespace.Foo' gibi herhangi bir dize kullanabilir miyim?
Mas

Yanıtlar:


20

Bir ad alanı , "Bu tür bir Foo" demenin bir yolu, aynı şekilde yazılmış olsalar bile, "Bu tür Foo" dan farklıdır. Veya, " MY foo türünü " tercih ederseniz , " Herkes foo türünden " farklıdır .

Bu söylemenin teknik yolu "nin URI benim Foo verdikleri ad alanı için herkes birinin URI farklıdır Foo için ad". Başka bir deyişle, URI'ler sadece söylemenizi sağlayan dizelerdir.

Buradaki püf nokta "Hey, URL'ler geçerli URI'lar" dır ve kontrolünüzdeki bir URL'ye karşılık gelen bir URI kullanır. Herkes bunu yaparsa, yanlışlıkla isim alanı çarpışmalarından kaçınırsınız. Ad alanı "A" ve ad alanı "B" de olabilirdi, ancak başka birinin de aynı ad alanını kullanması riskini taşıyorsunuz, ve o zaman Foo türünüz artık Foo'larından farklı değil; .

Daha sonra, URI'ler olarak kullanılan URL'lere, örneğin URL'nin dokümantasyonu veya XSD'leri veya benzerlerini içeren bir sayfaya karşılık gelmesi gerektiği gibi ilave kurallar ekleyebilirsiniz, ancak bu gerekli değildir. Bu sadece uygun.


Tamam, ancak A ve namespace w3.org/1999/xhtml arasındaki fark nedir ? ikisi de aynı ad alanlarını kullandıklarını bilmeden kullanıcılar tarafından kullanılabilir.
Patryk

1
@Patryk, bu yüzden üzerinde kontrol sahibi olduğunuz bir URL kullanıyorsunuz. Xhtml ad alanı URL'si, XHTML belirtimini tanımlayan W3C'nin kontrolü altındadır.

2
@Patryk, URL’yi seçecek ad alanını tanımlayanların da olduğunu unutmayın . O zaman herkes bunları kullanabilir .

1
Yani ad alanı atamamen geçerli olur mu? Aptal, ama geçerli mi? Yoksa URI mı olmalı?
Rudie

5
Bu sözleşmeyi yıllar önce kullanan ilk birkaç kişi, bu URL'lerde şemalarının güzel bir şekilde belgelenmesini sağlamış olsaydı, bu bir şey haline geldi mi? Microsoft'un OpenXML ad alanları schemas.openxmlformats.org/drawingml/2006/chart hiçbir şeye işaret etmez.
prototip

16

Genel olarak, herhangi bir benzersiz tanımlayıcı bir ad alanına hizmet eder; ancak standardın küresel olarak benzersiz olması gerektiği için , standartın bazı tahkim makamlarını görevlendirmesi veya aynı zamanda küresel olarak benzersiz olan ancak elde tutması ve sizinki kanıtlaması kolay başka bir kaynağı kullanması gerekirdi.

Oh bak! Eğer bir etki alanınız varsa, açıkçası sadece sizindir ve sizin olduğunu kanıtlamak kolaydır!

Örneğin, iki farklı kitapçının “kitaplar” ı tamamen farklı iç tanımlarla ad alanı olarak kullanmaya başladığı durumdan kaçınmak istediler. Dahili olarak kullanırken, problem yok; ancak bir tanesi spesifikasyonlarını yayınlamak istediğinde, tüm cehennem kırılmaya başladı.

Bunun yerine, etki alanınızı kullanmaya teşvik edilirseniz, herhangi biri (bir etki alanı olan herhangi biri), başka hiç kimsenin aynı tanımlayıcıyı kullanmayacağına güvenerek kendi özel ad alanlarını tanımlayabilir.

Bir bonus olarak, isteğe bağlı olarak ad alanınızın tanımını URI'da saklayarak kendi kendini belgeleyebilirsiniz.

Bana harika bir fikir gibi geliyor.


Cevabınız için teşekkürler ama bunu anlamak için daha somut bir şeye ihtiyacım var. Temel alabileceğiniz bazı örnek kodlar ekledim, lütfen bir göz atın.
Patryk

1
@ patryk - hiçbir şey, bu bir adres değil - bu, xml dosyalarını bir araya getirebileceğiniz başka kimsenin olmadığından emin olmadığınız benzersiz bir belirteç. Söylemek istediğim, <table> etc adlarının, üstte www.w3.org adı olan xml dosyalarında farklı anlamlarla kullanılmayacakları
Martin Beckett

Tamam, ancak wikipedia, kullanıcıların örneğin bir w3.org/1999/xhtml ad alanı olarak kullanabilecekleri bir şey söylediğinde, çoğu insan aynı ad alanına sahip olur. Haklı mıyım
Patryk

@Patryk, yalnızca aynı kullanım için kullanmak istiyorsanız. Yeni bir ad alanı tanımlamak istiyorsanız, kendi etki alanınızı kullanmanız teşvik edilir
Javier

@Javier 'Aynı kullanım' ile neyi kastediyorsunuz?
Patryk

1

DOM Level 2 2000 yılının sonlarında yayınlandı. "GetElementById" işlevinin yanı sıra bir olay modeli ve XML ad alanları ve CSS desteği de getirildi.

Hangi xmlIns belirtir?
Öznitelik düğümleri olarak "xmlns" veya "xmlns: xxx" adlı, tam olarak ad alanlarının kaynak XML belgesinde yazıldığı gibi. Bu, DOM tarafından sunulan modeldir.

Hangi URI içeriyor?
Ayrılmış bir XML sözde özniteliği xmlns veya xmlns: önek kullanılarak bir XML ad alanı bildirilir, değeri geçerli bir ad alanı adı olmalıdır.

Örneğin, aşağıdaki bildirim "xhtml:" ön ekini XHTML ad alanına eşler:

xmlns: xhtml = "http://www.w3.org/1999/xhtml"

AS Vikipedi'deki makaleyi okuduktan sonra keşfettim . URI, ad alanının XML olarak biçimlendirilmiş özelliklerini içermesi, öğe adı çakışmalarını önlemek için bir yöntem sağlar.

Xml belgesinin XML Schema, XML belgesindeki öğelerin element / tablo / sınıf yapısı için kullandığını biliyor olabilirsiniz .

http://www.w3schools.com/furniture tutun ne yapmalı ?

Yanıt, sayfanızda XML Ad Alanı hakkında bilgi edindiğiniz yerdedir. Kontrol Namespaces in Real Usebu W3Schools bölümüne makale .

Bu URI’nin neyin taşıdığını gösteren bazı bilgileri gösteren aşağıdaki stackoverflow bağlantısını kontrol edin:

XML ad alanı nasıl oluşturulur ve kullanılır?


-1

URI = ad alanının genel benzersiz adı veya tanımlayıcısı

Petrol endüstrisinin lojistiğinin finansal yönetimi üzerine bir veritabanı veya belge oluşturmayı düşünün. Veri tabanı, belge, yönetim, finans, lojistik, petrol ve sanayi: Bunun her bir konu için belirli kelimeleri (yani kontrollü terimler) kullanması gerekir.

Terimlerin hiçbiri bu yedi kelime arasında örtüşmüyorsa, yalnızca bir URI gereklidir. Ancak, bu sözcükler arasındaki diğer terimlerle örtüşen her terim için, bir URI'de veya IRI'da tanımlanan ek bir konuya özgü kelimeye ihtiyacınız olacaktır. Bunun bir yolu, daha geniş genel terimler ve daha dar konuya özel terimler içeren birleştirilmiş bir taksonomi oluşturmaktır.

Bu daha sonra bir terimin jargon eş anlamlılarını da gösteren ve bu terimlerle eşanlamlılar arasında tercih edilen bir terimin tanımlanmasını sağlayan bir eş anlamlılar listesine genişletilebilir.


2
Bu yazı okumak oldukça zordur (metin duvarı). Sakıncası var düzenleyebilir daha iyi bir şekle ing?
gnat
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.