Freigeben über


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