# Project Extension XML Reference

Describes an extension for a new project type. By default, project types installed with WebLogic Workshop include web app, control, Java project, and the EJB project.

The XML for a project type describes visual elements associated with the project, such as folder icons, but also

Because a project incorporates many aspects of WebLogic Workshop functionality, adding support for a new project type can mean writing several different extensions. The following list describes a few of the possibilities.

- Where a new project type includes file types that WebLogic Workshop is not by default designed to handle, the extension.xml can also describe document type extensions; see Document Extension XML Reference for more information.
- You may want to consider whether your project type requires its own preferences panel; see Preferences Extension XML Reference for more information.

Note: The <extension-xml> element is the root for any extension descriptor. For this kind of extension, the <extension-xml> element's id attribute value must be "urn:com-bea-ide:project".

<extension-xml>
<project-type>
<attribute>
<driver>

## <project-type> Element

Specifies details, primarily related to the project's appearance in the IDE, about a project type extension.

<extension-xml>
<project-type>

### Syntax

    <project-type
        id="identifierForProjectType"
        closedfoldericon="pathToGifFile"
        icon="pathToIcon"
        label="descriptiveTextForDocumentType"
        openfoldericon="pathToGifFile"
    >

### Attributes

Attribute | Description
--- | ---
id | Required string. An identifier for this project type. This should be a short name representing this project type -- for example, "php" for a PHP project type.
closedfoldericon | Required string. The path to the .gif file representing the top-level folder of a project of this type when the folder is closed.
icon | Required string. The path to the .gif file to use for representing this project type in the UI.
label | Required string. The text to display for this project type in the New Project dialog.
openfoldericon | Required string. The path to the .gif file representing the top-level folder of a project of this type when the folder is open.

### Hierarchy

Parents: <extension-xml>.

Children: <attribute>, <driver>.

## <attribute> Element

Specifies an IDE attribute supported by this project type.

<extension-xml>
<project-type>
<attribute>

### Syntax

    <attribute
        name="attributeName"
        value="attributeValue"
    >

### Attributes

Attribute | Description
--- | ---
name | Required string. The name of the attribute whose value is being specified. Possible values are given in the Remarks section.
value | Required string. The attribute's value. This is almost always true or false, as described in Remarks.

### Hierarchy

Parents: <project-type>.

Children: None.

### Remarks

Attributes correspond to predefined behavior in the IDE. In the following example, specifying "true" for the warnOnXSDAdd attribute tells the IDE that a warning message should be displayed if the user tries to add an XSD file to the project (the warning states that the XSD will not be compiled unless put into a schema project).

The following table lists attributes in use by existing project types.

IDE Attribute | Possible Values | Description
--- | --- | ---
j2eeModuleType | web | If you specify workshop.workspace.project.build.WebAppBuildDriver in the class attribute of the <driver> element, the you must include this attribute, and set its value to 'web'
runnableAsWebApp | true to indicate that this |
schemaProject |  |
supportsJava | true to ; false to . |
supportsControl |  |
supportsWebApp |  |
supportsWLWWebApp |  |
warnOnXSDAdd |  |

## <driver> Element

Specifies drivers to load when a project of this type is loaded.

You can implement drivers that should be running while an instance of your project type is running. For example, you might want to implement a driver that checks for files added to the project's file system. When the user adds a project of this type to an application, the IDE "attaches" each of the specified drivers to it, so that the driver code is running while the user is working in the application. The project itself need not have focus in order for drivers to be active.

Note: A <project-type> element must include a <driver> element that specifies an implementation of IBuildDriver. Without this, the project will not be loaded in the IDE. The <driver> element would look something like this:

>     <driver type="com.bea.ide.workspace.project.IBuildDriver" class="myPackage.MyBuildDriver"/>

<extension-xml>
<project-type>
<driver>

### Syntax

    <driver
        class="driverImplementationClass"
        type="driverInterface"
    >

### Attributes

Attribute | Description
--- | ---
class | Required string. The fully-qualified name of the driver implementation. This class must implement the interface specified in the type attribute.
type | Required string. The fully-qualified name of the driver interface.

### Hierarchy

Parents: <project-type>.

Children: None.

### Remarks

ICompilerDriver

IProjectDriver

IBuildDriver

ILanguageDriver

IRunDriver

IPrintDriver

ISchemaTypeSystemDriver

IDebugDriver

IHelpDriver

IPropertyViewDriver

IDataPaletteViewDriver

IDragDropDriver

ISCMDriver

ISourceViewDriver

INavigationBarDriver

IDebugControlDriver

IWebProjectDriver

ITransferDriver