You can include in-line DTDs in your messages, and you can specify
additional information by setting the property DOCTYPE
Text, but you must be aware of the action taken by the parser
when it constructs an output message:
- If you take any action that causes the output message to be regenerated,
for example if you configure a Compute node to create a new output message
by coding ESQL statements like SET OutputRoot.MRM.Field1 = xxx:
- If you have set the property Suppress
DOCTYPE for the message set in which you have defined this message
to Yes, both DOCTYPE
information (specified in the DOCTYPE Text property
for the message set or message) and in-line DTD are excluded from the output
message.
- If you have set the property Suppress
DOCTYPE for the message set in which you have defined this message
to No.
- The in-line DTD is preserved if possible.
- Otherwise, if the message is self-defining, the message set DOCTYPE Text property information is
included in the output message.
- Otherwise (the message is not self-defining),
the message level DOCTYPE Text property
information is included in the output message.
- If you do not take any action that causes the output message to be regenerated,
the parser generates an output message that is a direct copy of the input
message. This occurs if you have configured a Compute node in the message
flow to copy the message using SET OutputRoot = InputRoot (explicitly,
or by checking the Copy entire message check
box), and you do not modify the message in any way in this or any other node.
In this case the in-line DTD is retained in the output message but any information
that you specify in the DOCTYPE Text property
for the message set or message is not included.