L'objet IXSLTemplate est utilisé pour les modèles XSLT(Extensible Stylesheet Language Transformations) cachées.

Set Objet_Template = _
                  Server.CreateObject("MSXML2.XSLTemplate")

Avant la version 2.6 de l'analyseur XML de Microsoft, chaque appel vers la méthode transformNode ou transformNodeToObject devait recompiler la feuille de style car celle-ci était simplement passée comme un objet IXMLDOMNode. Désormais, il est possible d'augmenter le performances en cachant la feuille de style compilée et en la réutilisant avec l'objet IXSLTemplate.

Pour mettre en cache une feuille de style compilée, il faut la charger à l'intérieur d'un objet IXSLTemplate. Ce-dernier est une unité d'exécution libre (free-threaded) et est apatride, ainsi il peut être stocké dans l'état d'application ASP partagé. Alors pour transformer un document donné employant ce modèle, il est nécessaire de créer un objet IXSLProcessor employant la méthode createProcessor. L'objet IXSLProcessor stocke l'état pour que celui-ci transforme l'appel et possède un modèle rental-threading.

Set Objet_Style = _
        Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
Objet_Style.Load "style.xsl"
Set Objet_Template.stylesheet = Objet_Style
Set Objet_Processor = Objet_Template.createProcessor()
Objet_Processor.input = Objet_Document
Objet_Processor.Transform
Response.Write Objet_Processor.output
Les Propriétés
Propriété
Description
Set Objet_Node = Objet_Template.stylesheet
fournit les feuilles de style XSL à compiler à l'intérieur d'un modèle XSL.
Les Méthodes
Méthode
Description
Set Objet_Processor = Objet_Template.createProcessor
crée un objet XSLProcessor de modèle de location qui utilise le IXSLTemplate.
Exemple [voir]
<%
  Dim Objet_Document
  Dim Objet_Style
  Dim Objet_Template
  Dim Objet_Processor

  Set Objet_Document = Server.CreateObject("MSXML2.DOMDocument")
  Set Objet_Style = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
  Set Objet_Template = Server.CreateObject("MSXML2.XSLTemplate")

  Objet_Document.async = False
  Objet_Document.Load Server.mapPath("logitheque.xml")
  Set Objet_Erreur = Objet_Document.parseError
  If Objet_Erreur.errorCode <> 0 Then
    Response.Write "<h3>Le chargement a échoué.</h3>" _
             & "<br>Une erreur d'analyse s'est produite." _
             & "<br>Code : " & Objet_Erreur.errorCode _
             & "<br>Raison : " & Objet_Erreur.reason _
             & "<br>Texte : " & Objet_Erreur.srcText _
             & "<br>URL : " & Objet_Erreur.url _
             & "<br>Position : " & Objet_Erreur.filePos _
             & "<br>Ligne : " & Objet_Erreur.line _
             & "<br>Colonne : " & Objet_Erreur.linePos
  Else
    Objet_Style.async = False
    Objet_Style.Load Server.mapPath("logitheque.xsl")
    Set Objet_Template.stylesheet = Objet_Style
    Set Objet_Processor = Objet_Template.createProcessor()
    Objet_Processor.input = Objet_Document
    Objet_Processor.addParameter "num", 6
    Objet_Processor.Transform
    Response.Write Objet_Processor.output
  End If

  Set Objet_Document = Nothing
  Set Objet_Style = Nothing
  Set Objet_Template = Nothing
  Set Objet_Processor = Nothing
%>