CoR*_*CoR 60 javascript html5 dom namespaces
这两者之间真正的区别是什么?我的意思是真正的本质区别.常规的未来是createElement什么?
Svg是xml,而不是html.我明白了.所以我们使用createElementNS(ns_string, 'svg')
然后setAttributeNS(null,,).为什么?为什么不setAttributeNS('my_ns',,)呢?
为什么一定ns_string要http://www.w3.org/2000/svg而不是一些随机字符串?如果只有一个命名空间,命名空间的目的是什么?
ns常规html 的目的是什么?我应该在现有代码中更改createElementto的所有实例createElementNS吗?
我正在阅读DOM-Level-2规范.但我仍然感到困惑.
Mik*_*uel 48
要了解命名空间试图解决的问题,请考虑文件扩展名.3个字母的文件扩展名在描述文件内容方面做得非常糟糕.它们含糊不清,不带版本信息.XML名称空间使用更大的字符串,URI来解决相同的问题,并使用简短的前缀,因此您可以在同一文档中简洁地混合多种XML.
如果只有一个名称空间,命名空间的目的是什么?
有许多名称空间用于标识不同类型的XML,以及这些类型的不同版本.
SVG和MathML是两种XML,每种都有自己的命名空间,可以嵌入到HTML5中,它们通常使用另一个XML命名空间XLink.许多其他具有相应名称空间的XML模式用于在客户端和服务器之间传递消息以及用于数据存储.
XHTML试图将HTML表达为有效的XML.它有自己的命名空间.
所以我们使用createElementNS(ns_string,'svg')然后使用setAttributeNS(null ,,).为什么?为什么不setAttributeNS('my_ns',,)???
setAttributeNS在使用命名空间URI时,您应该尝试始终使用命名createElementNS空间URI.
XML是通过多个步骤定义的.该规范的第一个版本没有提到名称空间,但留下了足够的语法,以便通过使用前缀和特殊xmlns属性,可以在没有名称空间的XML上指定具有名称空间的XML .该XML规范说:
"XML建议书[XML名称]中的命名空间为包含冒号字符的名称赋予了含义.因此,除了命名空间之外,作者不应在XML名称中使用冒号,但XML处理器必须接受冒号作为名称字符."
XML名称空间允许XML处理应用程序知道它们正在处理什么,并允许多种XML在同一文档中混合在一起.
为什么ns_string必须是" http://www.w3.org/2000/svg "
这包括SVG版本标准化的年份,2000年,因此它携带有用的信息.
当与xmlns:svg它一起使用时,也让浏览器知道svg:前缀意味着SVG而不是XML的其他方言.
| 归档时间: |
|
| 查看次数: |
23922 次 |
| 最近记录: |