Documentation Center

MetadataConfig XML structure for dialogs

The first element (ishfrmdef) of the MetadataConfig XML describes the dialogs in the Client Tools (Authoring Bridge and Publication Manager). Currently, the MetadataConfig XML is also used in the ISHCM website to create dynamically the metadata fields when Pushing Objects into Translation (ishfrm[@id="TranslationMgmtDlg").

XML description

This part describes all components to create a dialog

XMLDescription
ishfrmdef
This element 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: group all field definitions
  • ishfrmvaluelists: groups all value list definitions
ishfrm

This element contains the specification for one dialog. The required attribute "id" must be unique and is used to select the requested dialog specification.

ishfrmtab

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 we use this component to group fields of the same level (logical, version, language and customer specific).

ishfrmgroup

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

Standard 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

This element 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 is determined with one of the display types (typecheckbox, typepulldown, typemultilinetext, typetext, typelabel, ...). When no display type is specified, the display type "typetext" is used.
  • What is the behavior of the field?

    Is the field hidden, multi-value, mandatory and/or read-only?

  • What is the (default) value?
label

The usage of the 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

The description element is 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

The attribute is 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, in order to reference an object the id attribute must be specified.

name

The attribute is required on ishfrmfield.

ishfieldref

The attribute is required on ishfrmfield and must reference the unique identifier of the field in the database.

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

level

The attribute is 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. The dummy field "ishref" is used to display the unique identifier of the logical object.
  • content: This level is used on the (dummy) fields of "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

This optional attribute can be used on ishfrmfield and normally indicates the type of the field in the database.

The following values link with an existing database types: typedatetime, typenumber, typestring, typelongtext, typelanguagedependentstring, typecard, typecardreference and typelov.

In contrast with the above-mentioned values the following ishfielddatatypes does not linked with a database type. These values are used to link special behaviour to a specific field:
  • typeversion: This datatype can only be specified on the field VERSION.

    This type is used to create a correct new version number and to check that the value is a correct version

  • typelanguage: This datatype can be used on fields that are linked with the language list of values to convert the value to a label. Example: Convert the language "en" to the label "English".
  • typedate: In the database the dates are always saved inclusive time. However, if you don't want to show the time, you can use this datatype.
hiddenThe field will not be shown, when this element is specified.
mandatoryWhen the element "mandatory" is 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 the element is specified, the field is read-only.

staticresourceThe resource gets loaded when you open the form, it will stay loaded.
dynamicresourceThis makes the loading behave different than with the static resource, it is a way of last loading and getting the information later on in the flow.
recentcacheThis optional attribute can be used in the typetaglist element and will make it possible to see recent used tags
autosuggestThis will show a drop down with values that are matched to the letters typed in the inputfield.

E.g If you configure an 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.

structureviewThis element will add the tree control to an iputfield.

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

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 supplied.
<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 the display type "label" when the value should be visual but can not be modified.
typetaglistType of control you are using 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
This display type results in a simple text box with or without assist button. When the list with possible values is large, you can show an 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
Except that you can indicate how many lines the text box should contain, the multiple line text box behaves similar with an ordinary text box. When the attribute "lines" is not supplied, the multiple line text box contains 3 lines.
<typemultilinetext lines="2"/>
typedate
The result of the display type "typedate" 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 assist.

typereference
The display type "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>
typeconditionThe display type "typecondition" results in a text box linked with the condition builder dialog. Currently only used in the Publication Manager.
value

The value in this element can be used to initialize the field with a default value or can be used to overwrite an existing value.

When a new object is created, it is important to remember that we start from a template. All mandatory fields have already a value on the template. So, 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. This can be indicated by using the variable "currentusername".
On the other hand, if you want to oblige 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

The value list configures which values are shown in the pull-down or assist.

There are different types of value list:
  • lovlist: All values of the specified list of value ( = ishlovref)
  • userlist (see below)
  • baselinelist (see below)
  • enumlist: The specified values (= item)
  • transitionstatelist: The list with the possible status transitions
  • taglist: Values retrieved from an external system
valuepanelThis is the actual input field you need to configure to be able to have all other new items inside.
userlist
The user list element 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="user" shoperator="equal">Reviewer</ishfield>
     </ishfields>
    </usermetadatafilter>
   </userlist>
  </valuelist>
 </typepulldown>
</ishfrmfield>
userrolelistThe user role list element specifies 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 the retrieved results to entries matching the criteria.
<typepulldown>
  <valuelist>
    <userroleslist>
      <userrolesmetadatafilter>
        <ishfields>
          <ishfield name="FISHUSERROLEACTIVE" level="none" ishoperator="equal">True</ishfield> 
        </ishfields>
      </userrolesfilter>
    </userroleslist>
  </valuelist>
</typepulldown>
usergroupThe usergrouplist element specifies 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 the retrieved results to entries matching the criteria.
<valuelist>
       <usergrouplist>
          <usergroupmetadatafilter>
             <ishfields>
                <ishfield name="FISHUSERROLES" level="none" ishoperator="in">Author, Administrator</ishfield>
             </ishfields>
          </usergroupmetadatafilter>
       </usergrouplist>
    </valuelist>
usergrouplistThe user group list element specifies 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 the retrieved results to entries matching the criteria.
<typepulldown>
  <valuelist>
    <usergrouplist>
      <usergroupmetadatafilter>
        <ishfields>
          <ishfield name="FISHUSERGROUPACTIVE" level="none" 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="logical">Yes</ishfield>
   </ishfields>
  </baselinemetadatafilter>
 </baselinelist>
</valuelist>