ms:namespace-uri 函数

将限定名称的前缀部分解析为命名空间 URI。

string ms:namespace-uri(string)

备注

ms:namespace-uri() 函数假定参数为限定名称(例如 q:mine 或 coffee:beans)并尝试在当前节点的上下文中解析前缀。 如果该参数不是限定名称或非冒号表示名称,此函数返回空字符串。 对于非字符串参数,此函数的行为就像应用了 string() 函数。

示例

以下示例使用 XSLT 模板规则,从 books.xml 中选择所有元素并输出元素的数据类型和命名空间 URI(按 books.xsd 中的定义)。

XML 文件 (books.xml)

使用使用针对 XSD 的 XPath 扩展函数支持中的 XML 文件。

XSD 文件 (books.xsd)

使用使用针对 XSD 的 XPath 扩展函数支持中的 XSD 文件。

HTML 文件 (books.html)

该 HTML 文件与 ms:type-namespace-uri([node-set]) 函数主题中列出的文件相同。

XSLT 文件 (books.xsl)

<?xml version='1.0'?>
<xsl:stylesheet version="1.0" 
     xmlns:ms="urn:schemas-microsoft-com:xslt"   
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="text()"/>
  <xsl:output method="html"   
     omit-xml-declaration="yes"/>

  <xsl:template match="/">
     <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="*">
    <xsl:if test="ms:type-namespace-uri() != ''">
      <DIV>
          (ms:) 
          <xsl:value-of select="ms:namespace-uri(name())"/>:
          <xsl:value-of select="ms:local-name(name())"/>
      </DIV>
      <DIV>
          (std:) 
          <xsl:value-of select="namespace-uri()"/>:
          <xsl:value-of select="local-name()"/>
      </DIV>
      <DIV>
          (name():) 
          <xsl:value-of select="name()"/> 
      </DIV>
    </xsl:if>
    <xsl:apply-templates/>
  </xsl:template>

</xsl:stylesheet>

ms256231.collapse_all(zh-cn,VS.120).gif输出

(ms:) urn:books:catalog

(std:) urn:books:catalog

(name():) x:catalog

输出的第一行为 ms:namespace-uri(string) 和 ms:local-name(string) 返回的结果。 第二行为 XPath 标准函数 namespace-uri(nodeset) 和 local-name(nodeset 返回的结果。 第三行为 XPath 标准函数 name(nodeset) 返回的结果。

请参见

参考

XML 架构 (XSD) 参考

XML 数据类型引用