OpenAjax Metadata 1.0 Specification
NOTE: This wiki page holds part of the OpenAjax Metadata 1.0 Specification.
This document is the approved formal Specification for OpenAjax Metadata 1.0.
OpenAjax Metadata represents a set of industry-standard metadata defined by the OpenAjax Alliance that enhances interoperability across Ajax toolkits and Ajax products. With version 1.0, OpenAjax Alliance defines metadata for the following:
- Ajax widgets, which include:
- UI controls - The user interface components -- such as combo boxes, menu bars, charts, and calendars -- that some Ajax libraries provide.
- Mashup components - Pre-packaged mini-applications (sometimes called "widgets" or "gadgets") that can be combined together within a composite application (the "mashup"), where the mashup components react to each other intelligently, such as when the user selects an address in one component, and a different component displays an updated map for that address.
The primary target consumers of OpenAjax Metadata 1.0 are software products, particularly Web page developer tools targeting Ajax developers. It is expected that these software products will consume and use the metadata to provide an enhanced experience for users building Ajax-powered solutions. In particular:
- Ajax IDEs will likely use OpenAjax Metadata to provide developers with API documentation, intelligent code-assist, widget palettes, and widget property editors.
- Mashup assembly applications will use OpenAjax Widget Metadata for definitions of widget user interface, widget APIs, identification of pub/sub messages to which the widget publishes or subscribes, and identification of shared properties.
Status of this Document
This is the approved Specification for OpenAjax Metadata 1.0 what was developed within the IDE Working Group at OpenAjax Alliance.
This Specification has been developed under the terms of the OpenAjax Alliance Members Agreement, in which the Members of the OpenAjax Alliance have agreed to various royalty-free conditions for Specifications, and the OpenAjax Alliance Development Process.
OpenAjax Alliance maintains an open source reference implementation and test suite for various technologies relevant to OpenAjax Metadata 1.0 at http://openajaxallianc.sourceforge.net. At this time, the open source project provides:
- A formal language schema, expressed in RelaxNG Compact Syntax
- Sample OpenAjax widgets
- A mashup authoring environment that includes the OpenAjax Widget loader (see previous bullet) and uses OpenAjax Hub 2.0 as its secure mashup framework, where widgets are isolated from each other into secure sandboxes
OpenAjax Alliance also maintains a Web-based validation tool so that the community can validate their metadata files against the language schema.
Public feedback on this document should be sent to email@example.com. Errata for the final, approved version 1.0 of this Specification will be posted at http://www.openajax.org/member/wiki/OpenAjax_Metadata_1.0_Specification_Errata.
Table of Contents
- 1 Introduction
- Includes an overview into the motivation for defining standards for OpenAjax Metadata, the types of metadata that are defined, and the expected ways that the metadata will be used.
- 2 Widget Overview
- An overview of OpenAjax Widgets
- 3 Widget Metadata
- Primary chapter for detailed specification information on OpenAjax Widgets.
- 4 Widget APIs
- Defines the widget APIs that enable OpenAjax Widgets to interact at runtime with host applications and other widgets.
- 5 API Metadata Overview
- An overview of OpenAjax API Metadata
- 6 API Metadata
- Primary chapter for detailed specification information on OpenAjax API Metadata.
- 7 Properties
- Defines elements and attributes having to do with properties.
- 8 Datatypes
- Defines the 'datatype' attribute and other attributes and elements that help to describe the datatype for a particular value.
- 9 Descriptive elements and attributes
- Describes the various elements and attributes that provide descriptive metadata, such as the <description> element.
- 10 Compatibility elements and attributes
- Describes elements and attributes that have to do with feature compatibility, such as when a given feature became available or was deprecated.
- 11 Localization
- Describes the localization features within OpenAjax Metadata such that it is possible to localize the various text strings within OpenAjax Metadata files.
- 12 Variable Substitution
- Describes the variable substitution features within OpenAjax Metadata, including property name substitution, localization substitution, widget ID substitution and BIDI substitution.
- 13 Plural and Singular Elements
- Describes the syntax rules for plural (e.g.,
<methods>) and singular elements (e.g.,
<method>) and provides the formal definitions of most of the plural elements in the language schema
- A References
- References to other specifications.
- B Futures
- Features under consideration for future versions of this specification.
Copyright 2008-2010 OpenAjax Alliance
Permission to copy and display the OpenAjax Metadata Specification, in any medium without fee or royalty is hereby granted, provided that you include the copyright notice as shown herein and link or URL to the Specification on the OpenAjax Alliance website. In addition, for parties wishing to implement this Specification, the Members of the OpenAjax Alliance have provided royalty-free patent covenants to their respective patent claims as described in the OpenAjax Alliance IPR Policy.
DISCLAIMERS: THIS SPECIFICATION IS PROVIDED "AS IS," AND THE OPENAJAX ALLIANCE AND ITS MEMBERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THIS SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, THE OPENAJAX ALLIANCE AND ITS MEMBERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THIS SPECIFICATION OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
No other rights are granted by implication, estoppel or otherwise.