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