RE: Help: how to acheive the extensibility using Xstream
Xstream is by default a simple serializer i.e. you give it an object and it will create XML out of it and is able to convert this XML back into your object. This means that XStream by default will unmarshal exactly the expected elements of the structure - not less, but also not more. Main reason is, that not initializing members leaves an object in an undetermined state.
Said that, you can write your own converter for a class though - in your example for 'node'. You have to read all children out of the XML stream and set the appropriate fields.