ms:type-namespace-uri( )-Funktion
Gibt den Namespace-URI zurück, der dem XSD-Datentyp eines aktuellen Knotens oder des ersten Knotens (in der Dokumentreihenfolge) in der bereitgestellten Knotengruppe zugeordnet ist.
string ms:type-namespace-uri([node-set])
Hinweise
Bei einfachen XSD-Typen gibt die type-namespace-uri
-Funktion eine leere Zeichenfolge zurück. Bei komplexen XSD-Typen, die über das angegebene name
-Attribut verfügen, gibt die type-namespace-uri
-Funktion einen vollständigen URI zurück, z. B. "http://www.example.microsoft.com/my-xsd-types."
.
Im folgenden Beispielausdruck werden die Knoten zurückgegeben, deren Datentyp den Namespace-URI "PurchaseOrderType" aufweist.
//*[ms:type-namespace-uri()='uri:PurchaseOrderType')]
Beispiel
Im folgenden Beispiel wird eine XSLT-Vorlagenregel verwendet, um alle Elemente aus der Datei books.xml auszuwählen und um die Datentypen der Elemente und den Namespace-URI wie in der Datei books.xsd definiert auszugeben.
XML-Datei (books.xml)
Verwenden Sie die Datei books.xml.
XSD-Datei (books.xsd)
Verwenden Sie die Datei books.xsd.
XSLT-Datei (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="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="*">
<DIV>
<xsl:value-of select="name()"/> is of
"<xsl:value-of select="ms:type-local-name()"/>" in
"<xsl:value-of select="ms:type-namespace-uri()"/>"
</DIV>
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
HTML-Datei (books.html)
Die HTML-Datei enthält ein JScript, das das Laden von XML-, XSLT- und XSD-Dateien behandelt.
<html>
<head>
<script>
function init() {
try {
var objxsd = new ActiveXObject("Msxml2.XMLSchemaCache.5.0");
var objxml = new ActiveXObject("Msxml2.DOMDocument.5.0");
var objxsl = new ActiveXObject("Msxml2.DOMDocument.5.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.xsl");
result += objxml.transformNode(objxsl);
document.body.innerHTML = result;
}
catch (e) {
alert(e.description);
}
}
</script>
</head>
<body onload="init()">
</body>
</html>
Ausgabe
x:catalog is of "" in ""
book is of "" in ""
author is of "string" in "http://www.w3.org/2001/XMLSchema"
title is of "string" in "http://www.w3.org/2001/XMLSchema"
genre is of "string" in "http://www.w3.org/2001/XMLSchema"
price is of "float" in "http://www.w3.org/2001/XMLSchema"
publish_date is of "date" in "http://www.w3.org/2001/XMLSchema"
description is of "string" in "http://www.w3.org/2001/XMLSchema"
description is of "string" in "http://www.w3.org/2001/XMLSchema"
Beachten Sie, dass x:catalog
-Elemente und book
-Elemente über anonyme Datentypen verfügen. Daher geben die ms:type-local-name()
-Funktion und die ms:type-namespace-uri()
-Funktion eine leere Zeichenfolge zurück.
Siehe auch
Verweis
Referenz zu XML-Schemata (XSD)
Referenz zu XML-Datentypen
Konzepte
Verwenden von XPath-Erweiterungsfunktionen für XSD-Unterstützung