ObjectBox

Project Details

ObjectBox is a free, opensource o:XML compiler and interpreter written entirely in Java. It implements The o:XML Programming Language specification, and provides a complete compilation and runtime environment.

Features

  • Java extensions - o:XML procedure that converts any Java class/object to an o:XML type for seamless language integration, making existing Java classes instantly available for instantiation and subtyping as any other o:XML type.
  • Java Servlet support for deployment in J2EE environments.
  • Struts integration.
  • Database extensions with efficient, easy to use RDB to XML mappings.
  • Caching of compiled programs allowing threadsafe concurrent execution.
  • Commandline executable that passes arguments to o:XML program.
  • Java Ant task for powerful content generation and integration in XML publishing systems.

Links

A choice of packages are available on the download page.

Read the Usage Instructions.

Find out more about the Java Language Extensions.

ObjectBox also comes with some pretty sweet Database Extensions.

Participate

ObjectBox is an opensource (free) software project published under the GNU General Public Licence. You can browse the source code in the CVS tree or download the latest release version of the source as a zip archive.

If you would like to participate or simply learn more, please email or (better) join the mailing list.

Program Execution

Before compilation the program file is parsed and validated for well-formedness. The result of compiling a program is an object hierarchy of 'actions', that will produce the program result as a sequential output to either a DOM tree, output stream or a SAX content handler.

A compiled o:XML program contains all parsed o:Path expressions and XML-generating objects. It is thread-safe and can execute concurrently in different runtime contexts, producing output to different result handlers. The program in its compiled form is independent of the XML file it was generated from as well as the physical form of its output.

Future versions

  • Compilation of programs to persistent executable form
  • Program repositories with preprocessing options
  • Improved contextual error messages
  • XML Schema program validation
  • API for Java Language Bindings

Known Bugs and Problems

  • Access Specifiers (public/private/protected) not fully implemented
  • Context Node probably not always correct