# Help Content Producer

###### Identifier:

org.eclipse.help.contentProducer

###### Since:

3.0

###### Description:

For providing dynamic, generated at run time, help content. Content producers are registered per plug-in and only work within the plug-in scope. In order to reuse a content producer in another plug-in, `binding` element should be used. This strategy prevents plug-ins from highjacking content producing for all the plug-ins. By binding to a content producer, a plug-in gives it permission to control content producing for all the documents in the granting plug-in.

###### Configuration Markup:

<!ELEMENT extension (contentProducer | binding)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

<!ELEMENT contentProducer (producer)?>

<!ATTLIST contentProducer

producer CDATA #IMPLIED>

A binding to a content producer class which will be used to produce content for all help documents in this plugin. A plugin may not contain more than one binding or contentProducer and may not contain both.

- producer - the implementation class for the help content producer. This class must implement the `org.eclipse.help.IHelpContentProducer` interface. This attribute may be omitted, and the nested `producer` element may be provided instead.

<!ELEMENT producer (parameter*)>

<!ATTLIST producer

class CDATA #REQUIRED>

- class - the implementation class for the help content producer. This class must implement the `org.eclipse.help.IHelpContentProducer` interface.

<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name CDATA #REQUIRED

value CDATA #REQUIRED>

- name - name of a parameter passed to the implementation class
- value - value of a parameter passed to the implementation class

<!ELEMENT binding EMPTY>

<!ATTLIST binding

producerId CDATA #REQUIRED>

A binding to a content producer defined in another plugin which will be used to produce content for all help documents in this plugin. A plugin may not contain more than one binding or contentProducer and may not contain both.

- producerId - a unique name of a content producer defined elsewhere using `contentProducer` element. Binding allows a plug-in to reuse a content producer registered in another plug-in instead of defining its own.

###### Examples:

The following is a sample usage of the content producer extension point:

      <extension point="org.eclipse.help.contentProducer"
       id="org.eclipse.myPlugin.myDynamicHelpProducer"
       name="My Dynamic Help Content">
       <contentProducer producer="org.eclipse.myPlugin.myPackage.Myproducer" />
      </extension>

###### API Information:

The supplied content producer class must implement the `org.eclipse.help.IHelpContentProducer` interface. The producer is responsible for providing content for dynamic help resources from a plug-in. The method of content producer is called by help for every help resource obtained from the plug-in.

###### Supplied Implementation:

None. If a documentation plug-in does not provide help content producer or a call to it results in null, help system searches doc.zip and file system in the plug-in install location for a static document and displays its content.

Copyright (c) 2000, 2006 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html