TXmlNode не знает, что такое T. Что это должно быть?
Может быть, вы имели в виду:
TXmlNode<T> = class
Name: String;
Attributes: TList<TXmlAttribute<T>>;
Nodes: TList<TXmlNode<T>>;
end;
... либо это, либо вам нужно указать тип.
Однако, похоже, вы что-то здесь упускаете. Обобщения позволяют вам создать отдельный класс для каждого типа, а не класс для всех типов. В приведенном выше коде TList содержит массив типов одинаковых , и вы, вероятно, хотите, чтобы они отличались . Рассмотрим это вместо:
TXmlBuilder = class
type
TXmlAttribute= class
Name: String;
Value: Variant;
end;
TXmlNode = class
Name: String;
Attributes: TList<TXmlAttribute>;
Nodes: TList<TXmlNode>;
end;
...
end;