type example content application xml rest jersey

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.