This topic describes in-line DTDs and the DOCTYPE text property
that can be included in your messages.
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 expressions 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.