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ésProprié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> |