वेबसवर्क प्रतिक्रिया के लिए टेक्स्ट / xml बनाम एप्लिकेशन / xml के बीच क्या अंतर है


494

इस बीच अंतर के बारे में कोई सामान्य प्रश्न के अधिक है text/xmlऔर application/xml। मैं वेबसर्विस (REST - जर्सी) लिखने के लिए काफी नया हूं। मैं तब से उत्पादन कर रहा हूं application/xmlजब यह सबसे अधिक ट्यूटोरियल / कोड उदाहरणों में दिखाई देता है जो मैं सीखने के लिए उपयोग कर रहा हूं, लेकिन मुझे हाल ही में पता चला text/xmlऔर सोच रहा था कि इसके बारे में क्या अलग है और आप इसे कब उपयोग करेंगे application/xml?


जैसा कि डेव के उत्तर में और हेडर में tools.ietf.org/html/rfc3023 , RFC 3023 ( ओड के उत्तर द्वारा उद्धृत, वर्तमान में स्वीकृत) का उल्लेख किया गया है, अप्रचलित है। नए RFC 7303 वास्तव में RFC 3023 की तुलना में इस प्रश्न का काफी अलग उत्तर देता है। मुझे लगता है कि यह भविष्य के पाठकों के लिए उपयोगी होगा यदि आपने डेव के उत्तर को स्वीकार किया है, ताकि उत्तर-अप करने की तारीख की जानकारी सबसे ऊपर रखी जाए।
मार्क अमेरी

नीचे डेव वी और मारीआन Daveerný के आधार पर यह प्रतीत होता है कि यदि आप कुछ नया कर रहे हैं तो आवेदन / xml को पसंद किया जाता है।
Sql Surfer

text/मनुष्यों के लिए है। application/कंप्यूटर के लिए है
इयान बॉयड

जवाबों:


108

यह एक पुराना सवाल है, लेकिन एक जिसे अक्सर जाना जाता है और स्पष्ट सिफारिशें अब RFC 7303 से उपलब्ध हैं जो RFC3023 का पालन करता है। संक्षेप में (खंड 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
उद्धृत पैराग्राफ में आईएएनए पंजीकरण जानकारी का उल्लेख है, जो (खंड 9.1 की जांच करके) एन्कोडिंग के साथ भी संबंधित है, इसलिए चरित्र सेट हैंडलिंग के बीच कोई अंतर नहीं होना चाहिए application/xmlऔर text/xml। इसके अलावा, मैं अमूर्त के इस हिस्से पर विचार करता हूं: "यह विनिर्देश मानकीकृत करता है ... आवेदन / xml ... पाठ / xml को परिभाषित करते समय ... उपनाम के रूप में ..." इसका मतलब यह है कि application/xmlऔर text/xmlसमकक्ष हैं और इसकी कोई प्राथमिकता नहीं है एक दूसरे के बारे में।
मारीअनार्नी

427

RFC ( 3023 ) से, धारा 3 के तहत, XML मीडिया प्रकार:

यदि कोई XML डॉक्यूमेंट - यानी अनप्रोसेस्ड, सोर्स XML डॉक्यूमेंट - कैजुअल यूजर्स द्वारा पठनीय है, तो टेक्स्ट / xml एप्लीकेशन / xml के लिए बेहतर है। MIME उपयोगकर्ता एजेंट (और वेब उपयोगकर्ता एजेंट) जिनके पास पाठ / xml के लिए स्पष्ट समर्थन नहीं है, वे इसे पाठ / सादे के रूप में व्यवहार करेंगे, उदाहरण के लिए, XML MIME इकाई को सादे पाठ के रूप में प्रदर्शित करके। एक्सएमएल माइम इकाई आकस्मिक उपयोगकर्ताओं द्वारा अपठनीय होने पर एप्लिकेशन / एक्सएमएल बेहतर है

(जोर मेरा)


6
@drachenstern - मुझे लगता है कि गैर वर्णनात्मक तत्व और गुण अधिक संभावना रखते हैं ( <a1 d="" g="">उदाहरण के लिए, आकस्मिक उपयोगकर्ताओं द्वारा अपठनीय )।
Oded

3
@ निश्चित रूप से। कुछ XML फाइलें मूल रूप से अभिलेखों की एक सूची है, जैसे: msdn.microsoft.com/en-us/library/ms762271%28v=vs.85%29.aspx यह एक आवेदन द्वारा पढ़ा और संसाधित होने की अधिक संभावना है। अन्य मूल रूप से मार्कअप के साथ टेक्स्ट हैं, जैसे HTML पेज। उनके लिए पाठ / xml का उपयोग करना अधिक उपयुक्त लगता है।
biziclop

5
कृपया अपठनीय बनाम पठनीय का उदाहरण दें। हम उन फ़ाइलों का उपयोग करते हैं जो ज्यादातर पठनीय हैं, लेकिन बेस 64 एनकोडेड नोड्स आदि हैं।
जो फिलिप्स

5
@JoePhilllips - वहाँ तुम जाओ। base64 मनुष्यों द्वारा पठनीय नहीं है। यदि पूरे दस्तावेज़ को पढ़ा जा सकता है और बिना उपकरण के मानव को समझ सकता है या एक मैनुअल को देख सकता है ( xgsfइसका मतलब क्या है?), तो यह पठनीय है।
ऊब

8
@CommaToast एक वेब सर्वर फॉर्मेटेड और इंडेंटेड एक्सएमएल लौटा सकता है यदि "टेक्स्ट / xml" एक्सेप्ट है, जबकि एप्लिकेशन / xml हटाए गए सभी महत्वहीन व्हाट्सएप को वापस कर सकता है। उदाहरण के लिए ASP.NET MVC में, आप अलग-अलग mimetypes के लिए अलग-अलग हैंडलर निर्दिष्ट कर सकते हैं।
नवतारा

33

इस लेख के अनुसार आवेदन / xml को प्राथमिकता दी जाती है।


संपादित करें

मैंने लेख पर थोड़ा अनुवर्ती कार्रवाई की।

लेखक का दावा है कि XML प्रसंस्करण निर्देशों में घोषित एन्कोडिंग, जैसे:

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

जब text/xmlमीडिया प्रकार का उपयोग किया जाता है तो इसे अनदेखा किया जा सकता है ।

वे RFC 2046text/* में MIME प्रकार के पारिवारिक विनिर्देश की परिभाषा के साथ थीसिस का समर्थन करते हैं , विशेष रूप से निम्नलिखित अंश:

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.

उनके अनुसार, application/xmlMIME प्रकार का उपयोग करते समय ऐसी कठिनाइयों से बचा जा सकता है । यह सच है या नहीं, मैं इससे बचने के लिए दूर नहीं जाऊंगा text/xml। IMHO, यह मानव-पठनीयता (गैर-पठनीयता) के शब्दार्थों का पालन करने के लिए सबसे अच्छा है और हमेशा चारसेट निर्दिष्ट करने के लिए याद रखें।


1
लिंक के लिए +1। आपके अपने शब्दों में, लेख में मूल निष्कर्ष क्या है? हो सकता है कि "लेख में कहा गया है कि फ़ाइल एन्कोडिंग को अनदेखा किया गया है, जिसका अर्थ है कि आप किसी फ़ाइल में टेक्स्ट / xml हेडर के साथ utf-8 और बाइनरी डेटा नहीं भेज सकते हैं" क्या यह सत्यापित है?
शनीमल

मैं @Shanimal से सहमत हूं, उत्तर में लेख का सार शामिल होना चाहिए क्योंकि लिंक हमेशा के लिए नहीं रह सकता है। इसका गायब होना जवाब को बहुत बेकार कर देगा। किसी को भी एन्कोडिंग के विषय में XML प्रसंस्करण निर्देशों की अनदेखी के बारे में बयान की पुष्टि कर सकता है?
टोनीज्विद्ज़

1
मूल लेखक के अनुसार, यह बाद के विनिर्देशों में तय किया गया हैUpdate: 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

अगर मैं एक्सएमएक्स फ़ाइल को अजाक्स के साथ लोड करता हूं तो यह एक "डॉक्यूमेंट" टाइप का है application/xmlलेकिन अगर मैं इनपुट फॉर्म एलिमेंट का उपयोग करता हूं तो यह टाइप की "फाइल" है text/xmlजो मेरे कोड के साथ ठीक से प्रोसेस नहीं करता है। मैं इसे दूसरे प्रारूप में कैसे बदल सकता हूं?
डेविल्स एडवोकेट

5

application/xmlद्वारा देखा जाता है svnके रूप में द्विआधारी जबकि प्रकार text/xmlके रूप में पाठ जिसके लिए एक diff प्रदर्शित किया जा सकता फ़ाइल।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.