Cuando se analiza un documento XML que tiene una DTD incorporada, el analizador XMLNSC no coloca la información de DTD en el árbol de mensaje. No obstante, utilizando código ESQL, puede añadir definiciones de entidad XML al árbol de mensaje, y estas definiciones se utilizan cuando el analizador XMLNSC genera el árbol de mensaje.
<BookInfo dtn="BookInfo" edn="author" edv="A.N.Other"/>
Se genera el mensaje de salida siguiente: <!DOCTYPE BookInfo [<!ENTITY author "A.N.Other">]>
<BookInfo><entref>&author;</entref></BookInfo>
El
ESQL para crear el mensaje de salida es: DECLARE cursor REFERENCE TO InputRoot.XMLNSC.BookInfo;
DECLARE docTypeName CHARACTER cursor.dtn;
DECLARE authorRef CHARACTER 'author';
-- Crear <!DOCTYPE BOOKInfo …
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)* NAME = docTypeName;
-- Crear <!ENTITY author "A.N.Other" > …
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType){docTypeName}.(XMLNSC.EntityDefinition) {authorRef} =
cursor.edv;
-- Create the entity reference
SET OutputRoot.XMLNSC.(XMLNSC.Folder){docTypeName}.(XMLNSC.EntityReference)entref = authorRef;