title: How to visualise an XML file
body: <p>I found this freeware app, labytrinth, three years ago (though it had last been updated in 2005). It allowed writers to organise characters and other elements of their stories. One would create elements and then drag them onto a window where one could connect the different elements with arrows, adding information about the nature of the relationships. </p>
  
  <p>My computer crashed recently and, while I did not lose any files because everything was neatly backed up, I did not have a copy of the app itself. The website I had taken it from (habitualindolence.net) is gone (as the helpful user of Writers found out for me) and, though I am still trying to reach anyone who may still possess it, my hopes are not high.</p>
  
  <p>Nevertheless, I have the files (plt extension); now I just need to visualise them. Following the advice of Writers' users, I opened the file with Notepad, which gave me a readable code. Someone suggested it could be Python but an online Python visualiser gave syntax errors. Another user mentioned it is an XML file.</p>
  
  <p>Can anyone recommend a way to visualise the code? Here's the first few lines. If you require a longer excerpt, please let me know.</p>
  
  <p>Introductory segment:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;  
  &lt;Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
    &lt;SaveFormat&gt;3.5&lt;/SaveFormat&gt;
    &lt;Name&gt;TheNewWorld_01_AmbitiousPrince&lt;/Name&gt;
  </code></pre>
  
  <p>Segment for the part where the characters are listed:</p>
  
  <pre><code>      &lt;Elements&gt;
          &lt;Element&gt;
            &lt;ID&gt;f9434e21-d471-466f-948b-107f9da58905&lt;/ID&gt;
            &lt;Name&gt;*Nyan Cleaner&lt;/Name&gt;
            &lt;Type&gt;Character&lt;/Type&gt;
            &lt;Annotations&gt;
              &lt;TextAnnotation&gt;
                &lt;ID&gt;dad71ecc-d38a-45e2-a695-d6ad0d679f57&lt;/ID&gt;
                &lt;Title&gt;Physical Description&lt;/Title&gt;
                &lt;Content&gt;Long, brown hair
      brown eyes
      lightly tanned skin
      &lt;/Content&gt;
                &lt;RTF&gt;{\rtf1\ansi\ansicpg1252\deff0\deflang2070{\fonttbl{\f0    \fnil\fcharset0 Tahoma;}}
      \viewkind4\uc1\pard\f0\fs17 Long, brown hair\par
      brown eyes\par
      lightly tanned skin\par
      \par
      }
      &lt;/RTF&gt;
  </code></pre>
  
  <p>Segment with the 'structures' tag that will list all the diagrams, each diagram ('structure' tag) being nested whithin the 'structures' tag. </p>
  
  <pre><code>  &lt;Structures&gt;
      &lt;Structure&gt;
        &lt;ID&gt;dc1f9607-32d7-42ac-abcd-8b27e066eca2&lt;/ID&gt;
        &lt;Name&gt;Nyan_Connections&lt;/Name&gt;
  </code></pre>
  
  <p>The 'structure' block is then composed of 'nodes' with positions (referring to the boxes with the name of the characters). (Note that the following segment shows up immediately after the previous segment)</p>
  
  <pre><code>    &lt;Nodes&gt;
          &lt;Node&gt;
            &lt;ElementID&gt;43a45855-529d-48d6-ad33-3602abd5e57c&lt;/ElementID&gt;
            &lt;Position&gt;
              &lt;X&gt;0.8034632&lt;/X&gt;
              &lt;Y&gt;0.221544713&lt;/Y&gt;
            &lt;/Position&gt;
          &lt;/Node&gt;
          &lt;Node&gt;
            &lt;ElementID&gt;aa94de7a-2241-4e41-a383-eadb070354d0&lt;/ElementID&gt;
            &lt;Position&gt;
              &lt;X&gt;0.219047621&lt;/X&gt;
              &lt;Y&gt;0.8678862&lt;/Y&gt;
            &lt;/Position&gt;
  </code></pre>
  
  <p>Still within the 'structure' tag, you have the tag 'links' immediatelly after 'nodes' is closed. These refer to the arrows that connect the different nodes above.</p>
  
  <pre><code>  &lt;Links&gt;
          &lt;Link&gt;
            &lt;ID&gt;4eb83f93-2d47-4afc-bc46-dfa83a4f1f96&lt;/ID&gt;
            &lt;Description&gt;Lovers&lt;/Description&gt;
            &lt;LHS&gt;f9434e21-d471-466f-948b-107f9da58905&lt;/LHS&gt;
            &lt;RHS&gt;c2b3f24d-c9f2-4832-b488-e1f3eca84b04&lt;/RHS&gt;
            &lt;Direction&gt;Double&lt;/Direction&gt;
          &lt;/Link&gt;
          &lt;Link&gt;
            &lt;ID&gt;272dac28-a5f9-400c-a514-3aa9b971240f&lt;/ID&gt;
            &lt;Description&gt;Friend&lt;/Description&gt;
            &lt;LHS&gt;19f460ea-5ff9-4690-9adf-4b556489083e&lt;/LHS&gt;
            &lt;RHS&gt;f9434e21-d471-466f-948b-107f9da58905&lt;/RHS&gt;
            &lt;Direction&gt;Double&lt;/Direction&gt;
          &lt;/Link&gt;
  </code></pre>
  
  <p>Once the 'structures' tag is closed, we have the section for timelines (where the plots are plotted, in a table, with characters on the vertical; the timepoints, or chapters, in the horizontal; and the text of the plot elsewhere).</p>
  
  <pre><code>&lt;Timelines&gt;
      &lt;Timeline&gt;
        &lt;ID&gt;531b95f1-a07d-4aa8-ad2e-86576322f41b&lt;/ID&gt;
        &lt;Name&gt;1-Ambitious_Ch02&lt;/Name&gt;
  </code></pre>
  
  <p>This part is not as intuitive to read (at least for me). It includes the tags for the characters (ElementIDs), the chapters (Points), and then the plotted events, identifying what each character is up to in each chapter (TimelinePoint).</p>
  
  <pre><code>      &lt;ElementIDs&gt;
          &lt;guid&gt;f9434e21-d471-466f-948b-107f9da58905&lt;/guid&gt;
          &lt;guid&gt;19f460ea-5ff9-4690-9adf-4b556489083e&lt;/guid&gt;
          &lt;guid&gt;1ea36ec3-10e6-451d-a251-a139a51a6cfc&lt;/guid&gt;
          &lt;guid&gt;c2b3f24d-c9f2-4832-b488-e1f3eca84b04&lt;/guid&gt;
        &lt;/ElementIDs&gt;
        &lt;Points&gt;
          &lt;TimelinePoint&gt;
            &lt;ID&gt;9699cb8e-367d-4119-936a-b43c3cf403e2&lt;/ID&gt;
            &lt;Name&gt;scene1&lt;/Name&gt;
            &lt;UseSchedule&gt;None&lt;/UseSchedule&gt;
            &lt;Schedule&gt;0001-01-01T00:00:00&lt;/Schedule&gt;
            &lt;Items&gt;
              &lt;TimelineItem&gt;
                &lt;ID&gt;63ca24bf-b278-4df3-a88f-4984cabc8404&lt;/ID&gt;
                &lt;ElementID&gt;f9434e21-d471-466f-948b-107f9da58905&lt;/ElementID&gt;
                &lt;Annotation&gt;
                  &lt;ID&gt;c21bc9bb-7857-4099-97f4-14ef5b20b4f7&lt;/ID&gt;
                  &lt;Title&gt;Arrives to work&lt;/Title&gt;
                  &lt;Content&gt;She's late.&lt;/Content&gt;
                  &lt;RTF&gt;{\rtf1\ansi\ansicpg1252\deff0\deflang2070{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
  \viewkind4\uc1\pard\f0\fs17 She's late.\par
  }
  &lt;/RTF&gt;
                &lt;/Annotation&gt;
              &lt;/TimelineItem&gt;
  </code></pre>
  
  <p>And yes, I suppose I could print all this, match the elementIDs to the characters in order to figure which character is connected to which and manually 'translate' it all but... hundreds of IDs? It must be faster finding a way to visualise it.</p>
  
  <p>Not to mention that this coding seems really intuitive and HTML-like; I'm starting to wonder if I shouldn't just see the silver-lining of my near disaster and use it as a motivation to pick up XML?</p>
  
  <p>EDIT (in response to Philip's comment)</p>
  
  <p>I used the app to organise the characters and plot for a fantasy story spanning 5 books. I have the first 4 fully planned and the relationships of the characters annotated. I need to find a way to retrieve that information. Obviously, I can read through the code to get the text information (character list, etc), but the relationships between the characters are essential, that's why I need to visualise it. Here's an example:</p>
  
  <p><a href="https://i.stack.imgur.com/kAI8z.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kAI8z.jpg" alt="enter image description here"></a></p>