Web hizmeti yanıtı için text / xml ve application / xml arasındaki fark nedir


495

Bu, text/xmlve arasındaki farkla ilgili genel bir sorudur application/xml. Web hizmetleri (REST - Jersey) yazmakta oldukça yeniyim. application/xmlÖğrenmek için kullandığım çoğu öğretici / kod örneğinde ne ortaya çıktığı için üretiyordum , ancak son zamanlarda öğrendim text/xmlve bununla ilgili farklı olanı ve ne zaman kullanacağınızı merak ediyordum application/xml?


DaveV'nin cevabında ve tools.ietf.org/html/rfc3023 adresindeki başlığında belirtildiği gibi , RFC 3023 ( Oded'in şu anda kabul edilen cevabından alıntılanan) kullanılmıyor. Daha yeni RFC 7303 aslında bu soruya RFC 3023'ten çok daha farklı bir cevap veriyor. Bu yüzden DaveV'nin cevabını kabul etmenizin gelecekteki okuyucular için yararlı olacağını düşünüyorum, böylece en güncel bilgiler cevap listesinin en üstünde tutulmalıdır.
Mark Amery

Aşağıdaki Dave V ve Marián Černý'ya dayanarak, yeni bir şey yapıyorsanız, application / xml'nin şimdi tercih edildiği anlaşılıyor.
Sql Surfer

text/insanlar içindir. application/bilgisayarlar içindir
Ian Boyd

Yanıtlar:


108

Bu eski bir sorudur, ancak sık sık ziyaret edilen ve net öneriler içeren bir soru artık RFC3023'ü geçersiz kılan RFC 7303'ten edinilebilir . Özetle (bölüm 9.2):

The registration information for text/xml is in all respects the same
as that given for application/xml above (Section 9.1), except that
the "Type name" is "text".

6
Atıfta bulunulan paragraf, (Bölüm 9.1'i kontrol ederek) kodlama ile de ilgili olan IANA kayıt bilgisinden bahsetmektedir, bu nedenle application/xmlve arasındaki karakter kümesi kullanımında herhangi bir fark olmamalıdır text/xml. Buna ek olarak, özetin bu kısmını da dikkate alıyorum: "Bu şartname ... text / xml ... takma ad olarak tanımlarken standartlaştırır ... application / xml ..." anlamına gelir application/xmlve text/xmleşdeğerdir ve hiçbir tercih yoktur biri diğeri hakkında.
Marián Černý

427

RFC'den ( 3023 ), bölüm 3 altında, XML Ortam Türleri:

Bir XML belgesi - yani işlenmemiş, kaynak XML belgesi - sıradan kullanıcılar tarafından okunabilirse , text / xml uygulaması / xml için tercih edilir. Metin / xml için açıkça desteklenmeyen MIME kullanıcı aracıları (ve web kullanıcı aracıları), örneğin XML MIME varlığını düz metin olarak görüntüleyerek metin / düz olarak ele alır. XML MIME varlığı sıradan kullanıcılar tarafından okunamıyorsa uygulama / xml tercih edilir .

(benimkini vurgula)


6
@drachenstern - Açıklayıcı olmayan elemanların ve niteliklerin daha olası olduğunu düşünüyorum ( <a1 d="" g="">örneğin sıradan kullanıcılar tarafından okunamıyor ).
Oded

3
@Mike Elbette. Bazı XML dosyaları temel olarak bunun gibi bir kayıt listesidir: msdn.microsoft.com/en-us/library/ms762271%28v=vs.85%29.aspx Bunun bir uygulama tarafından okunması ve işlenmesi daha olasıdır. Diğerleri temel olarak bir HTML sayfası gibi biçimlendirilmiş metindir. Onlar için metin / xml kullanmak daha uygun geliyor.
biziclop

5
Lütfen okunamaz ve okunabilir bir örnek verin. Çoğunlukla okunabilir ancak base64 kodlu düğümleri vb. Olan dosyalar kullanıyoruz.
Joe Phillips

5
@JoePhilllips - İşte böyle. base64 insanlar tarafından okunamaz. Belgenin tamamı okunabilir ve araç kullanmadan veya bir el kitabına bakarak bir insana mantıklı geliyorsa (bu nedirxgsf etiket anlama gelir?) Bakmadan geliyorsa, okunabilir.
Oded

8
@CommaToast "text / xml" Kabul Et ise bir web sunucusu biçimlendirilmiş ve girintili XML döndürürken, application / xml kaldırılan tüm önemsiz boşlukları döndürebilir. Örneğin ASP.NET MVC'de, farklı mime türleri için farklı işleyiciler belirtebilirsiniz.
Novaterata

33

Bu makaleye göre uygulama / xml tercih edilmektedir.


DÜZENLE

Makaleyi biraz takip ettim.

Yazar, XML işleme talimatlarında bildirilen kodlamanın aşağıdaki gibi olduğunu iddia ediyor:

<?xml version="1.0" encoding="UTF-8"?>

text/xmlortam türü kullanıldığında yok sayılabilir .

Tezin tanımı ile desteklenirler text/* , RFC 2046'daki MIME tipi aile spesifikasyonu , özellikle aşağıdaki fragmanla :

4.1.2.  Charset Parameter

   A critical parameter that may be specified in the Content-Type field
   for "text/plain" data is the character set.  This is specified with a
   "charset" parameter, as in:

     Content-type: text/plain; charset=iso-8859-1

   Unlike some other parameter values, the values of the charset
   parameter are NOT case sensitive.  The default character set, which
   must be assumed in the absence of a charset parameter, is US-ASCII.

   The specification for any future subtypes of "text" must specify
   whether or not they will also utilize a "charset" parameter, and may
   possibly restrict its values as well.  For other subtypes of "text"
   than "text/plain", the semantics of the "charset" parameter should be
   defined to be identical to those specified here for "text/plain",
   i.e., the body consists entirely of characters in the given charset.
   In particular, definers of future "text" subtypes should pay close
   attention to the implications of multioctet character sets for their
   subtype definitions.

Onlara göre, application/xmlMIME tipi kullanılırken bu tür zorluklardan kaçınılabilir . Doğru olsun ya da olmasın, kaçınacak kadar ileri gitmezdim text/xml. IMHO, en iyisi sadece insan tarafından okunabilirliğin (okunamayan) anlambilimine uymak ve her zaman karakter kümesini belirtmeyi unutmayın.


1
Bağlantı için +1. Kendi sözlerinizle, makalede ulaşılan temel sonuç nedir? Belki de "makale dosya kodlamasının yok sayıldığını belirtir, yani utf-8 ve ikili veriyi metin / xml başlığına sahip bir dosyaya gönderemezsiniz" de bu doğrulanmış mıdır?
Shanimal

@Shanimal ile hemfikirim, bağlantı sonsuza kadar sürmeyebileceğinden, yanıt makalenin özünü içermelidir. Kaybolması cevabı neredeyse işe yaramaz hale getirecektir. Herkes kodlama ile ilgili XML işleme talimatlarını göz ardı etme ifadesini onaylayabilir mi?
toniedzwiedz

1
Orijinal yazara göre, bu özelliklerin sonraki devirlerinde düzeltildiUpdate: The situation has changed in the new HTTP/1.1 RFC: The default charset of ISO-8859-1 for text media types has been removed; the default is now whatever the media type definition says.
TheNorthWes

Ajax ile bir XML dosyası yüklerseniz, bu tür bir "belge" application/xmlama bir giriş form öğesi kullanırsanız text/xmlbenim kod ile düzgün işlemeyen tür bir "dosya" dır . Diğer biçime nasıl dönüştürebilirim?
Şeytan Avukatı

5

application/xmltarafından görülür svnşekilde ikili oysa türü text/xmlolarak metin bir fark görüntülenebilir hangi dosyanın.

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.