This procedure is defined in the server but not documented via ad_proc or proc_doc and may be intended as a private interface.

The procedure is defined as:

proc dom::CreateDocType {token name extid dtd entities notations} {
    
    array set doc [set $token]
    upvar #0 $doc(docArray) docArray

    set id node[incr docArray(counter)]
    set child $doc(docArray)($id)

    set docArray($id) [list  id $id docArray $doc(docArray)  node:parentNode $token  node:childNodes {}  node:nodeType docType  node:nodeName {}  node:nodeValue {}  doctype:name $name  doctype:entities {}  doctype:notations {}  doctype:externalid $extid  doctype:internaldtd $dtd  ]
    # NB. externalid and internaldtd are not standard DOM 1.0 attributes

    # Update parent

    set doc(document:doctype) $child

    # Add this node to the parent's child list
    # This must come before the document element,
    # so this implementation may be buggy
    lappend $doc(node:childNodes) $child

    set $token [array get doc]

    return $child

}

Show another procedure: