OpenAjax Metadata 1.0 Specification

From MemberWiki

Jump to: navigation, search

NOTE: This wiki page holds part of the OpenAjax Metadata 1.0 Specification.


<--previous       contents--v       next-->

Abstract

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.
  • Ajax APIs - The runtime JavaScript APIs (e.g., classes and methods) that are available for an Ajax library.

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
  • A client-side JavaScript implementation of an OpenAjax Widget loader
  • 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
  • API metadata converters, such as a tool that converts JavaScript files with JSDoc inline comments into the OpenAjax API Metadata

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 public@openajax.org. 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.


<--previous       contents--v       next-->
Personal tools