Поделиться через


Функция 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)

Используется XML-файл из раздела Использование функций расширения XPath для поддержки XSD.

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(ru-ru,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