Bei der Syntaxanalyse eines XML-Dokuments mit einer integrierten DTD fügt der XMLNSC-Parser keine DTD-Informationen in die Nachrichtenbaumstruktur ein. Bei Verwendung von ESQL-Code dagegen können Sie XML-Entitätsdefinitionen einfügen, die bei der Erzeugung der Nachrichtenbaumstruktur durch den XMLNSC-Parser verwendet werden.
<BookInfo dtn="BookInfo" edn="author" edv="A.N.Other"/>
Es wird folgende Ausgabenachricht generiert: <!DOCTYPE BookInfo [<!ENTITY author "A.N.Other">]>
<BookInfo><entref>&author;</entref></BookInfo>
Der ESQL-Code für die Erstellung der Ausgabenachricht sieht wie folgt aus: DECLARE cursor REFERENCE TO InputRoot.XMLNSC.BookInfo;
DECLARE docTypeName CHARACTER cursor.dtn;
DECLARE authorRef CHARACTER 'author';
-- <!DOCTYPE BOOKInfo … erstellen
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)* NAME = docTypeName;
-- <!ENTITY author "A.N.Other" > … erstellen
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType){docTypeName}.(XMLNSC.EntityDefinition) {authorRef} = cursor.edv;
-- Entitätsverweis erstellen
SET OutputRoot.XMLNSC.(XMLNSC.Folder){docTypeName}.(XMLNSC.EntityReference)entref = authorRef;