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::CreateGeneric {token args} {
if {[string length $token]} {
array set parent [set $token]
upvar #0 $parent(docArray) docArray
set docArrayName $parent(docArray)
} else {
array set opts $args
upvar #0 $opts(-docarray) docArray
set docArrayName $opts(-docarray)
array set tmp [array get opts]
foreach opt [array names tmp -*] {
unset tmp($opt)
}
set args [array get tmp]
}
set id node[incr docArray(counter)]
set child ${docArrayName}($id)
# Create the new node
# NB. normally we'd use Node:create here,
# but inline it instead for performance
set docArray($id) [eval list [list id $id docArray $docArrayName node:parentNode $token node:childNodes ${docArrayName}var$docArray(counter)] $args
]
set ${docArrayName}var$docArray(counter) {}
if {[string length $token]} {
# Update parent record
lappend $parent(node:childNodes) $child
set $token [array get parent]
}
return $child
}