Someone suggested I spend more time defining what my whacky idea is, and while this post is not about perl the implementation to support it is in perl.

aXML ( abstraction XML )

An extensible markup language for defining the interactions of blocks of code to generate any given output.

When I first started building CGI applications, I used the usual suspect modules and built custom code to output the pages required. I found this tiresome, and tried to think up a better way to approach the problem. Back when I was in college I was really into doing 3d graphics, the old rotating cube in 320*200 dos mode ... hey it was 1996!

Anyway that old cube algorythm gave me the idea for how I now build webpages;

The main loop of the cube, would take variables from an array, perform mathmatics upon them, then output the result.

The aXML parser, takes input from various xml files, performs manipulations on them and outputs the result.

In a way, the aXML parser renders 1 frame at a time in a much more convuluted way than the cube program did, and given a specific input, it can produce any output.

The power of the abstraction rests in the document and the way in which im working with it. I'm not simply reading it into memory, or I would use XML::simple

The tags themselves are the code. The aXML document causes the parser to build the output. Tags within the document trigger pre-built perl modules. The result of which is then pasted back into the document.

The simplest possible plugin would take the form $result = $data; let us say this plugin was saved under the name of donothing.aXMLpi

In an aXML document one could then include a tag called <donothing>some data</donothing> and the end HTML document would read "some data".

Typically the parser scans for the tags and runs them from the inner most tags outwards, meaning the result of a tag running can be handed to its parent tag which then runs with that value as its data.

<insertfile><qd>filename</qd></insertfile>

This allows for a complex set of interations to be built up using only the tags in the document. If one has a sufficient number of prebuilt plugin files then one can build complex applications without touching either the parser or the plugins.

Alsorts of neat tricks become possible using this paradym, data and code merge somewhat into a single layer of abstraction.

Finally, this software WORKS, my implementation is rough, my perl knowledge is somewhat lacking as many have gleefully pointed out, BUT, having built a whole CMS using this method I can honestly say, I am commited to continuing this line of development for all my web-projects and it would be really cool if others would; a) help improove the security of the code b) help improove the poetry and performance of the code c) help build new plugins for it

I appreciate that without having used aXML it can be hard to understand why I'm banging on about it, but please can't someone put aside the cynicism for just long enough to get a proper understanding of what im trying to do? Even if its to tell me where I can get a much better more evolved version of the same thing.


In reply to Not quite Perl, but related.. by simonodell1

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.