anchor.diff:  
       function AddElement(Name: TmXMLString): TmXmlElement;
       function HasAttribute(const Name: TmXMLString): boolean;
  -    procedure SetAttribute(Name, Value: TmXmlString);
  -    function GetAttribute(Name: TmXmlString): TmXmlString; overload;
  -    function GetAttribute(Name: TmXmlString; DefaultValue: TmXmlString): TmXmlString; overload;
  -    procedure SetDateTimeAttribute(Name : TmXmlString; Value: TDateTime);
  -    function GetDateTimeAttribute(Name: TmXmlString): TDateTime; overload;
  -    function GetDateTimeAttribute(Name: TmXmlString; DefaultValue : TDateTime): TDateTime; overload;
  -    procedure SetFloatAttribute(Name : TmXmlString; Value: Double);
  -    function GetFloatAttribute(Name: TmXmlString): Double; overload;
  -    function GetFloatAttribute(Name: TmXmlString; DefaultValue : Double): Double; overload;
  -    procedure SetIntegerAttribute(Name : TmXmlString; Value: integer);
  -    function GetIntegerAttribute(Name: TmXmlString): integer; overload;
  -    function GetIntegerAttribute(Name: TmXmlString; DefaultValue : integer): integer; overload;
  +    procedure SetAttribute(aName, aValue: TmXmlString); overload;
  +    procedure SetAttribute(aName: TmXmlString; const aValue: TNullableString); overload;
  +    function GetAttribute(const aName: TmXmlString): TmXmlString; overload;
  +    function GetAttribute(const aName: TmXmlString; const aDefaultValue: TmXmlString): TmXmlString; overload;
  +    procedure GetAttribute(const aName: TmXmlString; const aValue: TNullableString);
  +    procedure SetDateTimeAttribute(const aName : TmXmlString; const aValue: TDateTime); overload;
  +    procedure SetDateTimeAttribute(const aName: TmXmlString; const aValue: TNullableDateTime); overload;
  +    function GetDateTimeAttribute(const aName: TmXmlString): TDateTime; overload;
  +    function GetDateTimeAttribute(const aName: TmXmlString; const aDefaultValue : TDateTime): TDateTime; overload;
  +    procedure GetDateTimeAttribute(const aName: TmXmlString; aValue: TNullableDateTime);
  +    procedure SetFloatAttribute(const aName : TmXmlString; const aValue: Double); overload;
  +    procedure SetFloatAttribute(const aName: TmXmlString; const aValue: TNullableDouble); overload;
  +    function GetFloatAttribute(const aName: TmXmlString): Double; overload;
  +    function GetFloatAttribute(const aName: TmXmlString; const aDefaultValue : Double): Double; overload;
  +    procedure GetFloatAttribute(const aName: TmXmlString; aValue: TNullableDouble);
  +    procedure SetIntegerAttribute(const aName: TmXmlString; const aValue: integer); overload;
  +    procedure SetIntegerAttribute(const aName: TmXmlString; const aValue: TNullableInteger); overload;
  +    function GetIntegerAttribute(const aName: TmXmlString): integer; overload;
  +    function GetIntegerAttribute(const aName: TmXmlString; const aDefaultValue : integer): integer; overload;
  +    procedure GetIntegerAttribute(const aName: TmXmlString; aValue : TNullableInteger);
       procedure SetBooleanAttribute(Name : TmXmlString; Value : Boolean);
       function GetBooleanAttribute(Name: TmXMLString): boolean; overload;
       function GetBooleanAttribute(Name: TmXMLString; DefaultValue : boolean): boolean; overload;
  
positive.code:   Result := StrToBool(Self.GetAttribute(Name, BoolToStr(DefaultValue, true)));
  end;
  
  function TmXmlElement.GetAttribute(Name: TmXmlString): TmXmlString;
  begin
    Result := FImpl._GetAttribute(Name);
  end;
  
  function TmXmlElement.HasAttribute(const Name: TmXMLString): boolean;
  
negative.code:   inherited;
  end;
  
  function TmXmlElement.GetAttribute(const aName: TmXmlString; const aDefaultValue: TmXmlString): TmXmlString;
  begin
    Result := FImpl._GetAttribute(aName, aDefaultValue);
  end;
  
  procedure TmXmlElement.GetAttribute(const aName: TmXmlString; const aValue: TNullableString);
  begin
    if Self.HasAttribute(aName) then
      aValue.Value:= Self.GetAttribute(aName)
    else
      aValue.IsNull:= true;
  end;
  
  function TmXmlElement.GetDateTimeAttribute(const aName: TmXmlString): TDateTime;
  begin
    Result := FImpl._GetDateTimeAttribute(aName);
  end;
  
  function TmXmlElement.GetDateTimeAttribute(const aName: TmXmlString; const aDefaultValue: TDateTime): TDateTime;
  begin
    Result := FImpl._GetDateTimeAttribute(aName, aDefaultValue);
  end;
  
  procedure TmXmlElement.GetDateTimeAttribute(const aName: TmXmlString; aValue: TNullableDateTime);
  begin
    if Self.HasAttribute(aName) then
      aValue.Value:= Self.GetDateTimeAttribute(aName)
    else
      aValue.IsNull:= true;
  end;
  
  procedure TmXmlElement.SetFloatAttribute(const aName: TmXmlString; const aValue: Double);
  begin
    FImpl._SetFloatAttribute(aName, aValue);
  end;
  
  procedure TmXmlElement.SetFloatAttribute(const aName: TmXmlString; const aValue: TNullableDouble);
  begin
    if aValue.NotNull then
      Self.SetFloatAttribute(aName, aValue.Value);
  end;
  
  function TmXmlElement.GetFloatAttribute(const aName: TmXmlString): Double;
  begin
    Result := FImpl._GetFloatAttribute(aName);
  end;
  
  function TmXmlElement.GetFloatAttribute(const aName: TmXmlString; const aDefaultValue: Double): Double;
  begin
    Result := FImpl._GetFloatAttribute(aName, aDefaultValue);
  end;
  
  procedure TmXmlElement.GetFloatAttribute(const aName: TmXmlString; aValue: TNullableDouble);
  begin
    if Self.HasAttribute(aName) then
      aValue.Value := Self.GetFloatAttribute(aName)
    else
      aValue.IsNull:= true;
  end;
  
  function TmXmlElement.GetIntegerAttribute(const aName: TmXmlString): integer;
  begin
    Result := FImpl._GetIntegerAttribute(aName);
  end;
  
  function TmXmlElement.GetIntegerAttribute(const aName: TmXmlString; const aDefaultValue: integer): integer;
  begin
    Result := FImpl._GetIntegerAttribute(aName, aDefaultValue)
  end;
  
  procedure TmXmlElement.GetIntegerAttribute(const aName: TmXmlString; aValue: TNullableInteger);
  begin
    if Self.HasAttribute(aName) then
      aValue.Value:= Self.GetIntegerAttribute(aName)
    else
      aValue.IsNull:= true;
  end;
  
  procedure TmXmlElement.SetBooleanAttribute(Name: TmXmlString; Value: Boolean);
  