以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  再次探讨“名称空间”的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=45082)


--  作者:xml-linguist
--  发布时间:4/9/2007 10:48:00 AM

--  再次探讨“名称空间”的问题
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve">
<!--以上是名称空间-->
<!--以下元素的名称空间为xmlns:o="urn:schemas-microsoft-com:office:office"-->
 <o:SmartTagType o:namespaceuri="urn:schemas-microsoft-com:office:smarttags" o:url="" o:name="chmetcnv"/>
 <o:SmartTagType o:namespaceuri="urn:schemas-microsoft-com:office:smarttags" o:url="" o:name="chsdate"/>
 <o:SmartTagType o:namespaceuri="urn:schemas-microsoft-com:office:smarttags" o:name="place"/>
 <o:SmartTagType o:namespaceuri="urn:schemas-microsoft-com:office:smarttags" o:name="City"/>
 <o:SmartTagType o:namespaceuri="urn:schemas-microsoft-com:office:smarttags" o:name="country-region"/>
 <o:SmartTagType o:namespaceuri="urn:schemas-microsoft-com:office:smarttags" o:name="State"/>
<o:DocumentProperties>
<!--具体数据省略-->
</o:DocumentProperties>
<!--以下元素的名称空间为xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"-->
<w:fonts>
<!--具体数据省略-->
</w:fonts>
<w:styles>
<!--具体数据省略-->
</w:styles>
<w:docPr>
<!--具体数据省略-->
</w:docPr>
<w:body>
<!--具体数据省略-->
</w:body>
<!--省略部分的元素会用到其他的命名空间-->
</w:wordDocument>

=================================
我的问题是:所有的名称空间都在根元素<w:wordDocument>中声明,其中包含xmlns:w; xmlns:v; xmlns:w10;mlns:sl; xmlns:aml;xmlns:wx; xmlns:o;xmlns:dt; xmlns:st1这么多的名称空间。由于引用了如此多的名称空间,所以每个具体的元素在引用时前面必须加上前缀。那么,是否可以将这些名称空间分散在文件中具体引用该名称空间的元素中?如果可以,那么元素前面的前缀是否可以取消?


--  作者:xml-linguist
--  发布时间:4/9/2007 10:57:00 AM

--  
顺便再补充一个问题:名称空间可以以URL,URN,URI的形式声明,究竟有什么区别?


--  作者:admin
--  发布时间:4/9/2007 11:18:00 PM

--  
是否可以将这些名称空间分散在文件中具体引用该名称空间的元素中?如果可以,那么元素前面的前缀是否可以取消?
~~~~~~~~~~~~~~~~~~
答:比如前缀w10,你可以在第一次用到w10的元素中进行名称空间声明:xmlns:w10="...."

--  作者:xml-linguist
--  发布时间:4/10/2007 9:08:00 AM

--  
Thanks to admin.
--  作者:admin
--  发布时间:4/11/2007 12:24:00 AM

--  
以下是引用xml-linguist在2007-4-9 10:57:00的发言:
顺便再补充一个问题:名称空间可以以URL,URN,URI的形式声明,究竟有什么区别?

请看此帖:
http://bbs.w3china.org/dispbbs.asp?BoardID=1&replyID=45751&id=33906&star=1&skin=0


--  作者:落地尘埃
--  发布时间:4/12/2007 4:45:00 PM

--  
当然是可以的,名称空间支持嵌套,当不加前缀的时候,内层名称空间的优先级高于外层的名称空间,如在下面的xml文档中,子元素c前没有加名称空间前缀,说明c元素来自xmlns:v的名称空间。
<a xmlns:w=...>
  <b xmlns:v=...>
      <w:d>...</w:d>
      <c>...</c>
  </b>
</a>

--  作者:xml-linguist
--  发布时间:4/13/2007 10:18:00 AM

--  
谢谢!
落地尘埃,一锤定音!
--  作者:ylzxldh5735
--  发布时间:11/23/2007 8:14:00 PM

--  
说到底,名字空间起的是标识作用。用url形式是利于记忆吗?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms