2011-07-16 47 views
8

Tôi đang cố gắng hiển thị XML + XSL 2.0 trong trình duyệt, trả lại .xml trang với application/xml loại nội dung và .xsl trang với text/xml. Safari đang phàn nàn về tài liệu chính: "Tài nguyên được hiểu là tài liệu nhưng được chuyển với ứng dụng loại MIME/xml". (nhưng vẫn hiển thị mọi thứ tốt).Loại nội dung nào sẽ được sử dụng cho bản trình bày XML + XSL?

Tôi muốn loại bỏ thông báo cảnh báo này. Những loại nội dung nào nên được sử dụng cho tài liệu XML?

+1

"XML + XSL 2.0" có nghĩa là bạn sử dụng XSLT 2.0 không? Có trình duyệt nào hỗ trợ XSLT 2.0 không? – mzjn

+1

Không hỗ trợ trình duyệt, nhưng Saxon CE (alpha) cung cấp XSLT 2.0 trong trình duyệt: http: //www.saxonica.com/ –

+1

Safari 5 và Chrome 15 hoạt động tốt với XSLT 2.0 (trên Mac) – yegor256

Trả lời

7

Tôi đã thành công bằng cách sử dụng văn bản/xml với biểu định kiểu dưới dạng văn bản/xsl (hoặc có thể điều này là OK dưới dạng văn bản/xml khi bạn làm việc). văn bản/xsl được công nhận rộng rãi, nhưng không được "chính thức" (theo như tôi hiểu).

Theo RFC 3023: "Nếu tài liệu XML có nghĩa là tài liệu XML nguồn chưa được xử lý có thể đọc được bởi người dùng thông thường, text/xml thích hợp hơn với ứng dụng/xml. Các tác nhân người dùng MIME (và tác nhân người dùng web) không có sự hỗ trợ rõ ràng cho văn bản/xml sẽ coi nó là văn bản/thuần, ví dụ, bằng cách hiển thị thực thể XML MIME dưới dạng văn bản thuần túy.pplication/xml là thích hợp hơn khi thực thể XML MIME không thể đọc được bởi người dùng bình thường. "

Xem https://tools.ietf.org/html/rfc3023#page-16

+0

'văn bản/xsl' cho tài liệu XML ?? – yegor256

+0

Xin lỗi - đối với biểu định kiểu. Và văn bản/xml cho tài liệu cá thể. – kennethmay

+0

Theo RFC 3023: "Nếu một tài liệu XML có nghĩa là, tài liệu XML nguồn chưa xử lý có thể đọc được bởi người dùng thông thường, text/xml thích hợp hơn với ứng dụng/xml. Các tác nhân người dùng MIME (và các tác nhân người dùng web) không rõ ràng hỗ trợ cho text/xml sẽ coi nó như là text/plain, ví dụ, bằng cách hiển thị thực thể XML MIME dưới dạng văn bản thuần túy.pplication/xml là thích hợp hơn khi thực thể XML MIME không thể đọc được bởi người dùng bình thường. " http://tools.ietf.org/html/rfc3023#page-16 – kennethmay

0

Trước khi bất kỳ chuyển đổi tôi làm điều này trong PHP:

header("Content-Type: application/xhtml+xml; charset=utf-8"); 

phần với UFT-8 là quan trọng ...

+1

Điều đó sẽ áp dụng nếu anh ta đã chuyển đổi phía máy chủ của XML sang XHTML, và thậm chí sau đó nó sẽ là vấn đề (IE/MSHTML không hỗ trợ kiểu MIME đó). Không có "uft-8", nhưng "utf-8" trong mã của bạn chỉ đúng nếu đầu ra thực sự * là * UTF-8 được mã hóa. Đó không phải là yêu cầu đối với XHTML. Bạn đã không trả lời câu hỏi. – PointedEars

4

Peeking vào nguồn WebKit, thật dễ dàng để xem những loại MIME nào được coi là hợp lệ cho từng loại tài nguyên. Nó không phải là một danh sách rất lớn.

sau 4 loại MIME được hỗ trợ cho "Tài liệu":

  • text/html
  • text/xml
  • text/plain
  • application/xhtml+xml

Chỉ có 2 loại có giá trị trong stylesheets:

  • text/css
  • text/xsl

Rõ ràng, text/html, text/plaintext/css loại không thực sự áp dụng ở đây.

Nếu bạn thực sự chỉ quan tâm đến việc im lặng các cảnh báo, gửi tài liệu .xml dưới dạng text/xml và tài liệu .xsltext/xsl sẽ thực hiện thủ thuật.

Mặt khác, bạn thừa nhận rằng mọi thứ đều hiển thị tốt, vì vậy bạn có thể xem xét chiến lược "nếu nó không bị hỏng, không khắc phục được".

Các vấn đề liên quan