# com.bea.ide.core
IExtensionXmlHandler Interface

public interface IExtensionXmlHandler
extends `Serializable`

The interface implemented by objects that consume xml from IDE extensions. Extensions may define zero or more handlers, each with a unique "handler-id". Extensions can then define sections in their extension.xml in the form:
< extension-xml id="{handler-id}">{xml}</extension-xml>
The format for the contents of such sections are completely defined by the handler that will consume them.
At startup, the IDE loads all extension.xml files. It analyzes each for the <extension-info> tag described in `IExtension```. After all extensions have been analyzed, each section with the same "handler-id" are grouped into a document fragment and passed to the invoke method of the registered handler for that id. sections for which there is no handler defined are simply ignored, as are any other tags found at the top level of the file. Objects implementing this interface must be serializable as it is an extension of the serializable interface. The IDE will serialize these objects when it exits, so that it may recreate them at startup if the set of extensions has not changed since the last invocation.

All Superinterfaces
  `Serializable`

## Field Summary

`public static final `String`` | `x_sExtensionURI` Attribute on the root-element that gives the uri for the extension that provided this xml

## Method Summary

`public `String`` | `getId`() Returns the handler id for this handler.
`public void` | `invoke`(`DocumentFragment` root) Called to allow the handler to analyze and consume the XML from all extensions loaded by the IDE.

## Field Detail

### x_sExtensionURI

    public static final String x_sExtensionURI

  Attribute on the root-element that gives the uri for the extension that provided this xml

## Method Detail

### getId() Method

    public String getId()

Returns the handler id for this handler. This identifies the handler to the application and should match the ide declared in the XML file for the extension defining the handler

#### Returns

handler id for xml that this handler will consume

### invoke(DocumentFragment) Method

    public void invoke(DocumentFragment root)

Called to allow the handler to analyze and consume the XML from all extensions loaded by the IDE. Each section of XML will be added as a child of the document fragment. The handler should iterate through the set of tags and extract the information it requires from each node. Currently, there is no way to associate a given section of xml with the extension that it came from, though this is being considered.