Hi, I've found a big problem (in terms of drastic behaviour change) in the method SetAttribute() of TXML class. This method was written so:
METHOD SetAttribute( cAttrib, xValue ) INLINE ::aAttributes[ cAttrib ] := xValue while now it is written as: *-----------------------------------------------------------------------------* METHOD SetAttribute( xAttrib, xValue ) CLASS TXmlNode *-----------------------------------------------------------------------------* Local lRet := .f. if ! empty( xAttrib ) .and. ! empty( xValue ) <<<<<<<< NOTE HERE if HB_isString( xAttrib ) // attribute name (key name) if HHasKey( ::aAttributes, xAttrib) <<<<<<<< AND HERE HSet(::aAttributes, xAttrib, xValue ) lRet := .t. endif elseif HB_isNumeric( xAttrib ) // attribute position (key ordinal position) if Len( ::aAttributes ) >= xAttrib <<<<<<<< AND HERE HSetValueAt( ::aAttributes, xAttrib, xValue ) lRet := .t. endif endif endif RETURN lRet <<<<<<<< AND HERE There are several behaviour changes: a) Now, it's possible to set an attribute using its ordinal position. That's good, IMO. b) Now, it's NOT possible to set a new attribute using this method. It only change the previous value, but returns .f. if the attribute name wasn't exist. Very bad, IMO. c) The returned value is now .T. or .F., while before was the setted value itself, allowing it to be used in a chain. (F.e. xVal := oXML:SetAttribute( "Attr", Value ) ). IMO, It's not good or bad itself, but it's a undesirable behaviour change. d) Now, if the desired value is "Empty()", then the attribute is not setted. It causes that values like .F. or 0 are not setted, while they are perfectly valid, IMO. Please, may I change it back to the previous behaviour (respecting a) if you want, but reverting b), c) and d) ). Also, if someone need a method to change an attribute value without creating it, the actual method can be renamed as ChangeAttributeValue() or so. Regards, Jose F. Gimenez ------------------------------------------------------------------------------ Are you an open source citizen? Join us for the Open Source Bridge conference! Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250. Need another reason to go? 24-hour hacker lounge. Register today! http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org _______________________________________________ xHarbour-developers mailing list xHarbour-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xharbour-developers