in reply to Objects and Data structure similar to XML

This answer is from a language agnostic OO point of view.

What I think that you are describing is serialisation of objects using XML as the data repository. The same technique is used with files, databases etc.

One way to do this is to derive all classes from a single base class that implements a method along the lines of toXML(). All of the other classes implement the same method specialised according to their needs. When you want to write the structure, call toXML() at the top level and XML cascades out.

In your example, the map object is at the top level. It's toXML() function writes the <map> tag and then calls the toXML() function on the location object - which in turn writes out it's own tags and calls toXML() on child objects.

The reverse process is slightly more complicated since you need to handle potential defects in the data stream. In general though, a fromXML() method will read from the XML stream and instantiate objects etc. To do this properly, you will also want to validate your XML against a schema which will highlight incorrect XML before it is parsed.