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