IE中符合xml标准的模式的Doctype

时间:2009-08-20 12:32:57

标签: css xml internet-explorer doctype

我一直在寻找一个DOCTYPE标签,这个标签将使用正常的xml文档使css符合Internet Explorer符合标准,因为我想使用white-space css属性。 This page声明使用“doctype'XML'”应该足以让Internet Explorer 6+通过 - 但我已经尝试了我能想到/找到的每个DOCTYPE标记,而没有得到预期的结果。也许我在这里遗漏了其他东西,但基本上我认为正确的DOCTYPE标签(在代码中的正确位置)应该这样做。

以下是我正在测试的代码:

Test.css:

Message {
   white-space: pre-wrap;
}

的test.xml:

<?xml version="1.0"?>
<?xml-stylesheet href="Test.css" type="text/css"?>
<Message><![CDATA[
Some data

which is   pre   

formatted
]]></Message>

以上示例在FF&amp; Safari浏览器。

2 个答案:

答案 0 :(得分:1)

没有这样的东西,因为IE还不支持正确的mime类型application / xml + xhtml,用于将HTML作为XML提供。但是,IE确实直接支持XML,因此您可以直接编写电子邮件,而不会假装是HTML,然后使用样式表使页面显示为HTML。此方法将导致可访问性和语义违规,因为没有人会理解XML元素的语法。

这可能是网络很难采用XML的原因。

答案 1 :(得分:0)

据我所知,没有一个。文档撒谎。样式表呈现的原始XML文档似乎总是处于怪癖模式,理论上它们应始终处于标准模式,而不管文档类型(这些都是过时的,现在无论如何都不会在XML中使用太多)。

上面的例子并没有真正证明这一点......我用这样的东西进行了测试:

<?xml-stylesheet href="test.css" type="text/css"?>
<potato>
    <custard>X</custard>
</potato>

custard { width: 150px; padding: 50px; background: yellow; }

这使得总宽度+填充为150px而不是正确的250px。添加以下任何一个:

<!DOCTYPE potato>
<!DOCTYPE potato SYSTEM "blankfile.dtd">
<!DOCTYPE potato PUBLIC "-//W3C//DTD XHTML 1.0//EN" "blankfile.dtd">

或将根元素更改为'html'并引用真正的XHTML DTD URI,没有任何区别。原始XML呈现保持怪异模式。这与识别MIME应用程序/ xhtml + xml媒体类型无关。

我猜IE的原始XML呈现是一个自IE5以来没有真正看到任何更新的功能。它继续缓慢,古怪和无用。