anchor.diff:      /// </summary>
       procedure CheckSetNodeType(pvType:TDValueNodeType);
   
  -    function ItemByName(pvName:string):TDValueItem;
  +    function FindByName(pvName:String): TDValueNode;
  +
  +    function FindByPath(pvPath:string): TDValueNode;
  +
  +    function ItemByName(pvName:string): TDValueNode;
  +
  +    function ForceByName(pvName:string): TDValueNode;
  +
  +    function ForceByPath(pvPath:String): TDValueNode;
  +
   
       property Count: Integer read GetCount;
  +    property Items[Index: Integer]: TDValueNode read GetItems; default;
       property Name: TDValueItem read FName;
  +
  +    property Parent: TDValueNode read FParent;
  +
       property Value: TDValueItem read FValue;
  +
  +
     end;
   
     TDValueItem = class(TObject)
  
positive.code: const
    TDValueNodeTypeStr: array[TDValueNodeType] of string = ('vntNull', 'vntArray', 'vntObject', 'vntValue');
  
  
  type
    TDValueItem = class;
  
negative.code:     FName: TDValueItem;
      FValue: TDValueItem;
      FNodeType: TDValueNodeType;
      FParent: TDValueNode;
  
      {$IFDEF HAVE_GENERICS}
      FChildren: TList<TDValueNode>;
      {$ELSE}
  