インライン DTD が含まれる XML 文書を構文解析する場合、XMLNSC パーサーは DTD 情報をメッセージ・ツリーに入れません。 ただし、ESQL コードを使用することにより、XML エンティティー定義をメッセージ・ツリーに追加できます。これらの定義は、XMLNSC パーサーがメッセージ・ツリーを生成するときに使用されます。
<BookInfo dtn="BookInfo" edn="author" edv="A.N.Other"/>
次の出力メッセージが生成されます。 <!DOCTYPE BookInfo [<!ENTITY author "A.N.Other">]>
<BookInfo><entref>&author;</entref></BookInfo>
出力メッセージを作成する ESQL は、以下のようになります。 DECLARE cursor REFERENCE TO InputRoot.XMLNSC.BookInfo;
DECLARE docTypeName CHARACTER cursor.dtn;
DECLARE authorRef CHARACTER 'author';
-- Create <!DOCTYPE BOOKInfo …
SET OutputRoot.XMLNSC.(XMLNSC.DocumentType)* NAME = docTypeName;
-- Create <!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;