YODEL Specification

Yodeling (the singing kind) is popularly believed to have developed as a way to pass messages across mountain peaks in the Swiss Alps. I like that idea and think it's appropriate (whether or not it's actually true). That's what YODEL strives to be: a simple way to send messages.

Yodel is an XML dialect and follows all rules of standard XML (well-formedness, tag nesting, etc). You may view the YODEL XSD if you like.

Full details of the tags and how to use them will follow, however it may be simplest at this point to show some examples. At this point don't expect to truly understand these packets just scan them and get a feel for them.

A simple object with two properties (which can also be seen as a struct with two keys or a two element associative array depending on your language of choice) may be serilaized to this:

<yodel>
     <d type="object" fields="prop1, prop2">
          <d type="string">val1</d>
          <d type="string">val2</d> 
     </d>
</yodel>

An array of objects might look like this:

<yodel>
     <d type="array">
          <d type="object" fields="prop1, prop2">
               <d type="string">val1</d>
               <d type="string">val2</d> 
          </d>
          <d type="object" fields="prop1, prop2">
               <d type="string">val1</d>
               <d type="string">val2</d> 
          </d>
          <d type="object" fields="prop1, prop2">
               <d type="string">val1</d>
               <d type="string">val2</d> 
          </d>
     </d>
</yodel>

Finally the <md> tag could be used to defined metadata for these objects so that the same descriptive information doesn't have to be repeated:

<yodel>
     <md name="MyObject">
          <d type="object" fields="prop1, prop2">
               <d type="string" />
               <d type="string" />
          </d>
     </md>
     <d type="array">
          <d metadata="MyObject">
               <d>val1</d>
               <d>val2</d> 
          </d>
          <d metadata="MyObject">
               <d>val1</d>
               <d>val2</d> 
          </d>
          <d metadata="MyObject">
               <d>val1</d>
               <d>val2</d> 
          </d>
     </d>
</yodel>

The YODEL dialect consists of three tags, next we'll see what those three tags are and how they're used.

17 Current Sessions; Time: 01:33:15 22-11-2008; Tick: 454