anchor.diff:    Result := StrToBool(Self.GetAttribute(Name, BoolToStr(DefaultValue, true)));
   end;
   
  -function TmXmlElement.GetAttribute(Name: TmXmlString): TmXmlString;
  -begin
  -  Result := FImpl._GetAttribute(Name);
  +function TmXmlElement.GetAttribute(const aName: TmXmlString): TmXmlString;
  +begin
  +  Result := FImpl._GetAttribute(aName);
   end;
   
   function TmXmlElement.HasAttribute(const Name: TmXMLString): boolean;
  
positive.code: end;
  
  
  procedure TmXmlElement.SetAttribute(Name, Value: TmXmlString);
  begin
    FImpl._SetAttribute(Name, Value)
  end;
  
  procedure TmXmlElement.SetDateTimeAttribute(Name: TmXmlString; Value: TDateTime);
  begin
    FImpl._SetDateTimeAttribute(Name, Value);
  end;
  
  procedure TmXmlElement.SetIntegerAttribute(Name: TmXmlString; Value: integer);
  begin
    FImpl._SetIntegerAttribute(Name, Value);
  end;
  
  { TmXmlDocument }
  
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);
  