代码之家  ›  专栏  ›  技术社区  ›  jwaddell

为什么使用框架集DTD会导致验证失败?

  •  0
  • jwaddell  · 技术社区  · 15 年前

    这个 project 我处理的是随机的HTML文件,尽可能地将它们转换为XHTML,并用一些XML元数据包装它们。由于生成的XML文件不是XHTML文档,因此doctype被删除。但是,当从XML文件检索打包的XHTML时,应该重新插入doctype。

    因为这些是随机的HTML文件,所以它们可以包含任何内容,但我不希望存储或确定原始的DTD。我认为应该使用框架集DTD,因为它只是过渡DTD的超集,对所有内容都有效。但是,当使用 W3C XHTML Validator 对于同一文档,使用过渡DTD传递,但使用框架集DTD失败。

    我已经将文档精简到了最低限度,这样我就可以复制问题了。以下是框架集版本:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml">
    
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Make The Move</title>
    </head>
    
    <body style="background: none;">
        <h3 id="why">Why should I move to Linux?</h3>
    </body>
    
    </html>
    


    这里是过渡版本:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml">
    
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Make The Move</title>
    </head>
    
    <body style="background: none;">
        <h3 id="why">Why should I move to Linux?</h3>
    </body>
    
    </html>
    


    请解释为什么会发生这种情况,以及我应该如何进行。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Chetan S    15 年前

    <noframes> <head> <frameset> <html>

    Here

        2
  •  0
  •   arturopuente    15 年前