Функция ms:type-local-name([node-set])

Возвращает неполное имя XSD-типа текущего узла или первого узла (в порядке определения в документе) в представленном наборе узлов.

string ms:type-local-name([node-set])

Замечания

Для простых типов функция type-local-name возвращает имя — например, «ID» or «ENTITY».Для сложных типов XSD, у которых задан атрибут name, функция type-local-name возвращает неуточненное имя, например, «Class».При вызове функции для безымянного типа возвращается пустая строка.

Далее приведен пример выражения, которое выбирает все узлы со встроенным примитивным типом XSD string.

"//*[ms:type-local-name()='string')]"

Пример

В этом примере используется правило шаблона XSLT для выбора всех элементов в документе books.xml и вывода типов данных этих элементов согласно их определениям в books.xsd.

XML-файл (books.xml)

Используйте books.xml.

XSD-файл (books.xsd)

Используйте books.xsd.

XSLT-файл (books.xslt)

<?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:output method="html"   
     omit-xml-declaration="yes"/>

  <xsl:template match="/">
     <H3>nodes of all data types:</H3>
     <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="*">
     <DIV>
          <xsl:value-of select="name()"/> is of 
          <xsl:value-of select="ms:type-local-name()"/> 
     </DIV>
    <xsl:apply-templates/>
  </xsl:template>

</xsl:stylesheet>

HTML-файл (books.html)

HTML-файл содержит скрипт на языке JScript, поддерживающий загрузку XML-, XSLT- и XSD-файлов.

<html>
  <head>
    <script>
      function init() {
       try {
         var objxsd = new ActiveXObject("Msxml2.XMLSchemaCache.6.0");
         var objxml = new ActiveXObject("Msxml2.DOMDocument.6.0");
         var objxsl = new ActiveXObject("Msxml2.DOMDocument.6.0");

         // namespace uri ("urn:books") must be declared as one of the
         // namespace delarations in the "books.xml" that is an instance
         // of "books.xsd"
         objxsd.add("urn:books", "books.xsd");

         objxml.schemas = objxsd;
         objxml.setProperty("SelectionLanguage", "XPath");
         objxml.setProperty("SelectionNamespaces",
              "xmlns:ms='urn:schemas-microsoft-com:xslt'");
         objxml.async=false;
         objxml.validateOnParse=true;
         objxml.load("books.xml");

         objxsl.async=false;

         objxsl.load("books.xslt");
         result = "<h2>Used in an XSLT</h2>";

         result += objxml.transformNode(objxsl);
         document.body.innerHTML = result;

       }
       catch (e) {
         alert(e.description);
       }
      }
    </script>
  </head>

  <body onload="init()">
  </body>
</html>

Вывод

x:catalog is of

book is of

author is of string

Gambardella, Matthew

title is of string

XML Developer's Guide

genre is of string

Computer

price is of float

44.95

publish_date is of date

2000-10-01

description is of string

An in-depth look at creating applications with XML.

Обратите внимание на то, что элементы x:catalog и book принадлежат к безымянным типам.

См. также

Справочник

Справочник по XML-схемам (XSD)

Справочник по типам данных XML

Основные понятия

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