LXP (or mod_lxp) is an Application Server designed as an Apache Module. LXP
is used to broker and dynamically format HTML content through a process called server-side inclusion.
This involves assembling HTML output from a variety of sources, which can include HTML source files, XML files, or even data
within a PostgreSQL database.
LXP's content inclusion is performed entirely on the server, ensuring the same output regardless of the web browser.
LXP is intended to behave more intuitively, seamlessly, and comprehensively than other available content inclusion methods
via its unique mark-up based approach and native PostgreSQL connectivity.
LXP uses a unique form of programmatic mark-up tags, which are interpreted entirely on the server
and translated into standard HTML output before being sent to the client. While the effects of these tags are programmatic in
nature, they differ from a "scripting language" such as PHP or Perl, by relying for their implementation on the same
structural concepts as those behind HTML and XML for their implementation.
One of the goals of LXP is to provide dynamic, conditional capabilities that do not violate the syntax and methodology
of a mark-up–based document. An LXP document should be readable to anyone fluent in HTML, though the meaning of the
extra tags may not be immediately obvious. Simultaneously, experienced programmers can take advantage of the more advanced
features within the content model of LXP.
LXP provides a simple way to build powerful web sites without using a "programming" language. If you can use mark-up,
you can use LXP to help provide dynamically manageable content.
Additionally, LXP's integration with PostgreSQL allows for a deeper degree of content in your web sites.
Traditionally, if you wanted to perform logic on result sets from a database, you would have to use PHP, Perl, or compiled
C or C++. With LXP, use of such languages is no longer required.
Using LXP allows you to utilize the power of PostgreSQL's features—including user-defined functions, triggers,
and procedural languages (such as PL/pgSQL)—to provide the logic for your data. With LXP, there is no longer a need
to use complicated programming languages for the majority of your simple tasks. Even mathematical operations, date and time
evaluations, and involved string formatting can be performed with LXP, via the connection to PostgreSQL.
While this simplicity is one of LXP's strengths, we understand that sometimes a more comprehensive solution is
required (or simply preferred) for the design of a given function. For this reason, if you need the power of a
comprehensive programming language in part of your web site, you can use either of LXP's Apache or
URI methods to embed any available document type within LXP-managed output.