This is the XML file that must be provided with the node (or the NodeFactory). It describes the node and its components as well as its ports and views - for the KNIME user.

Here is an example that contains all possible sections. See below for an explanation of each section (each marked with the corresponding number).

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE knimeNode PUBLIC "-//UNIKN//DTD KNIME Node 1.0//EN" "http://www.knime.org/Node.dtd">
<knimeNode (1)icon="./myIcon.png" (2)type="NodeType">
    (3)<name>MyNodeName</name>
    (4)<shortDescription>Whatever myNode does in one sentence.</shortDescription>
    (5)<fullDescription>
        (5.1)<intro>
        A description of the node's functionality and specialty.
        <p>You can create paragraphs and lists:
            <ol>
            <li>Firstly</li>
            <li>Secondly(Y axis)</li>
            <li>...</li>
            </ol>
        </p>
        For the full and exact specification of which tags are allowed in which
            section, please refer to the DTD file (located in the org.knime.core.node
            package or at the above URL.)</b></p>
      </intro>
        (5.2)<option name="Dialog option">
            If the node has a dialog, explain the options in the node's
            dialog here. Use names the user will be able to associate
            with the corresponding dialog option.
        </option>
      <option name="Dialog option2">
        Add as many option sections as needed.
        </option>
    </fullDescription>
    (6)<ports>
        <inPort index="0" name="Left table">Descriptive text for the
               data coming through that port.</inPort>
        <inPort index="1" name="Right table">This text will be displayed
               in the view.</inPort>
        <outPort index="0" name="Joined table">While the 'name' is used
               in the menus.</outPort>
    </ports>
    (7)<views>
        <view index="0" name="Award Winning View">
            Provide a full description the view here.
        </view>
        <view index="1" name="Next View">
            Add as many entries as you have views for that node.
        </view>
    </views>
</knimeNode>

If your node has no dialog, you probably won't have any <option></option> section.
If you have no view for your node, remove the <views></views> section.
Here is the description of the marked items above. If you copy&paste the above, remove the red numbers from the text.
  1. Specify your icon. If no icon has been set, the KNIME default icon will be used.
  2. Specify the type. Legal types are: Source, Sink, Learner, Predictor, Manipulator, Visualizer, Meta, or Other
  3. Provide a name in the <name> section. This name is displayed in the node repository view, above the node, if it is dragged into workflow, and as the header in the node description view.
  4. The <shortDescription> section should contain a short description (like 80 to 100 chars) explaining briefly what the node does. It is used in the node description view when multiple nodes are selected.
  5. The <fulldescription> section contains an <intro> and optionally - possibly multiple - <option> sections. The options - if defined - are listed in the node description view under "Dialog Options".
  6. In the <ports> section, for each port of the node, add one of the following:
    <inPort index="" name="">description</inPort>, for any input port,
    <outPort index="" name="">description</outPort>, for any output port,
    The index  must be the same index as used in the source code. The name provided is displayed in the menus. The description (between the tags) is shown in the node description view. Note, that as of KNIME 2.0 no distinction between data ports and model ports is necessary in the NodeDescription.
  7. If your node comes with one or several differnt views, add a <views> section. For each view, add a <view> tag, provide an index (the same as in the source code), and a name. The name is shown in the menus, the descriptive text of the view tag, is displayed in the node description view.