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.


In reply to Re: Objects and Data structure similar to XML by inman
in thread Objects and Data structure similar to XML by Syrkres

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.