anchor.diff:     This function may only be called during the extent of a use of
      @fun{with-element} or @fun{with-element*}, and only before the first
      child node has been written.
  -   
  +
      An attribute for the current element is recorded using the namespace prefix
      and local name specified by arguments.  @var{prefix} is resolved to a
      namespace URI using the bindings established by @fun{with-namespace},
  
positive.code: (defun invoke-with-xml-output (fn sink)
    (let ((*sink* sink)
          (*current-element* nil)
  	(*unparse-namespace-bindings* *initial-namespace-bindings*)
  	(*current-namespace-bindings* nil))
      (sax:start-document *sink*)
      (funcall fn)
      (sax:end-document *sink*)))
  
negative.code: (defmethod sax:notation-declaration ((sink sink) name public-id system-id)
    (let ((prev (previous-notation sink)))
      (when (and (and (canonical sink) (>= (canonical sink) 2))
                 prev
                 (not (rod< prev name)))
        (error "misordered notations; cannot unparse canonically"))
      (setf (previous-notation sink) name))
    (sink-write-rod #"<!NOTATION " sink)
    (sink-write-rod name sink)
    (cond
  