xml命名空间的作用是什么

时间:2021-04-02 21:18:30
所有的书上都写着为了保证元素名不重复,即使重复了又怎么样,反正又不在同一个xml文档里,这有什么意义?

11 个解决方案

#1


为解决自定义标志中出现的“名称冲突”
(即不同的实体使用同一标志进行描述)现象,
可将不同的实体赋予不同的命名空间,解析器则通过命名空间来区分元素.

#2


假设在同一个xml文档中出现 了
<books>
   <book>
          <title></title>
         <author>
              <name></name>
               <title></title>
         </author>
   </book>
</books>

这样一个xml文挡 ,你想如果没有命名空间的话 会不会冲突呢.

#3


假设加了
<books>
   <book>
          <title></title>
         <author>
              <people:name></people:name>
               <people:title></people:title>
         </author>
   </book>
</books>

这样就不会冲突了。

#4


其实就是怕命名冲突
比如说
<?xml version="1.0"?>
<title>xml命名<title>
<author>
   <name>张三</name>
   <title>作家</title>
</author>




这样的情况要考虑

按你说的那种情况可以不用考虑,但是你那么做要是需修改就灵活性大点。。

#5


就是为了避免重复
重复了 其他程序解析的时候就会不知道要取得的是哪个元素

#6


引用 4 楼 zhouzongxi 的回复:
其实就是怕命名冲突
比如说
XML code<?xml version="1.0"?><title>xml命名<title><author><name>张三</name><title>作家</title></author>
这样的情况要考虑

按你说的那种情况可以不用考虑,但是你那么做要是需修改就灵活性大点。。


我觉得这也不会冲突啊,建立个xpath,指定完全的路径,不会冲突访问。
要访问 <title>作家</title>,就用/author/title,
要访问<title>xml命名<title>,就用/title,
这样不也行吗?

#7


和java包差不多

#8


比如所有xml有两类title,一个是book,一个是page
明显选择这种标签:<book:title> <page:title>
比<title>
增加可读性,灵活性
相比<book-title> 和 <page-title>
更方便管理

#9


MARK

#10


XML标签没有被预定义,每个标签要自己定义,每个人都能定义,所以会出现很多人或公司定义出相同的标签,而这些标签因定义的人不同,意义也不一样。因此要有命名空间,说白了就是指明这个标签谁定义的,然后根据不同的定义的人来解释这个标签

#11


嗯 个人觉得10楼的说到点子上了,因为就算有同名的元素出现,也完全可以根据不同的路径和标志性属性来区分。关键是看各自的解析方法,所以赞成10楼的根据命名空间去调用不同的解析方法。

#1


为解决自定义标志中出现的“名称冲突”
(即不同的实体使用同一标志进行描述)现象,
可将不同的实体赋予不同的命名空间,解析器则通过命名空间来区分元素.

#2


假设在同一个xml文档中出现 了
<books>
   <book>
          <title></title>
         <author>
              <name></name>
               <title></title>
         </author>
   </book>
</books>

这样一个xml文挡 ,你想如果没有命名空间的话 会不会冲突呢.

#3


假设加了
<books>
   <book>
          <title></title>
         <author>
              <people:name></people:name>
               <people:title></people:title>
         </author>
   </book>
</books>

这样就不会冲突了。

#4


其实就是怕命名冲突
比如说
<?xml version="1.0"?>
<title>xml命名<title>
<author>
   <name>张三</name>
   <title>作家</title>
</author>




这样的情况要考虑

按你说的那种情况可以不用考虑,但是你那么做要是需修改就灵活性大点。。

#5


就是为了避免重复
重复了 其他程序解析的时候就会不知道要取得的是哪个元素

#6


引用 4 楼 zhouzongxi 的回复:
其实就是怕命名冲突
比如说
XML code<?xml version="1.0"?><title>xml命名<title><author><name>张三</name><title>作家</title></author>
这样的情况要考虑

按你说的那种情况可以不用考虑,但是你那么做要是需修改就灵活性大点。。


我觉得这也不会冲突啊,建立个xpath,指定完全的路径,不会冲突访问。
要访问 <title>作家</title>,就用/author/title,
要访问<title>xml命名<title>,就用/title,
这样不也行吗?

#7


和java包差不多

#8


比如所有xml有两类title,一个是book,一个是page
明显选择这种标签:<book:title> <page:title>
比<title>
增加可读性,灵活性
相比<book-title> 和 <page-title>
更方便管理

#9


MARK

#10


XML标签没有被预定义,每个标签要自己定义,每个人都能定义,所以会出现很多人或公司定义出相同的标签,而这些标签因定义的人不同,意义也不一样。因此要有命名空间,说白了就是指明这个标签谁定义的,然后根据不同的定义的人来解释这个标签

#11


嗯 个人觉得10楼的说到点子上了,因为就算有同名的元素出现,也完全可以根据不同的路径和标志性属性来区分。关键是看各自的解析方法,所以赞成10楼的根据命名空间去调用不同的解析方法。