当前位置:  开发笔记 > 前端 > 正文

HTML/HTML5的默认命名空间是什么?

如何解决《HTML/HTML5的默认命名空间是什么?》经验,为你挑选了1个好方法。

根据这个名为"w3c"的用户的页面,HTML的默认命名空间是:

http://www.w3.org/1999/xhtml

他显然是错的,因为xhtml被用于基于XML的HTML4标准失败.我应该使用什么是正确的命名空间?

背景:我正在编写一个使用XML的应用程序.我希望能够使用命名空间在XML节点上保存数据.例如,

 

XML解析器需要"html"前缀的命名空间才有效.



1> Jon Hanna..:

正如W3C所记录的那样,谁是XML和HTML规范背后的主体(WHATWG有一个单独的HTML 5规范,但虽然它在某些方面与W3C规范不同步,WHATWG仍然认为它是W3C带来的角色将规范标准化为REC),与XML序列化(有时称为XHTML)一起使用的HTML命名空间http://www.w3.org/1999/xhtml.

这个命名空间涵盖了迄今为止已经指定的包含XHTML 1.0和1.1的XML序列化的所有HTML版本,这些XHTML 1.0和1.1已经使用了十多年,XHTML 2.0引入了几个模块化的想法,但可以说它更像是一个孵化器.几个想法而不是实现版本,"HTML5序列化为XML",有时称为XHTML5.

由于WHATWG中有另外一个关于如何指定HTML 5的马匹,你可能会注意到,如果你将HTML5序列化为XML,那么你必须使用命名空间http://www.w3.org/1999/xhtml和其他序列化不使用命名空间,或使用那个.按https://wiki.whatwg.org/wiki/FAQ#What_is_the_namespace_declaration.3F:

在XHTML中,您需要指定命名空间.

在HTML中,当前允许在任何HTML元素上使用xmlns属性,但前提是它具有值" http://www.w3.org/1999/xhtml ".它根本不做任何事情,只允许从XHTML1轻松迁移.它实际上不是HTML中的名称空间声明,因为HTML还不支持名称空间.请参阅HTML中是否支持名称空间的问题.

下一个FAQ也与此相关:

HTML是根据DOM定义的,在解析text/html期间,所有HTML元素都将自动放入HTML命名空间中http://www.w3.org/1999/xhtml.但是,与XHTML序列化不同,HTML序列化中没有真正的命名空间语法(请参阅上一个问题).换句话说,您不需要像在XHTML中那样在HTML标记中声明命名空间.但是,只要命名空间是,就可以在每个HTML元素上放置xmlns属性http://www.w3.org/1999/xhtml.

此外,HTML语法提供了一种嵌入MathML和SVG元素的方法.放置在容器元素内的元素mathsvg将由解析器分别自动放入MathML命名空间或SVG命名空间中.不需要命名空间语法,但如果其值是正确的命名空间,则允许xmlns属性.

总之,虽然HTML不允许XML命名空间语法,但是有一种方法可以嵌入MathML和SVG,并且xmlns属性可以在给定约束下的任何元素上使用,其方式在DOM级别上是合理兼容的.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有