Quoting David Lichteblau (david@lichteblau.com):
It just happens that cxml has a function called CREATE-DOCUMENT with utterly different and less useful behaviour for historical reasons. Not sure why the test suite never caught that, but we claim to implement DOM 2 now, so I will fix that.
Oops. My apologies, I looked at the wrong version of the source code. The cxml fork we are using here doesn't have DOM 2's DOMImplementation yet, but the common-lisp.net version has it, of course . All in good order.
And you are right, (dom:create-document 'dom:implementation uri qname doctype) creates a document with a doctype, but not a cxml DTD object.
Hmm.