JDynamiTe, Dynamic Template in Java

By Author: cbouleau
JDynamiTe is a tool which allows you to dynamically create documents in any format from "template" documents.
And very few lines of code (or no line at all!) are needed to do that.
Some typical usage domains of JDynamiTe are:
- dynamic Web pages creation,
- text document generation,
- source code generation...
In fact, it can be useful in any case where pre-defined documents (templates) have to be dynamically populated with data.
The main benefit of JDynamiTe is to allow a true separation between data (content), presentation (container) and content generation code (written in Java).
JDynamiTe does not include a specific template language, and it is not a complete framework.
It is a simple "brick" in your software architecture, a "glue" between your data model and your presentation model.
JDynamiTe is a Java package, which is designed to be flexible and open.
For more details and a lot of examples, visit the homepage here: http://jdynamite.sourceforge.net

Feature

  • You only need one class and few methods to parse and develop dynamic documents from templates (see examples).
  • These template documents can be in any text (ascii, unicode...) format.
  • There is no "template language", no control structure (such as "for", "while" ...) to add in templates.
  • JDynamiTe only needs to recognize three kinds of tag in the template document ("Variable", "Begin Dynamic Element", and "End Dynamic Element").
  • Any syntax can be redefined (using regular expressions), if needed, for these tags. For example, with HTML template document (default syntax), the tags are enclosed within HTML comments.
  • A "Dynamic Element" is a "block" which can be dynamically developed. Examples of use: list, table, enumeration, etc... See documentation JDynamiTe API documentation for more details.
  • Since JDynamiTe 2.0, there is a new kind of Dynamic Element: "XML Dynamic Elements" allow to automatically populate the template taking input from XML files. In other words: you can add special tags in your template, using standard XPath syntax, which refer to data contained in an external XML file. By this way, no need to programmatically populate this block of data: JDynamiTe parser automatically does it for you. Find several examples in the new dedicated examples page.
  • JDynamiTe 2.0 provides a new tool : JDynTool, which is based on JDynamiTe package, and also usable by command line invocation.
  • JDynamiTe enables template reuse (input template reading once for multiple dynamic generations).
  • It also enables Dynamic Elements nesting (e.g. to create list of lists).
  • An optional tag is available that allows inserting "ignored blocks" in the template document. You can insert in your template "real" data into this special kind of blocks, simulating a more realistic rendering, which can be a useful working document for designers. These block contents are completely ignored during template parsing.

FigDice

FigDice is a template rendering system, primarily designed for web applications and the dynamic generation of HTML documents. FigDice puts the view screens (templates) at the centre of the rendering process. FigDice defines a simple notation based on XML tags and attributes, allowing the engine, us.........

Similar: 16%

AXEL Web Framework

The AXEL framework extends XML and HTML, adding "xml actions" that perform tasks during page processing. Goto http://xmlactions.org for a full description of how it works. Actions can be as simple as inserting a page, to as complex as building query results from external data sources. The Axel Fra.........

Similar: 16%

GWT Uploader

GWT Uploader is a freely available open source GWT library that encapsulates the file upload capabilities provided by the File and XMLHttpRequest Level 2 APIs as well as the SWFUpload library. Using GWT Uploader allows for enhanced file upload dialogs (multiple uploads, drag and drop, queues, paral.........

Similar: 15%

iTextSharp, a .NET PDF library

iText is a PDF library that allows you to CREATE, ADAPT, INSPECT and MAINTAIN documents in the Portable Document Format (PDF): - Generate documents and reports based on data from an XML file or a database - Create maps and books, exploiting numerous interactive features available in PDF - A.........

Similar: 15%

PowerSong

With high emphasis on usability we provide song presentation / song projection software for church services or general events that rival OpenLP/ZionWorx/SongPro. We have easy to learn, highly usable open source software without cutting back on featur...

Similar: 13%

vcproj2cmake

Elaborate Visual Studio .vcxproj / .vcproj projects to CMakeLists.txt converter, enabling Makefile or Ninja or IDE builds, i.e. full multi-platform CMake functionality (Linux, Mac, Windows...). Live Update capability: supports side-by-side tracking of evolving original proj files, within build tree!.........

Similar: 12%

The Ring Programming Language

The Ring is an Innovative and practical general-purpose multi-paradigm scripting language that can be embedded in C/C++ projects, extended using C/C++ code and/or used as standalone language. The supported programming paradigms are Imperative, Procedural, Object-Oriented, Functional, Meta programmi.........

Similar: 12%

XML Editor/Validator/Designer with CAMV

The CAM editor is the leading open source XML Editor/Validation/Schema toolset for rapidly building / deploying XML /JSON /Hibernate /SQL data /Forms applications. Visual WYSIWYG data design, rule entry wizards + drag & drop dictionary components. Will import, analyze / refactor from XML Schema / JS.........

Similar: 10%

torotools: Social DMS HRMS Time Tracking

torotools.es is a software suite of responsive design web products for managing your company´s knowledge and talent. Based on Material Design. toro ECM tool is a free web based Enterprise Content Management, designed to help your company to improve the creation and management of information. It is .........

Similar: 9%

Ryouko

This project has been moved to https://github.com/foxhead128/ryouko...

Similar: 8%