2011-05-26 59 views
3

在Web服務中我一直在工作,我已經通過類似方法在使HTML文本顯示在屏幕上:與text/xml相比,我如何使用application/xml?

@GET 
@Produces(MediaType.TEXT_HTML) 
public String sayHtmlHello() 
{ 
/**Do some stuff 
    return "<html> " + "<title>" + "Hello" + "</title>" 
      + "<body><h1>" + "Hello World" + "</h1></body></html>"; 
} 

其顯示在屏幕上相當不錯。爲了適合我正在開發的項目的項目描述,我一直在努力通過構建文檔,將其轉換爲字符串並返回字符串來實現XML輸出。使用@Produces(MediaType.TEXT_XML)顯示了我期望的XML樹。

我的問題來這裏:我需要能夠通過使用什麼項目說明調用應用程序/ XML的響應的Content-Type頭這個XML數據;字符集= UTF-8。那麼我需要做什麼來容納使用@Produces(MediaType.APPLICATION_XML)而不是@Produces(MediaType.TEXT_XML)?

+2

好了,我在這個項目上的合作伙伴說幹就幹,改變「TEXT_XML」到「APPLICATION_XML」,它輸出的罰款。因此,從我所知道的情況來看,在Web瀏覽器中調用這兩種方法的方式都是相同的。 – ZKSteffel 2011-05-26 16:04:57

回答

3

application/xml通常是優選的mime類型。對於text/xml它出現在編碼通常將作爲us ascii無論什麼是在XML文檔頭中指定的(除非在HTTP頭另有規定)的處理。

欲瞭解更多信息:爲文件

+2

不再 - 見rfc7303 4.1節:「相比[RFC2376]或[RFC3023],本說明書中改變文本/ xml和文本/ XML的外部解析的實體的字符編碼的處理,從相應的處理它們沒有不同應用程序/類型「。 – 2015-10-14 11:34:15

4

使用application/xml的意思主要是對程序進行處理。使用text/xml作爲除調試以外的其他用途的文檔。我相信這是覆蓋在RFC 2046

+0

RFC 2376表示默認情況下使用text/xml作爲純文本進行處理,還引用了@ brian-clozel提到的RFC 2046字符編碼 – karmakaze 2016-01-02 23:47:32