2011-07-16 16 views
8

Próbuję renderować XML + XSL 2.0 w przeglądarce, zwracając strony .xml z typem treści application/xml i .xsl stronami text/xml. Safari narzeka na główny dokument: "Zasób interpretowany jako dokument, ale przesłany z aplikacją typu MIME/xml." (ale nadal renderuje wszystko dobrze).Jaki typ zawartości powinien być używany do prezentacji XML + XSL?

Chcę się pozbyć tego ostrzeżenia. Jakie typy zawartości powinny być używane w dokumencie XML?

+1

Czy "XML + XSL 2.0" oznacza, że ​​używasz XSLT 2.0? Czy istnieje przeglądarka obsługująca XSLT 2.0? – mzjn

+1

Brak obsługi przeglądarki, ale Saxon CE (alpha) zapewnia XSLT 2.0 w przeglądarce: http: //www.saxonica.com/ –

+1

Safari 5 i Chrome 15 działają poprawnie z XSLT 2.0 (na Macu) – yegor256

Odpowiedz

7

Odniosłem sukces, używając text/xml z arkuszem stylów jako text/xsl (lub może to jest w porządku jako text/xml, jak to działa). text/xsl jest powszechnie uznawany, ale nie "oficjalny" (o ile go rozumiem).

Zgodnie z RFC 3023: "Jeśli dokument XML, który jest, nieprzetworzony, źródłowy dokument XML jest czytelny dla zwykłych użytkowników, tekst/xml jest lepszy od aplikacji/xml. nie ma wyraźnego wsparcia dla text/xml będzie traktować je jako tekst/zwykły, na przykład, wyświetlając jednostkę MIME XML jako zwykły tekst. Aplikacja/xml jest preferowana, gdy jednostka MIME XML jest nieczytelna dla zwykłych użytkowników. "

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

+0

'text/xsl' dla dokumentu XML ?? – yegor256

+0

Przepraszamy - dla arkusza stylów. I text/xml dla dokumentu instancji. – kennethmay

+0

Zgodnie z RFC 3023: "Jeśli dokument XML, który jest, nieprzetworzony, źródłowy dokument XML jest czytelny dla zwykłych użytkowników, tekst/xml jest lepszy niż application/xml. Agenty użytkownika MIME (i agenty użytkownika WWW), które nie mają wyraźnego obsługa text/xml traktuje je jako tekst/zwykły, na przykład wyświetlając jednostkę MIME XML jako zwykły tekst. Aplikacja/xml jest preferowana, gdy encja MIME XML jest nieczytelna dla zwykłych użytkowników. " http://tools.ietf.org/html/rfc3023#page-16 – kennethmay

0

Przed transformacją zrobić to w PHP:

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

część z UFT-8 jest ważne ...

+1

Miałoby to zastosowanie, gdyby dokonał konwersji XML na XHTML po stronie serwera, a nawet wtedy byłby problematyczny (IE/MSHTML nie obsługuje tego typu MIME). Nie ma "uft-8", ale "utf-8" w twoim kodzie jest poprawne tylko jeśli wyjście faktycznie * jest * zakodowane w UTF-8. Co nie jest wymagane w XHTML. Nie odpowiedziałeś na to pytanie. – PointedEars

4

zerkanie do źródła WebKit, łatwo zobacz, jakie typy MIME są uważane za poprawne dla każdego typu zasobów. To nie jest bardzo duża lista.

następujących 4 typów MIME są obsługiwane przez "Dokumenty":

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

Istnieją tylko 2 prawidłowe typy dla arkuszy stylów:

  • text/css
  • text/xsl

Oczywiście text/html, text/plain, a text/css rodzaje naprawdę nie ma tu zastosowania.

Jeśli jesteś naprawdę zainteresowany w wyciszaniu ostrzeżenia, wysyłanie dokumentu .xml jako text/xml i dokument .xsl jako text/xsl powinno załatwić sprawę.

Z drugiej strony, przyznajesz, że wszystko jest w porządku, więc możesz rozważyć strategię "jeśli nie jest zepsuta, nie naprawiaj".

Powiązane problemy