applicationxml和textxml的区别
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
网络上xml是什么意思对于Webservice的应⽤来说,我们通常都是⽤UTF-8进⾏⽹络传输,但也有通过GBK和GB2312传输的情况,但是在我们Webservice的代码实现中,其实是不⽤关⼼具体的传输编码的,因为根据RFC2376的定义,Webservice的引擎(axis,cxf,jaxws..)会根据⽂件传输的ContentType及XML 声明部分定义的编码⾃动将⽹络传输过来的内容(字符串)转换成unicode(jvm运⾏时的字符串都是以unicode形式存在的)。以下是RFC2376的描述:
例⼦1:
webservice传输的⽂件
Xml代码
1. Content-type: application/xml; charset="utf-16"
2.  {BOM}<?xml version="1.0"?>
Xml代码
1. Content-type: application/xml; charset="utf-16"
2.  {BOM}<?xml version="1.0"?>
XML and MIME processors会按照utf-16编码处理该⽂件
例⼦2:
webservice传输的⽂件
Xml代码
1. Content-type: application/xml
2.    <?xml version='1.0'?>
Xml代码
1. Content-type: application/xml
2.    <?xml version='1.0'?>
XML processors会按照utf-8编码处理该⽂件
例⼦3:
webservice传输的⽂件
Xml代码
1. Content-type: application/xml
2.    <?xml version='1.0' encoding="ISO-10646-UCS-4"?>  Xml代码
1. Content-type: application/xml
2.    <?xml version='1.0' encoding="ISO-10646-UCS-4"?>  XML processors会按照UCS-4编码处理该⽂件
例⼦4:
webservice传输的⽂件
Xml代码
1. Content-type: text/xml
2.    {BOM}<?xml version="1.0" encoding="utf-16"?>
Xml代码
1. Content-type: text/xml
2.    {BOM}<?xml version="1.0" encoding="utf-16"?>
XML processors会按照us-ascii,⽽不是utf-16编码处理该⽂件参考⽂档:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。