Extensible Data Objects (or EDO for short) is an XML-ish based set of markups for manipulating and creating content, using various sources of data. It is primarily intended to be used in a Web Environment, embedded in HTML pages, with the EDO markups allowing the creation of dynamic content from other data sources.

Although EDO contains a quite functional set of markups in the base libraries, the architecture is designed to be easily Extensible (hence the name), to allow other generic and specific functionality to be built in. Current additional modules include EDO::Select, which adds extra functionality to select-style fields, and EDO::Email, which allows EDO-enabled content to send E-mail messages.

The EDO parser is written in Perl, and taps into a number of common Perl libraries for general Database interfacing, and HTML/XML parsing. Additional modules can also be written in Perl. The EDO parser can be used in existing Perl scripts, or as a generic CGI or mod_perl interface for general webserver usage.

At the core of EDO is a powerful library for handling Fields, where each field has a defined type, and various properties to customise the field. Using this, most of the hard work is taken out of managing and representing fields in different ways.