example - ¿Cuál es la diferencia entre text/xml vs application/xml para la respuesta del servicio web?
application.xml example (5)
Esta es más una pregunta general sobre la diferencia entre text/xml
y application/xml
. Soy bastante nuevo en escribir servicios web (REST - Jersey). He estado produciendo application/xml
ya que es lo que aparece en la mayoría de los tutoriales / ejemplos de código que he estado usando para aprender, pero recientemente descubrí sobre text/xml
y me preguntaba qué hay de diferente y cuándo lo usaría. sobre la application/xml
?
Desde la RFC ( 3023 ), en la sección 3, Tipos de medios XML:
Si un documento XML, es decir, el documento XML de origen no procesado, es legible por usuarios ocasionales, es preferible text / xml a application / xml. Los agentes de usuario MIME (y los agentes de usuario web) que no tienen soporte explícito para text / xml lo tratarán como texto / sin formato, por ejemplo, mostrando la entidad XML MIME como texto sin formato. Aplicación / xml es preferible cuando la entidad MIME XML es ilegible para los usuarios ocasionales.
(énfasis mío)
Esta es una pregunta antigua, pero una que se visita con frecuencia y ahora hay recomendaciones claras disponibles en RFC7303 que obsoleta a RFC3023. En pocas palabras (sección 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".
No para responder a su pregunta, sino para proporcionar una vida simple:
cuando vive en el ecosistema de .NET Framework -> consulte https://referencesource.microsoft.com/#system.web/MimeMapping.cs line ~ 430:
AddMapping(".xml", "text/xml");
para que siempre puedas hacer
string mimeType = System.Web.MimeMapping.GetMimeMapping(string yourFileName)
para obtener su mimetype correctamente
Según este artículo se prefiere la aplicación / xml.
EDITAR
Hice un pequeño seguimiento del artículo.
El autor afirma que la codificación declarada en las instrucciones de procesamiento XML, como:
<?xml version="1.0" encoding="UTF-8"?>
se puede ignorar cuando se utiliza el tipo de medio text/xml
.
Admiten la tesis con la definición de especificación de familia de text/*
tipo MIME en RFC 2046 , específicamente el siguiente fragmento:
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.
Según ellos, estas dificultades pueden evitarse cuando se utiliza la application/xml
tipo MIME. Sea cierto o no, no iría tan lejos como para evitar el text/xml
. En mi humilde opinión, es mejor seguir la semántica de la legibilidad humana (no legibilidad) y siempre recuerde especificar el conjunto de caracteres.
application/xml
es vista por svn
como tipo binario, mientras que text/xml
como archivo de texto para el cual se puede mostrar un diff.