Show / Hide Table of Contents

# Term base in SDL MultiTerm XML format

Below you can see the SDL MultiTerm format of term bases exported through WS API. The following settings are used:

- File format: XML
- Encoding: UTF-16
- Images are not exported through WS API
- Both QTerm and memoQ term bases can be exported to MultiTerm XML
- QTerm custom fields are not exported. To export these metadata fields, use the TBX export format.

##### Warning

The format of MultiTerm XML files might have different format if they have been exported from QTerm.

## Structure

The output of the TBX export is an XML file the content of XDL and XDT files are returned as string parameters.

### XDL

XDL file is a layout definition file for SDL MultiTerm. You can find a sample here. As memoQ term bases are of fixed structure (and custom fields from QTerm term bases are not exported), XDL files always have the same format, and only language information can change according to the languages of the term base. Below you can see the changing part of the XDT. Current languages appear in `<LocalizationXML>` element listed between the two empty label (`<label field=""/>`). The value of the field will be the long name, the label's value will be the English display name of the language.

    <LocalizationXML>
       <label field="Created by">Created by</label>
       <label field="Created on">Created at</label>
       <label field="Modified by">Modified by</label>
       <label field="Modified on">Modified at</label>
       <label field="Entry class">Entry class</label>
       <label field="Entry number">Entry number</label>
       <label field="Entry level">Entry level</label>
       <label field=""/>
       <label field="English (United States)">English (United States)</label>
       <label field="German (Germany)">German (Germany)</label>
       <label field="Hungarian">Hungarian</label>
       <label field="Term">Term</label>
       <label field=""/>
       <label field="ID">Entry ID</label>
       <label field="Note">Note</label>
       <label field="Project">Project</label>
       <label field="Client">Client</label>
       <label field="Domain">Domain</label>
       <label field="Subject">Subject</label>
       <label field="Definition">Term definition</label>
       <label field="Usage example">Example of use</label>
       <label field="Forbidden term">Forbidden term</label>
       <label field="Part of speech">Part of speech</label>
       <label field="Number (grammar)">Number (grammar)</label>
       <label field="Gender (grammar)">Gender (grammar)</label>
       <label field="Image">Image</label>
    </LocalizationXML>

##### Note

QTerm term bases do not have a built-in Note field (represented by the `<label field="Note">` element, so that will not be present in the exported XML file.

### XDT

XDT is a definition file for SDL MultiTerm that describes the scheme of the term base. You can find a sample here. As memoQ term bases are of fixed structure (and custom fields from QTerm term bases are not exported), XDT files always have the same format, and only language information can change according to the languages of the term base. Below you can see the changing part of the XDT part. Current languages appear in the `<Languages>` element, where `<ItemLocale>` contains the two-letter language code, and `<ItemText>` the long name of the language.

    <Languages>
     <ItemLocale>EN</ItemLocale>
     <ItemText>English</ItemText>
     <ItemLocale>HU</ItemLocale>
     <ItemText>Hungarian</ItemText>
    </Languages>

Language-level information in the XML file is captured within the `<languageGr>` element, which has `<language>` child nodes. The XDT defines the possible values of the `lang` and the `type` attributes of the `<language>` elements. The type attribute has the type "languages" and contains the long name of languages; the `lang` attribute refers to the target locale and it has the type "locales", and contains the two-letter language codes. Please see the example below.

    <ElementType ID="8" name="languageGrp" content="eltOnly" order="many">
      <description/>
      <Occurences>
        <Level minOccurs="0" maxOccurs="*"/>
      </Occurences>
      <ElementType ID="9" name="language" content="empty" order="many">
        <description/>
        <Occurences>
          <Level minOccurs="1" maxOccurs="1"/>
        </Occurences>
        <AttributeType name="type" type="languages" values="English|Hungarian">
          <description/>
          <Occurences>
            <Level minOccurs="1" maxOccurs="1"/>
            <Level minOccurs="0" maxOccurs="*"/>
          </Occurences>
        </AttributeType>
        <AttributeType name="lang" type="locales" values="EN-US|HU">
          <description/>
          <Occurences>
            <Level minOccurs="1" maxOccurs="1"/>
            <Level minOccurs="0" maxOccurs="*"/>
          </Occurences>
        </AttributeType>
      </ElementType>

### XML

The content of the term base is exported to the XML file.

In the following example, you can see the representation of an entry from a QTerm term base.

    <conceptGrp>
      <concept>0</concept>
      <system type="entryClass">0</system>
      <transacGrp>
        <transac type="origination">admin</transac>
        <date>2016-04-03T12:31:31</date>
      </transacGrp>
      <transacGrp>
        <transac type="modification">admin</transac>
        <date>2018-10-11T15:01:31</date>
      </transacGrp>
      <descripGrp>
        <descrip type="ID">0</descrip>
      </descripGrp>
      <descripGrp>
        <descrip type="Client">RemoteCooking</descrip>
      </descripGrp>
      <descripGrp>
        <descrip type="Domain">Culinary</descrip>
      </descripGrp>
      <descripGrp>
        <descrip type="Project">CulinaryTB</descrip>
      </descripGrp>
      <languageGrp>
        <language type="English (United States)" lang="EN-US"/>
        <descripGrp>
          <descrip type="Definition">a list of the dishes that may be ordered (as in a restaurant) or that are to be served (as at a banquet)</descrip>
        </descripGrp>
        <termGrp>
          <term>menu</term>
          <transacGrp>
            <transac type="origination">admin</transac>
            <date>2016-04-03T12:31:31</date>
          </transacGrp>
          <transacGrp>
            <transac type="modification">admin</transac>
            <date>2018-10-11T15:01:31</date>
          </transacGrp>
        </termGrp>
      </languageGrp>
      <languageGrp>
        <language type="Hungarian" lang="HU"/>
        <descripGrp>
          <descrip type="Definition">menü, ételsor</descrip>
        </descripGrp>
        <termGrp>
          <term>menü</term>
          <transacGrp>
            <transac type="origination">admin</transac>
            <date>2016-04-03T12:31:31</date>
          </transacGrp>
          <transacGrp>
            <transac type="modification">admin</transac>
            <date>2018-10-11T15:01:31</date>
          </transacGrp>
        </termGrp>
      </languageGrp>
    </conceptGrp>

##### Note

The value of the `<concept>` element stands for the index of the given entry, between 0 and the count of the entries - 1. `<conceptGrp>` has a child element called `<system>`. Its value is always 0.

## Entry level fields

The following entry level fields are present in a MultiTerm XML both when exporting memoQ or QTerm term bases. Their order is not bound. A field is exported if it has a value. The content of an entry is located within `<conceptGrp>`.

Properties specified in the `<descrip>` elements within `<descripGrp>` define the ID, the metadata and the note of a term base entry:

    <descripGrp>
      <descrip type="Client">RemoteCooking</descrip>
    </descripGrp>

Entry level property | Value of the `type` attribute | Value type of the `<descript>` element | Description
--- | --- | --- | ---
Id | ID | Number | The id of the TB entry.
Subject | Subject | Text | The subject of the TB entry.
Domain | Domain | Text | The domain of the TB entry.
Client | Client | Text | The client of the TB entry.
Project | Project | Text | The project of the TB entry.
Note | Note | Text | The note of the TB entry.

##### Note

QTerm term bases do not have a built-in `Note` field, and a custom field with the same name will not be exported to MultiTerm XML by the WS API export.

Properties specified in the `<transac>` elements within `<transacGrp>` define the creation and modification dates and the creator/modifier of a term bas entry:

    <transacGrp>
      <transac type="origination">admin</transac>
      <date>2016-04-03T12:31:31</date>
    </transacGrp>
    <transacGrp>
      <transac type="modification">admin</transac>
      <date>2018-10-11T15:01:31</date>
    </transacGrp>

Entry level property | Element | Value of the `type` attribute | Value tpye of the `<transac>` element | Description
--- | --- | --- | --- | ---
Creator | transac | origination | Text | The creator of the TB entry.
Created | date |  | DateTime | The creation UTC date of the TB entry. In format `yyyy-MM-ddThh:mm:ss`.
Modifier | transac | modification | Text | The last modifier of the TB entry.
Modified | date |  | DateTime | The UTC date of the TB entry's last modification. In format `yyyy-MM-ddThh:mm:ss`.

QTerm term bases might have custom fields at the entry level, but these fields are exported to the XML only by manual export of the term base.

    <descripGrp>
      <descrip type="Status">https://memoq.com</descrip>
    </descripGrp>

Entry level property | Value of `type` attribute | Value type of the `<descript>` element | Description |
--- | --- | --- | --- | ---
Custom metadata fields | [FieldName] | Custom values | Custom fields of a QTerm term base are exported to MultiTerm only by manual export. A custom metadata field could be of types: Text | Number | True/False | Date | Picklist (single)| Picklist (multiple)

## Language level fields

The following language level fields are present in a MultiTerm XML both when exporting standard memoQ or QTerm term bases. Their order is not bound. A field is exported if it has a value. The language level content can be found within the `<languageGrp>` element. The name of the language and its two-letter language code is described by the attributes of the `<language>` element: `<language type="English (United States)" lang="EN-US"/>`

    <languageGrp>
      <language type="English (United States)" lang="EN-US"/>
      <descripGrp>
        <descrip type="Definition">a list of the dishes that may be ordered (as in a restaurant) or that are to be served (as at a banquet)</descrip>
      </descripGrp>
      <termGrp>
     ...
    </languageGrp>

memoQ term bases contain only the definition term at the language level, this propertie is represented as a `<descripGrp>` element.

    <descripGrp>
      <descrip type="Definition">a list of the dishes that may be ordered (as in a restaurant) or that are to be served (as at a banquet).</descrip>
    </descripGrp>

Language level property | Value of the `type` attribute | Value type of the `<descrip>` element | Description
--- | --- | --- | ---
Definition | Definition | Text | The definition of the language.

QTerm term bases might have custom fields at the language level, but these fields are exported to the XML only by manual export of the term base.

    <descripGrp>
      <descrip type="SourceDef">https://memoq.com</descrip>
    </descripGrp>

Language level property | Value of `type` attribute | Value type of the `<descript>` element | Description |
--- | --- | --- | --- | ---
Custom metadata fields | [FieldName] | Custom values | Custom fields of a QTerm term base are exported to MultiTerm only by manual export. A custom metadata field could be of types: Text | Number | True/False | Date | Picklist (single)| Picklist (multiple)

## Term level fields

The following term level fields are present in a MultiTerm XML both when exporting standard memoQ or QTerm term bases. Their order is not bound. A field is exported if it has a value. The term level content is described within the `<termGrp>` element. Multiple `<termGrp>` can be present if there are multiple terms for a language. Forbidden terms are marked with the Status field.

    <termGrp>
      <term>menu</term>
      <transacGrp>
        <transac type="origination">admin</transac>
        <date>2016-04-03T12:31:31</date>
      </transacGrp>
      <transacGrp>
        <transac type="modification">admin</transac>
        <date>2018-10-11T15:01:31</date>
      </transacGrp>
      <descripGrp>
        <descrip type="Status">Forbidden</descrip>
      </descripGrp>
      <descripGrp>
        <descrip type="Part of speech">N</descrip>
      </descripGrp>
    </termGrp>

The text of the term can be found as the value of `<term>` element.

Properties specified as `<descrip>` elements (within `<descripGrp>`) describe usage, grammatical information, case sensitivity and matching condition of the term:

    <descripGrp>
      <descrip type="Part of speech">N</descrip>
    </descripGrp>

Term level property | Value of the `type` attribute | Value type of the `<descrip>` element | Description
--- | --- | --- | ---
Example | Usage example | Text | An example of use of the term.
Grammar part of speech | Part of speech | N | Adj | Adv | V | X | The grammatical category of the term (single picklist, possible values: Noun, Adjective, Adverb, Verb, Other).
Status | Status | Forbidden | None | Defines if the term is forbidden (Forbidden) or not (None). The default value is None.
Number | Number (grammar) | Sg | Pl | The grammatical number of the term (single picklist, possible values: Singular or Plural).
Gender | Gender (grammar) | Masc | Fem | N | The grammatical gender of the term (picklist, possible values: Masculine, Feminine or Neuter).
Matching | PartialTreshold | None | Half | Any | Custom | Defines the degree to which partial matches are allowed against this term (single picklist, possible values: Exact, 50% prefix, Fuzzy or Custom). `Manual export only.`
Case sensitivity | CaseSense | Strict | Near | Insensitive | Defines the case sensitivity level of the term (single picklist, possible values: Sensitive, Permissive or Insensitive). `Manual export only.`

##### Note

If a term base is exported through WS API, `Matching` and `Case sensitivity` properties will not be exported.

##### Note

QTerm term bases do not have built-in `Grammar part of speech`, `Number` and `Example` properties, so those will not be present in the exported file.

QTerm term bases might have custom fields at the term level, but these fields are exported to the XML only by manual export of the term base.

    <descripGrp>
      <descrip type="SourceDef">https://memoq.com</descrip>
    </descripGrp>

Term level property | Value of `type` attribute | Value type of the `<descript>` element | Description |
--- | --- | --- | --- | ---
Custom metadata fields | [FieldName] | Custom values | Custom fields of a QTerm term base are exported to MultiTerm only by manual export. A custom metadata field could be of types: Text | Number | True/False | Date | Picklist (single)| Picklist (multiple)

Properties specified in the `<transac>` and `<date>` elements within `<transacGrp>` define the creation and modification dates and the creator/modifier of a term:

Term-level property | Element name | Value of the `type` attribute | Value type | Description
--- | --- | --- | --- | ---
Creator | transac | origination | Text | The creator of the term.
Created | date |  | DateTime | The creation UTC date of the term. In format `yyyy-MM-ddThh:mm:ss`.
Modifier | transac | modification | Text | The last modifier of the term.
Modified | date |  | DateTime | The UTC date of the term's last modification. In format `yyyy-MM-ddThh:mm:ss`.

## MultiTerm languages

MultiTerm uses the following format of language codes in the exported XDL, XDT, MultiTerm XML files.

Three-letter lang code | Two-letter lang code | Long name
--- | --- | ---
afr | AF | Afrikaans
aka | AK | Akan
alb_AL | SQ-AL | Albanian (Albania)
alb_MK | SQ-MK | Albanian (Macedonia)
alb_XK | SQ-XK | Albanian (Kosovo)
alb | SQ | Albanian
ara_AE | AR-AE | Arabic (UAE)
ara_BH | AR-BH | Arabic (Bahrain)
ara_DZ | AR-DZ | Arabic (Algeria)
ara_EG | AR-EG | Arabic (Egypt)
ara_IQ | AR-IQ | Arabic (Iraq)
ara_JO | AR-JO | Arabic (Jordan)
ara_KW | AR-KW | Arabic (Kuwait)
ara_LB | AR-LB | Arabic (Lebanon)
ara_LY | AR-LY | Arabic (Libya)
ara_MA | AR-MA | Arabic (Morocco)
ara_OM | AR-OM | Arabic (Oman)
ara_QA | AR-QA | Arabic (Qatar)
ara_SA | AR-SA | Arabic (Saudi Arabia)
ara_SY | AR-SY | Arabic (Syria)
ara_TN | AR-TN | Arabic (Tunisia)
ara_YE | AR-YE | Arabic (Yemen)
ara | AR | Arabic
aze | AZ | Azeri
baq | EU | Basque
bel | BE | Belarusian
ben_BD | BN-BD | Bengali (Bangladesh)
ben_IN | BN-IN | Bengali (India)
ben | BN | Bengali
boc | SH-B2 | Bosnian
bos | SH-B2 | Bosnian
bre | BR | Breton
bul | BG | Bulgarian
cat | CA | Catalan
cgl | SH-B1 | Montenegrin
cgy | SH-B1 | Montenegrin
chr | CHR | Cherokee
cze | CS | Czech
dan | DA | Danish
dut_BE | NL-BE | Dutch (Belgium)
dut_NL | NL-NL | Dutch (Netherlands)
dut | NL | Dutch
eng_AU | EN-AU | English (Australia)
eng_BZ | EN-BZ | English (Belize)
eng_CA | EN-CA | English (Canada)
eng_CB | EN-CB | English (Caribbean)
eng_GB | EN-GB | English (United Kingdom)
eng_IE | EN-IE | English (Ireland)
eng_JM | EN-JM | English (Jamaica)
eng_NZ | EN-NZ | English (New Zealand)
eng_PH | EN-PH | English (Philippines)
eng_TT | EN-TT | English (Trinidad)
eng_US | EN-US | English (United States)
eng_ZA | EN-ZA | English (South Africa)
eng_ZW | EN-ZW | English (Zimbabwe)
eng | EN | English
epo | EO | Esperanto
est | ET | Estonian
fao | FO | Faeroese
fas | FA | Farsi
fil | FIL | Filipino
fin | FI | Finnish
fre_BE | FR-BE | French (Belgium)
fre_CA | FR-CA | French (Canada)
fre_CH | FR-CH | French (Switzerland)
fre_FR | FR-FR | French (France)
fre_LU | FR-LU | French (Luxembourg)
fre_MA | FR-MA | French (Morocco)
fre_MC | FR-MC | French (Monaco)
fre | FR | French
ful | FF | Fulah
ger_AT | DE-AT | German (Austria)
ger_CH | DE-CH | German (Switzerland)
ger_DE | DE-DE | German (Germany)
ger_LI | DE-LI | German (Liechtenstein)
ger_LU | DE-LU | German (Luxembourg)
ger | DE | German
gla | GD | Gaelic (Scotland)
gle | GA | Irish
glg | GL | Galician
gre | EL | Greek
grn | GN | Guarani
guj | GU | Gujarati
hau | HA | Hausa
haw | HAW | Hawaiian
heb | HE | Hebrew
hin | HI | Hindi
hrv | HR | Croatian
hun | HU | Hungarian
ibo | IG | Igbo
ice | IS | Icelandic
ind | ID | Indonesian
ita_CH | IT-CH | Italian (Switzerland)
ita_IT | IT-IT | Italian (Italy)
ita | IT | Italian
jav | JV | Javanese
jpn | JA | Japanese
kal | KL | Greenlandic
kan | KN | Kannada
kas | KS | Kashmiri
kat | KA | Georgian
kaz | KK | Kazakh
kea | KEA | Kabuverdianu
khk | MN-CYRL | Mongolian (Cyrillic)
khm | KM | Khmer
kir | KY | Kyrgyz
kor | KO | Korean
lao | LO | Lao
lav | LV | Latvian
lin | LN | Lingala
lit | LT | Lithuanian
ltz | LB | Luxembourgish
mac | MK | Macedonian
mal | ML | Malayalam
mar | MR | Marathi
mlg | MG | Malagasy
mlt | MT | Maltese
mon | MN | Mongolian
mri | MI | Maori
msa | MS | Malay
mya | MY | Burmese
nep | NE | Nepali
nnb | NB | Norwegian (Bokmal)
nno | NN | Norwegian (Nynorsk)
nor | NO | Norwegian
oci | OC | Occitan
orm | OM | Oromo
pan | PA | Punjabi
pbu | PS | Pashto
pnb | PA | Punjabi
pol | PL | Polish
por_BR | PT-BR | Portuguese (Brazil)
por_PT | PT-PT | Portuguese (Portugal)
por | PT | Portuguese
prs | PRS | Dari
quz | QUZ | Quechua
rum | RO | Romanian
run | RN | Rundi
rus | RU | Russian
san | SA | Sanskrit
scc | SR | Serbian (Cyrillic)
scr | SH-SR | Serbian (Latin)
sin | SI | Sinhala
slo | SK | Slovak
slv | SL | Slovenian
som_DJ | SO-DJ | Somali (Djibouti)
som_ET | SO-ET | Somali (Ethiopia)
som_KE | SO-KE | Somali (Kenya)
som_SO | SO-SO | Somali (Somalia)
som | SO | Somali
spa_AR | ES-AR | Spanish (Argentina)
spa_BO | ES-BO | Spanish (Bolivia)
spa_CL | ES-CL | Spanish (Chile)
spa_CO | ES-CO | Spanish (Colombia)
spa_CR | ES-CR | Spanish (Costa Rica)
spa_DO | ES-DO | Spanish (Dominican Republic)
spa_EC | ES-EC | Spanish (Ecuador)
spa_EM | ES-EM | Spanish (Modern Sort)
spa_ES | ES-ES | Spanish (Spain)
spa_GT | ES-GT | Spanish (Guatemala)
spa_HN | ES-HN | Spanish (Honduras)
spa_MX | ES-MX | Spanish (Mexico)
spa_NI | ES-NI | Spanish (Nicaragua)
spa_PA | ES-PA | Spanish (Panama)
spa_PE | ES-PE | Spanish (Peru)
spa_PR | ES-PR | Spanish (Puerto Rico)
spa_PY | ES-PY | Spanish (Paraguay)
spa_SV | ES-SV | Spanish (El Salvador)
spa_US | ES-US | Spanish (United States)
spa_UY | ES-UY | Spanish (Uruguay)
spa_VE | ES-VE | Spanish (Venezuela)
spa | ES | Spanish
swa | SW | Swahili
swe_FI | SV-FI | Swedish (Finland)
swe_SE | SV-SE | Swedish (Sweden)
swe | SV | Swedish
tam | TA | Tamil
tat | TT | Tatar
tel | TE | Telugu
tha | TH | Thai
ton | TO | Tongan
tsn | TN | Tswana
tur | TR | Turkish
tzm | TZM | Tamazight
ukr | UK | Ukrainian
urd | UR | Urdu
uzb | UZ-LATN | Uzbek (Latin)
uzn | UZ-CYRL | Uzbek (Cyrillic)
vie | VI | Vietnamese
wel | CY | Welsh
wol | WO | Wolof
xho | XH | Xhosa
yid | YI | Yiddish
yor | YO | Yoruba
zho_CN | ZH-CN | Chinese (PRC)
zho_HK | ZH-HK | Chinese (Hongkong)
zho_MO | ZH-MO | Chinese (Macao)
zho_SG | ZH-SG | Chinese (Singapore)
zho_TW | ZH-TW | Chinese (Taiwan)
zho | ZH | Chinese
zul | ZU | Zulu
amh | AM | Amharic
asm | AS | Assamese
ast | AST | Asturian
fry | FY | Frisian
hye | HY | Armenian
ori | OR | Oriya
tuk | TK | Turkmen