A classe NBElement representa um único elemento analisado na árvore de mensagens. A classe fornece quatro métodos de criação diferentes que podem ser usados para criar um novo elemento na árvore de mensagens.
public override void Evaluate(NBMessageAssembly inputAssembly)
{
NBOutputTerminal outTerminal = OutputTerminal("Out");
NBMessage inputMessage = inputAssembly.Message;
// Crie uma nova mensagem vazia, assegurando-se de que seja descartada após o uso
using (NBMessage outputMessage = new NBMessage())
{
NBMessageAssembly outAssembly = new NBMessageAssembly(inputAssembly, outputMessage);
NBElement inputRoot = inputMessage.RootElement;
NBElement outputRoot = outputMessage.RootElement;
// Copie, opcionalmente, os cabeçalhos das mensagens; remova-os se não forem necessários
CopyMessageHeaders(inputRoot, outputRoot);
#region UserCode
// Inclua o código do usuário nessa região para criar uma nova mensagem de saída
NBElement msg = outputRoot.CreateLastChildUsingNewParser(NBParsers.XMLNSC.ParserName).CreateFirstChild(null,"Message");
NBElement el4 = msg.CreateLastChild("Element4");
NBElement el1 = msg.CreateFirstChild("Element1");
el1.SetValue("Data Value for Element1");
el4.SetValue("Data Value for Element4");
el1.CreateAfter("Element2").SetValue("Data Value for Element2");
el4.CreateBefore("Element3").SetValue("Data Value for Element3");
#endregion UserCode
// Altere o seguinte se não for propagar a mensagem para o terminal de 'Saída'
outTerminal.Propagate(outAssembly);
}
}
Quando o nó é conectado a um nó de saída adequado
(como um nó MQOutput),
o código produz uma mensagem XML semelhante a esta:<Message>
<Element1>Data Value for Elememt1</Element1>
<Element2>Data Value for Elememt2</Element2>
<Element3>Data Value for Elememt3</Element3>
<Element4>Data Value for Elememt4</Element4>
</Message>