XML

Ken Webb 2010-02-23T21:06:12Z

The Extensible Markup Language (XML) is used just about everywhere as a standard way of representing nodes that are organized hierarchically. As a sign of its popularity, a google search for "XML" retrieved about 326,000,000 hits (Feb 2010). Most Xholon applications read in their structure, which is hierarchically organized, as a set of XML files.

While a Xholon application is running, any node and subtree can write itself out as an XML string or file. If you are using the default Xholon GUI, it's also always possible at any time to interact with the application using XML. Any subtree can be copied or cut from the application. A new subtree can be pasted in as XML, as an insertion, replacement, or merge. It's usually possible to copy or cut content from the Xholon tree, paste it into any text editor, edit the XML content, and then copy and paste the edited content into a different part of the Xholon tree. And, the new content can immediately do something in the application by interacting with other objects in the tree.

As an example, the following shows the result of copying part of a state machine. This result has been reformatted using an external editor (otherwise it would just be one long string of text) and some repetitive attribute nodes have been removed (to make it easier to read).

<?xml version="1.0" encoding="UTF-8"?>
<State roleName="Normal" uid="0x6bef">
  <Transition roleName="s1" uid="0x6a28">
    <Trigger roleName="S1">/Trigger>
  </Transition>
  <Transition roleName="s2" uid="0x6991">
    <Trigger roleName="S2"></Trigger>
  </Transition>
  <State roleName="Paused" uid="0x6bdd" />
  <Transition roleName="s1" uid="0x68d5">
    <Trigger roleName="S1"></Trigger>
  </Transition>
  <Transition roleName="s2" uid="0x68a5">
    <Trigger roleName="S2"></Trigger>
  </Transition>
  <State roleName="Running" uid="0x6bd2" />
  <Transition roleName="init" uid="0x6a3d"></Transition>
  <PseudostateInitial roleName="" uid="0x6a57"></PseudostateInitial>
  </Region>
</State>

return to main page