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