Fonction ms:type-local-name( )

Retourne le nom non qualifié du type XSD du nœud actuel ou du premier nœud (dans l'ordre du document) de la collection de nœuds spécifiée.

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

Notes

Pour les types simples, la fonction type-local-name retourne un nom tel que « ID » ou « ENTITY ». Pour les types XSD complexes dont l'attribut name est spécifié, la fonction type-local-name retourne un nom non qualifié tel que « Class ». Avec les types sans nom, la fonction retourne une chaîne vide.

L'exemple d'expression suivant sélectionne tous les nœuds présentant le type de données primitif XSD intégré « string ».

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

Exemple

L'exemple suivant utilise une règle de modèle XSLT pour sélectionner tous les éléments de books.xml et générer les types de données des éléments comme défini dans books.xsd.

Fichier XML (books.xml)

Utilisez books.xml.

Fichier XSD (books.xsd)

Utilisez books.xsd.

Fichier 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>

Fichier HTML (books.html)

Le fichier HTML contient un JScript qui gère le chargement de fichiers XML, XSLT et XSD.

<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 += "<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>

Sortie

x:catalog is of

book is of

author is of string

title is of string

genre is of string

price is of float

publish_date is of date

description is of string

Notez que les éléments x:catalog et book présentent des types sans nom.

Voir aussi

Référence

Référence du schéma XML (XSD)
Référence des types de données XML

Concepts

Utilisation des fonctions d'extension XPath pour la prise en charge de XSD