`
123003473
  • 浏览: 1064981 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

application/xml and text/xml的区别

 
阅读更多
经常看到有关xml时提到"application/xml" 和 "text/xml"两种类型, 二者功能一模一样,唯一的区别就是编码格式,text/xml忽略xml头所指定编码格式而默认采用us-ascii编码,而application/xml会根据xml头指定的编码格式来编码:
XML has two MIME types,application/xml and text/xml . These are often used interchangeably, but there is a subtle difference which is why application/xml is generally recommended over the latter.

     Let me explain why: according to the standard, text/* -MIME types have a us-ascii character set unless otherwise specified in the HTTP headers. This effectively means that any encoding defined in the XML prolog (e.g. <?xml version=”1.0” encoding=”UTF-8”?>) is ignored. This is of course not the expected and desired behaviour.    

     To further complicate matters, most/all browser implementations actually implement nonstandard behaviour for text/xml because they process the encoding as if it were application/xml .    

     So, text/* has encoding issues, and is not implemented by browsers in a standards-compliant manner, which is why using application/* is recommended.

关键字: text/xml application/xml

对于Webservice的应用来说,我们通常都是用UTF-8进行网络传输,但也有通过GBK和GB2312传输的情况,但是在我们Webservice的代码实现中,其实是不用关心具体的传输编码的,因为根据RFC2376的定义,Webservice的引擎(axis,cxf,jaxws..)会根据文件传输的ContentType及XML 声明部分定义的编码自动将网络传输过来的内容(字符串)转换成unicode(jvm运行时的字符串都是以unicode形式存在的)。以下是RFC2376的描述:

例子1:

webservice传输的文件

1.Content-type: application/xml; charset="utf-16"  
2.  {BOM}<?xml version="1.0"?> 
  

1.Content-type: application/xml; charset="utf-16"  
2.  {BOM}<?xml version="1.0"?>   

XML and MIME processors会按照utf-16编码处理该文件

例子2:

webservice传输的文件

1.Content-type: application/xml   
2.   <?xml version='1.0'?>  

1.Content-type: application/xml   
2.   <?xml version='1.0'?> 

XML processors会按照utf-8编码处理该文件

例子3:

webservice传输的文件

1.Content-type: application/xml   
2.   <?xml version='1.0' encoding="ISO-10646-UCS-4"?>

1.Content-type: application/xml   
2.   <?xml version='1.0' encoding="ISO-10646-UCS-4"?>  


XML processors会按照UCS-4编码处理该文件
例子4:

webservice传输的文件

1.Content-type: text/xml   
2.   {BOM}<?xml version="1.0" encoding="utf-16"?>  

1.Content-type: text/xml   
2.   {BOM}<?xml version="1.0" encoding="utf-16"?> 


XML processors会按照us-ascii,而不是utf-16编码处理该文件


【参考地址】
http://songyishan.iteye.com/blog/1073969
分享到:
评论

相关推荐

    JSP/XML中的contextType大全

    同样,在处理XML数据时,可以设置`Content-Type`为`application/xml`或`text/xml`。 ### 4. `Content-Type`与AJAX 在AJAX(Asynchronous JavaScript and XML)请求中,`Content-Type`主要用于指定发送到服务器的...

    使用axios发送post请求,将JSON数据改为form类型的示例

    通常前端通过POST请求向服务器端提交数据格式有4中,分别是”application/x-www-form-urlencoded”格式、” multipart/form-data”格式、”application/json”格式和”text/xml”格式。通常最常见的是”application/...

    docker下nginx配置压缩字体和图片等配置

    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 指定需要压缩的文件类型 ...

    http/https请求工具类

    // 提交方式 public static String REQUEST_METHOD_POST = "POST... public static String MIME_TYPE_TEXTXML = "text/xml;charset=utf-8"; public static String MIME_TYPE_TEXTPLAIN = "text/plain;charset=utf-8";

    ajax+php--接收处理xml和text格式数据

    在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态、交互性网页的关键技术。它允许在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。本示例将探讨如何使用AJAX与PHP配合,处理...

    C# RestClient组件下载,实现请求接口地址

    C# RestClient组件下载,...application/xml XML application/x-www-form-urlencoded Form表单 text/plain 纯文本 text/xml XML文本 text/html HTML文本 multipart/form-data 用于上传文件 application/xhtml+xml XHTML

    XML格式化函数(JS) + 解析XML文本为Doc函数

    2. 调用`parseFromString`方法,传入XML文本和MIME类型(通常为"application/xml"或"text/xml")。 3. 这个方法会返回一个新的`Document`对象,代表了解析后的XML结构。 现在,我们可以将这两部分结合,创建一个...

    常见的四种POST 提交数据方式(小总结)

    4. **application/xml 或 text/xml**:XML是另一种数据交换格式,有时用于POST请求,特别是当需要更复杂的数据结构或与非JavaScript客户端交互时。Content-Type设置为`application/xml`或`text/xml`,消息主体是XML...

    AJAX的阻塞及跨域名解析

    AJAX(Asynchronous JavaScript and XML)是一种非常流行的Web开发技术,但是它也存在一些问题,其中之一就是阻塞和跨域名访问问题。在本文中,我们将讨论AJAX的阻塞原因和跨域名解决方案。 AJAX阻塞的原因 当我们...

    ContentType 类型大全 doc

    例如,text/xml 就是指服务器端发送来的内容是一个 XML 格式的文档。 9. application/x-x509-ca-cert application/x-x509-ca-cert 是一个专门用于数字证书的 ContentType 类型。例如,application/x-x509-ca-cert ...

    文件下载及web文件的contentType类型大全

    - `.xml` = `text/xml` - `.css` = `text/css` - `.js` = `application/x-javascript` 6. **其他文件** - `.zip` = `application/zip` - `.rar` = `application/x-rar-compressed` - `.exe` = `application/x...

    php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件).docx

    36. xml - text/xml 37. dll - application/octet-stream 该对照表总共列出了 37 种文件类型,涵盖了图片、音频、视频、文档、压缩包等多种格式。每种文件类型都对应着一个 MIME 类型,用于标识文件的类型和格式。 ...

    IIS设置MIME类型

    - `application/vnd.oasis.opendocument.text`:OpenDocument Text (ODT) 文档 - `application/vnd.oasis.opendocument.spreadsheet`:OpenDocument Spreadsheet (ODS) 表格 - `application/vnd.oasis....

    asp.net文件类型与后缀对照表

    * XML:text/xml * DLL:application/octet-stream 三、文件类型与浏览器兼容性 在 ASP.NET 开发中,文件类型与浏览器兼容性是一个非常重要的问题。不同的浏览器对文件类型的识别方式不同,例如IE和火狐浏览器对...

    js压缩gzip格式

    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ``` 除了服务器配置外,还可以通过构建工具(如Webpack、Gulp或Grunt...

    Using_ASP_NET_to_return_XML_formatted_data.rar_return

    1. 确保正确设置Content-Type为"application/xml"或"text/xml",这样客户端才能识别数据格式。 2. 避免XML注入攻击,对用户输入进行适当的验证和清理。 3. 使用合适的编码,避免XML中的特殊字符引发问题。 4. 考虑...

    gzip 压缩 三种方法

    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ``` 这将开启gzip压缩并指定要压缩的文件类型。 二、PHP编写的gzip...

    调用pb开发的webserver(HTTP POST)

    Content-Type: text/xml; charset=utf-8 Content-Length: length &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;short xmlns="http://webi.org"&gt;short&lt;/short&gt;*/ //出参是json格式{"statusCode":"2"}

    2、Web应用程序技术.docx

    Web 应用程序技术 ... ... ...* 消息头(Header):包括 Accept、Accept-Language、User-Agent、Host、...表示浏览器支持 text/html、application/xhtml+xml、application/xml 等 MIME 类型,并且优先顺序从左到右排列。

    tencentyun#qcloud-documents#响应压缩1

    响应 body 的 Content-Type 为 text/xml、text/plain、text/css、application/javascript、app

Global site tag (gtag.js) - Google Analytics