## Extension Point Schema Editor

### About Extension Point Schemas

An extension point schema is an XML schema file that defines a contract for extension points that extensions must conform to in order to plug-in and extend the platform. More specifically, an extension point schema specifies a formal grammar for an extension point's elements and attributes. This grammar dictates the structure, content and semantics of any contributed extension's XML mark-up.

Extension point schemas are used during plug-in development to do the following:

- Validate extensions defined in workspace plug-ins.
- Generate reference extension point documentation.
- Assist the user in extension creation.

### About This Editor

The Extension Point Schema Editor allows you to do the following:

- Create and edit an extension point schema's grammar.
- Include and use the grammar defined by other shared extension point schemas.
- Document an extension point schema's grammar.
- Specify schema metadata used by PDE to automate common tasks.
- Preview the extension point schema's reference document.

This editor abstracts the extension point schema's file mark-up away as an implementation detail that you do not have to learn to use.

### Editor Pages

This editor is comprised of the following pages:

- Schema Overview Page
- Schema Definition Page

### Global Editor Actions

Click the Preview Reference Document hyperlink to preview the reference document pertaining to the saved or unsaved contents of the edited extension point schema. This action generates an HTML representation of the schema and opens it in a browser.

### PDE XML Schema Support

Extension point schemas are XML schemas. As a result, they are written in XML and are able to take advantage of schema annotations to improve ease of processing and readability. However, extension point schemas only use a small subset of XML schema features defined by the W3C XML Schema specification.

Use of a small XML schema feature subset dramatically simplifies the structure and syntax of extension point schemas while still addressing the required needs of the extension point problem domain. It also provides an aesthetic one-to-one mapping of the schema grammar to an equivalent DTD grammar.

The main extension point schema limitations are as follows:

- Only global element declarations are allowed.
- Only local attribute declarations are allowed.
- Only sequence and choice compositors are supported.
- Only string and boolean attribute types are allowed.
- Only the enumeration restriction is supported for attributes of type string.
- Only local element type declarations are allowed.
- XML namespaces are not supported.
- An element can be declared to specify either element content or character content; but, not mixed content (both element and character content).

### Relevant Links

- New Extension Point Schema Wizard
- What is an extension point schema?
- Plug-in Manifest Editor