Dies ist eher eine allgemeine Frage über den Unterschied zwischen text/xml
y application/xml
. Ich bin ziemlich neu im Schreiben von Webservices (REST - Jersey). Ich habe produziert application/xml
da es in den meisten Tutorien/Codebeispielen, die ich zum Lernen verwendet habe, vorkommt, aber ich habe kürzlich herausgefunden, dass text/xml
und wollte wissen, was daran anders ist und wann Sie es im Vergleich zu anderen Produkten verwenden würden. application/xml
?
Antworten
Zu viele Anzeigen?Aus dem RFC ( 3023 ), unter Abschnitt 3, XML-Medientypen:
Wenn ein XML-Dokument, d. h. das unbearbeitete XML-Quelldokument -- ist lesbar von Gelegenheitsnutzern, text/xml ist vorzuziehen gegenüber Anwendung/xml. MIME-Benutzeragenten (und Web-Benutzeragenten), die keine keine explizite Unterstützung für text/xml haben, behandeln es als text/plain, zum Beispiel indem sie beispielsweise die XML-MIME-Entität als reinen Text anzeigen. Anwendung/xml ist vorzuziehen, wenn die XML-MIME-Entität ist unleserlich von Gelegenheitsnutzern.
(Hervorhebung von mir)
Diese Frage ist alt, wird aber häufig gestellt, und es gibt jetzt klare Empfehlungen von RFC 7303 die RFC3023 überflüssig macht. Kurz und bündig (Abschnitt 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".
Nach Angaben von dieser Artikel application/xml wird bevorzugt.
EDITAR
Ich habe den Artikel ein wenig weiterverfolgt.
Der Autor behauptet, dass die in XML-Verarbeitungsanweisungen angegebene Kodierung, wie z. B.:
<?xml version="1.0" encoding="UTF-8"?>
kann ignoriert werden, wenn text/xml
Medientyp verwendet wird.
Sie stützen diese These mit der Definition von text/*
Spezifikation der MIME-Typenfamilie in RFC 2046 und zwar das folgende Fragment:
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.
Ihrer Meinung nach können solche Schwierigkeiten vermieden werden, wenn man application/xml
MIME-Typ. Ob es nun stimmt oder nicht, ich würde nicht so weit gehen, dass ich die text/xml
. IMHO ist es am besten, einfach die Semantik der menschlichen Lesbarkeit (Nicht-Lesbarkeit) zu befolgen und immer daran zu denken, den Zeichensatz anzugeben.