Welcome   |   See it in Action   |   Wiki   |   Download  

 Welcome
   Project
 Overview
 News
 Download
 Architecture
 Examples and Demos
 Roadmap
 License
   Getting Started
 Wiki
 Getting Help
   Documentation
 xModify
 API and Syntax Reference
   Getting Involved
 Contribution
 Subversion Repository
 XAP Adoption
The Ajax Open Source Declarative Framework

XAP is an XML-based declarative framework for building, deploying and maintaining rich, interactive Ajax powered web applications.  XAP aims to reduce the need for scripting and help solve the development and maintenance challenges associated with large scale JavaScript programming.

NOTE: The XAP project has been retired from the Apache Incubator due to inactivity.

Less code = Less time
Simple login screen:

<xal>
    <dialog>
        <horizontalBoxPane>
            <label text="Username"/>
            <textField id="username"/>
            <label text="Password"/>
            <textField id="password"/>
            <button text="login"
              onCommand="login-url"/>
        </horizontalBoxPane>
    </dialog>
</xal>

XAP is a complete framework for building Ajax applications. Whether you're building a large application with many screens or you simply want to enhance an existing website with Ajax, the XAP project can help get your project done quicker and easier.

Why is Declarative important?

Markup languages provide several key benefits to application development:

  • Provide an abstraction and normization layer between the underlying implementation and the developer.

    The map mashup in the demos section uses the same markup for all three maps. Want to specify the center point? Just set the center attribute to the correct latitude and longitude. You don't need to worry what the underlying API calls are.

  • Markup languages provide a solid base to build tooling on top of.

    How many visual tools are there for HTML? Plenty.
    How many for JavaScript? Not many.

    This is because markup is well defined and tools can easily read and write it. Even if a developer changes it by hand, the markup still remains readable by a tool.

  • Markup languages are easier to understand and learn than code. Would web application development have grown so quickly if developers had to use JavaScript to create all web applications? Probably not.

bullet XAP Overview
bullet Learn about the Architecture
bullet Check out the Demos

To get started using XAP click download above and visit the documentation

bullet Wiki

Disclaimer

XAP is an effort undergoing incubation at the Apache Software Foundation (ASF). Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.



What's cool in XAP?
 xModify - > Makes it possible to use a declarative markup to execute DOM modification against either the HTML document or the XAL UI document.

3 KB implementation
on top of jQuery, Mootools, Prototype

Click the "Processors" link in the xModify documentation section.



 UI - > XAP has all the widgets that are needed to get started building large Ajax Applications: table, tree, tab, dialog, layout panels, splitter, form components, Google Maps, Yahoo Maps, Live Maps, ...

 Macros - > Developers can use macros to execute xModify operations via the XAP JavaScript APIs or through the event handler expression language.

<button text="Login" onCommand= "macro:myMacro.execute()"/>

 MCO - > Keep your business logic completely separated from the UI definition. This make code maintenance easier and development quicker. The XAP client will create the JavaScript POJOs which can be accessed from the UI markup via a simple expression language.

<button text="Login" onCommand= "mco:myEventCode.functionName()"/>

 Data binding - > Using on markup developers can load XML or JSON data into client-side datasource and binding the contents to UI components via many-to-many, one-to-many and one-to-one binders.

...
Copyright 2006-2007 The Apache Software Foundation