Documentation Center

MetadataConfig.xml structure for dialogs

The first element <ishfrmdef> of the MetadataConfig.xml file describes the dialogs in client tools (Authoring Bridge and Publication Manager), in the Web Client, and also in Draft Space if it is enabled.

XML description

This part describes all components to create a dialog.

XMLDescription
ishfrmdef
Can only contain grouping elements (in the specified order):
  • ishfrms: groups all dialog definitions
  • ishfrmtabs: groups all tab definitions
  • ishfrmgroups: groups all group definitions
  • ishfrmfields: groups all field definitions
  • ishfrmvaluelists: groups all value list definitions
ishfrm

Contains the specification for one dialog. The required attribute id must be unique and is used to select the requested dialog specification.

ishfrmtab

Contains the definition to create a tab sheet on the dialog. The text of the tab sheet is specified with the label element.

In the standard MetadataConfig.xml we use this component to group fields of the same level (logical, version, language and customer specific).

ishfrmgroup

Used to group fields in a group element. The text of the group is specified with the label element.

We use this component to group fields with similar information (e.g. date fields) or fields that are part of the same action (e.g. fields concerning Translation Management).

ishfrmfield

Contains all information to show the field on the dialog.

The specification of the field is a combination of the following:
  • Which field is shown. This information is specified with the attributes name, ishfieldref, level and ishfielddatatype.

  • How to display the field. It is determined with one of the display types (typecheckbox, typepulldown, typemultilinetext, ...). When no display type is specified, the typetext type is used.
  • The behavior of the field: Whether the field is hidden, multi-value, mandatory and/or read-only.

  • The (default) value.
label

The usage of label depends on the component on which it is used.

The content of the label element is a default value. In order to show a translation for this value, add a resource reference.

description

Used as help text for the fields

The content of the description element is a default value. In order to show a translation for this value, add a resource reference.

id

Required on the ishfrm element and can be used on all other objects (ishfrmtab, ishfrmgroup and ishfrmfield). This attribute is used to select and reference an object. So, to reference an object the id attribute must be specified.

name

Required on ishfrmfield.

ishfieldref

Required on ishfrmfield and must reference the unique identifier of the field in the database.

In MetadataConfig.xml we also used dummy fields. For example, the dummy field ishref is used to display the unique identifier of the logical object.

level

Required on ishfrmfield and ishfield.

When the attribute is used on ishfrmfield, on top of the known values (logical, version and lng) the following values can be used:
  • object: Level used in combination with the dummy field ishref in ishfieldref. ishref is used to display the unique identifier of the logical object.
  • content: Level used on the (dummy) fields of the Dita.TopicRef.Form dialog. This dialog is used to configure which extra information must be set on a topic reference in the XML document.
When the attribute is used on ishfield, on top of the known values (logical, version and lng) the following values can be used:
  • user: This level can only be used in a usermetadatafilter.
  • baseline: This level can only be used in a baselinemetadatafilter.
ishfielddatatype

Can be used on ishfrmfield and normally indicates the type of the field in the database.

The following values link with an existing database type: typedatetime, typelongtext, typenumber, typereference and typestring.

Deprecated types: typelanguagedependentstring (replaced with typestring), typecard, typecardreference and typelov (replace with typereference).

In contrast with the above-mentioned values the following ishfielddatatypes do not link with a database type. These values are used to link special behavior to a specific field:
  • typeversion: This datatype can be specified on the field VERSION. Used to create a correct new version number and to check that the value is a correct version.

  • typelanguage: Deprecated, replaced with typereference.
  • typedate: In the database the dates are always saved including time. However, if you don't want to show the time, you can use this data type.
hiddenThe field will not be shown when this element is specified.
mandatoryWhen specified, an extra check is executed to ensure that the field contains at least one value.
multivalueWhen the element is specified, multiple values can be inserted/selected.
readonly

When specified, the field is read-only.

staticresourceThe resource gets loaded when you open the form, and stays loaded.
dynamicresourceLast-loads, gets the information later on in the flow. Opposes to staticsource behavior.
recentcacheCan be used in the typetaglist element and will make it possible to see recently used tags. Optional.
autosuggestShows a drop down with values that are matched to the letters typed in the inputfield.

E.g If you configure a typetaglist and want to be able to start typing letters to get a filtered list with suggestions, then you need to add this around your valuelist item within for instance the typetaglist.

structureviewAdds the tree control to an iputfield.

E.g If you configure a typetaglist and want to be able see all bound values in a tree view drop down window, then you need to add this around your valuelist item, within typetaglist for instance.

typecheckbox
The checkbox can only be used when there are only 2 possible values. You must indicate which value applies to the selected checkbox and which value applies to the unselected checkbox.
<typecheckbox>
 <checkedvalue>No</checkedvalue>
 <uncheckedvalue>Yes</uncheckedvalue>
</typecheckbox>
typepulldown
The pulldown should be used when only one value can be selected. In order to populate the pull-down a value list must be provided.
<ishfrmfield name="MasterTypeField" ishfieldref="FMASTERTYPE" level="logical">
 <label resourceref="MasterTypeField.Label">Content type</label>
 <description resourceref="MasterTypeField.Description">Indicates the content type of the map.</description>
 <typepulldown>
  <valuelist>
   <lovlist ishlovref="DMASTERTYPE"/>
  </valuelist>
 </typepulldown>
</ishfrmfield>
typelabelUse when the value should be visual but can not be modified.
typetaglistUsed to show data from an external system.
<ishfrmfield name="CitiesField" ishfieldref="FTESTCITIES" level="logical">
    <label resourceref="FTESTCITIES.Label">Cities</label>
    <typetaglist>
        <autosuggest>
                <valuelist sortorder="ascending">
                    <dynamicresource>
                        <taglist ishfieldref="FTESTCITIES" level="logical" />
                    </dynamicresource>
                </valuelist>
        </autosuggest>
            <structureview>
                <valuelist sortorder="ascending">
                    <dynamicresource>
                        <taglist ishfieldref="FTESTCITIES" level="logical" />
                    </dynamicresource>
                </valuelist>
            </structureview>
            <recentcache />
        <valuepanel>
            <valuelist sortorder="ascending">
                <dynamicresource>
                    <taglist ishfieldref="FTESTCITIES" level="logical" />
                </dynamicresource>
            </valuelist>
        </valuepanel>
    </typetaglist>
    <multivalue />
</ishfrmfield>
typetext
Results in a simple text box with or without assist button. When the list with possible values is large, you can show a filter box in the assist dialog by adding the attribute filter.
<ishfrmfield name="ReleaseCandidateField" ishfieldref="FISHRELEASECANDIDATE" level="version">
 <label resourceref="ReleaseCandidateField.Label">Candidate for Baseline</label>
 <description resourceref="ReleaseCandidateField.Description">Candidate for Baseline.</description>
 <typetext assist="yes" filter="yes">
  <valuelist ref="ActiveBaselineList"/>
 </typetext>
 <multivalue/>
</ishfrmfield>
typemultilinetext
Text box that lets you indicate how many lines the text box should contain. When the attribute lines is not provided, the multiple line text box contains 3 lines.
<typemultilinetext lines="2"/>
typedate
Displays the date. Its behavior depends on the value in the ishfielddatatype attribute:
  • ishfielddatatype = typedate

    The date without the time is shown in a read-only text box.

  • ishfielddatetype = typedatetime

    The date without the time is shown in a read-only text box. Next to the read-only text box the time is shown in a time picker.

In both cases the date can only be changed with the datepicker assistance.

typereference
Results in a read-only text box linked with the repository dialog.
<typereference assist="yes" dialogmode="link">
 <selectabletypes>
  <type>ISHModule</type>
  <type>ISHMasterDoc</type>
  <type>ISHLibrary</type>
  <type>ISHTemplate</type>
 </selectabletypes>
</typereference>
typeconditionResults in a text box linked with the condition builder dialog. Currently only used in Publication Manager.
value

Its value can be used to initialize the field with a default value or can be used to overwrite an existing value.

Remember that when a new object is created, we start from a template. All mandatory fields have already a value on the template. If you want to initialize the field with a default value that is not the same as the value on the template, you have to indicate that you want to overwrite this value.
<ishfrmfield name="AuthorField" ishfieldref="FAUTHOR" level="lng">
 ...
 <value overwrite="yes" ishcondition="ChangeMode in ('NewVersion', 'Create')">
  <var name="currentusername"/>
 </value>
 <value ishcondition="ChangeMode='Update'">
  <var name="currentusername"/>
 </value>
</ishfrmfield>
The field FAUTHOR is mandatory and has a default value (e.g. Admin). When creating a new object, the author must be changed into the current user, by using the variable currentusername.
On the other hand, if you want to force the user to set a value for a mandatory field, you can remove the value set in the template by overwriting this value with an empty node.
<ishfrmfield name="StatusField" ishfieldref="FSTATUS" level="lng">
 ...
 <mandatory/>
 <value overwrite="yes" ishcondition="ChangeMode in ('NewVersion', 'Create')"/>
 <value ishcondition="ChangeMode='Update'"><var name="currentstatus"/></value>
</ishfrmfield>
valuelist

Configures which values are shown in the pull-down or assist.

There are different types of value lists:
  • baselinelist (see below)
  • edtlist (see below)
  • enumlist: The specified values (= item)
  • lovlist: All values of the specified list of value (= ishlovref)
  • taglist: Values retrieved from an external system
  • transitionstatelist: The list with the possible status transitions
  • translationtemplateslist
  • usergrouplist (see below)
  • userlist (see below)
  • userrolelist (see below)
  • versionlist: List of versions
valuepanelThe actual input field you need to configure to be able to have all other new items inside.
userlist
Specifies which users are shown in the assist or pull-down. The list with users can be limited by the usermetadatafilter and the restrictusergroup attribute. The restrictusergroup attribute indicates that only users that are part of the current user group are to be returned.
<ishfrmfield name="ReviewerField" ishfieldref="FREVIEWER" level="lng" ishcondition="ISHType in ('ISHIllustration', 'ISHMasterDoc', 'ISHModule', 'ISHLibrary')">
 <label resourceref="ReviewerField.Label">Reviewer</label>
 <description resourceref="ReviewerField.Description">Name of the reviewer.</description>
 <typepulldown>
  <valuelist>
   <userlist restrictusergroup="yes">
    <usermetadatafilter>
     <ishfields>
      <ishfield name="FISHUSERROLES" level="none" ishvaluetype="element" ishoperator="equal">VUSERROLEREVIEWER</ishfield>
     </ishfields>
    </usermetadatafilter>
   </userlist>
  </valuelist>
 </typepulldown>
</ishfrmfield>
userrolelistSpecifies which user roles are shown in the assist or pull-down. The list with user roles can be limited by the userrolesmetadatafilter element. This metadata filter is passed, and narrows down the retrieved results to entries matching the criteria.
<typepulldown>
  <valuelist>
    <userrolelist>
      <userrolesmetadatafilter>
        <ishfields>
          <ishfield name="FISHUSERROLEACTIVE" level="none" ishvaluetype="element" ishoperator="equal">TRUE</ishfield> 
        </ishfields>
      </userrolemetadatafilter>
    </userrolelist>
  </valuelist>
</typepulldown>
usergroupSpecifies which user groups are shown in the assist or pull-down. The list with user groups can be limited by the usergroupmetadatafilter element. This metadata filter is passed and can narrow down the retrieved results to entries matching the criteria.
<valuelist>
       <usergrouplist>
          <usergroupmetadatafilter>
             <ishfields>
                <ishfield name="FISHUSERROLES" level="none" ishvaluetype="element" ishoperator="in">VUSERROLEAUTHOR, VUSERROLEADMINISTRATOR</ishfield>
             </ishfields>
          </usergroupmetadatafilter>
       </usergrouplist>
    </valuelist>
usergrouplistSpecifies which user groups are shown in the assist or pull-down. The list with user groups can be limited by the usergroupmetadatafilter element. This metadata filter is passed and narrows down the retrieved results to entries matching the criteria.
<typepulldown>
  <valuelist>
    <usergrouplist>
      <usergroupmetadatafilter>
        <ishfields>
          <ishfield name="FISHUSERGROUPACTIVE" level="none" ishvaluetype="element" ishoperator="equal">TRUE</ishfield> 
        </ishfields>
      </usergroupmetadatafilter>
    </usergrouplist>
  </valuelist>
</typepulldown>
baselinelist
The list with all baselines matching the baselinemetadatafilter.
<valuelist id="ActiveBaselineList">
 <baselinelist>
  <baselinemetadatafilter>
   <ishfields>
    <ishfield name="FISHBASELINEACTIVE" level="none" ishvaluetype="element">TRUE</ishfield>
   </ishfields>
  </baselinemetadatafilter>
 </baselinelist>
</valuelist>
edtlist
The list with all Electronic Document Types (EDT) matching the edtmetadatafilter.
<edtlist>
 <edtmetadatafilter>
  <ishfields>
   <ishfield name="FISHOBJECTACTIVE" level="none" ishvaluetype="element">TRUE</ishfield>
  </ishfields>
 </edtmetadatafilter>
</edtlist>