L'objet XMLSchemaCache et la collection IXMLDOMSchemaCollection est utilisé par les schémas et les propriétés d'espace de noms sur l'objet IXMLDOMDocument2.
Set Objet_SchemaCache = _
Server.CreateObject("Msxml2.XMLSchemaCache")
L'objet XMLSchemaCache devient une collection lorsqu'un ou plusieurs objets du même type sont ajoutés par l'intermédiaire de la méthode addCollection.
Set Objet_SchemaCache =_
Server.CreateObject("Msxml2.XMLSchemaCache")
Set Objet_SchemaCollection = _
Server.CreateObject("Msxml2.XMLSchemaCache")
Objet_SchemaCache.add('Espace_Nom','Objet_Schéma')
Objet_SchemaCollection.addCollection(Objet_SchemaCache)
L'objet XMLSchemaCache est une unité d'exécution libre (free-threaded) et peut être utilisé dans de multiples documents simultanément.
Un seul document de schéma peut appartenir à de multiples collections de schéma et resteront en lecture seule jusqu'à ce qu'il soit enlevé de toutes les collections. Les documents de schéma appartenant à une collection doivent être en unité d'exécution libre.
Les Propriétés| Propriété |
|---|
| Description |
| Valeur = Objet_SchemaCollection.length |
| retourne le nombre d'espaces de noms en cours dans la collection. |
| Méthode |
|---|
| Description |
| Objet_SchemaCollection.add(Espace_Nom, Objet_Schema) |
| ajoute un nouvel item à la collection de schémas. |
| Objet_SchemaCollection.addCollection(Objet_SchemaCollection) |
| ajoute tous les schémas provenant d'une autre collection à l'intérieur de la collection courante. |
| Set Objet_Node = Objet_SchemaCollection.get(URI_Espace_Nom) |
| retourne en lecture seule le noeud DOM (Document Object Model) contenant l'élément <Schema> à l'URI spécifié. |
| URI_Espace_Nom = Objet_SchemaCollection.namespaceURI(index) |
| retourne l'URI d'espace de noms appartenant à l'index spécifié. |
| Objet_SchemaCollection.remove(URI_Espace_Nom) |
| enléve les espaces de noms spécifiés d'une collection. |
</html>
<body>
<script language="Javascript" type="text/javascript">
var Objet_Document =
new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
var Objet_Style =
new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
var Objet_SchemaCache =
new ActiveXObject("Msxml2.XMLSchemaCache");
Objet_SchemaCache.add("x-schema:livre.xdr", "c:\\exemple\\livre.xdr");
Objet_Document.schemas = Objet_SchemaCache;
Objet_Document.async = false;
Objet_Style.async = false;
Objet_Document.load("c:\\exemple\\livre.xml");
Objet_Style.load("c:\\exemple\\livre.xsl");
document.write(Objet_Document.transformNode(Objet_Style));
</script>
</body>
</html>
Fichier : livre.xml
<?xml version='1.0'?>
<logitheque
xmlns="x-schema:logitheque.xdr"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<logiciel>
<nom>ASP, ADO, and XML Complete</nom>
<editeur>Sybex</editeur>
<commentaire>Develop dynamic Web applications
with ASP, ADO and XML.</commentaire>
</logiciel>
<logiciel>
<nom>XSLT Programmer's reference</nom>
<editeur>Wrox Press</editeur>
<commentaire>This book is for programmers who want to learn how
to use XSLT language to develop web applications.</commentaire>
</logiciel>
</logitheque>
Fichier : livre.xdr
<?xml version="1.0" encoding="ISO-8859-1"?>
<Schema name="schema-livre"
xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="commentaire" model="closed"
content="textOnly" dt:type="string"/>
<ElementType name="editeur" model="closed"
content="textOnly" dt:type="string"/>
<ElementType name="logiciel" model="closed"
content="eltOnly" order="seq">
<element type="nom" minOccurs="1" maxOccurs="1"/>
<element type="editeur" minOccurs="1" maxOccurs="1"/>
<element type="commentaire" minOccurs="1" maxOccurs="1"/>
</ElementType>
<ElementType name="logitheque" model="closed"
content="eltOnly" order="seq">
<attributeType name="xmlns" dt:type="string"/>
<attribute type="xmlns"/>
<element type="logiciel" minOccurs="1" maxOccurs="*"/>
</ElementType>
<ElementType name="nom" model="closed"
content="textOnly" dt:type="string"/>
</Schema>
Fichier : livre.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:liv="x-schema:livre.xdr"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<xsl:template match="/">
<html>
<head/>
<body>
<table border="1">
<xsl:apply-templates/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="liv:logiciel">
<tr>
<td>
<xsl:for-each select="liv:nom">
<b>
<xsl:apply-templates/>
</b>
</xsl:for-each>
</td>
<td>
<xsl:for-each select="liv:editeur">
<xsl:apply-templates/>
</xsl:for-each>
</td>
</tr>
<tr>
<td colspan="2">
<xsl:for-each select="liv:commentaire">
<xsl:apply-templates/>
</xsl:for-each>
</td>
</tr>
</xsl:template>
</xsl:stylesheet> |