anchor.diff:        // due to optional chardatas after the parent we use these "if"s
         if (i = FDirectNodeCount) and not (SubNode is TsdCharData) then
         begin
  -        sdStreamWriteString(S, GetEndOfLine);
  +        sdStreamWriteString(S, SubNode.GetEndOfLine); // BUGFIX
         end;
         if (i > FDirectNodeCount) and (SubNode is TsdCharData) and HasSubElements then
         begin
  
positive.code:     // function, this function will search the whole subnode tree. If you use
      // a TsdNodeList for the AList parameter, you don't need to cast the list
      // items to TXmlNode.
      procedure FindNodes(const NodeName: Utf8String; const AList: TList); virtual;
      // Iterates the next sibling of Node
      function NextSibling(ANode: TXmlNode): TXmlNode; virtual;
      // Return the first subnode with AType, or nil if none
  
negative.code:         SubNode.WriteStream(S);
  
        if HasSubElements and (SubNode is TsdCharData) then
          sdStreamWriteString(S, SubNode.GetEndOfLine); // BUGFIX
      end;
  
      // endtag
  