OpenAjax Metadata Specification
From MemberWiki
Notes:
- This wiki page holds a portion of the latest internal editorial draft for what ultimately will become the OpenAjax Metadata 1.0 Specification. The base wiki page for this (latest) version of the draft specification is at http://www.openajax.org/member/wiki/OpenAjax_Metadata_Specification.
Here is the proposed way for the IDE WG to edit this specification:
- All textual content that has normal text properties (i.e., black) and has no colored status text (e.g., does not say Tentatively approved or Approved) represents preliminary proposed text that requires further review and discussion.
- Members of OpenAjax Alliance are encourage to place inline comments into this document, preferably by identifying your name or initials before your comment, such as "Mary: This bullet should be moved above previous bullet".
- When an item has been deemed complete by the WG chair due to committee consensus, then the annotation Approved will be placed at the end of an approved block of text (e.g., paragraph or bullet). Note that during the development phase of this specification, the group can change its mind and "un-approve" text that was previously approved.
- When an item has been deemed near complete by the WG chair due to committee consensus, but further review is necessary (e.g., review final wording), then the annotation Tentatively approved will be placed at the end of given block of text (e.g., paragraph or bullet).
Abstract
This document is a working draft of the 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 - OpenAjax Metadata 1.0 defines metadata for two definitions of the term "widget":
- UI controls - Some Ajax libraries provide a set of user interface building block components such as combo boxes, menu bars, or charts
- Mashup components (aka "widgets" and "gadgets") - Mashup frameworks allow for pre-packaged mini-applications (sometimes called "widgets" or "gadgets") to 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 which causes a different component to display an updated map that shows the given address.
- Ajax APIs - OpenAjax Metadata 1.0 provides a reasonably comprehensive set of metadata that describes the runtime JavaScript APIs (e.g., classes and methods) that are available for an Ajax library.
- Ajax libraries - OpenAjax Metadata 1.0 defines a handful of metadata fields for Ajax runtime libraries, much of which aligns with entries in the OpenAjax Registry.
The primary target consumers of OpenAjax Metadata 1.0 are software products. It is expected that these software products will consume and use the metadata to provide enhanced experience for users who building Ajax-powered solutions. In particular:
- Mashup frameworks will use OpenAjax Metadata to use OpenAjax Metadata for widgets, such as the message types that the widget produces and consumes and the customization parameters that the widget supports
- Ajax IDEs will use OpenAjax Metadata to provide the developer with (presumably automatically-generated) API documentation, intelligent code-assist, widget palettes, and widget property editors
OpenAjax Metadata is a key technology component within the umbrella term OpenAjax Conformance. Ajax runtime libraries and Ajax tools must support OpenAjax Metadata 1.0 according to the conformance criteria defined by this specification in order to achieve OpenAjax Conformance. OpenAjax Alliance recommends that Web developers and IT professionals demand OpenAjax Conformance as an industry requirement from its Ajax technology providers. By requiring OpenAjax Conformance, customers gain confidence in their technology and product choices and realize benefits in terms of the ability to integrate Ajax technologies from multiple suppliers, ability to change suppliers at reduced costs, and increased certainty that their suppliers are adopting industry best practices.
Status of this Document
This is an editorial draft of a Specification that is under development within the Interoperability Working Group at OpenAjax Alliance. While current expectation is that this draft Specification is approaching completion and will soon be finalized and approved, it is important to emphasize that this draft Specification is not yet finalized and approved and therefore may be updated, replaced, abandoned, or obsoleted by other documents at any time. Because of this, it is inappropriate to cite this document as other than work in progress.
This Specification is being 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. NOTE: At this time, nothing has been checked in yet, but we hope things will start to appear soon.
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 Metadata
- (need 1 sentence summary)
- 3 API Metadata
- (need 1 sentence summary)
- 4 Library Metadata
- (need 1 sentence summary)
- 5 Properties
- (need 1 sentence summary)
- 6 Datatypes
- (need 1 sentence summary)
- 7 Topics
- (need 1 sentence summary)
- 8 Descriptive elements and attributes
- (need 1 sentence summary)
- 9 Compatibility elements and attributes
- (need 1 sentence summary)
- 10 Inclusion
- (need 1 sentence summary)
- 11 Localization
- (need 1 sentence summary)
- A References
- References to other specifications.
- B Change Log
- Change history.
- C Issues
- Some of the key issues (open and closed) relevant to this specification. (FIXME: This appendix will be removed before the final approved specification is published.)
Copyright 2008 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.
