BookRags.com Literature Guides Literature
Guides
Criticism & Essays Criticism &
Essays
Questions & Answers Questions &
Answers
Lesson Plans Lesson
Plans
My Bibliography Periodic Table U.S. Presidents Shakespeare Sonnet Shake-Up
Research Anything:        
History | Encyclopedias | Films | News | Create a Bibliography | More... Login | Register | Help
Not What You Meant?  There are 4 definitions for Template engine.

Template processor

Print-Friendly
About 3 pages (956 words)

Bookmark and Share Know this topic well? Help others and get FREE products!
A diagram illustrating all of the basic elements and processing flow of a template engine.
A diagram illustrating all of the basic elements and processing flow of a template engine.

A template processor (also known as a template engine or a template parser) is software or a software component that is designed to combine one or more templates with a data model to produce one or more result documents.[1] [2] [3] For purposes of this article, a result document is any kind of formatted output, including documents, web pages, or source code, either in whole or in fragments.

Contents

System elements

All template processing systems consist of at least these primary elements:

  • an associated data model;
  • one or more source templates;
  • a processor or template engine;
  • generated output in the form of result documents.

Data model

This may be a relational database, a source file such as XML, an alternate format of flat file database, a spreadsheet or any of other various sources of preformatted data. Some template processing systems are limited in the types of data that can be used. Others are designed for maximum flexibility and allow many different types of data.

Source template

Source templates are traditionally specified:

  • according to a pre-existing programming language;
  • according to a specially-defined template language;
  • according to the features of a hosting software application; or
  • according to a hybrid combination of some or all of the above.

Template engine

The template engine is responsible for:

  • connecting to the data model;
  • processing the code specified in the source templates; and
  • directing the output to a specific pipeline, text file, or stream

Additionally some template engines allow additional configuration options.

Result documents

These may consist of an entire document or a document fragment.

Uses

Template processing is used in various contexts for different purposes. The specific purpose is ordinarily contingent upon the software application or template engine in use. However, the flexibility of template processing systems often enables unconventional uses for purposes not originally intended by the original designers.

Template engine

A template engine is a specific kind of template processing module that exhibits all of the major features of a modern programming language. The term template engine evolved as a generalized description of programming languages whose primary or exclusive purpose was to process templates and data to output text. The use of this term is most notably applied to web development using a web template system, and it is also applied to other contexts as well.[4]

Document generation

Document generation frameworks typically use template processing as the central model for generating documents.

Source code generation

Source code generation tools support generation of source code (as the result documents) from abstract data models (e.g., UML, relational data, domain-specific enterprise data stores) for particular application domains, particular organizations, or in simplifying the production process for computer programmers.

Software functionality

A web template engine processes web templates and source data (typically from a relational database) to produce one or more output web pages or page fragments. It is ordinarily included as a part of a web template system or application framework. Currently, template processing software is most frequently used in the context of development for the web.

Comparison

XSLT is a template processing model designed by W3C. It is designed primarily for transformations on XML data (into web documents or other output). Programming languages such as Perl, Python, Ruby, C, and Java support template processing either natively, or through add-on libraries and modules. JavaServer Pages,[5] and Active Server Pages[6] are examples of template engines designed specifically for web application development. Moreover, template processing is sometimes included as a sub-feature of software packages like text editors, IDEs and relational database management systems.

Benefits of using template engines

  • encourages organization of source code into operationally-distinct layers (see e.g., MVC)
  • enhances productivity by reducing unnecessary reproduction of effort
  • enhances teamwork by allowing separation of work based on skill-set (e.g., artistic vs. technical)

References

  1. ^ Niemeyer, Patrick (2002). Learning Java. Sebastopol: O'Reilly. ISBN 0596002858. 
  2. ^ Manolescu, Dragos (2006). Pattern Languages of Program Design 5. Reading: Addison-Wesley Professional. ISBN 0321321944. 
  3. ^ Fowler, Martin (2003). Patterns of Enterprise Application Architecture. Boston: Addison-Wesley. ISBN 0321127420. 
  4. ^ (see e.g., Velocity, TemplateToolkit, Freemarker).
  5. ^ JavaServer Pages is a technology released by Sun for use with the Java programming language. JavaServer Pages Technology (2006-10-10). Retrieved on 2006-10-10.
  6. ^ ASP 1.0 was originally released for use with Microsoft VBScript and JScript. It was an extension to Microsoft IIS. References to ASP 1.0, JScript, and VBScript.

See also

External links

View More Summaries on Template processor
 
Ask any question on Template processor and get it answered FAST!
Answer questions in BookRags Q&A and earn points toward
discounted or even FREE Study Guides and other BookRags products!
Learn more about BookRags Q&A
Copyrights
Template processor from Wíkipedia. ©2006 by Wíkipedia. Licensed under the GNU Free Documentation License. View a list of authors or edit this article.

Article Navigation
Join BookRagslearn moreJoin BookRags




About BookRags | Customer Service | Report an Error | Terms of Use | Privacy Policy