Recommendations for adding metadata to maps in SDL/XMetal?

Our writers currently check out maps from SDL using XmetaL 12 and manually type in attribute value in the <othermeta> element for product name, release number, and so on. This a tedious and error-prone process. Is it possible to use drop-down menus with pre-populated values for the product name or release number via XmetaL/SDL Integration? Many of these same metadata values for product/release are already in our SDL system in the release values list. I'm curious what options people use for entering metadata in their maps particularly if there are drop-down lists that can be used somehow.

Screenshot of Trados Studio showing a draft document titled 'Ruckus Fastrion Software Upgrade Guide, 08.0.90' with metadata fields for product-release, firmware-release, content-type, task, and bundle filled with pre-populated values.

<topicmeta>
  <othermeta name="product-release "content="icx7150,icx7250,icx7450,icx7650,icx7750,icx7850" />
  <othermeta name="firmware-release" content="fi-08.0.90" />
  <othermeta name="task " content="install-upgrade" />
   .
   .
   .
</topicmeta>



Generated Image Alt-Text
[edited by: Trados AI at 6:38 AM (GMT 0) on 5 Mar 2024]
emoji
  • You can can a OOTB Write Plugin to achieve this. The plugin would be something like this, where you would need to replace SDLMETADATAFIELDNAME and SDLMETADATAFIELDLEVEL with the actual values from your environment. This plugin would allow the integration to apply the values to the XML upon checkout of the object. You may need to create three different plugins for the three different field you desire to populate. Unless you would like to write a custom plugin.
    <plugin name="SETPRODUCTRELEASE" handler="BlobSetXmlNode" ishcondition="CurrentAction in ('Checkout') and (ISHLevel='logical') and (ISHType in ('ISHModule') and EDT='EDTXML')">
    <description>Set product-release in xml <from sdl meatadata field name> in othermeta attribute for topics</description>
    <workingset>
    <ishfields>
    <ishfield name="SDLMETADATAFIELDNAME" level="SDLMETADATAFIELDLEVEL" />
    </ishfields>
    </workingset>
    <initialize>
    <parameters>
    <parameter name="OnNodeXPath">//*[contains(@name,'product-release')]</parameter>
    <parameter name="NodeType">attribute</parameter>
    <parameter name="NodeName">content</parameter>
    <parameter name="OverwriteExisting">Yes</parameter>
    <parameter name="Value">
    <value type="MetadataField">
    <parameter name="MetadataField">"SDLMETADATAFIELDNAME"</parameter>
    <parameter name="MetadataFieldLevel">"SDLMETADATAFIELDLEVEL"</parameter>
    </value>
    </parameter>
    </parameters>
    </initialize>
    </plugin>
  • Essential is that by default when using a CMS we advise to store your metadata in the CMS. Duplicating, or synchronizing it in the xml is rough and error-prone as you noticed.
    Can you elaborate 'why' you need the <topicmetadata> entries in the file?
  • Hello,

    We use <othermeta> within the <topicmeta> field only in our book-level-maps. This metadata contains information such as the publication part number, date, pdf url, software release, content type, firmware release, etc. These metadata fields are used in the PDF/HTML output as either rendered elements in the output (for example the publication date and part number are printed on the cover page and footers), or as metadata passed to our web publishing system for classification and filtering purposes (software name, release number, firwware name, release number, content type, etc).

    As noted this information is manually set at the moment via the editor, then picked up by the DITA-OT plugins to render output in PDF/HTML or web format.

    Regards,
    Ryan