Hi,

Using xuriella to perform the identity transform fails when there are empty elements (e.g. "<BasicDefinitions/>") in the source document.  I believe the problem is in normalize-text-nodes! which doesn't check to see if there are any children before trying to iterate over them.  This seems to trigger an assertion error in sbcl.

XURIELLA> (apply-stylesheet #p"/usr/src/discworld/xslt/identity.xsl" "<root>abc</root>")
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<root>abc</root>"
XURIELLA> (apply-stylesheet #p"/usr/src/discworld/xslt/identity.xsl" "<root></root>")
The value NIL is not of type VECTOR.
   [Condition of type TYPE-ERROR]

Restarts:
 0: [RETRY] Retry SLIME REPL evaluation request.
 1: [ABORT] Return to SLIME's top level.
 2: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" RUNNING {CA2E459}>)

Backtrace:
  0: (CXML-STP-IMPL::NORMALIZE-TEXT-NODES! #.(CXML-STP:ELEMENT #| :PARENT of type DOCUMENT |# :LOCAL-NAME "root"))
  1: ((SB-PCL::FAST-METHOD XPATH-PROTOCOL:CHILD-PIPE-USING-NAVIGATOR ((EQL :DEFAULT-NAVIGATOR) CXML-STP:ELEMENT)) ..)
  2: ((LAMBDA (XPATH::NODE XPATH::STARTING-NODE)) #.(CXML-STP:ELEMENT #| :PARENT of type DOCUMENT |# :LOCAL-NAME "root") #.(CXML-STP:ELEMENT #| :PARENT of type DOCUMENT |# :LOCAL-NAME "root"))
  3: ((LAMBDA (XPATH:CONTEXT)) #<XPATH:CONTEXT {C750F39}>)


Simple fix is attached.

Cheers,
Andy