在此上下文中,不允许将 XHTML 元素作为 XHTML 元素主体的子元素

XHTML element not allowed as child of XHTML element body in this context

提问人:John Heyer 提问时间:12/6/2020 更新时间:12/6/2020 访问量:279

问:

虽然这个页面似乎加载了文件,但我从NU HTML检查器收到一个错误。不知道如何清除错误,因为看起来正文中的所有内容当然都是 XHTML 正文元素的子元素。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
      <title>How About Them Apples?</title>
      <meta charset="utf-8" />
      <link href="apples.css" rel="stylesheet" type="text/css" />
   </head>
   <body>  
       <apples xmlns:apls="https://www.dole.com/en/products/apples">
          <apls:apple>
             <apls:name>Red Delicious</apls:name>
             <apls:color>Red</apls:color>
          </apls:apple>
          <apls:apple>
             <apls:name>Golden Delicious</apls:name>
             <apls:color>Yellow</apls:color>
          </apls:apple>
       </apples>
   </body>
</html>
css xhtml-1.0-strict xhtml 过渡 xhtmlrenderer

评论

0赞 Alohci 12/6/2020
那不是 XHTML。那是 XHTML + 别的东西。其他东西不会传递一个只期望XHTML的验证器。
0赞 John Heyer 12/7/2020
它是嵌入在HTML中的XML,它是XHTML的有效部分,如下所示:cs.unc.edu/Courses/comp416-f10/lectures/lecture03/...
0赞 Alohci 12/7/2020
我不确定它是否真的这么说,但如果它确实是这样说的,那就不正确了。它是完全可以接受的 XML,您可以在 XML 规则范围内自由地将 XHTML 与其他命名空间中的元素混合使用,但如果您这样做,它就不再是有效的 XHTML。任何版本的 XHTML 都不允许来自任意命名空间的元素进入其内容模型。如果你想这样做,你需要决定你自己的规则,什么是有效的,什么是无效的,而不是依赖XHTML的规则。
0赞 John Heyer 12/7/2020
好吧,它在 Chrome、FireFox 和 Edge 中渲染得很好。所以我不知道该告诉你什么
0赞 Alohci 12/7/2020
确定。浏览器可以很好地处理它。此外,HTML5 规范准确地定义了浏览器应该如何处理它。浏览器也可以处理XML文档,而没有任何HTML文档。什么是有效的,以及浏览器如何处理HTML和XML文档是两个独立的事情。最多可以说的是浏览器处理文档的方式有助于确定被认为是有效的,但反之亦然。

答: 暂无答案