Partager via


Messages représentés en tant que schémas XSD

Une instance XML de modèle d'un type de message XSD est définie au moment de la conception, puis stockée sur disque. À l'exécution, un composant .NET récupère le fichier XML sur le disque et le renvoie en tant que valeur XmlDocument. Le code d'orchestration peut affecter ce résultat XmlDocument à l'instance de message déclarée dans l'orchestration.

La forme Affectation de message a une seule ligne de code :

MsgOut = CreateMsgHelper.Helper.GetXmlDocumentTemplate();  

Le composant d'aide qui crée le résultat XmlDocument comporte une méthode statique unique :

private static XmlDocument _template = null;  
private static object _sync = new object();  
private static String LOCATION = @"C:\MyTemplateLocation\MyMsgTemplate.xml";  
  
public static XmlDocument GetXmlDocumentTemplate()  
{  
   XmlDocument doc = _template;  
   if (doc == null)  
   {  
      // Load the doc template from disk.  
      doc = new XmlDocument();  
      XmlTextReader reader = new XmlTextReader(LOCATION);  
      doc.Load(reader);  
  
      // Synchronize assignment to _template.  
      lock (_sync)  
      {  
         XmlDocument doc2 = _template;  
         if (doc2 == null)  
         {  
            _template = doc;  
         }  
         else  
         {  
            // Another thread beat us to it.  
            doc = doc2;  
         }  
      }  
   }  
  
   // Need to explicitly create a clone so that we are not  
   // referencing the same object statically held by this class.  
   doc = (XmlDocument) doc.CloneNode(true);  
   return doc;  
}  

Voir aussi

Messages représentés en tant que classes .NET
Messages représentés en tant que XLANGMessage
Construction de messages dans le code utilisateur