anchor.diff:  
       function AddElement(Name: TmXMLString): TmXmlElement;
       function HasAttribute(const Name: TmXMLString): boolean;
  +    procedure DeleteAttribute(const aName : TmXMLString);
       procedure SetAttribute(aName, aValue: TmXmlString); overload;
       procedure SetAttribute(aName: TmXmlString; const aValue: TNullableString); overload;
       function GetAttribute(const aName: TmXmlString): TmXmlString; overload;
  
positive.code:   public
      function _AddElement(Name: TmXMLString): TmXmlElement; virtual; abstract;
      function _HasAttribute(const Name: TmXMLString): boolean; virtual; abstract;
      procedure _SetAttribute(Name, Value: TmXmlString); virtual; abstract;
      function _GetAttribute(Name: TmXmlString): TmXmlString; overload; virtual; abstract;
      function _GetAttribute(Name: TmXmlString; Default: TmXmlString): TmXmlString; overload; virtual; abstract;
  
negative.code: procedure TmXmlElement.SetDateTimeAttribute(const aName: TmXmlString; const aValue: TNullableDateTime);
  begin
    if aValue.NotNull then
      Self.SetDateTimeAttribute(aName, aValue.Value)
    else
      Self.DeleteAttribute(aName);
  end;
  
  procedure TmXmlElement.SetIntegerAttribute(const aName: TmXmlString; const aValue: integer);
  